文章 "轻松快捷开发 MetaTrader 程序的函数库(第五部分):交易事件集合类,向程序发送事件" - 页 2

 
Alvaro Arioni:

编辑 您的帖子,并

粘贴代码时使用代码按钮 (Alt+S)

 
Artyom Trishkin:

丢失的订单可能不止一个

好吧,但函数 仍然只返回一个丢失的订单,即最接近零的订单。

在这种情况下,从 0 到 start-1 的迭代不就等于中断吗?


ulong CHistoryCollection::OrderSearch(const int start,ENUM_ORDER_TYPE &order_type) 
  { 
   ulong order_ticket=0; 
   for(int i=0; i < start ;i++) 
     { 
      ulong ticket=::HistoryOrderGetTicket(i); 
      if(ticket==0) 
         continue; 
      ENUM_ORDER_TYPE type=(ENUM_ORDER_TYPE)::HistoryOrderGetInteger(ticket,ORDER_TYPE); 
      if(this.IsPresentOrderInList(ticket,type)) 
         continue; 
      order_ticket=ticket; 
      order_type=type; 
      break; 
     } 
   return order_ticket; 
  } 

我知道这只是一个细节,但我认为这可能是一个小小的改进,尤其是在历史订单量过大的情况下。

Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
  • www.mql5.com
//| Expert initialization function                                   | //| Expert deinitialization function                                 | //| Expert tick function                                             | //| test1                                                            |...
 
Alvaro Arioni :

好吧,但函数 仍然只返回一个丢失的指令,即最接近零的指令。

在这种情况下,从 0 到 start-1 的迭代过程不就是中断吗?


我知道这只是一个细节,但我认为这可能是一个小小的改进,尤其是在订单历史记录过大的情况下。

好的,谢谢,我会检查和测试一切的。

也许 "中断 "会派上用场。