- Лавина
- [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
- Подскажите пожалуйста, как нужно что бы при каждом сигнале открывал новый ордер в том же направлении к примеру Buy
Подскажите пожалуйста, мне необходимо при закрытии ордера по StopLoss открыть ордер в противоположном направлении с такими же параметрами, но единожды. Т.е. если первый ордер закрылся по SL, то при последующих закрытых ордерах по SL не открывать ордер в противоположном направлении.
Пример, как словить гарантированно на 100% сделку в результате срабатывания Stop loss - код Stop Loss Take Profit - в OnTradeTransaction ловите сделку, которая закрыта в результате срабатывания Stop loss (свойство сделки DEAL_REASON_SL).
После того, как поймали сделку закрытую в результате срабатывания Stop loss можете уже делать то, что Вам нужно.
Пример, как словить гарантированно на 100% сделку в результате срабатывания Stop loss - код Stop Loss Take Profit - в OnTradeTransaction ловите сделку, которая закрыта в результате срабатывания Stop loss (свойство сделки DEAL_REASON_SL).
После того, как поймали сделку закрытую в результате срабатывания Stop loss можете уже делать то, что Вам нужно.
А не подскажите как открыть ордер в противоположном направлении? И только один раз, а не каждый раз при закрытии ордера по SL
long deal_reason =-1; deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON); if(deal_reason==DEAL_REASON_SL) и здесь что мне необходимо...
Я правильно понял?
А не подскажите как открыть ордер в противоположном направлении? И только один раз, а не каждый раз при закрытии ордера по SL
Делаете проверку на существование ордера
if(!OrderSelect(ticket)) { //Устанавливаем ордер }
Добавлено
Воодще-то, всё немного сложнее, чтобы ответить однозначно нужно видеть код...
long deal_reason =-1; deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON); if(deal_reason==DEAL_REASON_SL) и здесь что мне необходимо...
Я правильно понял?
Да. Правильно.
Делаете проверку на существование ордера
немного не понял, т.е. должно выглядеть так?
long deal_reason =-1; deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON); if(deal_reason==DEAL_REASON_SL){ if(!OrderSelect(ticket)){ //Открываю ордер } }
немного не понял, т.е. должно выглядеть так?
В MQL5 нужно оперировать такими понятиями: открываю позицию, а не открываю ордер. Тогда станет сразу легче.
long deal_reason =-1; deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON); if(deal_reason==DEAL_REASON_SL) и здесь что мне необходимо...
Я правильно понял?
В MQL5 нужно оперировать такими понятиями: открываю позицию, а не открываю ордер. Тогда станет сразу легче.
А так код в полном виде правильно выглядит?
const MqlTradeTransaction trans; long deal_reason =-1; deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON); if(deal_reason==DEAL_REASON_SL){ if(!OrderSelect(ticket)){ //Открываю позицию } }
А как открыть позицию в противоположном направлении с теме же параметрами?
if (Total==0 && Opn_B==true){ TP=Bid + SizeTP*Point; SL=Bid - SizeSL*Point; Ticket=OrderSend(Symbol(),OP_BUY,Lts,Ask,5,SL,TP,NULL,0,0,clrBlue); if (Ticket > 0) {Alert ("Открыт отложенный ордер Buy Stop ",Ticket);} }
Не могу понять в какое место вставить код:
const MqlTradeTransaction trans; long deal_reason =-1; deal_reason=HistoryDealGetInteger(trans.deal,DEAL_REASON); if(deal_reason==DEAL_REASON_SL){ if(!OrderSelect(Ticket)){ //И какой здесь код написать по открытию позиции в противоположном направлении с теме же параметрами } }

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