em1:=stkindi(stklabel,'macd.ema12',0,6,-1);
em2:=stkindi(stklabel,'macd.ema26',0,6,-1);
ema12x:=em1*11/13+(close+xday)*2/13;
ema26x:=25/27* em2 +(close+xday)*2/27;
diff:=ema12x-ema26x;
dea1:=stkindi(stklabel,'macd.dea',0,6,-1);
dea:=dea1*4/5+diff/5;
M_day_0_加Xday:=2*(diff-dea);
/////当前周期价格假设为CLOSE-Xday时,M_day的MACD值
em1:=stkindi(stklabel,'macd.ema12',0,6,-1); ///从这句开始,没有有效数值。
em2:=stkindi(stklabel,'macd.ema26',0,6,-1);
ema12x:=em1*11/13+(close-xday)*2/13;
ema26x:=25/27* em2 +(close-xday)*2/27;
diff:=ema12x-ema26x;
dea1:=stkindi(stklabel,'macd.dea',0,6,-1);
dea:=dea1*4/5+diff/5;
M_day_0_减Xday:=2*(diff-dea);
上面的句子,在橡胶1509合约的15分钟周期里执行。第一段正常,但第二段后面的em1等所有都没有获得数值。
但在1分钟合约里,同样类似的语句组,是正常的。调用的是30分钟的数据。
MACD函数已经进行了修改:
DIFF : EMA(CLOSE,S) - EMA(CLOSE,P);
DEA : EMA(DIFF,M);
MACD1 : 2*(DIFF-DEA), COLORSTICK;
ema12: ema(c,S),linethick0;
ema26: ema(c,P),linethick0;
不知道原因?
可以自己设置的数值。比如50,或者0,100等都可以。
出现的问题和这个数值多少没有关系。
为了防止我们之间有些理解上的误差,最好是把我所有想要知道的全部回复一下, 而不是按照自己的理解来让人排查问题
下面的执行没有问题。只不过下面应用的是当前周期收据。而出现不能正确调用的,是调用的是上一个周期的数值。
怎么回事?
/////////////////////////////////////////////////////////////
////////计算 M_day_1 C+X
em1:=stkindi(stklabel,'macd.ema12',0,6,0);
em2:=stkindi(stklabel,'macd.ema26',0,6,0);
ema_X_12:=em1*11/13 +(C+X)*2/13;
ema_X_26:=em2*25/27 +(C+X)*2/27;
diff_X:=ema_X_12-ema_X_26;
dea1:=stkindi(stklabel,'macd.dea',0,6,0);
dea_X:=dea1*4/5+diff_X/5;
macd_X:=2*(diff_X-dea_X);
M_day_X:=MACD_X;
////计算 M_day_-1 C-X
em1:=stkindi(stklabel,'macd.ema12',0,6,0);
em2:=stkindi(stklabel,'macd.ema26',0,6,0);
ema_X_12:=em1*11/13 +(C-X)*2/13;
ema_X_26:=em2*25/27 +(C-X)*2/27;
diff_X:=ema_X_12-ema_X_26;
dea1:=stkindi(stklabel,'macd.dea',0,6,0);
dea_X:=dea1*4/5+diff_X/5;
macd_X:=2*(diff_X-dea_X);
M_day__X:=MACD_X;
参考阿火的 这个文章 http://www.weistock.com/bbs/dispbbs.asp?boardid=10&id=9439&authorid=0&page=0&star=3
在小周期里计算真实的大周期的MACD数值。
只不过我对当时价格,做了2个假设来计算。就是假设当前价格 比CLOSE大一个数值XDAY,就是假设价格为CLOSE+XDAY,和小一个数值(CLOSE-XDAY),分别计算大周期里的MACD数值。
奇怪的是在1分钟里,计算30分钟的没有问题。
但在15分里计算日线和周线数值时候,第二次调用的时候,就调用不到正确的数值。
调用日线数值,如果是调用当日的也没有问题,而是调用前一日的数值,就调用不到。
在我设定XDAY为20的情况下你上面的代码在日线都是没问题,EM1之后包括EM1都是有数值的,所以这个XDAY很关键。你一定要告诉我XDAY是多少,尽管你认为很无关紧要