FlagNewBar=false;
if(BarTime!=iTime(NULL,0,0))
{
BarTime=iTime(NULL,0,0);
FlagNewBar=true;
}
if(FlagNewBar==true)
{
// И когда тру, делаем что нужно делать когда появился новый бар, //на следующем тике флаг нового бара будет ложь, так как БарТайм время все время существования нулевого бара будет равным
}
情况如下:X变量存储的是历史上条形的索引,我们知道,当一个新的条形出现时,会有一个转变,因此X已经指向一个不同的条形。如何解决这个问题?这个想法:每一个新的酒吧,我们都会增加计数器(count++),并将其添加到X中。因此,无论偏移量如何,X将始终指向同一个栏。但有一个问题--当EA初始化时,不应考虑当前的第一个条形图。 我认为如果最初计数只等于-1,就可以很容易地解决这个问题。也就是说,在当前条形图上的增量计数将是 "0",而在下一个新条形图上(当初始化后的第一个条形图转变为1时),它将是 "1"。你怎么看?也许我根本就想错了地方?
如果它是一个指标,那么它就足够了
到所使用的指标的所有数组和缓冲区。
那么零条将成为 rates_total-1
情况如下:X变量存储的是历史上条形的索引,我们知道,当一个新的条形出现时,会有一个转变,因此X已经指向一个不同的条形。如何解决这个问题?这个想法:每一个新的酒吧,我们都会增加计数器(count++),并将其添加到X中。因此,无论偏移量如何,X将始终指向同一个栏。但有一个问题--当EA初始化时,不应考虑当前的第一个条形图。 我认为如果最初计数只等于-1,就可以轻松解决。也就是说,在当前条形图上的增量计数将是 "0",而在下一个新条形图上(当初始化后的第一个条形图转变为1时),它将是 "1"。你怎么看?也许我根本就想错了地方?
为什么要费这么大劲?
这对我来说更容易)
但是处理器更重...
但是处理器更重...
情况如下:X变量存储的是历史上条形的索引,我们知道当一个新的条形出现时,它被移位,因此X已经指向另一个条形。如何解决这个问题?这个想法:每一个新的酒吧,我们都会增加计数器(count++),并将其添加到X中。因此,无论偏移量如何,X将始终指向同一个栏。但有一个问题--当EA初始化时,不应考虑当前的第一个条形图。 我认为如果最初计数只等于-1,就可以轻松解决。也就是说,在当前条形图上的增量计数将是 "0",而在下一个新条形图上(当初始化后的第一个条形图转变为1时),它将是 "1"。你怎么看?也许我根本就想错了地方?
不在那里。在加载EA/指示器时,如果它在终端内,X中没有任何东西,除非它是终端外的一个直觉或extern或全局变量,所以必须先在那里写一些东西。然后我们简单地计算出总条数的变化(应考虑新条数的出现)。
datetime BarTime。
问候。你能给我一个提示吗?在mt5中如何在初始化或tick时定义测试?
到目前为止,我只找到了OnTester(),它是在调用OnDeinit() 之前调用的。
@Valeriy Yastremskiy 在OnInit()中,索引仍被放置在X中。我的代码是这样的:
在我看来,带有FlagNewBar的条件是多余的。