Yerkin Sagandykov:
Привет всем !
Ставлю лимит ордер, сохраняю его тикет. Ордер открылс по цене своей. Надо поймать когда именно этот ордер достигает ТП .
Я Вам советовал поработать с отладчиком внутри OnTradeTransaction. Узнали бы наглядно последовательность процессов.
if (trans.type == TRADE_TRANSACTION_DEAL_ADD && trans.order_state == ORDER_STATE_STARTED) { HistoryDealSelect(trans.deal); ENUM_DEAL_ENTRY entry = (ENUM_DEAL_ENTRY)HistoryDealGetInteger(trans.deal, DEAL_ENTRY); ENUM_DEAL_REASON reason = (ENUM_DEAL_REASON)HistoryDealGetInteger(trans.deal, DEAL_REASON); if (entry == DEAL_ENTRY_OUT && (reason == DEAL_REASON_SL || reason == DEAL_REASON_TP)) { // Closed on SL/TP } }
Edgar Akhmadeev #:
Я Вам советовал поработать с отладчиком внутри OnTradeTransaction. Узнали бы наглядно последовательность процессов.
событие по ТП ловится, но проблема как именно нужный ордер поймать. Потому как deal_order_ticket и extrTicket не равны. при выходе из рынка номер ордера другой ставится.
сохраняю номер if(a_trade.BuyLimit(lots, limit_price, a_symbol.Name(), 0, take_profit, ORDER_TIME_SPECIFIED, end_of_friday, comment)) { extrTicket =a_trade.ResultOrder(); } затем if((deal_symbol == _Symbol && deal_magic == MagicNumber)) { ENUM_DEAL_REASON reason = (ENUM_DEAL_REASON)HistoryDealGetInteger(trans.deal, DEAL_REASON); ENUM_DEAL_ENTRY entry = (ENUM_DEAL_ENTRY)HistoryDealGetInteger(trans.deal, DEAL_ENTRY); if(entry == DEAL_ENTRY_OUT && reason == DEAL_REASON_TP) //(reason == DEAL_REASON_SL || { Print("TP сработало: "); // Находим ордер extr bool isDelFiboLimits = false; long original_order_ticket; if(HistoryOrderGetInteger(extrTicket, ORDER_POSITION_ID, long original_order_ticket;)) { string deal_comment = HistoryDealGetString(extrTicket, DEAL_COMMENT); Print("TP сработало: ", deal_comment," - "); isDelFiboLimits = true; extrTicket = 0; } else { Print("Ошибка:TP сработало, но не удалось найти ордер ", original_order_ticket, " ",extrTicket); } DelLimitOrders(isDelFiboLimits); //isDelFiboOrders } }
где ошибка ?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет всем !
Ставлю лимит ордер, сохраняю его тикет. Ордер открылс по цене своей. Надо поймать когда именно этот ордер достигает ТП .