如何检查一个订单是否已被平仓止损 - 页 2

 

你能不能只回答你知道你在说什么?

这是一个关于MT5/mql5 的话题,我将删除 所有不相关的帖子。

在MT5上历史上没有止损价格。

 

mql5(对冲账户)的主要问题是知道止损价格,当一个仓位被关闭时,由于缺乏仓位历史。你可以使用HistorySelectByPosition() 找到你的初始止损(初始订单的止损),但如果你后来修改了止损,它会产生新的订单来做,没有相同的POSITION_ID,因此,它们不会被HistorySelectByPosition()函数选中,所以要知道你最后的止损变得非常困难。

我不知道这是否可以被认为是一个错误,但如果不是,它应该是。

请注意。

Documentation on MQL5: Trade Functions / HistorySelectByPosition
Documentation on MQL5: Trade Functions / HistorySelectByPosition
  • www.mql5.com
Trade Functions / HistorySelectByPosition - Reference on algorithmic/automated trading language for MetaTrader 5
 
Jose Francisco Casado Fernandez:

在mql5(对冲账户)中的主要问题是要知道止损价格,当一个仓位被关闭时,由于缺乏仓位历史。你可以使用HistorySelectByPosition() 来找到你的初始止损(初始订单的止损)...

不,你不能这样做,或者我误解了你的意思。

当前的止损在历史上没有任何位置。

 
Alain Verleyen:

不,你不能,或者我误解了你的意思。

止损在历史上是没有的。

你可以使用HistorySelectByPosition(),用你的POSITION_ID,然后你可以找到具有该POSITION_ID的第一个订单,并检查该订单的止损(HistoryOrderGetDouble(ticket, ORDER_SL)。这对我来说是有效的,但是
.问题是当你后来修改止损的时候。
 
Jose Francisco Casado Fernandez:
你可以使用HistorySelectByPosition(),用你的POSITION_ID,然后你可以找到具有该POSITION_ID的第一个订单,并检查该订单的止损(HistoryOrderGetDouble(ticket, ORDER_SL))。这对我来说是有效的,但是
.问题是当你后来修改止损的时候。

好的,现在明白了,你是对的。

 
Jose Francisco Casado Fernandez:
你可以使用HistorySelectByPosition(),使用你的POSITION_ID,然后你可以找到具有该POSITION_ID的第一个订单,并检查该订单的止损(HistoryOrderGetDouble(ticket,ORDER_SL))。这对我来说是有效的,但是
.问题是当你后来修改该止损时。
然后 检查 ORDER_POSITION_ID 等于 DEAL_POSITION_ID
,然后检查DEAL_ENTRY 如果 OUT 得到HystoryDealGetDouble(ticket,Deal_PRICE)

如果 DEAL_PRICE 等于 HistoryOrderGetDouble(ticket,ORDER_SL) 那么意味着 该订单 由于 止损 关闭

这是我的意见。

 
Alain Verleyen:

好了,现在明白了,你是对的。

好的,你知道为什么如果你后来修改了止损,生成的新订单却不显示相同的POSITION_ID?这将是这个问题的完美解决方案。这是个错误吗?谢谢。
 
Roberto Jacobs:

如果 DEAL_PRICE 等于 HistoryOrderGetDouble(ticket,ORDER_SL) 那么意味着订单 由于 止损 关闭

那么滑点呢?
 
Roberto Jacobs:
然后 检查 ORDER_POSITION_ID 等于 DEAL_POSITION_ID
,然后检查 DEAL_ENTRY 如果 OUT 得到 HystoryDealGetDouble(ticket,Deal_PRICE)

如果 DEAL_PRICE 等于 HistoryOrderGetDouble(ticket,ORDER_SL) 那么意味着 该订单 由于 止损 关闭

这是我的意见。

是的,这就是我所说的。我是这样做的,而且成功了,但如果你修改了初始止损,它就会生成一个没有相同POSITION_ID的新订单。我不知道为什么。我想,这是一个错误。请注意,。
 
honest_knave:
如何处理滑点?

不需要 看滑点 因为订单 已经 平仓 平仓价格 HystoryDealGetDouble(ticket, DEAL_PRICE)
如果 订单没有 平仓 做了一个 平仓 订单 那么你应该考虑 有多少 滑点 这样就不会有 错误重新报价。