在一些经纪公司中删除了[tp]标签?

 

我正在使用评论来了解订单是否被止盈或止损关闭......。我意识到,在MIG银行(真实账户)中,他们已经删除了订单中的"[tp]"或"[sl]"标签......我的EA在模拟账户中工作,但在真实账户中不工作,因为他们已经删除了这个标签......我正在考虑在获利价格和收盘价格之间进行比较,但在收盘时出现滑点或其他情况时,这可能不准确。有什么想法吗?

 
是不是那些需要在ordersend()之后用ordermodify()修改订单以设置TP和SL的经纪人,由于新的规则?
 
NablaQuant:

我使用这些注释来了解一个订单是否被TakeProfit或StopLoss关闭...。我意识到,在MIG银行(真实账户),他们已经删除了订单中的"[tp]"或"[sl]"标签......我的EA在模拟账户中工作,但在真实账户中不工作,因为他们已经删除了这些标签......我正在考虑在获利价格和收盘价格之间进行比较,但在收盘时出现滑点或其他情况时,这可能不准确。有什么想法吗?


'[tp]'、'[sl]'的评论是针对经纪人的。有些有,有些没有。

你可以检查订单的收盘价是否高于/低于开盘价以及订单的类型

 
Matutin:
是不是那些需要在ordersend()后用ordermodify()修改订单以设置TP和SL的经纪人之一,由于新的规则?

这是由于使用BT桥(半'ECN'经纪商),而不是由于新规则。

 
Matutin:
是不是那些需要在ordersend()后用ordermodify()修改订单以设置TP和SL的经纪人,由于新的规则?

不,MIG确实允许在OrderSend()中设置SL和TP。


CB

 
gordon:

'[tp]'、'[sl]'的评论是针对经纪人的。有些有,有些没有。

你可以检查订单的收盘价是否高于/低于开盘价以及订单的类型。

这与OrderProfit函数相同,但不是我所需要的。你可以通过TakeProfit以正数或负数关闭订单(如果你以后改变TakeProfit)。


我需要的是知道订单是否已经被止盈或止损平仓,如果没有这个注释,我想这是不可能的。


我可以将收盘价 与最初的TakeProfit价格进行比较,但由于滑移,它可能不精确。


谢谢你的回答。

 
NablaQuant:

你可以用正数或负数的TakeProfit关闭订单(如果你后来改变TakeProfit)。

说得好。


我可以将收盘价与最初的止盈价进行比较,但由于滑移,可能会不精确?

你可以检查 MathAbs(closeprice - tp) > MathAbs(closeprice - sl)

 
这是有可能的。你需要建立逻辑来完成以下工作: - 持久保存关于EA已经关闭的订单的信息 - 持续检查订单历史库中 "在范围内 "但你的EA没有关闭的订单 -检查 利润迹象 以确定经纪人是否调用了SL或TP对我有用。 CB
 
似乎是唯一的办法......谢谢!
 
NablaQuant:
这似乎是唯一的办法......谢谢!

我不知道这是否有帮助,但除了按CB的建议做外,我还在订单注释 中用空格填上右键,这样经纪人就不会覆盖其中的重要内容。虽然不是万无一失,但我喜欢把它作为一种额外的保护,以防外部数据文件以某种方式丢失。

 

Hmmm....也许我错过了什么,但是否有任何情况下,以下内容是不够的?


   // select the closed order first and then do this:
   
   double sl_diff = MathAbs(OrderClosePrice() - OrderTakeProfit()),
          tp_diff = MathAbs(OrderClosePrice() - OrderStopLoss());
   
   if ( sl_diff > tp_diff )
      Print("order closed at tp");
   else
      Print("order closed at sl");

   // I assume here that an equality of sl_diff and tp_diff is impossible...?