//只计算橡胶09合约的15分钟的MACD,在1分钟的周期里运行。
s:=12;
p:=26;
m:=9;
//下面是正规的MACD公式
EMA12:=ema(c,S);
EMA26:=ema(c,P);
DIFF:=EMA12-EMA26;
DEA := EMA(DIFF,M);
MACD:=2*(DIFF-DEA);
//下面是我改写的MACD公式
variable:c_t_15[200]=0;
for x=1 to 200 do c_t_15[x]:=CALLSTOCK('ru09',vtclose,3,1-x); //只计算橡胶09合约的15分钟的MACD,在1分钟的周期里运行。
ema_t_12:=ema(c_t_15,s);
ema_t_26:=ema(c_t_15,p);
diff_t:=ema_t_12-ema_t_26;
dea_t:=ema(diff_t,m);
macd_t:=2*(diff_t-dea_t);
//取自己的MACD数值
M_t_15M_0:=stkindi(stklabel,'macd_t.macd1',0,3);
M_t_15M_1:=stkindi(stklabel,'macd_t.macd1',0,3,-1);
M_t_15M_2:=stkindi(stklabel,'macd_t.macd1',0,3,-2);
M_t_15M_3:=stkindi(stklabel,'macd_t.macd1',0,3,-3);
M_t_15M_4:=stkindi(stklabel,'macd_t.macd1',0,3,-4);
M_t_15M_5:=stkindi(stklabel,'macd_t.macd1',0,3,-5);
//取标准写法的MACD数值
M_15M_0:=stkindi(stklabel,'macd.macd1',0,3);
M_15M_1:=stkindi(stklabel,'macd.macd1',0,3,-1);
M_15M_2:=stkindi(stklabel,'macd.macd1',0,3,-2);
M_15M_3:=stkindi(stklabel,'macd.macd1',0,3,-3);
M_15M_4:=stkindi(stklabel,'macd.macd1',0,3,-4);
M_15M_5:=stkindi(stklabel,'macd.macd1',0,3,-5);
//发现调用自己的MACD,第一个是对的,其他的值要么为空,要么就是1分钟的MACD数值。怎么回事情?