Как подключить MetaTrader к Node.JS?

Я создаю систему на основе Node.JS для подключения к MetaTrader и обработки всех действий, таких как привязка счета, открытие, закрытие торгового ордера...

Но я так и не нашел, как подключиться к MetaTrader в Nodejs. Можете ли вы дать мне решение или примеры пакетов, которые могут помочь мне в этом? Спасибо!


person Nam Tran Thanh    schedule 22.02.2018    source источник
comment
Эй, я пытаюсь сделать то же самое. Вы когда-нибудь находили решение для этого?   -  person Leon Peter    schedule 15.05.2020


Ответы (3)


Вы можете попробовать облачный сервис MetaApi https://metaapi.cloud, который предоставляет доступ к REST API и WebSocket API как к MetaTrader 4, так и к Счета Метатрейдер 5.

Официальная документация по REST API: https://metaapi.cloud/docs/client.

SDK: https://metaapi.cloud/sdks (SDK для javascript, python и Java предоставляются по состоянию на апрель 2021 г. )

Он поддерживает чтение информации об учетной записи, позициях, ордерах, истории торговли, получение котировок и доступ к рыночным данным.

Сервис также предоставляет API для копирования сделок https://metaapi.cloud/docs/copyfactory и API для расчета торговые показатели форекс на счете MetaTrader https://metaapi.cloud/docs/metastats.

Обновление: по состоянию на середину марта 2021 года MetaApi позволяет ограниченное тестирование API без добавления способа оплаты.

person roman    schedule 29.06.2020

Фактически вы можете использовать MetaTrader через JavaScript/NodeJS без локальной установки MetaTrader. Поясню: есть веб-версия MetaTrader, сайт (https://trade.mql5.com ). Вы можете использовать безголовый браузер и создать оболочку вокруг этого веб-сайта. Это не сложно, но требует некоторого времени. Таким образом, вы можете использовать свою учетную запись MetaTrader 4/5 и создать мост между NodeJS и веб-сайтом. Вы закончите тем, что будете работать со своими учетными записями MT, используя только JavaScript.

У этого есть несколько ограничений, например, вы не можете использовать советники MQL на веб-сайте. Но основные функции, такие как размещение ордеров, прослушивание тиков и периоды просмотра, поддерживаются. Кроме того, вы по-прежнему можете портировать свои советники на JavaScript.

Я лично работаю над этим, я могу обновить этот ответ, если когда-нибудь опубликую решение/проект.

Обновление: репозиторий теперь общедоступен, https://github.com/Reiryoku-Technologies/Mida

person Vasile Alexandru Peşte    schedule 19.03.2021
comment
Как я могу помочь? Я хотел бы внести свой вклад. - person asedsami; 23.03.2021
comment
@asedsami Я связался с тобой в частном порядке. Если кому-то еще интересно, вы можете подписаться на мой профиль на GitHub: github.com/Vasile-Peste. Таким образом, вы будете уведомлены, когда я опубликую проект. - person Vasile Alexandru Peşte; 26.03.2021

Наблюдение:

Программный пакет MetaTrader состоит из нескольких частей, только одна из которых предназначена для клиентов — MetaTrader Terminal 4/5. Это терминальное программное обеспечение взаимодействует с сервером MT4/5, а также существует множество других, дополнительных брокерских пакетов MetaTrader, систем, взаимодействующих с сервером.

Учитывая ваше указание выше, вы, похоже, планируете функциональную интеграцию Node.JS с программным обеспечением MetaTrader Terminal.

Ограничения:

Как пояснялось выше, программная платформа MetaTrader Terminal 4/5 представляет интерес, и прежде чем предпринимать технические шаги, необходимо провести проверку, чтобы подтвердить, покрывают ли программируемые функции и услуги, изначально поддерживаемые в терминале MT4, все, что вам нужно. нужно или нет.

Учитывая, что терминал MT4 имеет программируемую экосистему как для автоматической обработки, так и для полуавтоматического обратного тестирования, эти два основных направления не обеспечивают одинакового уровня комфорта для интеграции с внешней взаимодействующей логикой или потоком событий.

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

Подход:

Чтобы заставить экосистему выполнения кода терминала MT4 взаимодействовать с внешними мирами, существует встроенная возможность #import расширять функции, отсутствующие в родном языке MQL4/5, через библиотеки DLL.

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

И Node.JS, и MetaTrader Terminal 4/5 могут использовать ZeroMQ и/или nanomsg для быстрой и продуктивной интеграции разнородной распределенной системы, что, по-видимому, подходит для указанные вами потребности.

Не стесняйтесь читать другие сообщения здесь и < strong>здесь, о функции сигнализации/обмена сообщениями - плоские понятия, используемые ради этой самой системной интеграции.

person user3666197    schedule 25.02.2018