посмотреть комментарий ордера, там должно быть "[tp]" -для MT4
посмотреть комментарий сделки, там должно быть "tp" -для MT5
- docs.mql4.com
mresult.comment? в этом комментарии?
Подскажите, как в советнике проверить срабол ли тэйк профит?
string REZULTAT = OrderComment();
а есть аналог для mt5?
Я лично использую вот такой код.
Сначала в функции OnTick() проверяем по символу наличие открытой позиции и запоминаем ее ID.
//+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { ... // Current position management - check current position status | if(PositionSelect(Symbol())) { PositionID = PositionGetInteger(POSITION_IDENTIFIER);
Потом проверяем событие OnTrade().
//+------------------------------------------------------------------+ //| Trade function | //+------------------------------------------------------------------+ void OnTrade() { //--- int DealsNum; ulong DealTiket; if(HistorySelectByPosition(PositionID)) { DealsNum = HistoryDealsTotal(); //--- total deals number in the list for( int i=0; i < DealsNum && !IsStopped(); i++) { DealTiket = HistoryDealGetTicket(i); if(StringFind(HistoryDealGetString(DealTiket, DEAL_COMMENT), "sl", 0) >= 0) { CloseBarTime = (datetime)SeriesInfoInteger(Symbol(), 0, SERIES_LASTBAR_DATE); } } } }
Этот код проверяет stop loss, но если вы поменяете sl на tp, то все будет работать.
Единственная проблема - временная задержка функции OnTrade, которая зависит от получения данных от торгового сервера. Иногда получается так, что функция OnTrade сообщает о sl в момент, когда эксперт уже заключил новую сделку. Поэтому я параллельно проверяю наличие позиций на каждом тике в функции OnTick.
пс: по комментам не серьёзно.. ИМХО
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования