Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共8 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:下列代码第二段执行不了。

1楼
txin66 发表于:2015/4/19 13:03:48
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;
   
   
   

不知道原因?
2楼
jinzhe 发表于:2015/4/20 9:11:46
xday是多少?
3楼
txin66 发表于:2015/4/20 15:54:08
可以自己设置的数值。比如50,或者0,100等都可以。
出现的问题和这个数值多少没有关系。
4楼
jinzhe 发表于:2015/4/20 16:03:21
为了防止我们之间有些理解上的误差,最好是把我所有想要知道的全部回复一下, 而不是按照自己的理解来让人排查问题
5楼
txin66 发表于:2015/4/20 16:03:42
下面的执行没有问题。只不过下面应用的是当前周期收据。而出现不能正确调用的,是调用的是上一个周期的数值。

怎么回事?

/////////////////////////////////////////////////////////////
////////计算 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;

6楼
txin66 发表于:2015/4/20 16:10:49
参考阿火的 这个文章  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分里计算日线和周线数值时候,第二次调用的时候,就调用不到正确的数值。
调用日线数值,如果是调用当日的也没有问题,而是调用前一日的数值,就调用不到。
7楼
jinzhe 发表于:2015/4/20 16:23:33
在我设定XDAY为20的情况下你上面的代码在日线都是没问题,EM1之后包括EM1都是有数值的,所以这个XDAY很关键。你一定要告诉我XDAY是多少,尽管你认为很无关紧要
8楼
txin66 发表于:2015/4/20 23:10:48
XDAY我是放在参数表里,设想是可以任意设定的。没有固定数值大小。

共8 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03906 s, 3 queries.