以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 下列代码第二段执行不了。 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=77768) |
-- 作者: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; 不知道原因?
|
-- 作者:jinzhe -- 发布时间:2015/4/20 9:11:46 -- xday是多少? |
-- 作者:txin66 -- 发布时间:2015/4/20 15:54:08 -- 是个参数值 可以自己设置的数值。比如50,或者0,100等都可以。 出现的问题和这个数值多少没有关系。
|
-- 作者:jinzhe -- 发布时间:2015/4/20 16:03:21 -- 为了防止我们之间有些理解上的误差,最好是把我所有想要知道的全部回复一下, 而不是按照自己的理解来让人排查问题 |
-- 作者: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; |
-- 作者:txin66 -- 发布时间:2015/4/20 16:10:49 -- 就是小周期里计算大周期的MACD值 参考阿火的 这个文章 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分里计算日线和周线数值时候,第二次调用的时候,就调用不到正确的数值。 调用日线数值,如果是调用当日的也没有问题,而是调用前一日的数值,就调用不到。
|
-- 作者:jinzhe -- 发布时间:2015/4/20 16:23:33 -- 在我设定XDAY为20的情况下你上面的代码在日线都是没问题,EM1之后包括EM1都是有数值的,所以这个XDAY很关键。你一定要告诉我XDAY是多少,尽管你认为很无关紧要 |
-- 作者:txin66 -- 发布时间:2015/4/20 23:10:48 -- XDAY我是放在参数表里,可以任意设定的。 XDAY我是放在参数表里,设想是可以任意设定的。没有固定数值大小。 |