MACD与SKDJ复合到一起的算法,想法还是很独到的,因为它们分属两种不同的副图指标类型,所以,涉及了两者之间的坐标匹配算法。
坐标的匹配,一是,百分比的计算适配---比例相同;二是纵向的视觉适配---上下平移。
效果示意
复合效果图
思路步骤
引用系统已有指标MACD;
引用系统已有指标SKDJ;
两者比例匹配---扩大SKDJ的坐标值;
对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);
两者同时显示,使得指标的效果加倍;也为提升信息输出指出了更好方向。
我的努力只为达成你的成功,赞赏是一种格局。
江丰鱼的文章只在今日头条首发;文中代码均可运行。