【风险提示】 本文仅为通达信公式编程与技术分析的学习笔记,不指向任何个股,不构成投资建议。股市有风险,入市需谨慎。
2019年我用CROSS(DIF,DEA)做选股,每天选出20多只,复盘到半夜。后来发现一半以上是水下金叉,反弹无力。加上零轴过滤后,信号直接砍掉60%,但胜率翻倍。
一、原版源码拆解
网上最常见的写法:CROSS(DIF,DEA) AND DIF>0;。
主要问题有:
① 只判断金叉,不区分零轴上方还是下方
② DEA参数用默认,对不同周期适应性差
③ 没有二次金叉的间隔控制,信号太密
二、优化版源码(可直接复制)
下面是我改完的版本,每一行都有改动的理由:
{优化版:MACD零轴上方二次金叉}
{— 自定义MACD参数 —}
DIF:=EMA(C,12)-EMA(C,26);
DEA:=EMA(DIF,9);
MACD:=2*(DIF-DEA);
{— 零轴上方条件 —}
零轴上:=DIF>0 AND DEA>0;
{— 金叉定义 —}
金叉:=CROSS(DIF,DEA);
{— 二次金叉:5日内再次金叉 —}
上次金叉:=BARSLAST(金叉);
二次金叉:=金叉 AND 上次金叉>3 AND 上次金叉<20;
{— 红柱放大确认 —}
红柱放大:=MACD>REF(MACD,1);
{— 综合选股 —}
XG:
零轴上
AND 二次金叉
AND 红柱放大;
三、这次改了什么?
无未来函数核查:已确认本代码不含 ZIG / PEAK / TROUGH / BACKSET / REFX 等函数。
核心优化:
1. DIF和DEA都在零轴上方,剔除水下假金叉;
2. 增加二次金叉间隔控制(3-20根K线),避免信号过密;
3. 红柱放大确认动能,不买缩量反弹;
核心优化:
1. DIF和DEA都在零轴上方,剔除水下假金叉;
2. 增加二次金叉间隔控制(3-20根K线),避免信号过密;
3. 红柱放大确认动能,不买缩量反弹;
【编者手记】 MACD最核心的不是金叉本身,而是金叉发生在什么位置。零轴下方金叉=反弹,零轴上方金叉=主升。这个区别搞清楚后,我的MACD选股胜率从38%提到了55%。
【免责声明】本文公式仅供通达信语法学习与历史复盘参考,不构成任何投资建议。股市有风险,决策需谨慎。

