核心逻辑
这是一个基于MACD指标的增强版交易系统,核心原理如下: 1. **基础MACD计算**:使用12日EMA减去26日EMA得到DIF线,再对DIF进行9日EMA得到DEA线,两者差值形成MACD柱状图 2. **金叉识别**:识别DIF上穿DEA的金叉信号,分为"低位金叉"(DIF<-0.1)和"二次金叉"(在0轴下方发生第二次金叉) 3. **背离判断**:通过比较价格与DIF/DEA的走势关系,识别底背离(价格新低但DIF未新低)和顶背离 4. **RSI背离辅助**:引入RSI指标的背离信号作为验证 5. **多信号组合**:设置"三全项"(低位金叉+二次金叉+底背离)和"两全项"(低位金叉+底背离)组合信号 6. **趋势可视化**:用颜色区分DIF的上升(红色)和下降(蓝色)
买卖信号
**买入信号:** - 低位金叉:DIF上穿DEA且DIF<-0.1(黄色柱+文字"低位金叉") - 二次金叉:在21周期内第二次出现DIF上穿DEA且DEA<0(紫红色柱+文字"二次金叉") - 底背离:股价创新低但DIF未创新低,随后DIF上穿DEA(绿色柱+文字"底背离") - RSI底背离:RSI指标出现底背离(青色文字"RSI底离") - 三全项:低位金叉、二次金叉、底背离同时满足(黄色粗体"三全项") - 两全项:低位金叉和底背离同时满足(蓝色粗体"两全项") **卖出信号:** - 顶背离:股价创新高但DIF未创新高,随后DEA上穿DIF(文字"顶背离") - RSI顶背离:RSI指标出现顶背离(绿色文字"RSI顶离")
用法
1. **基本用法**:关注DIF与DEA的交叉位置,在0轴下方金叉为低位金叉,信号更强 2. **组合信号**:同时满足多个条件时信号更可靠,如"三全项"和"两全项"是重点买入信号 3. **背离验证**:背离信号往往预示趋势反转,可作为辅助判断 4. **RSI辅助**:RSI背离可作为MACD背离的验证,提高信号准确率 5. **趋势判断**:红色DIF表示多头趋势,蓝色DIF表示空头趋势 6. **综合决策**:建议结合成交量和其他指标综合判断,避免单一信号操作
公式源码
DIF:EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:EMA(DIF,9);
macd:(DIF-DEA)*2,COLORSTICK;
低位金叉:=crOSS(DIF,DEA) AND DIF<-0.1;
STICKLINE(低位金叉,0,-0.18,1,0),COLORYELLOW;
DRAWTEXT(低位金叉,-0.15,' 低位金叉'),COLORRED;
JCCOUNT:=COUNT(CROSS(DIF,DEA),BARSLAST(DEA>=0));
二次金叉:=CROSS(DIF,DEA) AND DEA<0 AND COUNT(JCCOUNT=2,21)=1;
STICKLINE(二次金叉,0,-0.18,1,0),COLORFF00FF;
DRAWTEXT(二次金叉,-0.3,' 二次金叉'),COLORFF00FF;
A1:=BARSLAST(REF(CROSS(DIF,DEA),1));
底背离:=REF(CLOSE,A1+1)>CLOSE AND DIF>REF(DIF,A1+1) AND CROSS(DIF,DEA);
STICKLINE(底背离,0,0.13,1,0),COLOR00FF00;
DRAWTEXT(底背离,0.18,' 底背离'),COLOR00FF00;
A2:=BARSLAST(REF(CROSS(DEA,DIF),1));
顶背离:=REF(CLOSE,A2+1)<CLOSE AND REF(DIF,A2+1)>DIF AND CROSS(DEA,DIF);
DRAWTEXT(低位金叉 AND 二次金叉 AND 底背离,0.51,'三全项'),COLORYELLOW,LINETHICK2;
DRAWTEXT(低位金叉 AND 底背离,0.31,'两全项'),COLORLIBLUE,LINETHICK2;
上翘:IF(DIF>REF(DIF,1),DIF,DRAWNULL),COLORRED,LINETHICK2;
下拐:IF(DIF<REF(DIF,1),DIF,DRAWNULL),COLORLIBLUE,LINETHICK2;
A3:=BARSLAST(REF(CROSS("rsi.RSI1","RSI.RSI2"),1));
B3:=REF(C,A3+1)>C AND REF("RSI.RSI1",A3+1)<"RSI.RSI1" AND CROSS("RSI.RSI1","RSI.RSI2");
DRAWTEXT(B3>0,-0.3,'RSI底离'),COLORCYAN;{RSI底背离};
C3:=BARSLAST(REF(CROSS("RSI.RSI2","RSI.RSI1"),1));
D3:=REF(C,C3+1)<C AND REF("RSI.RSI1",C3+1)>"RSI.RSI1" AND CROSS("RSI.RSI2","RSI.RSI1");
DRAWTEXT(D3>0,0.8,'RSI顶离'),COLORGREEN;{RSI顶背离};