请教,MQL5怎么选择一个历史订单的进场时间,进场价格,出场时间,出场价格?

 

请教,MQL5怎么选择一个历史订单的进场时间,进场价格,出场时间,出场价格?

MQL4非常方便,直接是OrderOpenTime(),OrderOpenPrice(),OrderCloseTIme(),OrderClosePrice().

但是到了MT5,就搞得头大了呀,求大神指教下。万分感谢!

 

在MT5中,Order是订单,订单成交叫Deal, 成交之后叫持仓即Position。

开仓/平仓价格参考

double  HistoryDealGetDouble( 
   ulong                      ticket_number,     // Ticket 
   ENUM_DEAL_PROPERTY_DOUBLE  property_id        // Property identifier 
   );

开仓/平仓时间参考 

long  HistoryDealGetInteger( 
   ulong                       ticket_number,     // Ticket 
   ENUM_DEAL_PROPERTY_INTEGER  property_id        // Property identifier 
   );
 

写MT5的EA,必须要搞明白的概念:Order,Deal,Position.

这篇文章是必读的:https://www.mql5.com/zh/articles/211

MetaTrader 5 中的订单、持仓和成交
MetaTrader 5 中的订单、持仓和成交
  • www.mql5.com
订单 — 交易服务器接收到的交易操作请求,依据 MetaTrader 5 平台要求构成。如果请求不正确,则不会以订单的形式出现在交易平台中。订单可以在指定金融工具中按当前市场价立即执行,例如买入或卖出一定数量。另一类型的订单为挂单,包含承诺在满足一定的条件下进行交易操作的订单。挂单也可以包含对它们的操作的时间限制 - 订单到期日期。 正在等待满足执行条件或取消的已下的(待办)订单,显示在客户端的 "Trade"(交易)选项卡中。可以修改或撤消这些订单。使用 OrderSend() 函数进行订单、撤消订单和修改订单。如果订单被撤消或到达订单到期日期,或者订单已被执行,则该订单移入订单历史记录。已执行或已撤消的订单显示在客户端的...
 
通过不断尝试,已经解决了, 历史订单通过HistoryDealsGetTicket()选中 out 的单子,然后通过 DEAL_POSITION_ID再去寻找 in 的单子,这个DEAL_POSITION_ID 可以关联一个deal历史单的进场和出场, Ticket 和 order 号都无法关联上。希望对遇到这个问题的朋友有帮助。也感谢楼上大神的回复。
 
找个模版,从里面把相对应的部门找一下就行了,现在编程主要靠逻辑和布局,这些语法问题,不用太浪费你的精力了
原因: