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