Открытие ордера в противоположном направлении - страница 2

 
miron_like:

А так код в полном виде правильно выглядит?

...


Нет, неправильно. Вы словили транзакцию с типом TRADE_TRANSACTION_DEAL_ADD - это добавление сделки в историю, обратите внимание здесь и близко нет упоминания ордера. Забудьте про ордера. Есть только позиции.

Далее смотрите, что сделка должна иметь свойство DEAL_REASON_SL - снова таки сделка, ордерами даже не пахнет.

Теперь остаётся открыть позицию:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Открытие ордера в противоположном направлении

Vladimir Karputov, 2017.07.27 14:05

А пример открытия позиции (именно позиции, а не выставление отложенного ордера) смотрите в том же коде, что я привёл (функции OpenBuy и OpenSell).


Для начала просто напишите код, в котором открывает позицию после того, как словите сделку, которая появилась в результате срабатывания Stop loss - потом, когда увижу Ваш код, я подскажу далее.

 
Vladimir Karputov:

Нет, неправильно. Вы словили транзакцию с типом TRADE_TRANSACTION_DEAL_ADD - это добавление сделки в историю, обратите внимание здесь и близко нет упоминания ордера. Забудьте про ордера. Есть только позиции.

Далее смотрите, что сделка должна иметь свойство DEAL_REASON_SL - снова таки сделка, ордерами даже не пахнет.

Теперь остаётся открыть позицию:


Для начала просто напишите код, в котором открывает позицию после того, как словите сделку, которая появилась в результате срабатывания Stop loss - потом, когда увижу Ваш код, я подскажу далее.


  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){
    if(!OrderSelect(Ticket)){
     //Открытие позиции в противоположном направлении с теме же параметрами
    }
   }
  }
 
miron_like:


Вы до сих пор применяете старый синтаксис - это неправильно. Откройте мой пример в редакторе MetaEditor - и пройдите в отладчике по шагам.

 
Vladimir Karputov:

Вы до сих пор применяете старый синтаксис - это неправильно. Откройте мой пример в редакторе MetaEditor - и пройдите в отладчике по шагам.


Просмотрел ваш пример. Откровенно говоря, пока не хватает знаний полностью в нем разобраться и тут написать так как следует. 

Не подскажите как на основании этого кода реализовать данную задачу?

 
miron_like:

Просмотрел ваш пример. Откровенно говоря, пока не хватает знаний полностью в нем разобраться и тут написать так как следует. 

Не подскажите как на основании этого кода реализовать данную задачу?


Для начала просто возьмите пример и удалите всё лишнее - то, что Вам не нужно.

 
miron_like:
Подскажите пожалуйста, мне необходимо при закрытии ордера по StopLoss открыть ордер в противоположном направлении с такими же параметрами, но единожды. Т.е. если первый ордер закрылся по SL, то при последующих закрытых ордерах по SL не открывать ордер в противоположном направлении.

вместо(вместе) SL вводите отложенный ордер с теми-же (или иными) параметрами, ну нужном уровне. Кстати SL не везде разрешён и вообще стоит забыть про такие параметры ордера как TakeProfit и StopLoss - относитесь к ним как к независимым сделкам и счастие пребудет.

 
Vladimir Karputov:

Для начала просто возьмите пример и удалите всё лишнее - то, что Вам не нужно.


Скажите пожалуйста, а на основании моего кода можно сделать, чтобы не переписывать его?

 
miron_like:

Скажите пожалуйста, а на основании моего кода можно сделать, чтобы не переписывать его?

Нет, нельзя. 
 
Vladimir Karputov:
Нет, нельзя. 

А не могли бы вы подсказать что необходимо переписать и дописать, чтобы реализовать?

 
miron_like:

А не могли бы вы подсказать что необходимо переписать и дописать, чтобы реализовать?

Так, а что подсказывать? Где Ваш труд? Покажите, что Вы там наваяли ...
Причина обращения: