新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1289

 
SanAlex:

我也做了实验--我打开相机,无法关闭--直到我杀死这个过程。

https://www.gunsmoker.ru/2015/01/avoid-using-ShellExecuteEx.html

Почему вам не следует использовать ShellExecute(Ex)
  • 2015.01.05
  • GunSmoker
  • www.gunsmoker.ru
В прошлый раз мы узнали, почему вам никогда не следует использовать функцию . В этот раз я расскажу вам о том, почему вам не следует использовать функцию . Заголовки этого и предыдущего постов выбраны крайне тщательно. Предыдущий пост говорил о том, что если вы пишете код в 1995 году или позднее, то вы не должны использовать функцию . Поскольку...
 

能否请你告诉我问题出在哪里?

     if(buy_lots>0||sell_lots>0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M15);
     if(buy_lots==0||sell_lots==0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M5);

如果没有未平仓的订单,那么M5就被启用,一切都很好。

但是一旦有订单打开,它就开始跳动M5,M15,M5,M15...。

 
MakarFX:

能否请你告诉我问题出在哪里?

如果没有未平仓的订单,那么M5就被启用,一切都很好。

但我一开单,它就开始在M5、M15、M5、M15上跳动。

就像它说的那样,它就是这样发生的。

或者用AND代替下面的那个

 
Valeriy Yastremskiy:

就像它所写的那样,这就是它的作用。

或者用E代替下面的

谢谢,我做了,但结果是一样的

     if(buy_lots>0||sell_lots>0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M15);
     if(buy_lots+sell_lots==0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M5);
 
MakarFX:

谢谢你,我替换了它,但结果还是一样。

  
      Alert("1 buy_lots ",buy_lots," sell_lots " sell_lots);
    if(buy_lots>0||sell_lots>0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M15);
     Alert("2 buy_lots ",buy_lots," sell_lots " sell_lots);
     if(buy_lots==0 && sell_lots==0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M5);

所以缺少一些东西。所以买入价+卖出价 之和=0

而且比加法更好。无论是警报还是打印帮助。

 
Valeriy Yastremskiy:

所以缺少一些东西。所以买入价+卖出价 之和=0

而且比加法更好。无论是警报还是打印帮助。

怎么会更好呢?

(0==0和1==0) - 条件未得到满足

(0 + 1 == 0) - 条件也不满足

在这个特定的例子中,AND和加法的区别是什么?

 
MakarFX:

谢谢你,我替换了它,但结果是一样的。

因此,检查buy_lots和sell_lots 的值可能会在某处失去它们的价值。
 
Alexey Viktorov:
因此,检查buy_lots和sell_lots 的值,它们可能在某个地方失去了价值。

印刷品


不清楚为什么会切换到M5

 
MakarFX:

印刷品


不清楚为什么它在M5上切换

当TF被切换时,EA被重新启动。试着把印刷品放在条件下,切换和打印。或者反之亦然。

而且我们肯定应该在条件中加入时期检查。如果你转到M15,为什么还要转?

 
Igor Makanu:

这就是为什么建议你尝试专门与你的魔术师一起做EA工作。

如果任务是每天在某个时间开一次单,算法如下。

- 启动EA,它检查未结订单的数量,如果与我们的魔术师的订单是开放的,那么退出,直到下一个tick

- 如果没有订单,EA会等待,直到当前的小时和分钟大于给定的时间。

- 这个时候,EA将检查订单历史,如果在过去24小时内没有用我们的魔术师下过订单,那么它将下一个订单并退出 - 退出是有用的,而不是处理服务器错误,如果订单没有被下,那么在下一个tick我们将尝试再次做它,即我们不需要在这个tick上组织一个周期的多个订单打开....。但这是一个品味和目标的问题,它是最容易实现的))))。

请告诉我EA在你的语境中是什么意思。我想找到,并阅读更多的细节.....
我想在以下网站上找到它并了解更多信息: 谢谢你。