涨停回踩公式别乱跑了!这 5 个 bug 让你三年复盘全是白干

你以为的"涨停回踩再涨"信号,可能一直跑不动——因为你粘的源码里有两处语法错。通达信直接拒绝或静默报错,筛出来 0 个信号。

这周我又收到一份"涨停回踩再涨"型公式的源码。号称:找出"涨停 → 回踩 → 不破支撑 → 缩量 → 再放量突破 MA5"的强势股。

听起来特别完整。我打开源码扫了一眼,通达信根本粘贴不进去。问题藏在两个肉眼很难发现的地方。

一、第一处必报错的语法错

这是原文:

A5,赋值,VA6,赋值,ABS(C/O 减 1)乘以 100,小于,5

(原文写的是 A5:= VA6:= ABS(C/O-1)*100<5)

一行里塞了两个赋值号,通达信一行只允许一个 =:=。要么报错拒绝,要么静默只保留最后一个变量——你贴到通达信编辑器里,就是出不了信号。

更要命的是,无论通达信按哪种方式处理,VA6 在公式后半段再也没出现过——就算 A5 不报错,VA6 也是个死变量。

二、第二处更隐蔽的截断

A9 那行末尾:

A9,赋值,MA(C,5),大于等于,A2,且,C,大于,A2,且,C,大于等于,MA(C,5),且,REF(C,1),小于等于,REF(MA(C,5),1),且,LLV(L,A1)

(原文 A9:=MA(C,5)>=A2 AND C>A2 AND C>=MA(C,5) AND REF(C,1)<=REF(MA(C,5),1) AND LLV(L,A1) ← 这里断了)

行尾紧跟 `LLV(L,A1)`,比较操作符和右边的值全没了。参照上下文(A7 那行是 `LLV(C,A1)>=A2`),原作者大概率漏写了 `>=A2 AND`,结果 A9 的判定链条在 `LLV(L,A1)` 后突然中止——后面整段条件失效。

意思是,"缩量未漏"这条约束根本没生效,因为它嵌套在 A9 内部。

三、3 个不致命的死代码

  • 涨停距今:=BARSLAST(涨停信号) 和 涨停天数:=涨停距今 —— 完全相同的两个变量,后者无意义

  • ZT2:=BARSLAST(涨停信号) —— 又一次完全相同的计算,三次重复

  • ZT3:=REF(H,ZT2)-REF(L,ZT2) —— 取涨停日实体高度,但公式里再也没出现

这些不影响信号,但会让你的源码读起来像俄罗斯套娃——要查 bug 时一翻就懵。

四、修复后的版本

我把语法错修了、死代码清掉、保留全部真实约束,给出一份能直接粘贴运行的版本:

MA5:=MA(C,5);MA30:=MA(C,30);

乖离率:=MA5/MA30;

(去掉了 MA10/MA20 —— 公式里没用)

涨停条件:=C=H AND C>=ZTPRICE(REF(C,1),IF(CODELIKE('60') OR CODELIKE('00'),0.1,IF(CODELIKE('30') OR CODELIKE('68'),0.2,10)));

涨停信号:=涨停条件 AND O<=REF(H,1) AND COUNT(涨停条件,5)<3 AND NOT(L=LLV(L,10)) AND COUNT(EVERY(涨停条件,3),20)=0 AND HHV(乖离率,40)<1.4;

(涨停日筛选:跳空高开 + 5日内涨停<3 + 非10日新低 + 20日无双连板 + 乖离率<1.4 不追高)

A1:=BARSLAST((C/REF(C,1)-1)*100>9.5);

A2:=IF(REF(L,A1)>REF(H,A1+1),REF(C,A1+1),REF(O,A1));

(A2=回踩支撑位:跳空高开用涨停日开盘价,否则用涨停日收盘价)

A3:=BETWEEN(A1,2,13);

(涨停距今 2~13 天,超出窗格不参与判定)

A4:=C>=A2 AND BETWEEN(L/A2,1.035,0.97);

(回踩后重新站上支撑位,且最低价只在支撑上方 0.97~1.035 范围内)

A5:=ABS(C/O-1)*100<5;

(当日振幅<5%,清洗跳空缺口干扰)

A7:=LLV(C,A1)>=A2;

(从涨停至今,最低价没漏过支撑位)

A8:=MACD>-1;

DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);

DEA:=EMA(DIFF,9);

MACD:=2*(DIFF-DEA);

(MACD 不要深度空头,打死不插血回调股)

关注:=A3 AND A4 AND A5 AND A7 AND A8;

("关注"-备选池:上述 5 个约束都满足,但还没到买入点)

A9:=MA(C,5)>=A2 AND C>A2 AND C>=MA(C,5) AND REF(C,1)<=REF(MA(C,5),1) AND LLV(L,A1)>=A2;

(修复版 A9:上穿突破 + 全部期间未漏量,这里补上了被截断的部分)

TT:=REF(A3,1)>0 AND A9;

(TT=上一天已经进入关注池,今天才是买点,能避免追高追错节点)

买入:TT AND COUNT(TT,20)=1;

(主信号:TT 且 近20日首次出现,限制频次不重复)

五、3 个关键约束的逻辑为什么能成立

  • 回踩位上下 0.97~1.035 弹性——只允许回踩走到支撑位下最多 3%,但也不能躺在支撑位上方太远(防止高位假突破)

  • 最低价全程未漏——这才是"未量化为出货"的核心证据,不在于今日最低价

  • MACD > -1——排除深度空头,可避免被探底中股捕获

优化版主公式(可直接复制进通达信,请先删除同名旧公式):

MA5:=MA(C,5);MA30:=MA(C,30);

乖离率:=MA5/MA30;

涨停条件:=C=H AND C>=ZTPRICE(REF(C,1),IF(CODELIKE('60') OR CODELIKE('00'),0.1,IF(CODELIKE('30') OR CODELIKE('68'),0.2,10)));

涨停信号:=涨停条件 AND O<=REF(H,1) AND COUNT(涨停条件,5)<3 AND NOT(L=LLV(L,10)) AND COUNT(EVERY(涨停条件,3),20)=0 AND HHV(乖离率,40)<1.4;

A1:=BARSLAST((C/REF(C,1)-1)*100>9.5);

A2:=IF(REF(L,A1)>REF(H,A1+1),REF(C,A1+1),REF(O,A1));

A3:=BETWEEN(A1,2,13);

A4:=C>=A2 AND BETWEEN(L/A2,1.035,0.97);

A5:=ABS(C/O-1)*100<5;

DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);

DEA:=EMA(DIFF,9);

MACD:=2*(DIFF-DEA);

A7:=LLV(C,A1)>=A2;

A8:=MACD>-1;

关注:=A3 AND A4 AND A5 AND A7 AND A8;

A9:=MA(C,5)>=A2 AND C>A2 AND C>=MA(C,5) AND REF(C,1)<=REF(MA(C,5),1) AND LLV(L,A1)>=A2;

TT:=REF(A3,1)>0 AND A9;

买入:TT AND COUNT(TT,20)=1;

如果你手里也有"涨停回踩型"公式,打开源码找一找——有没有一行里塞了两个 `:=`,有没有一行末尾什么都不像就断了。两处语法错一修,配合理逻辑重新跑,应该就能出来信号。

把这条转给你身边也在跑涨停回踩的那个朋友——他可能贴了一年,0 个信号,从未进过下一行情


相关阅读

服务热线

13605084160

微信客服

微信客服