//начало кода - самый верхint counted;
int init(){
counted=Bars; // запомним общее количество баров на активном ТФ
Myorders();
return(0);
}
int start(){
Myorders();
........................
// я рассполагаю этот код в самом конце ф-ции start() - мне так удобнееint bar = Bars;
if (bar != counted ) { // сравним запомненное кол-во баров с текущим если они равны тогда нет нового бара на активном ТФ
counted= bar;
// код который необходимо выполнить по закрытию/открытию бара
}
return(0);
}
一个新蜡烛的时间是Time[0]。
以及我如何进一步确定新蜡烛的 到来?
以及如何进一步确定新蜡烛的到来?
在一个变量中记住前一个变量并进行比较。
我现在要去试试...
以及如何识别新蜡烛的到来?
有几种选择,这里是其中的几个。
1.启动专家顾问时,记住图表上的总条数,并在专家顾问执行过程中监测条数 的变化。
2.记住最后一个酒吧开张的时间;代码是差不多的。
使用datetime last=Time[0]。
并比较last==Time[0]-->如果最后一次开盘时间与上次相同,如果不相同,则意味着我们有一个新的柱状图。
我不知道哪种方案更有效,1或2 - 我对自动下载历史记录到终端有疑问,但我没有看到任何问题。
有几种选择,这里是其中的几个。
1.启动专家顾问时,记住图表上的总条数,并在专家顾问执行过程中监测条数的变化。
它不会起作用。酒吧的数量是有限的。 。
这样做是有效的,因为总数并不重要,我们只对图表上的条数 发生变化的时刻 感兴趣,在这个时刻,变量bar != counted,注意,我特意记住了int bar = Bars;--不丢失Bars的值,然后比较并分配这个值counted = bar;--你可以用Bars做一切事情,不需要额外的变量--但我决定仔细检查一下。
我还提到,在历史的自动抽水过程中,可能会有一个小的卡兹--可能是好的,也可能是坏的,如果我们使用酒吧开放时间,它肯定会工作--酒吧开放时间永远不会改变。
只对图表上的条数改变的时刻 感兴趣
在达到设置中设定的最大值后,图表上的条数不应该增加。尽管它可能会跳动,我没有检查过,那么也许可以抓住它,但这已经是一个没有记录的选项。
这就是问题所在。我检查了一下,当达到最大值时...Bars不会改变,而是保持与窗口中的Max bars相等(见属性)。
这就是问题所在。我已经检查过了,当达到最大值时...Bars不改变,但仍然等于窗口中的Max bars(见属性)。
嗯,应该是这样的。所以第一个选项是不行的。
是的,第一个选项不起作用,虽然我在一个非标准的时间框架内工作,但第二个选项起作用。谢谢大家!