Подскажите пожалуйста, как узнать закрылась позиция по стоплоссу или тейкпрофиту.
sergey1294:
Подскажите пожалуйста, как узнать закрылась позиция по стоплоссу или тейкпрофиту.
Подскажите пожалуйста, как узнать закрылась позиция по стоплоссу или тейкпрофиту.
Выбрать в истории сделки за интересующий период и посмотреть в колонке комментарий.
И еще по цвету в колонке Цена в строчках с OUT
SHOOTER777:
Выбрать в истории сделки за интересующий период и посмотреть в колонке комментарий.
И еще по цвету в колонке Цена в строчках с OUT
как в истории терминала посмотреть я знаю, а вот как это программно обработать. Долго мучаясь методом тыка написал такой шаблон.
int Event() { ulong deal_ticket; // тикет сделки string coment; int deal_type; // тип торговой операции HistorySelectByPosition(ID); int total=HistoryOrdersTotal(); deal_ticket=HistoryDealGetTicket(total-1); coment=HistoryDealGetString(deal_ticket,DEAL_COMMENT); deal_type=(int)HistoryDealGetInteger(deal_ticket,DEAL_TYPE); if(deal_type==1) { if(StringFind(coment,"sl")>=0) { //----- // некоторый код //----- } else if(StringFind(coment,"tp")>=0) { //----- // некоторый код //----- } } if(deal_type==0) { if(StringFind(coment,"sl")>=0) { //----- // некоторый код //----- } else if(StringFind(coment,"tp")>=0) { //----- // некоторый код //----- } } return(0); }
Так же интересна данная тема. Так все же как программно узнать сработал SL или TP?
Господа профессионалы, помогите. SOS -спасите наши души.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2020.12.22 10:15
// Возвращает скорректированный ORDER_REASON. ENUM_ORDER_REASON GetOrderReason( const ulong Ticket ) { ENUM_ORDER_REASON Reason = ORDER_REASON_CLIENT; if (HistorySelectOrder(Ticket)) // https://www.mql5.com/ru/forum/170952/page186#comment_18099882 { Reason = HistoryOrderGetInteger(Ticket, ORDER_REASON); if ((HistoryOrderGetInteger(Ticket, ORDER_TYPE) <= ORDER_TYPE_SELL) && (Reason != ORDER_REASON_SL) && (Reason != ORDER_REASON_TP)) { string PartComment = HistoryOrderGetString(Ticket, ORDER_COMMENT); if (StringLen(PartComment) > 3) { PartComment = ::StringSubstr(PartComment, 0, 3); if (PartComment == "[tp") Reason = ORDER_REASON_TP; else if (PartComment == "[sl") Reason = ORDER_REASON_SL; } } } return(Reason); }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь