算法叠加是数据共振的有效处理方法,已有的算法讨论请参考前文《MACD与SKDJ复合的算法实现》
思路需求

网友的留言
网友留言的思路是说:
系统指标KDJ中的J值线与系统指标中的MACD相叠加,做成匹配副图指标,如何建立。
效果示意

效果图
思路步骤
- 引入系统已经存在的指标KDJ(引入时参数自动填写),并对K、D 进行赋值处理;
- 复制系统指标MACD,更改变量名并手动填写补齐参数;
- 计算当前屏幕中数据总数中DIF的最高值与最低值;
- 计算MACD与KDJ的匹配倍数;
- 输出匹配之后的新的DIF、 DEA、 MACD值;
- 经过匹配得到新的DIF值,由此计算得到新MACD与新KDJ之间在纵坐标上的进一步平移叠加;
- 输出平移后的J值,完成两者之间的同框叠加显示。
算法建立
- 引入系统已经存在的指标KDJ(引入时参数自动填写),并对K、D 进行赋值处理
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
2.复制系统指标MACD,更改变量名并手动填写补齐参数
DIF0:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA0:=EMA(DIF0,MID);
MACD0:=(DIF0-DEA0)*2;
3.计算当前屏幕中数据总数中DIF的最高值与最低值
MHH:=CONST(HHV(DIF0,150));
MLL:=CONST(LLV(DIF0,150));
4.计算MACD与KDJ的匹配倍数
BEI:=(MHH-MLL)/100;
5.输出匹配之后的新的DIF、 DEA、 MACD值
DIF:DIF0/BEI,COLORWHITE;
DEA:DEA0/BEI,COLORYELLOW;
MACD:MACD0/BEI,COLORSTICK;
6.经过匹配得到新的DIF值,由此计算得到新MACD与新KDJ之间在纵坐标上的进一步平移叠加
PY:=CONST(LLV(DIF,150));{平移}
7.输出平移后的J值,完成两者之间的同框叠加显示。
J:3*K-2*D+PY,COLORMAGENTA;
完整代码

参数1~4

参数5~6 与代码流程
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M2,1);
DIF0:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA0:=EMA(DIF0,MID);
MACD0:=(DIF0-DEA0)*2;
MHH:=CONST(HHV(DIF0,150));
MLL:=CONST(LLV(DIF0,150));
BEI:=(MHH-MLL)/100;
DIF:DIF0/BEI,COLORWHITE;
DEA:DEA0/BEI,COLORYELLOW;
MACD:MACD0/BEI,COLORSTICK;
PY:=CONST(LLV(DIF,150));{平移}
J:3*K-2*D+PY,COLORMAGENTA;