如何在每根新Bar出来时才进行判断或交易

2008年10月13日 11:15  |  分类:MT4编程

这是初学MT4编程的朋友问得比较多的一个问题。大家知道,start函数是在每次价格变动时都会被调用的,那么写在start函数内的各种条件判断和交易操作都会同时被执行,如何避免这种情况的发生呢?答案就是在进行各种条件判断或交易操作前,先判断当前的bar是否为一根新的bar(即在该bar的周期内没有进行过判断或交易)。

首先,我们定义一个全局变量:(如不清楚全局变量的含义,可翻查一下相关资料。这里补充说明一下,在MQL语言中,其实datetime类型就是int类型,所以写成如下格式其实也是可以的:然后,我们可以在start函数中进行是否为新bar的判断:

正如前面所说,MQL里面的时间类型其实就是int类型,所以可以进行大小的判断,在MT4中,随着时间的流逝,Time[]数组中的数值是从左往右不断增大的,Time[0]代表当前时间,也是Time[]数组中最大的数值。

历史数据的另外一个下载地址

2008年10月13日 10:48  |  分类:其它

感谢群里的一个汇友提供的下载地址:

新的下载地址点这里

大家下载后请自己先用病毒软件扫描一下。