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

 
capissimo:

No mínimo, deve haver documentação detalhada que tenha em conta todos os casos. Universum não é assim tão grande - apenas 3 ramos de sistemas operativos - Win/Linux/MacOS.

Instalou ferramentas de construção Microsoft a partir de https://visualstudio.microsoft.com/ru/downloads/?rr=https%3A%2F%2Fwww.google.com%2F. O pacote está agora instalado em Python 3.8. Este problema está resolvido.

C:\sUtilizadores\labor>pip install MetaTrader5

Recolha do MetaTrader5

Using cached https://files.pythonhosted.org/packages/3c/c8/713f1b8283cbbdef30dc9cf50a5d767f9b4a194eb4f886a8e50074b696a1/MetaTrader5-5.0.6.tar.gz

Instalação de pacotes recolhidos: MetaTrader5

Executando setup.py install para MetaTrader5 ... feito

MetaTrader5-5.0.6 instalado com sucesso


MAS! RuntimeError: Chamada IPC falhou:

[2, 'Exness-MT5Real', '0000000'] # o código é zerado na impressão

[500, 2174, '11 Out 2019']

Traceback (última chamada mais recente):

Ficheiro "C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py", linha 10, em <módulo>

ticks1 = MT5CopyTicksFrom("EURAUD", datetime(2019,1,28,13), 10000, MT5_TICKS_ALL)

RuntimeError: chamada IPC falhou

O mesmo erro aparece quando não existe tal símbolo na conta em mt5. Por exemplo, o EURPLN não está no terminal


 
capissimo:
O terminal funciona como deve.

Ligue-se ao servidor MetaQuotes-Demo, seleccione Help -> Check Desktop Updates -> Latest Beta Build, aguarde pela actualização. A construção deve ser maior ou igual a 2174. Tente executar o seu script neste servidor e relate o resultado.


PS. Certifique-se também de que tem uma conta aberta no terminal, MT5TerminalInfo() retorna valores razoáveis e MT5WaitForTerminal() retorna Verdadeiro.

 
Maxim Dmitrievsky:

O mesmo erro ocorre quando não existe tal símbolo na conta em mt5. Por exemplo, o EURPLN não está no terminal


Tive isto em conta desde o início - alterei o código para se adequar aos meus bens, não funciona
 
Almaz:

Ligue-se ao servidor MetaQuotes-Demo, seleccione Help -> Check Desktop Updates -> Latest Beta Build, aguarde pela actualização. A construção deve ser maior ou igual a 2174. Tente executar o seu script neste servidor e relate o resultado.


PS. Certifique-se também de que tem uma conta aberta no terminal, MT5TerminalInfo() retorna valores razoáveis e MT5WaitForTerminal() retorna Verdadeiro.

A conta está aberta, o terminal funciona, e o pacote devolve a minha palavra-passe, etc. ([2, 'Exness-MT5Real', '0000000'] , nota: a palavra-chave está bloqueada), mas ocorre um erro na fase de extracção de dados.

No Anaconda Python a mesma merda (derrubou o Python 3.8 e instalou uma nova distribuição Anaconda que usa uma das versões Python 3.7 e canalizou o seu MetaTrader5 para o mesmo):

Ficheiro "C:{\i1}Utilizadores\i3}Anaconda3\ib}site-packages{\i}spyder_kernels{\i}customize{\i}spydercustomize.py", linha 110, em execfile

exec(compile(f.read(), nome de ficheiro, 'exec'), namespace)

Ficheiro "C:/Users/labor/.spyder-py3/temp.py", linha 17, em <módulo>

eurusd_rates = MT5CopyRatesFrom("EURUSD", MT5_TIMEFRAME_M1, datetime(2019,4,5,15), 1000)

RuntimeError: chamada IPC falhou

Como se pode ver, tropeça noMT5CopyRatesFrom durante alguma operação de arquivo.
 

Lançada uma versão actualizada do MetaTrader 5.0.7 para Python.

Pode actualizar como se segue:

pip install --upgrade matplotlib
pip install --upgrade MetaTrader5
 
MetaQuotes Software Corp.:

Lançada uma versão actualizada do MetaTrader 5.0.7 para Python.

Pode actualizá-lo desta forma:

alguma mudança?

 
Maxim Dmitrievsky:

alguma mudança?

Mudança de resultados verdadeiro/falso para códigos numéricos detalhados.

Melhores modos de espera pela disponibilidade de dados a partir do terminal.
 
Almaz:

Ligue-se ao servidor MetaQuotes-Demo, seleccione Help -> Check Desktop Updates -> Latest Beta Build, aguarde pela actualização. A construção deve ser maior ou igual a 2174. Tente executar o seu script neste servidor e relate o resultado.


PS. Certifique-se também de que tem uma conta aberta no terminal, MT5TerminalInfo() retorna valores razoáveis e MT5WaitForTerminal() retorna Verdadeiro.

O meu terminal construiu o 2190; o terminal tem a mesma ferramenta solicitada no guião. O guião devolve o meu nome de corretor e código comercial:[2, 'Exness-MT5Real', '*******'].

Após o erro de actualização do pacote ocorrer na mesma linha de código, a mensagem de erro mudou: RuntimeError: Terminal: Chamada falhada

[2, 'Exness-MT5Real', '0000000'].

[500, 2190, '18 Out 2019]

Traceback (última chamada mais recente):

Ficheiro "C:/Users/labor/Downloads/MetaTrader5-Python/mt5test2.py", linha 17, em <módulo>

eurusd_rates = MT5CopyRatesFrom("EURUSD", MT5_TIMEFRAME_M1, datetime(2019,4,5,15), 1000)

RuntimeError: Terminal: Chamada falhada

 
capissimo:

O meu terminal construiu o 2190; o terminal tem o mesmo instrumento solicitado no guião. O guião devolve o meu nome de corretor e código comercial: [2, 'Exness-MT5Real', '*******'].

Actualizar para o pacote MetaTrader 5.0.7 python e anexar os resultados, por favor.

 
MetaQuotes Software Corp.:

Actualizar para o pacote MetaTrader 5.0.7 python e anexar os resultados, por favor.

1) Utilizo Anaconda Python 3.7.4 e trabalho num ambiente de base virtual. A propósito, para que versão do Python é o pacote MetaTrader 5.0.7 ?

2) Instalei novamente o Python 3.8 a seu pedido, actualizei o pip e já na fase de instalação do matplotlib obtenho isto (ver todo o PROTOCOLO no grampo):

Microsoft Windows [Versão 10.0.17134.1069]. C'um caraças...

(c) Microsoft Corporation, 2018. Todos os direitos reservados.

Recolha de matplotlib

Using cached https://files.pythonhosted.org/packages/12/d1/7b12cd79c791348cb0c78ce6e7d16bd72992f13c9f1e8e43d2725a6d8adf/matplotlib-3.1.1.tar.gz

Requisito já satisfeito: ciclista>=0,10 em c:\python38\lib\ib\ib (de matplotlib) (0,10,0)

Requisito já satisfeito: kiwisolver>==1.0.1 em c:\python38\lib\ib\iw (de matplotlib) (1.1.0)

Requisito já satisfeito: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 em c:\python38\lib\site-packages (de matplotlib) (2.4.2)

Requisito já satisfeito: python-dateutil>=2.1 em c:\python38\lib\ib\ib (de matplotlib) (2.8.0)

Requisito já satisfeito: numpy>==1.11 em c:\python38\lib=site-packages (de matplotlib) (1.17.3)

Requisito já satisfeito: seis em c:\python38\lib\site-packages (do ciclista>=0,10->matplotlib) (1.12.0)

Requisito já satisfeito: ferramentas de instalação em c:\python38\lib\iwisolver>==1.0.1->matplotlib) (41.2.0)

Instalação de pacotes recolhidos: matplotlib

Instalação em execução.py instalar para matplotlib ... erro

ERRO: Comando errôneo com status de saída 1:

comando: 'c:\python38\python.exe' -u -c'import sys, setuptools, tokenize; sys.argv[0] = """'''C:\\\\\\i}"C:\i}Usuários"-AppData\i}Local"-Temppip-install-unwrm6r5matplotlib"-setup.py"''; __file__=''''C:\i}Usuários"-AppData\i}Local"-Tempip-install-unwrm6r5matplotlib"-setup.py'''';f=getattr(tokenize, ''''open''', abrir)(__file__);code=f.read().replace(''''\r\n''', '''''\n'''');f.close();exec(compile(code, __file__, '''exec'')'' install --record 'C:\Users\labor\AppData\Local\Temp\pip-record-ly12rvmr\install-record.txt' --single-version-externally-managed --compile

............. continuou no ficheiro

3) Matplotlib instalado usando http://www.lfd.uci.edu/~gohlke/pythonlibs/, pytz instalado e o seu pacote como padrão. Apanhou o mesmo erro: RuntimeError: Terminal: Chamada falhada. Ver clip 2.

Arquivos anexados:
6ww6n.zip  7 kb
report.zip  2 kb
Razão: