Автоматическая торговля в MetaTrader4™

Сложно себе представить современную жизнь без компьютеров. Они везде: на работе, дома, в кармане, во всевозможной технике, которая работает под управлением человека, либо почти самостоятельно. Компьютер стал необходимым инструментом каждого трейдера.

Может ли компьютер начать зарабатывать самостоятельно? Его нужно только немного научить, заложить в него нехитрый алгоритм – покупать, когда дорожает, и продавать, когда дешевеет, поделиться с ним своим опытом побед и предостеречь от досадных неудач. Именно для этого существует функция автоматической торговли в терминале MetaTrader4™, которая реализуется с помощью, так называемых советников(Expert Advisors).

Советниками в MetaTrader4™ называются программы, разработанные на языке программирования MetaQuotes Language 4 (MQL 4) и позволяющие автоматизировать аналитические и торговые операций. Советники позволяют в автоматическом режиме проводить анализ текущей ситуации и на основе полученных сигналов способны выдавать команды на выполнение торговых операций и управление открытыми позициями.

В клиентский терминал MetaTrader4™ встроена собственная среда разработки экспертов - MQL4 IDE. Она включает в себя:

  • Терминал MetaTrader4™ - модуль управления и исполнения программ автотрейдинга.
  • MetaQuotes Language 4 (MQL4) - непосредственно язык программирования торговых стратегий.
  • MetaEditor - редактор и компилятор советников.
  • Strategy Tester - модуль тестирования и оптимизации экспертов.

Технология тестирования советников на исторических данных позволяет получить результаты, максимально приближенные к результатам тестирования советников в онлайне на демо-счете. При этом проверка эффективности работы советника за период в несколько лет займет не более нескольких минут, т. е. Вам не придется ждать годы для подтверждения прибыльности Вашей торговой тактики!

Что дает трейдеру автоматическая торговля:

  1. Возможность создатьстратегию-автомат, которая торгует круглосуточно без участия трейдера.
  2. Возможность частично снять рутину совершения торговых операций и сосредоточится на творческой работе, например, на разработке и оптимизации новой торговой системы.
  3. Возможность реализовать торговую систему, которую при ручной торговле применить не получится.
  4. Возможность использовать торговые стратегии, созданные другими авторами, просто копируя программные коды.
  5. Возможность получить инструменты автоматизации торговли:
    • советники, дающие только сигналы;
    • инструменты сбора различной статистики;
    • реализацию недостающего функционала.
  6. Возможность создания индивидуального тестера стратегий:
    • расчёт уникальных, нужных именно вам, показателей;
    • использование уникальных авторских торговых систем.

Создание советников

Для создания советников используется редактор MetaEditor. Чтобы запустить редактор советников, необходимо выполнить команду "Создать" контекстного меню окна "Навигатор — Советники", команду меню "Сервис — Редактор MetaQuotes Language", нажать клавишу F4 или кнопку на панели "Стандартная". При создании эксперта автоматически откроется мастер создания советников, позволяющий быстро приступить к работе с новой MQL4-программой. В нем в качестве типа создаваемого объекта необходимо указать "Советник" и заполнить поля требуемыми данными:

Имя — название советника;

Автор — имя автора;

Ссылка — адрес сайта разработчика;

Параметры — список входных параметров советника. Чтобы добавить новый параметр, необходимо нажать кнопку "Добавить", чтобы удалить — кнопку "Удалить".

После этого в редакторе открывается окно нового советника с заданными параметрами. Файл с исходным текстом (*.MQ4) советника автоматически помещается в папку /EXPERTS клиентского терминала ForexClub MetaTrader4™. С этого момента можно приступать к написанию кода эксперта.

По завершении разработки необходимо скомпилировать советник. Для этого в редакторе советников необходимо выполнить команду меню «Файл» — «Компилировать». В результате успешной компиляции создается исполняемый файл программы с расширением *.EX4, автоматически помещаемый в папку /EXPERTS. Список скомпилированных экспертов можно просмотреть в окне «Навигатор» — «Советники» клиентского терминала. Если компиляция не была успешно завершена, пиктограмма эксперта будет закрашена серым цветом. Это означает, что его использовать нельзя.

Редактирование советников

Чтобы приступить к редактированию уже существующего советника из терминала, необходимо выполнить команду "Изменить" контекстного меню окна "Навигатор — Советники". При этом откроется редактор советников, в который уже будет загружен исходный текст выбранного эксперта. После изменения исходного текста советника необходимо повторно скомпилировать его и получить новый исполняемый EX4-файл. В противном случае в терминале будет использоваться неизмененная, предыдущая версия эксперта.

Настройка работы советников

Перед началом использования советников необходимо произвести их предварительную настройку. Общие для всех экспертов параметры работы задаются в окне настройки клиентского терминала. Это окно можно открыть командой меню "Сервис — Настройки" или при помощи клавиш-акселераторов Ctrl+O. Для настройки параметров работы экспертов необходимо выбрать вкладку "Советники". В ней доступны:

Включить советники. Эта опция позволяет разрешить или запретить использование всех советников. Если она отключена, с приходом нового тика для всех экспертов перестает запускаться функция start(). При этом вместо смайликов напротив названий экспертов в правом верхнем углу графиков появятся крестики. Чтобы включить советники, необходимо выставить флажок и нажать кнопку "ОК". С приходом нового тика они начнут работать, а крестики в правом верхнем углу графика вновь станут смайликами.

Внимание: эксперт запускается на выполнение с приходом нового тика и, чаще всего, успевает завершить свою работу до прихода следующего тика. Отключение советников не прерывает текущее исполнение уже работающих экспертов; эта опция распространяется только на советники и не позволяет автоматически отключать пользовательские индикаторы и скрипты.

Отключить советники при смене счета. Эта опция представляет собой защитный механизм, отключающий советники при смене счета. Она бывает полезна, например, при переключении с демо-счета на реальный. Чтобы включить механизм, необходимо выставить флажок и нажать кнопку "ОК".

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

Разрешить советнику торговать. Советники способны работать в автоматическом режиме, без участия трейдера. Они могут как анализировать динамику цен, так и вести торговую деятельность. Эта опция предназначена для ограничения торговых функций экспертов. Такое ограничение бывает полезно при тестировании аналитических способностей эксперта в режиме реального времени (не путать с тестированием советника на исторических данных).

Ручное подтверждение. Опция "Ручного подтверждение" активируется только в том случае, если советникам разрешено торговать. Если эта опция включена, и советник пытается провести торговую операцию, можно будет либо подтвердить ее, либо прервать вручную. Иными словами, при помощи ручного подтверждения можно контролировать торговую активность советника. Это может быть полезно при тестировании торговых функций советника в режиме реального времени (не путать с тестированием советника на исторических данных).

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

Подтверждать вызов функций DLL. Эта опция активируется только в том случае, если был разрешен импорт из DLL-библиотек. Она позволяет контролировать выполнение каждой вызываемой функции вручную. Если флажок не установлен, импорт из внешних библиотек контролироваться не будет. При работе с неизвестными экспертами рекомендуется включать эту опцию.

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

Запуск советников

После настройки общих параметров, можно запускать эксперты. Для этого достаточно лишь присоединить советник к графику, просто перетащив его на график из меню «Советники». Команда "Присоединить к графику" контекстного меню окна "Навигатор — Советники" или двойной клик левой кнопкой мыши на выбранном эксперте в том же окне позволяют наложить его на активный график. При этом на экране появится окно индивидуальных настроек советника. Во вкладке "Общие" можно:

Позиции — выбрать направление открытия позиций:

  • Long&Short — в обе стороны;
  • Only Long — только на покупку;
  • Only Short — только на продажу.

Разрешить сигналы — разрешить/запретить советнику подавать сигналы;

Не повторять сигнал — запретить подачу сигналов о событиях после поступления первого сигнала;

Разрешить советнику торговать — разрешить/запретить проведение торговых операция в реальном времени;

Ручное подтверждение — запрашивать подтверждение на открытие позиции при проведении торговых операций;

Разрешить импорт DLL — разрешить/запретить импорт функций из DLL-файлов;

Подтверждать импорт функций DLL — запрашивать подтверждения при каждом вызове функций из DLL-файлов;

Разрешить импорт внешних экспертов — разрешить/запретить вызов функций из внешних экспертов.

Во вкладке "Входные параметры" можно изменить внешние переменные эксперта. К ним относятся переменные класса extern. Чтобы изменить параметр необходимо дважды кликнуть левой кнопкой мыши на его значении и записать новое. При этом можно изменять значение каждой переменной или загрузить уже сохраненный набор входных параметров (кнопка "Загрузить"). Сохранить текущий набор внешних переменных можно при помощи одноименной кнопки.

Кнопка "Сброс" возвращает все настройки по умолчанию. Во вкладке "Общие" выставляются заданные в настройках терминала параметры. А в качестве входных переменных выставляются параметры, указаные в исходном тексте программы. Чтобы подтвердить прикрепление советника с заданными параметрами, необходимо нажать кнопку "ОК". А отменить наложение эксперта можно нажав одноименную кнопку.

Внимание: индивидуальную настройку можно производить для уже прикрепленных экспертов. Однако, пока идет текущее исполнение, открыть страницу свойств советника нельзя. Это можно сделать только в промежутках между вызовами функции start(). При этом эксперт запускаться не будет, пока открыты его свойства. Если были изменены входные параметры советника, то по нажатии кнопки "ОК" происходит переинициализация эксперта с новыми входными параметрами.

После настройки эксперта произойдет его инициализация и с приходом нового тика советник начнет исполнятся. Свидетельством прикрепления советника является появление в правом верхнем углу графика имени эксперта и значка — смайлика. Если в настройках эксперта запрещено торговать, то вместо веселого смайлика появится грустный смайлик.

Внимание: к одному графику можно присоединить только один советник. При наложении второго советника, первый удаляется.

Завершение работы советника

Чтобы завершить работу эксперта, необходимо удалить его с графика. Перед завершением работы производится деинициализация эксперта. Для удаления эксперта с графика необходимо выполнить команду контекстного меню графика "Советники — Удалить" либо присоединить к графику другой советник. Кроме того, советник может удаляться с графика при смене профиля или шаблона.

Внимание:

  • при выключении клиентского терминала происходит завершение работы всех экспертов;
  • при закрытии графика происходит завершение прикрепленного к нему советника;
  • при наложении второго советника, первый удаляется после подтверждения;
  • удаление советника из окна "Навигатор" не завершает работу одноименного наложенного на график эксперта;
  • отключение советников в настройках клиентского терминала не является гарантией полного отключения экспертов. Эта опция прекращает запуск функции start() каждого советника, но функция init() продолжает выполнятся.