Сервер ZeroMQ + JSON - страница 2

 

Топик стартер пропал. Заняты? Самим разбираться?

Ладно, удачи и за наводку спасибо.

 
Vladimir Perervenko:

Топик стартер пропал. Заняты? Самим разбираться?

Ладно, удачи и за наводку спасибо.

Добрый день. Был в командировке. Конечно помогу.

ZeroMQ - это сокетовый фреймворк, в котором реализованы большинство возможных паттернов. Можно просто пользоваться сокетами а не строить архитектуру с нуля. Плюс он реализован в большинстве ЯП:  http://zeromq.org/bindings:_start

Пакет Metatrader Python работает под Windows, я уже давно работаю на macOS / linux. Плюс в нем нет возможности управлять ордерами. Скрипт разрабатывался для сервера Ubuntu + Wine + Metatrader5.

Архитектура расписана в документации на гите, в самом начале. Если что либо написано непонятно, спросите, пожалуйста, я дополню.

В пакете используется имплементация ZeroMQ https://github.com/dingmaotu/mql-zmq китайского разработчика.  

Парсер JSON взят с данного форума, это переработанная версия https://www.mql5.com/en/code/13663

Всего наилучшего.

dingmaotu/mql-zmq
dingmaotu/mql-zmq
  • dingmaotu
  • github.com
This is a complete binding of the ZeroMQ library for the MQL4/5 language provided by MetaTrader4/5. Traders with programming abilities have always wanted a messaging solution like ZeroMQ, simple and powerful, far better than the PIPE trick as suggested by the official articles. However, bindings for MQL were either outdated or not complete...
 

Спасибо за Вашу работу!

Пробывал поднимать под виндой и ubuntu, везде заработало, остановился на ubuntu. С запуском проблем нет, но через некоторое время работы, сервер перестает отвечать, хотя если посмотреть netstat - видно что процесс слушает порт по прежнему. В логах вижу сообщение о деинициализации. Можно где-нибудь посмотреть расшифровку  deinitialization reason? Иногда может отвалиться получение исторических данных, а запросы баланса и сделок отрабатывают. Иногда перестает отвечать совсем. Вы его используете в бою? Насколько стабильно все работает у вас? Есть какие-то советы/подводные камни?

И у меня на винде и на убунту воспроизводился баг, с обрезанным JSON в ответ на action="ACCOUNT", приходит неполная строка: `{"error":false,"broker":"ОАО ''Брокерский дом ''ОТКРЫТИЕ''","currency":"RUR","server":"Open-Broker","trading_allowed":0,"bot_trading":0,"balance":0.00000,"equity":0.00000,"margin":0.00000,"margin_free":0.00000`

Но это менее критично, чем стабильность, конечно)

 
_ilya_:

Спасибо за Вашу работу!

Пробывал поднимать под виндой и ubuntu, везде заработало, остановился на ubuntu. С запуском проблем нет, но через некоторое время работы, сервер перестает отвечать, хотя если посмотреть netstat - видно что процесс слушает порт по прежнему. В логах вижу сообщение о деинициализации. Можно где-нибудь посмотреть расшифровку  deinitialization reason? Иногда может отвалиться получение исторических данных, а запросы баланса и сделок отрабатывают. Иногда перестает отвечать совсем. Вы его используете в бою? Насколько стабильно все работает у вас? Есть какие-то советы/подводные камни?

И у меня на винде и на убунту воспроизводился баг, с обрезанным JSON в ответ на action="ACCOUNT", приходит неполная строка: `{"error":false,"broker":"ОАО ''Брокерский дом ''ОТКРЫТИЕ''","currency":"RUR","server":"Open-Broker","trading_allowed":0,"bot_trading":0,"balance":0.00000,"equity":0.00000,"margin":0.00000,"margin_free":0.00000`

Но это менее критично, чем стабильность, конечно)

Добрый день. Спасибо.

Расшифровку можно посмотреть здесь - https://www.mql5.com/en/docs/constants/namedconstants/uninit

В бой еще не запускали, только на этой неделе будет готова стратегия на backtrader под которую писался скрипт.

Тестировали в контейнере в течении суток, все было норм.

Приведите пример запроса исторических данных, пожалуйста.

По поводу action="ACCOUNT", попробуйте закомментировать info["margin_level"] = AccountInfoDouble(ACCOUNT_MARGIN_LEVEL); это следующая строка запроса, где у вас обрывается ответ.

Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Uninitialization Reason Codes
Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Uninitialization Reason Codes
  • www.mql5.com
//| get text description                                             | //| Expert deinitialization function                                 |
Причина обращения: