MACD零轴上二次金叉选股公式:我拆源码时发现COUNT只数次数不辨结构(附修复版)

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

拆这个公式时,我停在了第7行:COUNT(金叉,20)>=2。这行的意思是"过去20天里,金叉出现了至少2次"。听起来很合理——零轴上方两次金叉,说明主力洗盘后再次拉升。但 COUNT 函数只数"次数",不辨"结构"。如果两次金叉中间夹了一个死叉,COUNT 照样数到2,但这时DIF可能已经高位钝化了。

先给结论,再讲道理:"零轴上二次金叉"的精髓在于第一次金叉后不死叉(或极短时间死叉后快速金叉),说明多头力量极其强劲。原版用 COUNT 只数次数,不要求两次金叉之间的"间隔"和"DIF位置",导致高位钝化区的假信号大量混入。

一、原版源码长这样

DIF:=EMA(C,12)-EMA(C,26);
DEA:=EMA(DIF,9);
金叉:=CROSS(DIF,DEA);
零轴上:=DIF>0 AND DEA>0;
二次金叉:=COUNT(金叉,20)>=2;
选股:零轴上 AND 二次金叉;

源码要求DIF和DEA在零轴上方,且20天内金叉次数≥2,但不限制两次金叉的间隔和DIF高度。

二、公式体检评分表

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

评分项得分说明
语法完整性95通达信可运行,无语法错误
逻辑完整度50COUNT只数次数不辨结构,高位钝化信号混入
信号可用性55DIF高位区的二次金叉多为诱多

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

三、问题一:COUNT不辨结构

COUNT(金叉,20)>=2 只保证"出现了2次",但不管这2次之间发生了什么。如果第一次金叉在DIF=0.5处,随后死叉到DIF=0.3,再金叉到DIF=0.6——这还算健康。但如果DIF已经到了2.0的高位再"二次金叉",本质就是追涨。

四、问题二:DIF高位钝化是陷阱

当DIF远超零轴(如>1.5),MACD柱状图已经极度扩张,此时再出现金叉,往往是主力在高位制造"多头延续"的假象,方便出货。原版公式完全不限制DIF的高度。

五、问题三:两次金叉间隔无限制

真正的"二次金叉"应该是洗盘后快速再次拉升,间隔应该在5-10个交易日内。如果间隔20天,那已经是两波独立行情了,不叫"二次"。

六、适用环境

零轴附近首金叉后洗盘 ✓ 上升趋势中继 △ 需DIF低位 DIF高位钝化区 ✗

七、修复版源码

{=== MACD零轴上二次金叉 · 修复版(通达信可运行)===}
DIF:=EMA(C,12)-EMA(C,26);
DEA:=EMA(DIF,9);
金叉:=CROSS(DIF,DEA);
死叉:=CROSS(DEA,DIF);
{=== 改动1:第一次金叉的位置(DIF在零轴附近,不超过0.8)===}
首金叉:=REF(金叉,1) AND REF(DIF,1)<0.8 AND REF(DIF,1)>0;
{=== 改动2:两次金叉间隔5-15天 ===}
间隔合理:=BARSLAST(金叉)>=5 AND BARSLAST(金叉)<=15;
{=== 改动3:当前DIF不能太高(防止高位钝化)===}
DIF不高:=DIF<1.2;
{=== 改动4:零轴上方 ===}
零轴上:=DIF>0 AND DEA>0;
{=== 改动5:排除ST及数据不足 ===}
排雷:=NOT(NAMELIKE('ST') OR NAMELIKE('*ST')) AND COUNT(C>0,60)=60;
选股:零轴上 AND 首金叉 AND 间隔合理 AND DIF不高 AND 排雷;

修复思路:限制第一次金叉在零轴附近(DIF<0.8),两次金叉间隔5-15天,当前DIF不高(<1.2),过滤高位钝化信号。

八、实战操作建议

  • 用法:寻找DIF在零轴附近首次金叉后,经过5-15天小幅洗盘(不死叉或极短死叉),再次金叉的标的。

  • 确认:二次金叉当日或次日放量上涨,且DIF持续上行,可视为介入点。

  • 止损:DIF再次死叉且跌破零轴,说明多头衰竭,应止损。

九、三条启发

启发一:COUNT 只数数,不辨结构。量化"二次"必须用 BARSLAST 控制间隔。

启发二:DIF 的高度决定信号质量。零轴附近的金叉是"启动",高位金叉是"尾声"。

启发三:真正的二次金叉,中间隔着的是"洗盘"不是"反转"。死叉深度不能太大。


相关阅读

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