MetaTrader 5 Python User Group - как использовать Python в Метатрейдере - страница 15

 
Maxim Dmitrievsky:

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


Команду OrderSend ?

Какой должен быть формать строки? string ? В примере про сокеты видно, что строка из mql5 socket клиента передается в result: socketreceive(int sock,int timeout).. result+=CharArrayToString(rsp,0,rsp_len); ..return result;

 
slukin:

Команду OrderSend ?

Какой должен быть формать строки? string ? В примере про сокеты видно, что строка из mql5 socket клиента передается в result: socketreceive(int sock,int timeout).. result+=CharArrayToString(rsp,0,rsp_len); ..return result;

не OrderSend() а просто строку, в которой 1-е 3 символа, например "BUY", а дальше идет список аргументов: лот, тэйк, сл. Советник читает строку, видит что 1-е 3 буквы buy и формирует троговый запрос

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

не OrderSend() а просто строку, в которой 1-е 3 символа, например "BUY", а дальше идет список аргументов: лот, тэйк, сл. Советник читает строку, видит что 1-е 3 буквы buy и формирует троговый запрос

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


Пример от опытного разработчика был бы очень сильно кстати. 

 
Roffild:

Я уже полноценный Питон к терминалу подключил, а вы все через тормознутые сокеты и пайпы обмен гоните.

Если не сложно напишите сколько идет одиночный тест по времени на каком-либо таймфрейме?

То есть интересует вопрос сколько длится оптимизация в тестере и бывают ли некорректные расчеты?

В прошлых комментариях Вы писали, что нужен некоторый бекраунд(познания в JAVA и пр.), чтобы в этом разобраться.

Немного знаю C# и Python, могу программировать в MQL4,5, получится ли у меня сравнительно легко освоить Ваши библиотеки, на сколько они сложны?

 
slukin:

Пример от опытного разработчика был бы очень сильно кстати. 

времени нет пока разжевывать, если только статью позднее, с примерами

 
forexman77:

Если не сложно напишите сколько идет одиночный тест по времени на каком-либо таймфрейме?

То есть интересует вопрос сколько длится оптимизация в тестере и бывают ли некорректные расчеты?

В прошлых комментариях Вы писали, что нужен некоторый бекраунд(познания в JAVA и пр.), чтобы в этом разобраться.

Немного знаю C# и Python, могу программировать в MQL4,5, получится ли у меня сравнительно легко освоить Ваши библиотеки, на сколько они сложны?

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

Да, я запихал в свою библиотеку код на MQL, Java, Python. Но необязательно использовать Java, если не нужен Apache Spark  и т.п.

 

Бета-версия платформы MetaTrader 5 build 2055: Интеграция с Python, область видимости как в C++ и массовые улучшения в тестере стратегий

Terminal: Добавлено API для запроса данных из терминала MetaTrader 5 через приложения, использующие язык Python

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

Пакет MetaTrader для Python предназначен для удобного и быстрого получения биржевой информации через межпроцессное взаимодействие прямо из терминала MetaTrader 5. Полученные таким образом данные можно дальше использовать для статистических вычислений и машинного обучения.



Подключение

  1. Скачайте последнюю версию Python со страницы https://www.python.org/downloads/windows
  2. При установке Python отметьте чек-бокс "Add Python X.X to PATH%", чтобы можно было из командной строки запускать скрипты на Python.
  3. Установите модуль MetaTrader5 из командной строки
    pip install MetaTrader5
  4. Добавьте пакеты matplotlib и pytz
    pip install matplotlib
    pip install pytz

Функции

  • MT5Initialize — устанавливает соединение с терминалом MetaTrader 5
  • MT5Shutdown — закрывает ранее установленное подключение к терминалу MetaTrader 5
  • MT5TerminalInfo — получает состояние и параметры подключенного терминала MetaTrader 5
  • MT5Version — возвращает версию терминала MetaTrader 5
  • MT5WaitForTerminal — ждет пока терминал MetaTrader 5 подключится к торговому серверу
  • MT5CopyRatesFrom — получает бары из терминала MetaTrader 5, начиная с указанной даты
  • MT5CopyRatesFromPos — получает бары из терминала MetaTrader 5, начиная с указанного индекса
  • MT5CopyRatesRange — получает бары в указанном диапазоне дат из терминала MetaTrader 5
  • MT5CopyTicksFrom — получает тики из терминала MetaTrader 5, начиная с указанной даты
  • MT5CopyTicksRange — получает тики за указанный диапазон дат из терминала MetaTrader 5
Welcome to Python.org
Welcome to Python.org
  • 2019.05.15
  • www.python.org
The official home of the Python Programming Language
 

И что? Кто нибудь в этом направлении работает? Не видно энтузиазма.

Удачи

 
Vladimir Perervenko:

И что? Кто нибудь в этом направлении работает? Не видно энтузиазма.

Удачи

В этом - нет. А питон использую для тестов НС.
 
Roffild:

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

Да, я запихал в свою библиотеку код на MQL, Java, Python. Но необязательно использовать Java, если не нужен Apache Spark  и т.п.

согласен, что через память быстрее, но то что сокеты или пайпы не стабильны не соглашусь, да и бешенная скорость памяти при организации коннектора излишне т.к. есть латенси биржа <--- (возможен промежуточный сервер) ---> терминал, на которое с излишком хватает даже сотни последовательных сокетов внутри одной машины...