Ручное подтверждение открытия ордера.

 

Поскольку ручного подтверждения открытия ордера в терминале теперь нет, хочу сделать это для советников, которые впервые ставятся на реал. Помню раньше был оператор для возможности запроса из программы, при выполнении которого выводилась форма с текстом вопроса и кнопками для ввода типа Да, Нет. Думаю, что он и сейчас есть. Возможно с другим названием. Раньше вроде BoxInput назывался, хотя не уверен не использовал его, поэтому не помню. Или я это путаю с Визуальным бейсиком, когда-то давно имел с ним дело. Да нет, должен быть и в MQL. Подскажите, пожалуйста, как он теперь называется.

 

MessageBox можно вызвать из советника, но есть один нюанс - он "подвесит" советник пока пользователь не нажмёт кнопку.

 
Maxim Kuznetsov:

MessageBox можно вызвать из советника, но есть один нюанс - он "подвесит" советник пока пользователь не нажмёт кнопку.

Спасибо, вспомнил. Да, я знаю, что советник будет ждать ответа. 
 

Вот, сделал. Может кому-нибудь из впервые начинающих осваивать программирование пригодится, а то в документации примера использования этой функции нет.

int YesNo=0;
   PlaySound("alert.wav");
   YesNo =  MessageBox(Symbol()+"  Запрос на открытие ордера OP_BUY","",MB_YESNO);
   if(YesNo==IDYES)     {Comment("Открывается ордер");}
   else if(YesNo==IDNO) {Comment("Запрет открытия ордера");} 
 
всё-же лучше такой диалог делать функциями MQL, добавив обратный отсчёт времени до действия по умолчанию..
 
Maxim Kuznetsov:
всё-же лучше такой диалог делать функциями MQL, добавив обратный отсчёт времени до действия по умолчанию..
Можно сделать так: выдавать Алерт с запросом и после этого с помощью таймера сделать паузу, ждать события нажатия кнопок на графике  Запрет и Разрешение.. Если время установленное в таймере истекло , а кнопки так и не были нажаты, открывать ордер. Вы это имели ввиду? Судя по ферзю вы играете в шахматы? Можно было бы сыграть на шахматном сайте.
Причина обращения: