В данной статье будем учиться подключать OsEngine к MetaTrader5. Не наоборот.
Учимся делать так, чтобы OsEngine мог торговать через MT5.
MetaTrader5 – преемник MT4, предоставляет расширенные возможности для торговли на различных финансовых рынках, включая форекс, акции, фьючерсы и товары.
Для подключения к MT5 потребуется установить терминал MT5 на тот же ПК, где вы собираетесь запускать OsEngine. По архитектуре подключения МТ5 напоминает Quik, то есть выступает неким посредником между клиентом и брокером.
Для примера будем использовать подключение к БКС Форекс. Для начала надо скачать терминал и открыть счет.
При этом счет нужно открывать с неттингом (про это подробнее поговорим ниже), валюта не важна, поэтому будем открывать в рублях.
После открытия счета вам на телефон придёт СМС с логином и паролем от МТ5. Запускаем терминал от имени администратора. Интерфейс будет примерно таким:
Первым делом надо установить необходимые библиотеки для работы. Переходим на официальный сайт Майкрософт (https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170) и скачиваем данный exe файл. Он установит необходимые библиотеки.
Теперь нам надо подключить скрипты в терминале МТ5. Для этого заходим в папку с OsEngine и переходим по данному пути:
Далее переходим в терминал МТ5 и открываем каталог данных.
Переходим в каталог по пути:
Копируем папку mq5 из OsEngine в каталог терминала МТ5. Должно выглядеть вот так:
В папке mq5 лежат файлы hash.mqh и json.mqh. Данные файлы надо дополнительно скопировать по данному пути.
Обновляем советников. Должна появиться папка mq5, в которой лежит советник MtApi5:
В папке MT5 лежит файл MT5Connecotr.dll, его необходимо скопировать по данным путям.
Для того, чтобы советники могли торговать, нужно дать им разрешение на это, для этого переходим в Сервис, Настройки:
И разрешаем алгоритмическую торговлю и импорт DLL.
Далее выбираем нужную нам бумагу, которую мы хотим торговать, например, USDJPY. Выбираем данную валютную пару в обзоре рынка. Открываем график и стакан.
Стоит обратить внимание, что некоторые форекс-брокеры не транслируют полноценный стакан. Например, БКС-Форекс не показывает объемы в стакане, а подписаться на изменение стакана в советнике нельзя, данные о стаканах не идут. Поэтому в OsEngine в настройках коннектора можно будет переключиться на расчет стакана по тикам, стакан будет строиться по лучшему Bid и Ask.
Теперь нам надо перенести советника на график нужной нам пары. Такое действие надо делать со всеми парами, которые мы хотим торговать. После переноса появится новое окно, где надо будет включить событие OnTickEvent. Если вы хотите подключить несколько бумаг для торговли, то событие OnTradeTransactionEvent можно оставить включенным только у одного советника.
При открытии программы идем в Роботы.Light
Далее идем подключать коннектор:
1. Переходим на вкладку доступных подключений.
2. Выбираем MetaTrader5. Дважды жмем левой кнопкой мыши на нем.
Откроется окно подключения к коннектору:
1. IP адрес советника. Указывается в терминале МТ5. По умолчанию стоит localhost.
2. Порт советника. Указывается в терминале МТ5. По умолчанию стоит 8228.
3. Рекомендуется использовать неттинг счет. Если использовать счет без неттинга, то в терминале МТ5 будут вестись свои собственные позиции параллельно с OsEngine. При этом данные позиции не будут иметь возможности менять свой объем. При неттинг режиме у каждой бумаги будет максимум одна позиция в терминале МТ5, которая может модифицироваться.
4. Включает или отключает площадку для торговли валютными парами.
5. Включает или отключает площадку для торговли товарами широкого потребления.
6. Включает или отключает площадку для торговли фондами, если они есть у брокера.
7. Включает или отключает площадку для торговли иными инструментами, например, акциями.
8. Подгружать бумаги только из обозревателя рынка. Важный параметр, рекомендуется ставить true. Если поставить false, то будут подгружаться все доступные бумаги брокера по включенным площадкам, при этом, чтобы иметь возможность торговать эти бумаги, надо будет отдельно для каждой бумаги подключить советника в терминале МТ5.
9. Строить биржевой стакан из тиков. Некоторые брокеры не предоставляют данные по стакану, поэтому при включенном данном параметре стакан будет строиться из тиков по лучшему Bid и Ask.
10. Валюта депозита. Данный параметр влияет на расчет стоимости шага цены. Рассчитывает стоимость шага цены для той валюты, которая указана в данном параметре.
11. Считать профит в пунктах. Еще один параметр, который отвечает за стоимость шага цены. При включенном параметре стоимость шага цены будет считать в пунктах. При выключенном параметре стоимость шага цены будет рассчитываться по кросс-курсу для валюты депозита. При этом для кросс-курса в обозреватель рынка будет добавлена необходимая для расчёта пара, чтобы получать последнюю актуальную цену. Стоимость шага цены пересчитывается раз в минуту.
После настроек коннектора и его подключения можно торговать:
1. При торговле без неттинга в терминале МТ5 и в OsEngine ведутся позиции, однако в OsEngine можно менять объем позиций, добавлять и уменьшать, но в терминале МТ5 такого функционала нет. Поэтому при попытке изменить объем действующей позиции будет приходить Fail ордер. Чтобы иметь возможность модифицировать позиции, добавлять и уменьшать объем, нужно торговать на счете с неттингом. Однако, чтобы изменить позицию с лонг на шорт, нужно предварительно закрыть лонг позицию и только потом открывать шорт позицию.
2. Некоторые брокеры не дают выставлять ордера по лучшей цене, только в определенном отступе от лучшей цены. На скриншоте выше лучшая Bid заявка на покупку 152,189, но при попытке выставить ордер по этой цене мы получим ошибку о неправильной цене. В терминале МТ5 также нельзя выставить лимитный ордер на покупку по этой цене. Также, нельзя выставить лимитный ордер по цене маркет. То есть, если вы попробуете выставить ордер на покупку выше рыночного, например, по цене 152,21, то также получите ошибку о неправильной цене.

3. Бумаги, которые вы собираетесь торговать, нужно сперва выбирать в обзоре рынка в терминале МТ5, открывать график и стакан для данных бумаг и подключать к графику советник MtApi5.
Посмотреть подключенные советники можно здесь:
Выражаем отдельную благодарность разработчику библиотеки MtApi, благодаря которому это стало возможным. Спасибо! Ссылка на репозиторий: https://github.com/vdemydiuk/mtapi/
Удачных алгоритмов!
Комментарии открыты для друзей!
https://smart-lab.ru/company/os_engine/blog/1024149.php
OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support
Канал Научный трейдинг (Bad Quant): https://t.me/bad_quant