При отключеннии "Авто-торговли", советник должен иметь возможность снимать заявки.

 
  • 36% (37)
  • 44% (45)
  • 20% (20)
Всего проголосовало: 102
 
Если советник использует [stop]/[limit] ордера, при отключении авто-торговли он становится совершенно беспомощным. А мог бы отменить их.
Удивительно, что это не так.
 
Тогда в советнике должен быть обработчик событий включения/отключения автоторговли. Типа как Init/DeInit.
 
i_logic:
 Тогда в советнике должен быть обработчик включения/отключения автоторговли. Типа как Init/DeInit.

Ну, это уже от нас зависит. Сразу надо было делать чтоб при нажатии этой кнопки происходил Init.

В свете последних тенденций, не удивлюсь если большая часть ответит на последний пункт - А шо, тут ещё какой-то терминал обсуждают?!.. 

 

Использовать TRADE_RETCODE_SERVER_DISABLES_AT или TRADE_RETCODE_CLIENT_DISABLES_AT и по таймеру проверять это условие. Пока наверное так. 

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера - Документация по MQL5
 
barabashkakvn:

Использовать TRADE_RETCODE_SERVER_DISABLES_AT или TRADE_RETCODE_CLIENT_DISABLES_AT и по таймеру проверять это условие. Пока наверное так. 

Так

TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)

 
barabashkakvn:

Использовать TRADE_RETCODE_SERVER_DISABLES_AT или TRADE_RETCODE_CLIENT_DISABLES_AT и по таймеру проверять это условие. Пока наверное так. 

Ну дело даже в этом, как я понимаю. Надо чтобы после отключения пользователем автоторговли (нажатия на кнопку) советник мог сделать "последний вздох" -  удалить отложенные ордера например. А сейчас советник просто тупо рубится (хотя и новые тики он обрабатывает, но сделать с ордерами ничего не может - включается запрет на отправку торговых запросов).

Только если делать для советника свою кнопку отключения автоторговли (с сохранением состояния в глобальную переменную, как-то так)

 
pronych:

Так

TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)

Не, это похоже вообще ответ, а разрешена-ли торговля. Просто торговля.
 
i_logic:

Только если делать для советника свою кнопку отключения автоторговли (с сохранением состояния в глобальную переменную, как-то так)

И опять придется лепить, подменяя штатный функционал. Лично мне придется, если не изменят.

Почти всё надо переделывать заново и по-своему. Совместимости - ноль.

По итогам голосования буду писать заявку в сд.

 
i_logic:

Оптимально было бы расширить коды причин инициализации (деинициализации).

Например, добавить значения REASON_AUTOTRADE_ENABLED и REASON_AUTOTRADE_DISABLED к уже имеющимся:


Да, да, да. Гуд ваще!
 
pronych:
Да, да, да. Гуд ваще!

Не, не так. Удалил пост.

Пускай сделают даже без возврата кода причин инициализации (деинициализации), лишь бы при нажатии на кнопку "Автоторговля" запускался Init (как при смене таймфрейма), соответственно, при её отжатии - DeInit. А значения TERMINAL_TRADE_ALLOWED можно будет ловить самому.

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