Торговля роботом под МТ5

 
Всем привет,

Под МТ4 существует менеджерский API, который дает возможность создавать ордера и торговать в обход терминала (видимо это неофициально, но на гитхабе полно примеров и оно работает).
Под МТ5 API тоже имеется, но там явно говорится следующее:

MetaTrader 5 Manager API не предоставляет возможности создания ордеров, а также не предоставляет доступ к set-методам ключевых полей (таких как символ и тикет ордера). Это связано с тем, что изменения подобных полей или же создание новых ордеров может привести к необратимой порче базы ордеров сервера.


Попытался найти выход, но все сводилось к использованию терминала и mql5 с его OrderSend. Вот эти две темы закрепили понимание проблемы:
https://www.mql5.com/ru/forum/269019#comment_8213547
https://www.mql5.com/ru/forum/274622

Можно ли как-то создать ордер без терминала? Может быть открыли FIX протокол (год назад велись над этим работы, судя по комментарию по первой ссылке) или что-то еще?
Против mql ничего не имею, но держать запущенным терминал очень неудобно.
Заранее спасибо.

 
Serg046:
Всем привет,

Под МТ4 существует менеджерский API

Это где Вы такое нашли? Возможно, речь идет о тех ДЦ, которые предоставляют доступ к счету при помощи их специального API? Да, такое есть, но никакого отношения к МТ4 такой API не имеет. Получается доступ к одному и тому же счету разными способами, но это не API от Meta Quotes.

 
Ну я ж указывал, что "видимо это неофициально". Гуглится примерно так например  https://github.com/search?l=C%2B%2B&q=MT4ManagerAPI.h&type=Code.
Я уж не знаю чьё это и можно ли это упоминать. Но натыкаюсь на это в самых разных местах. На stackoverflow тоже в курсе.
Впрочем не суть, интересует именно МТ5 и возможные варианты
Build software better, together
Build software better, together
  • github.com
GitHub is where people build software. More than 40 million people use GitHub to discover, fork, and contribute to over 100 million projects.
 
Serg046:
Ну я ж указывал, что "видимо это неофициально". Гуглится примерно так например  https://github.com/search?l=C%2B%2B&q=MT4ManagerAPI.h&type=Code.
Я уж не знаю чьё это и можно ли это упоминать. Но натыкаюсь на это в самых разных местах. На stackoverflow тоже в курсе.
Впрочем не суть, интересует именно МТ5 и возможные варианты

Насколько я помню, МТ4Manager - это компонент, используемый на стороне ДЦ. То есть это подход с другой стороны, с сервера, а не со стороны клиента. 

MetaTrader 4 API - полный набор интерфейсов для доступа к функциям платформы
MetaTrader 4 API - полный набор интерфейсов для доступа к функциям платформы
  • www.metatrader4.com
Широкий функционал MetaTrader 4 может стать еще шире! Интерфейсы API (Application Program Interface) позволяют встраивать в платформу новые функции, интегрировать ее с другими решениями и кастомизировать под различные уникальные задачи. Server API позволяет создавать различные серверные плагины, возможности которых практически не ограничены...
 
Ну вот, но если в МТ4 варианте там есть торговля (создание ордера), то в МТ5 ее нет, только анализ/закрытие/модификация (частично).
Начитавшись топиков на этом форуме, я понял, что продвигается Терминал и взаимодействие именно с ним. Но может есть какие-то хитрые варианты? Вариант с терминалом неудобный и неустойчивый.
Авторы (или нет?) упоминали, что готовится FIX, но нигде анонса не нашел, видимо так и не состоялось.
 
Serg046:
Ну вот, но если в МТ4 варианте там есть торговля (создание ордера), то в МТ5 ее нет, только анализ/закрытие/модификация (частично).
Начитавшись топиков на этом форуме, я понял, что продвигается Терминал и взаимодействие именно с ним. Но может есть какие-то хитрые варианты? Вариант с терминалом неудобный и неустойчивый.
Авторы (или нет?) упоминали, что готовится FIX, но нигде анонса не нашел, видимо так и не состоялось.

Как раз всякие сторонние API - куда неустойчивее терминала.

А чем терминал-то не устраивает?  Чего-то не хватает ?

 

Ну тем, что он должен быть запущен. Одно дело дать человеку просто робота или даже просто интерфейс от него, а другое - устанавливать терминал, настраивать взаимодействие и т.д.

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

P.S. Был бы это хотя бы какой-то сервис, можно бы было развернуть его где-то у себя на сервере и отправлять запросы на него. Терминал держать для этого - это как пушкой по воробьям.
 
Так если не нужен терминал, то почему вопрос связан именно с ним? Есть ДЦ, предоставляющие собственный API для доступа к счету (не к серверу МТ). 
 
Что это за собственный API? То, что я приводил выше - это я так понимаю API от тех же MetaQuotes, но доступный только для ДЦ и возможно без оф. поддержки.
Но проблема в том, что если для МТ4 этот API позволяет создавать ордера (см. https://github.com/AliaksandrKachanau/TestRepository/blob/beb4b3aee66ae4cf09b0dd86adf37376875c5ca7/_CheckConnection/MT4ManagerAPI.h#L1577),
то МТ5 эту возможность не содержит, комментарий из дока есть в первом сообщении темы. И да, коннектится это дело к МТ серверу.
Или имеется в виду какой-то другой API? Но я тогда не понимаю какой.
AliaksandrKachanau/TestRepository
AliaksandrKachanau/TestRepository
  • AliaksandrKachanau
  • github.com
Contribute to AliaksandrKachanau/TestRepository development by creating an account on GitHub.
 

Serg046:
Что это за собственный API?

К примеру, REST API. Сообщения передаются в JSON-формате. 

То, что я приводил выше - это я так понимаю API от тех же MetaQuotes, но доступный только для ДЦ и возможно без оф. поддержки.

Так в том то и дело, что это API для внутренней работы ДЦ, а не для клиентов. Если Вы клиент, а не сотрудник, ДЦ, то никакой пользы от такого API для Вас нет.

 
Ihor Herasko:

К примеру, REST API. Сообщения передаются в JSON-формате. 

Что REST API? Где-оно торчит, какой адрес? Работает ли оно с любыми валидными МТ аккаунтами? Но кажется я догадываюсь какой будет ответ.
Ihor Herasko:

Так в том то и дело, что это API для внутренней работы ДЦ, а не для клиентов. Если Вы клиент, а не сотрудник, ДЦ, то никакой пользы от такого API для Вас нет. 

Есть польза, если есть менеджерский аккаунт (менеджерский API - менеджерский аккаунт, все логично), сотрудник ты ДЦ или еще кто - не важно.
API дает возможность указывать для какого аккаунта операция, вот здесь orderby - это клиентский аккаунт  https://github.com/AliaksandrKachanau/TestRepository/blob/beb4b3aee66ae4cf09b0dd86adf37376875c5ca7/_CheckConnection/MT4ManagerAPI.h#L1066.
Соответственно ордер будет создан под именем указанного аккаунта. Но главное - нет терминала.
Впрочем не суть, это не относится к теме. Я сильно надеялся, что есть какой-то способ. Но, похоже, нужно использовать терминал.
Причина обращения: