下载MetaTrader 5

mt4有bug,函数iBarShift返回值最大只能是1000,不能再大了,望修改bug,非常感谢!!

要添加评论,请登录注册
对MetaTrader 5的功能感兴趣吗?了解它的更多信息!
gsp7
38
gsp7 2016.06.15 18:32 
mt4有bug,函数iBarShift返回值最大只能是1000,不能再大了,望修改bug,非常感谢!!
Jian Chen
版主
3621
Jian Chen 2016.06.16 02:29  
gsp7:
mt4有bug,函数iBarShift返回值最大只能是1000,不能再大了,望修改bug,非常感谢!!

不应该啊,我写了个测试程序,是可以返回更大数值的。

会不会是图表历史数据的问题?

 

void Test1()
{
   datetime some_time=D'2004.03.21 12:00'; 
   int      shift=iBarShift("EURUSD",PERIOD_M1,some_time); 
   Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
}

void OnStart()
  {  
      Test1();
  }

 iBarShift测试

gsp7
38
gsp7 2016.06.16 04:46  
Jian Chen:

不应该啊,我写了个测试程序,是可以返回更大数值的。

会不会是图表历史数据的问题?

 

 

非常感谢你的回复,我用了你的测试程序,只是把周期改成H1,其他都不动。另外我EURUSD是EURUSDpro,所以也需要改一下,但这个不影响运行结果。

iBarShift("EURUSD",PERIOD_M1,some_time)改成iBarShift("EURUSDpro",PERIOD_H1,some_time) 

 

如果把 OnStart 改成 OnTick 运行是这样的

 

 OnStart 和 OnTick 有什么区别,在网上查了实在是没看明白。

 

我知道 shift数我一直小的原因了,因为测试的时间短,改长就好了,原来是从20160101到20160702。非常感谢哈!!

 

Jian Chen
版主
3621
Jian Chen 2016.06.16 08:09  
哦,问题解决就好,我是用脚本程序(Script)做测试的,不是EA,所以是OnStart().
要添加评论,请登录注册