- Выполнение программ
- Разрешение на торговлю
- События клиентского терминала
- Ресурсы
- Вызов импортируемых функций
- Ошибки выполнения
- Тестирование торговых стратегий
Разрешение на торговлю
Автоматизация торговли
В языке MQL5 существует специальная группа торговых функций, с помощью которых можно создавать автоматизированные торговые системы. Программы для автоматической торговли без участия человека называются экспертами (Expert Advisor) или торговыми роботами. Для создания эксперта в редакторе MetaEditor запустите мастер создания советников MQL5 Wizard и выберите один из двух вариантов:
- Expert Advisor (template) – позволяет создать шаблон с готовыми функциями обработки событий, который необходимо дополнить всем необходимым функционалом с помощью самостоятельного программирования.
- Expert Advisor (generate) – дает возможность создать полностью готового для работы торгового робота, просто выбирая необходимые вам модули: модуль формирования торговых сигналов, модуль управления капиталом и модуль подтягивания защитного стопа для открытых позиций (Trailing Stop).
Торговые функции могут работать только в экспертах и скриптах, для индикаторов торговля запрещена.
Проверка разрешения на автоматическую торговлю
Для создания надежного эксперта, который мог бы работать в автоматическом режиме без контроля человека, необходимо организовать множество необходимых проверок. В первую очередь необходимо программным путем проверять, есть ли вообще разрешение на совершение торговых операций. Проверка разрешения на торговлю является базовой и обязательной при разработке любой автоматической системы.
Проверка на разрешение автоматической торговли в самом терминале
В настройках терминала можно запретить или разрешить автоматическую торговлю для всех программ.
Переключать опцию разрешения автоматической торговли также можно прямо из Стандартной панели терминала:
– автоматическая торговля разрешена, торговые функции в запущенных программах разрешены для использования.
– автоматическая торговля запрещена, при этом сами запущенные программы будут работать, хотя торговые функции не смогут выполняться.
Пример проверки:
if (!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
|
Проверка разрешения на торговлю для данного запущенного эксперта/скрипта
При запуске программы можно разрешить или запретить автоматическую торговлю конкретно для нее. Для этого есть отдельная специальная настройка в свойствах программы.
Пример проверки:
if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
|
Проверка разрешения на торговлю любым экспертам/скриптам для данного счета
Запрет на автоматическую торговлю может быть установлен на стороне торгового сервера. Пример проверки такой ситуации:
if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
|
Если для торгового счета запрещена автоматическая торговля, то торговые операции из экспертов/скриптов выполняться не будут.
Проверка разрешения торговли для данного счета
Возможны случаи, когда для конкретного торгового счета запрещены любые торговые операции – нельзя торговать ни вручную, ни с помощью экспертов. Пример проверки ситуации, когда к торговому счету подключились с помощью инвесторского пароля:
if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
|
AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) может возвращать false в следующих случаях:
- нет соединения с торговым сервером. Можно проверить с помощью TerminalInfoInteger(TERMINAL_CONNECTED);
- торговый счет переведен в режим read-only (отправлен в архив);
- торговля на счете запрещена на стороне торгового сервера;
- подключение к торговому счете произведено в режиме инвестора.
Смотри также
Состояние клиентского терминала, Информация о счете, Информация о запущенной MQL5-программе