MetaTrader 5 Python User Group - como usar o Python no Metatrader - página 31

 

A compilação de scripts python no editor significa executá-los para execução dentro do editor.

Veja a saída nas janelas de erro e o registo. O registo mostra a saída principal, e as janelas de erro mostram a saída stderr.

 
Renat Fatkhullin:

A compilação de scripts python no editor significa executá-los para execução dentro do editor.

Veja a saída nas janelas de erro e o registo. O registo mostra a saída principal e a janela de erro mostra a saída stderr.

Não há erros na janela de erro,

sem erros

mas na janela de registo, o guião está provavelmente à espera da minha acção.

o guião está à espera da minha acção

Tanto quanto sei, não há apenas feedback (provavelmente ainda não).


Depois tento executar o exemplo do post #1 (https://www.mql5.com/ru/forum/306688 )- instalei o pacote matplotlib e o MetaTrader5.

Tentar dar o exemplo a partir do primeiro posto

Em erros

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

Em log

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"

e nada acontece (o terminal está a funcionar ao mesmo tempo).

 
Renat Fatkhullin:

A compilação de scripts python no editor significa executá-los para execução dentro do editor.

Veja a saída nas janelas de erro e o registo. O registo mostra a saída principal, e as janelas de erro mostram a saída stderr.

Assim, o script .py não será compilado para .ex5 ?
E execute-o a partir do navegador.

 
Vladimir Karputov:

Não há erros na janela "Erros",


mas na janela "Log", o guião está provavelmente à espera da minha acção.

Tanto quanto sei, apenas não há feedback (provavelmente ainda não).


Depois tento executar o exemplo do post #1 (https://www.mql5.com/ru/forum/306688 )- instalei o pacote matplotlib e o MetaTrader5.

Tentar dar o exemplo a partir do primeiro posto

Em erros

Em log

e nada acontece (o terminal está a funcionar).

A biblioteca do MetaTrader5 não está instalada, faça-o:

pip install --upgrade metatrader5

tudo funciona:


 
Roman:

Assim, o script .py não será compilado para .ex5 ?
E execute-o a partir do navegador.

É claro que não compilará, mas será visível no navegador como um programa *.py e correrá escondido num fio terminal separado.

Comunicação com o terminal através da biblioteca do MetaTrader 5 Python.

 
Renat Fatkhullin:

Não fornecido com a biblioteca MetaTrader5, faça-o:

tudo funciona:


A biblioteca está instalada:


(foi colocado imediatamente commatplotlib)


Adicionado: e não funciona em python:


 
Renat Fatkhullin:

É claro que não será compilado, mas será visível no navegador como *.py programa e correrá escondido num fio separado do terminal.

Comunicação com o terminal através da biblioteca integrada do MetaTrader 5 para Python.

Agora percebo, será como um caderno visual Python, apenas o código inteiro é executado.
Tenho trabalhado muito sobre a compilação, e a compilação teria sido espantosa.
A questão é que, com a compilação padrão .py to .exe, há muito pouca protecção contra a engenharia inversa. Poder-se-ia dizer que é inútil.
Se o .py compilado para .ex5, iria realmente impulsionar o mql5 em termos de wow mql5 compilado para um executável bem protegido por .ex5.
Python tem isto como um problema global, pense nisto. Especialmente desde que python compila a .exe, utiliza C ou C++ como compilador.
E o mql5 utiliza LLVM.

 

Píton desinstalado. Instalado 3.8.1 x64.

Ao correr em Python tem agora estes erros:


Python 3.8.1 (tags/v3.8.1:1 b293b6, 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:

As bancadas da biblioteca:


(foi fornecido imediatamente juntamente commatplotlib)


Adicionado: e não funciona em python:


Tem Python 3.8, coloque melhor 3.7.6 uma vez que muitas bibliotecas ainda não estão prontas para 3.8 de qualquer forma

1) A partir da linha de comando, verificar o guião.

2) Verificar se o caminho python está em PATH.

3) Certifique-se de que existe apenas uma cópia de Python, e de que não há conflitos com outras versões.

4) Certifique-se de que o caminho para a cópia única de Python no editor está correcto.


É bem possível que tenha um zoo de Pythons instalados indirectamente a partir de diferentes ambientes como o Visual Studio.

 
Vladimir Karputov:

Depois tento executar o exemplo do post #1 (https://www.mql5.com/ru/forum/306688 )- instalei o pacote matplotlib e o MetaTrader5.

Tentar executar o exemplo a partir do primeiro posto

Em erros

Em log

e nada acontece (o terminal está a funcionar ao mesmo tempo).

Precisamos de esperar um pouco - o guião solicita dados de 28.01.2019 - leva tempo.

Segunda razão possível - o valor limitado de "Max barras na janela" é especificado no terminal.

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))

A ajuda declara explicitamente https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5copyratesfrom_py

O terminal MetaTrader 5 dá barras apenas dentro do histórico disponível para o utilizador nos gráficos. O número de barras que estão disponíveis para o utilizador é definido nas definições pelo parâmetro "Max barras na janela ".


Se se trata realmente do número de barras, pode alterar o limite ou fixar o guião para tomar os minutos mais próximos, por exemplo, para 2020 - isto deve funcionar

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