关于MT5历史单(非挂单)的止损止盈获取问题请讲老师

 

各位大大们,最近研究了下MT5代码,但是怎么操作还是得不到历史交易记录中的订单止盈止损值,不知道各位大大怎么做到的呢


MT5的历史单止损止盈  如果这张单开单的时候不带止损止盈 是开单成功后才设置的止损止盈 那么当它平仓后就用获取不到止损止盈了

 
你是用的HistoryOrderInfo里面的StopLoss和TakeProfit吗?
 
Jiamin Huang:
你是用的HistoryOrderInfo里面的StopLoss和TakeProfit吗?

直接用这个获取不到,但是不知道怎么能获取到

 

MT5还有待改进,你说的那种情况没有相应的字段可以查询。

通过history order只能查询到开仓时设置的sl,tp,如果持仓时修改了sl,tp则无法在平仓后通过history order/deal 查询。

 
Ziheng Zhuang:

MT5还有待改进,你说的那种情况没有相应的字段可以查询。

通过history order只能查询到开仓时设置的sl,tp,如果持仓时修改了sl,tp则无法在平仓后通过history order/deal 查询。

我想咨询下大大,怎么才能得到历史单中的开仓价或者开仓时间和平仓价或者平仓时间呢

 

开仓时间与平仓时间参考 HistroyDealGetInteger()

开仓价格与平仓价格参考HistoryDealGetDouble()


https://www.mql5.com/zh/docs/trading

MQL5文档: 交易函数
MQL5文档: 交易函数
  • www.mql5.com
交易函数 - 参考MetaTrader 5的算法/自动交易语言
 

要搞懂 order,deal,position这些概念,这种文章值得学习:

https://www.mql5.com/zh/articles/211

MetaTrader 5 中的订单、持仓和成交
MetaTrader 5 中的订单、持仓和成交
  • www.mql5.com
订单 — 交易服务器接收到的交易操作请求,依据 MetaTrader 5 平台要求构成。如果请求不正确,则不会以订单的形式出现在交易平台中。订单可以在指定金融工具中按当前市场价立即执行,例如买入或卖出一定数量。另一类型的订单为挂单,包含承诺在满足一定的条件下进行交易操作的订单。挂单也可以包含对它们的操作的时间限制 - 订单到期日期。 正在等待满足执行条件或取消的已下的(待办)订单,显示在客户端的 "Trade"(交易)选项卡中。可以修改或撤消这些订单。使用 OrderSend() 函数进行订单、撤消订单和修改订单。如果订单被撤消或到达订单到期日期,或者订单已被执行,则该订单移入订单历史记录。已执行或已撤消的订单显示在客户端的...
原因: