如何在每根新Bar出来时才进行判断或交易
2008年10月13日 | 11:15分类:MT4编程 | 标签:EA、mq4、mql、MT4、MT4 EA mq4 mql MT4编程 外汇 智能交易、MT4编程、外汇、智能交易 | 1,175 views
这是初学MT4编程的朋友问得比较多的一个问题。大家知道,start函数是在每次价格变动时都会被调用的,那么写在start函数内的各种条件判断和交易操作都会同时被执行,如何避免这种情况的发生呢?答案就是在进行各种条件判断或交易操作前,先判断当前的bar是否为一根新的bar(即在该bar的周期内没有进行过判断或交易)。
首先,我们定义一个全局变量:
(如不清楚全局变量的含义,可翻查一下相关资料。这里补充说明一下,在MQL语言中,其实datetime类型就是int类型,所以写成如下格式其实也是可以的:
然后,我们可以在start函数中进行是否为新bar的判断:
正如前面所说,MQL里面的时间类型其实就是int类型,所以可以进行大小的判断,在MT4中,随着时间的流逝,Time[]数组中的数值是从左往右不断增大的,Time[0]代表当前时间,也是Time[]数组中最大的数值。


















