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

 
cloudbreaker:
Это возможно. Вам нужно будет построить логику, чтобы делать следующее: - сохранять информацию о закрытых советником ордерах - постоянно проверять пул истории ордеров на наличие ордеров, которые находятся "в зоне действия", но которые советник не закрыл - проверять знак прибыли, чтобы определить, вызвал ли брокер SL или TP Работает для меня. CB

Этот метод может быть использован в большинстве платформ MT4 Broker без проблем, но я обнаружил, что он не работает в демо-платформе MBTF MT4 Broker. Платформа MBTF MT4 не записывает никаких комментариев в закрытых ордерах клиентов (вручную или советником). В такой брокерской платформе невозможно определить, закрыт ли ордер сервером или клиентом.

Я все еще думаю, что MetaQuotes должна добавить API типа OrderCloseReason(), чтобы решить эту проблему.

 
gordon:

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...?
но, Здесь вы получите решение, как это сделать
 
qjol:
но здесь вы получите решение, как это сделать.
Прочитайте всю тему. Этот метод не учитывает ситуацию, когда ордер был закрыт вручную или закрыт экспертом (а не tp/sl), следовательно, это ограниченный. Способ сделать это через то, что предложил CB... Здесь нет коротких путей.
 
aihua5:

[...] Я все еще думаю, что MetaQuotes должна добавить API типа OrderCloseReason(), чтобы решить эту проблему.

Теперь, когда вышел MT5, это вряд ли произойдет. В лучшем случае мы получим некоторые исправления ошибок для MT4... Я сомневаюсь, что появятся какие-либо новые функции...

 
gordon:
Прочитайте всю тему. Данный метод не учитывает ситуацию, когда ордер был закрыт вручную или закрыт экспертом (а не tp/sl), следовательно он ограниченный. Способ сделать это через то, что предложил CB... Здесь нет коротких путей.


Вы правы, я не читал всю тему, но, если ордер закрыт экспертом или вручную, у пользователя есть способ узнать это, единственная проблема - выяснить, закрыт ли он по TP или ST.

Вот где вы вступаете в игру со своим кодом.

 
qjol:


Вы правы, я не читал всю тему, но, если он закрыт советником или вручную, у пользователя есть способ узнать это, единственная проблема - узнать, закрыт ли он TP или ST.

Вот где вы вступаете в игру со своим кодом.

Может быть, пользователь не помнит, что закрывал вручную. Может быть, он не понимает, что советник закрыл ордер. Может быть, эксперт разрабатывался не им, поэтому он понятия не имеет о таких вещах... Конечно, если мы предполагаем, что возможны только TP/SL, то решение простое. Но весь смысл этой темы в том, что мы не знаем (а значит, не предполагаем).