本帖最后由 技术009 于 2022-11-1 13:49 编辑
如果你只是用macd的金叉死叉,那说不定可以利用代码重构来规避下。
ema算法都是利用前面一个周期的值和当前的进行构造出来的。 所以可以引用前面日线上的ema结果 和当前最新价 进行二次构造来处理。
[PEL] 复制代码 input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);
EMA_S1:="EXPMA.M1##DAY"(S);//前一个日线的 EMA(CLOSE,S)
EMA_P1:="EXPMA.M1##DAY"(P);//前一个日线的 EMA(CLOSE,P)
DEA1:="MACD.DEA##DAY";//前一个日线的dea
EMA_S0:=(2*C+(S-1)*EMA_S1)/(S+1);//利用当前C 二次构造的EMA(CLOSE,S)
EMA_P0:=(2*C+(P-1)*EMA_P1)/(P+1);//利用当前C 二次构造的EMA(CLOSE,p)
DIFF0:EMA_S0-EMA_P0;//利用当前C 二次构造的 DIFF
DEA0:(2*DIFF0+(M-1)*DEA1)/(M+1);//利用当前DIFF0 二次构造的 DEA0
MACD0 :2*(DIFF0-DEA0), COLORSTICK;
//对照组 是直接调用日线的结果
DIFF_DAY:"MACD.DIFF#DAY";
DEA_DAY:"MACD.DEA#DAY";
DEA_macd:"MACD.macd1#DAY";
|