Тег [tp] удален в некоторых брокерах?

 

Я использую комментарии, чтобы узнать, был ли ордер закрыт по TakeProfit или StopLoss... Я понял, что в MIG BANK(реальные счета) они убрали тег "[tp]" или "[sl]" в ордерах... мои советники работают на демо-счете, но не на реальном, потому что они убрали тег... Я думаю сделать сравнение между ценой TakeProfit и ценой закрытия, но это может быть не точно в случае проскальзывания при закрытии или еще чего. Есть идеи?

 
Не один ли это из тех брокеров, которым необходимо модифицировать ордер после ordersend() с помощью ordermodify() для установки TP и SL в связи с новыми правилами?
 
NablaQuant:

Я использую комментарии, чтобы знать, был ли ордер закрыт по TakeProfit или StopLoss... Я понял, что в MIG BANK (реальные счета) они убрали тег "[tp]" или "[sl]" в ордерах... мои советники работают на демо-счете, но не на реальном, потому что они убрали тег... Я думаю сделать сравнение между ценой TakeProfit и ценой закрытия, но это может быть не точно в случае проскальзывания при закрытии или еще чего. Есть идеи?


Комментарии '[tp]', '[sl]' являются специфическими для брокера. У некоторых они есть, у некоторых нет.

Вы можете проверить, находится ли цена закрытия ордера выше/ниже цены открытия и тип ордера.

 
Matutin:
Не является ли он одним из тех брокеров, которым необходимо модифицировать ордер после ordersend() с помощью ordermodify() для установки TP и SL в соответствии с новыми правилами?

Это связано с использованием BT bridge (полу 'ECN' брокер), а не с новыми правилами.

 
Matutin:
Не один ли это из тех брокеров, которым нужно модифицировать ордер после ordersend() с помощью ordermodify(), чтобы установить TP и SL из-за новых правил?

Нет, MIG разрешает устанавливать SL и TP в OrderSend().


CB

 
gordon:

Комментарии '[tp]', '[sl]' являются специфическими для брокера. У некоторых они есть, у некоторых нет.

Вы можете проверить, находится ли цена закрытия ордера выше/ниже цены открытия и тип ордера.

Это то же самое, что и функция OrderProfit, но не то, что мне нужно. Вы можете закрыть ордер по TakeProfit в положительную или отрицательную сторону (если вы измените TakeProfit позже).


Мне нужно знать, был ли ордер закрыт по TakeProfit или StopLoss, и без этого комментария я думаю, что это невозможно.


Я могу сравнить цену закрытия с первоначальной ценой TakeProfit, но это может быть неточным из-за проскальзывания?


Спасибо за ваши ответы.

 
NablaQuant:

Вы можете закрыть ордер по TakeProfit в положительном или отрицательном значении (если вы позже измените TakeProfit).

Хорошая мысль.


Я могу сравнить цену закрытия с первоначальной ценой TakeProfit, но это может быть неточным из-за проскальзывания?

Можно проверить, если MathAbs(closeprice - tp) > MathAbs(closeprice - sl)

 
Это возможно. Вам нужно будет построить логику, чтобы сделать следующее: - Сохранять информацию об ордерах, которые советник закрыл - Постоянно проверять пул истории ордеров на наличие ордеров, которые находятся "в зоне действия", но которые советник не закрыл - Проверять знак прибыли, чтобы определить, вызвал ли брокер 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...?
Причина обращения: