回踩20日线不破选股公式:我拆源码时发现"不破"根本没定义,差一分钱都算破(附修复版)

风险提示:本文通达信指标公式仅作技术教学与研究使用,不构成任何投资建议。股市有风险,入市需谨慎,不可直接依据公式信号交易。

拆这个公式时,我停在了第4行:L>=MA20。这行的意思是"今日最低价大于等于20日均线"。听起来很合理——股价回踩到20日线就弹起来了,没跌破。但问题是,如果盘中瞬间刺穿20日线2分钱,收盘又收回来,L>=MA20 就会判为"破了",直接排除。反之,如果收盘价刚好在20日线上方1分钱,但实体是大阴线,它却算"没破"。这个判断太粗糙了。

先给结论,再讲道理:"回踩不破"的核心应该是收盘价守住 + 实体不破,而不是最低价刚好在某条线上。"不破"应该给一个容忍度(比如收盘价在20日线上方1%以内都算回踩),同时要看收盘位置而非盘中瞬间。原版公式用 L>=MA20 一刀切,是"精确但错误"的典型。

一、原版源码长这样

MA5:=MA(C,5); MA10:=MA(C,10); MA20:=MA(C,20); MA60:=MA(C,60);
回踩:=L<=MA20*1.02 AND L>=MA20; {最低价触及20日线附近且不破}
不破:=C>MA20 AND C>REF(C,1); {收盘在20日线上方且收阳}
选股:回踩 AND 不破;

源码用最低价判断"是否触及",用收盘价判断是否"不破",但无容忍度设置,也无趋势过滤。

二、公式体检评分表

以下为基于源码逻辑的主观结构评分,未经历史数据验证,仅作拆解参考。

评分项得分说明
语法完整性92通达信可运行,无语法错误
逻辑完整度50"不破"定义过于严格,无容忍度,无趋势过滤
信号可用性55盘中假破被误杀,趋势向下时也入选

系列编号:本文为「1000个公式拆解」系列 · 均线系 · 第 4 篇(4/1000)。

三、问题一:L>=MA20 太死板

最低价瞬间刺穿20日线1分钱,收盘收回来——这是典型的"盘中洗盘",但公式判为"破了"。反过来,收盘价在20日线上方,但全天都在线下方运行(只是尾盘拉回),公式却判为"没破"。判断标准应该是收盘价,而非最低价。

四、问题二:没有容忍度

"回踩"应该是一个区间概念。收盘价在20日线上方0.5%以内,都是健康的回踩。原版要么"刚好在线上"要么"在线下",没有过渡带。

五、问题三:缺少趋势过滤

如果MA60还在向下,20日线附近的"不破"很可能只是下跌途中的小反弹。原版公式完全不看中长期趋势。

六、适用环境

上升趋势中的回踩 ✓ 突破后回踩确认 △ 需量能配合 下跌趋势中的反抽 ✗

七、修复版源码

{=== 回踩20日线不破 · 修复版(通达信可运行)===}
MA5:=MA(C,5); MA10:=MA(C,10); MA20:=MA(C,20); MA60:=MA(C,60);
{=== 改动1:用收盘价判断是否"不破",给1%容忍度 ===}
回踩区:=C<=MA20*1.01 AND C>=MA20*0.99; {收盘在20日线上下1%以内}
{=== 改动2:收盘守住(不破20日线)===}
守住:=C>MA20 AND C>=O; {收阳线且在线上}
{=== 改动3:趋势过滤,MA60走平或向上 ===}
趋势垫:=MA60>=REF(MA60,1);
{=== 改动4:前期上涨确认(回踩前有涨幅)===}
前期涨幅:=C>MA20*1.05; {当前价比20日线高5%以上,确认有过上涨}
{=== 改动5:排除ST及数据不足 ===}
排雷:=NOT(NAMELIKE('ST') OR NAMELIKE('*ST')) AND COUNT(C>0,60)=60;
选股:回踩区 AND 守住 AND 趋势垫 AND 前期涨幅 AND 排雷;

修复思路:用收盘价替代最低价判断"不破",给1%容忍度,要求MA60向上,并确认前期有过上涨(确保是"回踩"而非"阴跌")。

八、实战操作建议

  • 用法:寻找上升趋势中,股价第一次回踩20日线且不破(收盘守住)的标的。

  • 确认:回踩次日若放量阳线收复5日线,是极佳的介入点。

  • 止损:跌破20日线3%或收盘连续2天在20日线下方,说明支撑失效,应止损。

九、三条启发

启发一:"不破"看收盘价,不看最低价。盘中刺穿是洗盘,收盘守住才是真支撑。

启发二:给"不破"一个容忍度。差一分钱算不算破?给1%的缓冲,公式更人性化。

启发三:回踩的前提是"有过上涨"。横盘中的触碰20日线,不叫回踩,叫震荡。


相关阅读

最近发表
在线客服
QQ:332879389
联系电话
13605084160