Как программно определить, что позиция закрылась по сл или тп? По комментарию можно, но комментарий брокер, бывает, не ставит. Как быть?
- Заметил глюк: открывается 2 ордера по одной и той же цене
- Как закрываются Ваши позиции?
- EURUSD - Тенденции, прогнозы и следствия (Часть № 2)
Да, вся суть в проскальзывании. У меня брокер justforex, у него на демо комментарий есть, на реале нету
Aliaksandr Kryvanos:
Как программно определить, что позиция закрылась по сл или тп? По комментарию можно, но комментарий брокер, бывает, не ставит. Как быть?
В MT5 только по комментариюКак программно определить, что позиция закрылась по сл или тп? По комментарию можно, но комментарий брокер, бывает, не ставит. Как быть?
#define ORDER_TYPE_TAKEPROFIT (-1) #define ORDER_TYPE_STOPLOSS (-2) int GetOrderType( const ulong OrderTicket ) { int OrderType = (int)::HistoryOrderGetInteger(OrderTicket, ORDER_TYPE); if ((OrderType == ORDER_TYPE_BUY) || (OrderType == ORDER_TYPE_SELL)) { const string OrderComment = HistoryOrderGetString(OrderTicket, ORDER_COMMENT); const string OrderPrice = ::DoubleToString(::HistoryOrderGetDouble(OrderTicket, ORDER_PRICE_OPEN), (int)::SymbolInfoInteger(HistoryOrderGetString(OrderTicket, ORDER_SYMBOL), SYMBOL_DIGITS)); if (OrderComment == "tp " + OrderPrice) OrderType = ORDER_TYPE_TAKEPROFIT; else if (OrderComment == "sl " + OrderPrice) OrderType = ORDER_TYPE_STOPLOSS; } return(OrderType); }
Поскольку TP/SL уровни закрытых позиций в MT5-истории не доступны. В MT4 с этим нет проблем.
ЗЫ В функцию, что выше, входной параметр брать отсюда
const ulong OrderTicket = ::HistoryDealGetInteger(DealTicket, DEAL_ORDER);
Спасибо

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь