Обсуждение статьи "Соединение MetaTrader 5 и Python: получение и отправка данных" - страница 3

 
Andres Kull:

Я запускаю EA, localhost включен.


Хмм... Я не знаю. Перед этим должна быть запущена программа Python.

 
Maxim Dmitrievsky:

Хмм... Я не знаю. Программа Python должна быть запущена до этого.

Проблема сузилась.

SocketCreate проходит успешно, если советник прикреплен к графику.

SocketCreate завершается с ошибкой 4014, если советник выполняется в тестере стратегий.

 
Andres Kull:

Вопрос сужается.

SocketCreate успешно выполняется, если советник прикреплен к графику.

SocketCreate завершается с ошибкой 4014, если советник выполняется в тестере стратегий.

Ааа, точно. Сокеты по-прежнему не работают в тестере стратегий, возможно, позже разработчики исправят это

"К сожалению, текущая реализация сокет-клиента в MetaTrader 5 не подходит для работы в тестере стратегий, поэтому полного тестирования и измерения производительности решения не проводилось. Давайте подождем дальнейших обновлений функциональности сокетов" из нижней части статьи
 

Привет, ребята,

хотя и очень ограниченно, но вы можете попробовать следующие шаги на живом графике:

1. Загрузите ваши данные из истории или предварительно вычисленные результаты из других индикаторов
2. Добавьте цикл в вызове обработки тиков, который просто перебирает каждый элемент ваших предварительно загруженных данных.
3. Позвольте вашему советнику решать каждый цикл -> записывать ваши результаты (покупка/продажа/обновление SL и т.д.) в файл для последующего анализа производительности.

Надеюсь, это немного поможет.

Будьте здоровы,
AT

 

@Maxim Dmitrievsky

Я просто хотел сказать спасибо за то, что вы сделали это доступным. Я всегда хотел иметь возможность кодировать свои индикаторы на Python, и с тех пор, как вы начали эту тему, я получил доступ к фьючерсным данным в реальном времени и использую их для разработки и запуска своих индикаторов. Я использую свой Python для построения графиков и анализа живого потока, а сделки заключаю через платформу MT5 - все работает отлично. Пожалуйста, продолжайте работать в том же духе, и я искренне надеюсь, что Python будет полностью принят сообществом MT.

Спасибо и наилучшие пожелания!

Файлы:
Fibs3.png  50 kb
 

Спасибо, Максим!

Статья очень полезная.

Я хотел спросить, если Python сервер находится на другом ПК (Windows 10) в локальной сети, вы экспериментировали с ошибкой подключения к сокету?

Я задаю этот вопрос, потому что на том же локальном хосте все в порядке. Соединение идеально. Однако, если я хочу иметь серверную программу на другом ПК, я получаю ошибку подключения сокета ( connot connect ).

Я проверил с помощью команды ping IP-адрес удаленного ПК, все в порядке.

Я добавил IP-адрес в разделе URL советника.

Что может препятствовать подключению к сокету (вне брандмауэра)?

Я внес изменения в брандмауэр windows (однако я не специалист по его созданию).

Мне интересно, работает ли сокет MT5 в локальной сети...


Заранее спасибо за любые предложения, потому что я застрял


Филипп

 
Как побороть сообщение "IPC call failed", появляющееся при запуске ...= MT5CopyTicksRange(...)
 
Я пробовал это сделать, но получил код ошибки 4014(функция не разрешена), запуская его как экспертную программу. Может быть, эта опция не активирована?
 
slukin:

socketclientEA (Si-6.19,M15) Connection localhost:9090 error 4014

https://www.mql5.com/ru/docs/network/socketconnect

При вызове из индикатора GetLastError() вернет ошибку 4014 – "Системная функция не разрешена для вызова".

Решение:

Адрес для подключения должен быть добавлен в список разрешенных на стороне клиентского терминала (раздел Сервис \ Настройки \ Советники).

Разрешить Webrequest для следующих url:

http://localhost

Спасибо, это было весьма не самоочевидно сначала, разработчики злые гении просто!

 
Потрясающе.
Спасибо, что поделились.