密探低吸:一个笔误加一个优先级坑,把"低吸"干成了"追高"

上期那只"密探二次启动"集齐三大坑,这期它的同门师弟"密探低吸"来了——坑不多,就两个,但这两个连环引爆:一个自己除自己的笔误,加一个 AND/OR 优先级坑,把公式里唯一负责"低吸"的条件整个炸失效。实测:带 bug 的原版 20 日平均 -1.37%,修复后 +2.53%——名字叫低吸,bug 版干的是追高的活。

一、先看懂它想干什么

结构不复杂:ABC1~ABC16 轮询"过去 3~7 天里有没有一根涨停板"(收盘=最高、站上5日线、开盘在10日线上),ABC2/5/9/12/15 是同一句话复制五遍(今天盘中冲高 4.1%),ABC17 是全公式唯一的"低吸"条件——均线多头、今日开盘在 5 日线下、昨日或今日回踩短均线、缩幅收阳。翻译:涨停后歇几天,回踩均线企稳收阳时买。思路本身是标准的"涨停回踩低吸",没毛病。

二、bug 连锁反应链

① ABC14 写着 REF(CLOSE,7)/REF(CLOSE,7)>1.09——自己除自己恒等于 1,永远假(复制改参数时漏改一个 7→8)
  ↓
② 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 版亏钱,修复版转正

⚠ 回测口径:296 只沪深300成分股 × 260 个交易日(33775 个有效股票日),弱市环境。次新股分支(BARSCOUNT<90)在本池无法触发,实测覆盖主分支 ABC22。样本池为大盘蓝筹,小票表现请自行验证。
版本实际逻辑信号数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 把低吸干成追高。手里还有密探系列其他公式的,发过来——我倒要看看这一窝还能翻出什么花样。


相关阅读

在线客服
QQ:332879389
联系电话
13605084160