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

 
Nerd Trader #:
我不知道有一个ObjectsDeleteAll。

我到处使用它

   ObjectsDeleteAll(0,Prefix);
 
MakarFX #:

我到处使用它

我习惯于自己用C语言做所有的事情,但mql4有现成的解决方案。
 
Nerd Trader #:
我不知道有ObjectsDeleteAll,现在我想把它弄清楚。

关于交易、自动交易系统和策略测试的论坛

新手对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论

Artyom Trishkin, 2021.09.30 05:31

你可以删除它。如果你已经了解了原因,你可能会更好地了解一次,这样你就不会再尝试去做了。

当从一个数组中删除一个对象时,下一个对象的位置在数组中被移位,现在循环索引指向哪里?想一想吧。


 
Artyom Trishkin #:

明白了,谢谢。
 
Valeriy Yastremskiy #:

在第二个if之前和第二个if里面打印号码、票据和订单类型。

明白了。试过了。它在计数,但它不太正确。它以刻度来计算订单。我需要在网格顶部的最后但一个订单。如果价格下跌,另一个订单被打开,倒数第二个订单是具有最大OrderOpenPrice的那个。

 
ObjectsDeleteAll 就可以了。但是,如果你需要删除的不是所有的东西,没有一个带条件的循环,你是做不到的。而这正是黄金法则的所在--你必须从终点开始!
 
pribludilsa #:
如何在mql5程序中处理一个文件而不把文件写入磁盘,而只在RAM中工作,以加快速度。我想把数据从一个mql5程序转移到我电脑上的一个程序。

在这里,它是。

https://www.mql5.com/ru/articles/503

Связь с MetaTrader 5 через именованные каналы без применения DLL
Связь с MetaTrader 5 через именованные каналы без применения DLL
  • www.mql5.com
Перед многими разработчиками встает одинаковая проблема - как пробиться в песочницу торгового терминала без применения небезопасных DLL. Одним из простых и безопасных методов является использование стандартных именованных каналов (Named Pipes), которые работают как обычные файловые операции. Они позволяют организовать межпроцессорное клиент-серверное взаимодействие между программами. Посмотрите практические примеры на C++ и MQL5 в виде сервера, клиента, обмен данными между ними и замер производительности.
 
makssub #:

到了那里。试过了。它在计数,但它不太正确。它以刻度来计算订单。我需要在网格顶部的最后但一个订单。如果价格下跌,另一个订单被打开,倒数第二个订单是具有最大OrderOpenPrice的那个。

double FindOpenPrice(int a=-1)// 0 - макс, 1 - мин
{
   double maxopenprice=0;
   double minopenprice=DBL_MAX;
   double openprice=0;
   
   for(int cnt=OrdersTotal()- 1 ; cnt>=0; cnt--)
   {
      if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
      {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == OP_BUY)
         {
            if (OrderType() == OP_SELL || OrderType() == OP_BUY)
            {
               if (a==0 && maxopenprice<OrderOpenPrice())
               {
               maxopenprice = OrderOpenPrice(); openprice=maxopenprice ;
               }
               if (a==1 && minopenprice>OrderOpenPrice())
               {
               minopenprice= OrderOpenPrice(); openprice=minopenprice;
               }
            }
         }
      }
   }
   return(openprice);
}
 
makssub #:

到了那里。试过了。它在计数,但它不太正确。它以刻度来计算订单。我需要在网格顶部的最后但一个订单。如果价格下跌,另一个订单被打开,倒数第二个订单是具有最大OrderOpenPrice的那个。

因此,不要按价格搜索,而是按开业时间搜索。
 
MakarFX #:

最后一个出来了,而不是倒数第二个(