条件一 近 3 个交易日出现过「连板数 = 2」,恰好等于 2。2 板日必须早于基准日, 且此后没有再封板(再封板是 3 板延续,不是回调)。
条件二 回调到 5 日线与 10 日线之间。收盘落在区间内标 在区间, 只是盘中探入、收盘又拉回线上的标 探入。
BK:=IF(INBLOCK('科创板') OR INBLOCK('创业板'),0.2,0.1);
涨停价:=ZTPRICE(REF(C,1),BK);
ZT2:=C>=涨停价 AND C=H;
ZT3:=H>=涨停价 AND C>REF(C,1)*(1+0.05*BK*10);
DB:=NOT(ZT3) AND NOT(REF(ZT3,1)); {标记断板点}
N1:=BARSLAST(DB);
连板数:=IF(ZT2,COUNT(ZT2,N1),0);
两个条件同时满足:① 股性活跃——近 250 个交易日触板(ZT3)≥ 15 次, 且近 60 个交易日 ≥ 4 次;② 当日涨停——收盘价 ≥ 涨停价且收盘=最高(真封板,炸板不算)。 ZT3 = 盘中摸到涨停价 且 收盘涨过半个板(主板 >5%,双创 >10%,北交所 >15%)—— 炸板也算,所以它衡量的是「敢不敢冲」,不是「封不封得住」。
结果按当日涨幅从高到低排序。只做收盘选股,不做盘中。
T2(500 天新高)在原式里有定义但不在输出里,所以这里只作为
新高 标记展示,不参与筛选。
AK:=IF(SUBSTR(CODE,1,2)='83' OR ... ,0.3,
IF(INBLOCK('科创板') OR INBLOCK('创业板'),0.2,0.1));
BK:=IF((AK=0.3 AND BARSCOUNT(C)>1) OR (AK<=0.2 AND BARSCOUNT(C)>5),AK,100);
涨停价:=ROUND2(REF(C,1)*(1+BK),2)-0.02;
ZT3:=H>=涨停价 AND C>REF(C,1)*(1+0.05*BK*10);
T1:= COUNT(ZT3,250)>=15 AND COUNT(ZT3,60)>=4; {股性活跃}
T2:= C=HHV(C,500); {500天新高}
T1;
全市场约 4800 只逐只验算。受 Cloudflare 每次调用 50 个子请求的限制, 扫描分成约 100 个定时片推进,收盘后一小时左右出完整结果。