OrderSend

 
int start()
{
 ticket=OrderSend(Symbol(),OP_SELLSTOP,lot,Low[1]-distance*Point,0,High[1]+distance*Point+spread*Point,0,NULL,0,TimeCurrent()+60*60,Red);
 return(0);
}
Скажите, как узнать, что этот ордер был исполнен? Где-то видел, но не помню уже. В поисковике не нашел (сложно подобрать ключевые слова)...
 
Scilur писал(а) >>
Скажите, как узнать, что этот ордер был исполнен? Где-то видел, но не помню уже. В поисковике не нашел (сложно подобрать ключевые слова)...
if ( ticket > 0 )
{
   // ордер исполнен, ура!
}
 
Scilur писал(а) >>
Скажите, как узнать, что этот ордер был исполнен? Где-то видел, но не помню уже. В поисковике не нашел (сложно подобрать ключевые слова)...


или имеется ввиду, что SELLSTOP сработал?
 

Плохо. Потому что нужно было смотреть https://docs.mql4.com/ru/trading/OrderSend
И там написано (в самом начале):

"Основная функция, используемая для открытия позиции или установки отложенного ордера.
Возвращает номер тикета, который назначен ордеру торговым сервером или -1 в случае неудачи."

И вообще - там много чего написано. Только читать надо :(

 
Похоже я не правильно сформулировал вопрос. Ведь ticket будет >0, если ордер будет выставлен отложенным. А меня интересует, как узнать, что этот ордер стал рыночным (сработал) по цене sellstop?
 
Scilur писал(а) >>
Похоже я не правильно сформулировал вопрос. Ведь ticket будет >0, если ордер будет выставлен отложенным. А меня интересует, как узнать, что этот ордер стал рыночным (сработал) по цене sellstop?


его тип поменяется на OP_SELL

 
PapaYozh >>:


или имеется ввиду, что SELLSTOP сработал?

Да, именно :)

 
Scilur писал(а) >>
Похоже я не правильно сформулировал вопрос. Ведь ticket будет >0, если ордер будет выставлен отложенным. А меня интересует, как узнать, что этот ордер стал рыночным (сработал) по цене sellstop?


2 решения:

1.) Проверять на каждом новом тике есть ли изменения в количестве открытих ордеров.
2.) MQL5 - событие Trade - https://www.mql5.com/ru/docs/runtime/event_fire#trade

 
Scilur >>:

Да, именно :)


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

 
Techno писал(а) >>

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


Вы сейчас понасоветуете.
Надо запомнить номер тикета, а после выбирать ордер по номеру тикета и проверять его тип. Если он стал OP_SELL, то ордер исполнился.

 
PapaYozh >>:


Вы сейчас понасоветуете.
Надо запомнить номер тикета, а после выбирать ордер по номеру тикета и проверять его тип. Если он стал OP_SELL, то ордер исполнился.

это не надежный способ, тикет отложника может запросто измениться, магик же останется совершенно не изменным

Причина обращения: