一、先看懂它想干什么
结构不复杂:ABC1~ABC16 轮询"过去 3~7 天里有没有一根涨停板"(收盘=最高、站上5日线、开盘在10日线上),ABC2/5/9/12/15 是同一句话复制五遍(今天盘中冲高 4.1%),ABC17 是全公式唯一的"低吸"条件——均线多头、今日开盘在 5 日线下、昨日或今日回踩短均线、缩幅收阳。翻译:涨停后歇几天,回踩均线企稳收阳时买。思路本身是标准的"涨停回踩低吸",没毛病。
二、bug 连锁反应链
↓
② ABC16 = ABC14 AND ABC15 → 跟着恒假
↓
③ ABC18 = ABC3 OR ABC7 OR ABC10 OR ABC13 OR ABC16 AND ABC17——AND 优先级高于 OR,ABC17 只跟恒假的 ABC16 绑在一起
↓
④ (恒假 AND ABC17) = 恒假 → ABC17 从公式里被整个删除
↓
⑤ 剩下的 ABC18 = "过去几天有涨停 + 今天冲高 4%"→ 名字叫低吸,实际在追高
第 11、15 期讲过的 AND/OR 优先级坑,这里是第三次出现,但这次最隐蔽:单看 ABC18 那行你会以为 ABC17 起作用了,必须发现 ABC16 恒假,才能看出 ABC17 已经死了。两个坑各自都常见,叠在一起就是连环杀。
三、实测:bug 版亏钱,修复版转正
| 版本 | 实际逻辑 | 信号数 | 20日平均收益 | 胜率 |
|---|---|---|---|---|
| 原版(带 bug) | 涨停后冲高就报(追高) | 188 | -1.37% | 39.9% |
| 修复版 | 涨停后回踩企稳收阳(真低吸) | 31 | +2.53% | 41.9% |
方向差了近 4 个百分点。作者的原始思路其实是对的——"涨停回踩企稳"在弱市里也能勉强做出正收益(31 个信号样本不大,别神化);但那个漏改的 7 和缺的一对括号,让市面上流传的版本干的是反向的事。用这公式亏钱的人,可能到今天都不知道自己抄的是个残废版。
四、顺手再挑两根刺
连板过滤写反了方向:NOT(REF(C,2)/REF(C,1)>=1.09 ...) 分子分母颠倒,实际排除的是"连续两天暴跌9%"(几乎不存在的场景),本意"排除连板股"完全没实现。
死变量+无效属性:趋势线:=HHV(MA10,90) 用 := 赋值(中间变量不显示),后面挂 COLORRED、LINETHICK2 都是无效的,而且这个变量之后再没被用过——三行装饰,零作用。
五、怎么修
① ABC14 补回漏改的参数:REF(CLOSE,7)/REF(CLOSE,8)>1.09
② ABC18 加括号,让 ABC17 管住全部分支:ABC18:=(ABC3 OR ABC7 OR ABC10 OR ABC13 OR ABC16) AND ABC17;
③ 连板过滤转正方向:NOT(REF(C,1)/REF(C,2)>=1.09 AND REF(C,2)/REF(C,3)>=1.09)
④ DRAWTEXT 主图标注改成 XG 选股输出,直接进选股器。
修复版公式(已修复恒假笔误 + 优先级括号 + 连板过滤方向,改为选股输出;可直接复制进通达信):
ZT3:=REF(C,3)/REF(C,4)>1.09 AND REF(C,3)=REF(H,3) AND REF(C,3)>REF(MA(C,5),3) AND REF(O,3)>REF(MA(C,10),3);
ZT4:=REF(C,4)/REF(C,5)>1.09 AND REF(C,4)=REF(H,4) AND REF(C,4)>REF(MA(C,5),4) AND REF(O,4)>REF(MA(C,10),4);
ZT5:=REF(C,5)/REF(C,6)>1.09 AND REF(C,5)=REF(H,5) AND REF(C,5)>REF(MA(C,5),5) AND REF(O,5)>REF(MA(C,10),5);
ZT6:=REF(C,6)/REF(C,7)>1.09 AND REF(C,6)=REF(H,6) AND REF(C,6)>REF(MA(C,5),6) AND REF(O,6)>REF(MA(C,10),6);
ZT7:=REF(C,7)/REF(C,8)>1.09 AND REF(C,7)=REF(H,7) AND REF(C,7)>REF(MA(C,5),7) AND REF(O,7)>REF(MA(C,10),7);
非连板:=NOT(REF(C,1)/REF(C,2)>=1.09 AND REF(C,2)/REF(C,3)>=1.09);
冲高:=H/REF(C,1)>=1.041;
有涨停:=(ZT3 OR ZT4 OR ZT5 OR ZT6 OR ZT7) AND 非连板 AND 冲高;
低吸:=MA(C,5)>MA(C,10) AND MA(C,10)>MA(C,20) AND O<MA(C,5) AND REF(C,2)/REF(C,3)<1.099 AND (REF(C,1)<REF(MA(C,5),1) OR L<MA(C,10)) AND MA(C,5)>REF(MA(C,5),1) AND REF(L,1)>REF(MA(C,20),1) AND O/REF(C,1)<1.09 AND C>O;
多头:=MA(C,5)>MA(C,20) AND MA(C,5)>MA(C,10);
长多:=MA(C,5)>MA(C,60) AND MA(C,5)>MA(C,120) AND MA(C,10)>MA(C,30) AND MA(C,10)>MA(C,60) AND MA(C,10)>MA(C,120);
XG:有涨停 AND 低吸 AND 多头 AND (BARSCOUNT(C)<90 OR 长多);
重构说明:合并了原 ABC1~ABC16 的五段复制粘贴(各分支涨停判断统一,连板过滤统一生效),逻辑与修复意图一致、更易维护。回测基于沪深300池,31个信号样本有限,仅作技术验证。
"密探"系列两连拆,一只集齐三大坑,一只连环 bug 把低吸干成追高。手里还有密探系列其他公式的,发过来——我倒要看看这一窝还能翻出什么花样。
