[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 576

 
rigonich:

我不知道。在OrderModify()被检查到紧接OrderSelect()之前,我不再得到错误1,但之前它也一直显示出来。

你的支票是什么类型的?
 
Ekburg:

这就是问题所在,那里的一切都很正常!我在测试过程中设置了打印机来跟踪传递给修改函数的值,那里的一切都很正常,停止是不同的,没有抛出不必要的东西,一切都在服务器允许的范围内,而上面代码中的对手不允许传递相同的值...

在以这种方式进行修改之前,请尝试检查。

      double Erunda=16.0*Point;// от 12 для пятизнаков, от 2 для четырех
//
      if(MathAbs(OrderStopLoss()-sl)<Erunda && MathAbs(OrderTakeProfit()-tp)<Erunda){нет_необходимости_модифицировать;}
      else { модифицировать;}

 
Sepulca:

在以这种方式进行修改之前,试着做一下检查。


这些功能是什么,有什么意义? 我以前从未见过或使用过。
 
Desead:

我已经厌倦了与这个问题的斗争,所有的待处理订单都不能正常删除,所以我用这个循环来删除它们。

我甚至在循环中加入了FOR FOR和WHILE,所有的挂单仍然没有被删除。有很多待删除的订单,大约20个,也许这是某种困难?

下面是一个删除订单的例子,包括待定的订单(我用这个订单 删除了它们)。

不是所有的挂单都出现在这个代码中(在选择过滤器中)。另一个错误的变体:检查挂单打开时收到的Magick(在你自己的代码中)。

 
Ekburg:

谢谢。我在代码库中寻找,发现了一些东西,试图替换它,这样那样地改变它,阅读了数千行的专业代码,不仅如此,在修改时,它给出了错误1,就是这样,地狱知道该怎么做。在编写和使用EA的过程中,我遇到了各种困难,但我尽量自己解决,否则就得不到好的经验,我读过帮助,重读过教科书,解决过问题,得到了与开始时有些不同的想法,但我自己没能解决这个问题,所以我求助于你们,专业人士!如果不是为了EA的工作需要,Trailyn是不会写的:)
让我不要相信你(说你已经重新阅读了所有内容或 "如此阅读")--错误1号的问题在教程中已经涉及,而且在论坛上也确实讨论过。答案可以在这里 找到。
 
Ekburg:

结果是一样的......这些功能是什么,它们的意义是什么? 我以前从未见过或使用过它们


这不是一个函数,只是在修改前的一个检查,如果SL或TP值与之前的值有很大不同,我们就修改。将TP或SL修改一个点是没有意义的,至少不会惹恼DC。
 
Sepulca:


这不是一个函数,它只是在修改前的一个检查,如果SL或TP值与以前的值有足够的不同,那么就修改。如果仅仅是为了避免恼人的DT,将TP或SL修改一个点是没有意义的。

谢谢,这是个好主意,我从现在开始会使用它。
 
TarasBY:
让我不相信你(说你重读了所有的东西或 "如此阅读")--错误1号的问题在教科书中有所涉及,并且在论坛上也有大量的讨论。答案可以在这里 找到。


当然,我没有读完所有的东西,但我重新读了几遍教科书,想找到错误的原因,但似乎它们不在代码中......。我会看看你的链接,并再次阅读关于这个问题的整个文章,感谢你的帮助,你没有得分:)
 

论坛成员你好。

我决定为自己写一个EA。 我正在读一个关于mql4的教程,因为我做MT4交易。有趣的是,从本教程中下载的mqh文件在MetaEditor 5中(自动)打开(我也安装了Mt5)!这时,我就可以在MetaEditor 5中使用了。这是否意味着它们将不能与Mt4一起使用?

 
Ekburg:

这些功能是什么,有什么意义? 我以前从未见过或使用过。


这不是一个函数,而是一种比较非正态化数字的方法。 它们不能相互比较,但用一个减去另一个的结果可以与零比较。

而我的支票是这样的。

//+------------------------------------------------------------------+ 
 double ND(double nd){return(NormalizeDouble(nd,Digits));}
//+------------------------------------------------------------------+ 
if(ND(price)!=OrderOpenPrice()||ND(SL)!=OrderStopLoss()||ND(TP)!=OrderTakeProfit()||Expiration!=OrderExpiration())
   {
   OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE);
}
else return;