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

 

Компиляция для питон скриптов в редакторе означает запуск на исполнение внутри редактора.

Посмотрите на вывод в окнах ошибок и журнале. В журнале показывается основной вывод, а в ошибках - вывод  stderr.

 
Renat Fatkhullin:

Компиляция для питон скриптов в редакторе означает запуск на исполнение внутри редактора.

Посмотрите на вывод в окнах ошибок и журнале. В журнале показывается основной вывод, а в ошибках - вывод  stderr.

Ясно. В окне "Ошибки" ошибок нет,

ошибок нет

а в окне "Журнал" скрипт вероятно ожидает моего действия

скрипт ожидает моего действия

Как я понимаю, обратной связи просто нет (возможно пока нет).


Тогда я пытаюсь запустить пример из поста #1 ( https://www.mql5.com/ru/forum/306688 ) - инсталлировал пакет matplotlib и MetaTrader5.

Пытаюсь запустить пример из первого поста

В ошибках

test.py started test.py 1       1
Traceback (most recent call last):      test.py 1       1
    MT5Initialize()     test.py 1       1
NameError: name 'MT5Initialize' is not defined  test.py 1       1
test.py finished in 389 ms              1       1

В журнале

2020.01.27 10:08:12.899 Python  "E:\Programs\Python37\python.exe" "C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Scripts\Python\test.py"

и ничего не происходит (терминал при этом запущен).

 
Renat Fatkhullin:

Компиляция для питон скриптов в редакторе означает запуск на исполнение внутри редактора.

Посмотрите на вывод в окнах ошибок и журнале. В журнале показывается основной вывод, а в ошибках - вывод  stderr.

То есть скрипт .py не будет компилироваться в .ex5 ?
И запускаться на выполнение из навигатора.

 
Vladimir Karputov:

Ясно. В окне "Ошибки" ошибок нет,


а в окне "Журнал" скрипт вероятно ожидает моего действия

Как я понимаю, обратной связи просто нет (возможно пока нет).


Тогда я пытаюсь запустить пример из поста #1 ( https://www.mql5.com/ru/forum/306688 ) - инсталлировал пакет matplotlib и MetaTrader5.

Пытаюсь запустить пример из первого поста

В ошибках

В журнале

и ничего не происходит (терминал при этом запущен).

Не поставлена библиотека MetaTrader5, сделайте:

pip install --upgrade metatrader5

все работает:


 
Roman:

То есть скрипт .py не будет компилироваться в .ex5 ?
И запускаться на выполнение из навигатора.

Компилироваться конечно не будет, а будет виден в навигаторе как  *.py программа и запускаться скрыто в отдельном потоке терминала.

Общение с терминалом через штатную библиотеку MetaTrader 5 для Питона.

 
Renat Fatkhullin:

Не поставлена библиотека MetaTrader5, сделайте:

все работает:


Библиотека стоит:


(была поставлена сразу вместе с matplotlib)


Добавлено: и не запускается в питоне:


 
Renat Fatkhullin:

Компилироваться конечно не будет, а будет виден в навигаторе как  *.py программа и запускаться скрыто в отдельном потоке терминала.

Общение с терминалом через штатную библиотеку MetaTrader 5 для Питона.

Теперь дошло, это будет на подобие питоновского визуального ноутбука, только код запускается весь целиком.
Я уж губу раскатал на компиляцию, а компиляция была бы вообще улёт.
Дело в том что при стандартной компиляции .py в .exe, очень слабая защита от реверс-инжиниринга. Можно сказать никакая.
Если бы .py компилировался в .ex5 то очень бы поднял mql5 в плане того, что ого mql5 компилирует в исполняемый хорошо защищенный .ex5.
У пайтона это глобальная проблема, подумайте над этим. Тем более что компиляция пайтона в .exe, использует Си или С++ подобный компилятор.
А в mql5  LLVM.

 

Удалил питон. Поставил 3.8.1 x64.

При запуске в Python теперь такие ошибки:


Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
= RESTART: C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Scripts\Python\metatrader5-test.py
Traceback (most recent call last):
  File "C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Scripts\Python\metatrader5-test.py", line 2, in <module>
    from MetaTrader5 import *
  File "E:\Programs\Python\Python38\lib\site-packages\MetaTrader5\__init__.py", line 35, in <module>
    from .C import *
ImportError: DLL load failed while importing C: Не найден указанный модуль.
>>> 
 
Vladimir Karputov:

Библиотека стоит:


(была поставлена сразу вместе с matplotlib)


Добавлено: и не запускается в питоне:


У вас Питон 3.8, поставьте лучше 3.7.6, так как все равно множество библиотек еще не готовы к 3.8

1) С командной строки проверьте скрипт

2) Удостоверьтесь, что путь до питона есть в PATH

3) Удостоверьтесь, что есть всего одна копия Питона и нет конфликтов с другими версиями

4) Удостоверьтесь, что в настройках редактора путь именно до той единственной копии Питона


Вполне возможен зоопарк из косвенно установленных Питонов из под разных сред типа Visual Studio.

 
Vladimir Karputov:

Тогда я пытаюсь запустить пример из поста #1 ( https://www.mql5.com/ru/forum/306688 ) - инсталлировал пакет matplotlib и MetaTrader5.

Пытаюсь запустить пример из первого поста

В ошибках

В журнале

и ничего не происходит (терминал при этом запущен).

Нужно подождать немного - скрипт запрашивает данные с 28.01.2019 - это требует времени.

Вторая возможная причина - в терминале указано ограниченное значение "Макс. баров в окне".

ticks1 = MT5CopyTicksFrom("EURAUD", datetime(2019,1,28,13), 10000, MT5_COPY_TICKS_ALL)
ticks2 = MT5CopyTicksRange("AUDUSD", datetime(2019,1,27,13), datetime(2019,1,28,13,1), MT5_COPY_TICKS_ALL)

rates1 = MT5CopyRatesFrom("EURUSD", MT5_TIMEFRAME_M1, datetime(2019,1,28,13), 1000)
rates2 = MT5CopyRatesFromPos("EURGBP", MT5_TIMEFRAME_M1, 0, 1000)
rates3 = MT5CopyRatesRange("EURCAD", MT5_TIMEFRAME_M1, datetime(2019,1,27,13), datetime(2019,1,28,13))

В справке явно указано https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5copyratesfrom_py

Терминал MetaTrader 5 отдает бары только в пределах истории, доступной пользователю на графиках. Количество баров, которые доступны пользователю, задается в настройках параметром "Макс. баров в окне".


Если действительно дело в количесте баров, то можно либо изменить предел, либо поправить скрипт чтобы брал ближайшие минутки, например, за 2020 год - должно заработать

Настройки платформы - Начало работы - Справка по MetaTrader 5
Настройки платформы - Начало работы - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая платформа обладает множеством настроек, что позволяет организовать работу в ней так, как это удобно именно вам. Выполните команду " Настройки" меню "Сервис" или нажмите "Ctrl+O". Графики — общая настройка отображения ценовых графиков, а также настройка параметров управления объектами: выделение объектов после их создания, немедленная...
Причина обращения: