MACD与SKDJ复合到一起的算法,想法还是很独到的,因为它们分属两种不同的副图指标类型,所以,涉及了两者之间的坐标匹配算法。 坐标的匹配,一是,百分比的计算适配---比例相同;二是纵向的视觉适配---上下平移。 效果示意 ![]() 复合效果图 思路步骤
算法建立 1. 引用系统已有指标MACD DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG); DEA:EMA(DIF,MID); MACD:(DIF-DEA)*2,COLORSTICK; 2. 引用系统已有指标SKDJ MHH:=CONST(HHV(MACD,150)); MLL:=CONST(LLV(DIF,150)); LOWV:=LLV(LOW,N); HIGHV:=HHV(HIGH,N); 3. 两者比例匹配 BFB:=(CLOSE-LOWV)/(HIGHV-LOWV); BFB0:=(MHH-MLL)*BFB; RSV:=EMA(BFB0,M); B:=EMA(RSV,M); E:=MA(B,M); 4. 对SKDJ向下平移 SHH:=CONST(HHV(B,150)); SLL:=CONST(LLV(B,150)); PY:=(SHH-SLL)/1.5; K:B-PY; D:E-PY; 5. 进行标示优化 DRAWTEXT(CROSS(K,D),K,'上'),COLORRED; DRAWTEXT(CROSS(D,K),D,'下'),COLORGREEN; DRAWICON(CROSS(K,D),K,86); DRAWICON(CROSS(D,K),D,85); 代码流程 ![]() 江丰鱼的代码 完整代码 DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG); DEA:EMA(DIF,MID); MACD:(DIF-DEA)*2,COLORSTICK; MHH:=CONST(HHV(MACD,150)); MLL:=CONST(LLV(DIF,150)); LOWV:=LLV(LOW,N); HIGHV:=HHV(HIGH,N); BFB:=(CLOSE-LOWV)/(HIGHV-LOWV); BFB0:=(MHH-MLL)*BFB; RSV:=EMA(BFB0,M); B:=EMA(RSV,M); E:=MA(B,M); SHH:=CONST(HHV(B,150)); SLL:=CONST(LLV(B,150)); PY:=(SHH-SLL)/1.5; K:B-PY; D:E-PY; DRAWTEXT(CROSS(K,D),K,'上'),COLORRED; DRAWTEXT(CROSS(D,K),D,'下'),COLORGREEN; DRAWICON(CROSS(K,D),K,86); DRAWICON(CROSS(D,K),D,85); 两者同时显示,使得指标的效果加倍;也为提升信息输出指出了更好方向。 我的努力只为达成你的成功,赞赏是一种格局。 江丰鱼的文章只在今日头条首发;文中代码均可运行。 |
|