Grupo de usuarios de MetaTrader 5 Python - cómo utilizar Python en Metatrader - página 20

 
capissimo:

Como mínimo, debe haber una documentación detallada que tenga en cuenta todos los casos. Universum no es tan grande - sólo 3 ramas de sistemas operativos - Win/Linux/MacOS.

Instalé las herramientas de compilación de Microsoft desde https://visualstudio.microsoft.com/ru/downloads/?rr=https%3A%2F%2Fwww.google.com%2F. El paquete se instala ahora en Python 3.8. Este problema está resuelto.

C:|Users\labor>pip install MetaTrader5

Recogida de MetaTrader5

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

Instalación de los paquetes recopilados: MetaTrader5

Ejecutando setup.py install para MetaTrader5 ... hecho

Instalado con éxito MetaTrader5-5.0.6


¡PERO! RuntimeError: La llamada IPC ha fallado:

C:\Users\labor>C:\labor\lAnaconda3\envs\metatrader5\python.exe C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py

[2, 'Exness-MT5Real', '0000000'] # el código se pone a cero en la impresión

[500, 2174, '11 oct 2019']

Traceback (última llamada más reciente):

File "C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py", line 10, in <module>.

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

RuntimeError: Fallo en la llamada IPC

El mismo error ocurre cuando no hay tal símbolo en la cuenta en mt5. Por ejemplo, EURPLN no está en el terminal


 
capissimo:
El terminal funciona como debería.

Por favor, conéctese al servidor de MetaQuotes-Demo, seleccione Ayuda -> Comprobar actualizaciones del escritorio -> Última versión beta, y espere la actualización. La construcción debe ser anterior o igual a 2174. Intente ejecutar su script en este servidor e informe del resultado.


PS. Además, asegúrese de que tiene una cuenta abierta en la terminal, MT5TerminalInfo() devuelve valores razonables y MT5WaitForTerminal() devuelve True.

 
Maxim Dmitrievsky:

El mismo error ocurre cuando no hay tal símbolo en la cuenta en mt5. Por ejemplo, EURPLN no está en el terminal


Tuve en cuenta esto desde el principio - cambié el código para adaptarlo a mis activos, no funciona
 
Almaz:

Por favor, conéctese al servidor de MetaQuotes-Demo, seleccione Ayuda -> Comprobar actualizaciones del escritorio -> Última versión beta, y espere la actualización. La construcción debe ser anterior o igual a 2174. Intente ejecutar su script en este servidor e informe del resultado.


PS. Además, asegúrese de que tiene una cuenta abierta en la terminal, MT5TerminalInfo() devuelve valores razonables y MT5WaitForTerminal() devuelve True.

La cuenta está abierta, el terminal funciona, y el paquete me devuelve la contraseña, etc. de la misma. ([2, 'Exness-MT5Real', '0000000'] , nota: la contraseña está bloqueada), pero se produce un error en la fase de extracción de datos.

La misma mierda en Anaconda Python (bajó Python 3.8 e instaló una distribución fresca de Anaconda que utiliza una de las versiones de Python 3.7 y canalizó su MetaTrader5 en ella):

File "C:\sers\labor\\cAnaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile

exec(compile(f.read(), filename, 'exec'), namespace)

File "C:/Users/labor/.spyder-py3/temp.py", line 17, in <module>

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

RuntimeError: Fallo en la llamada IPC

Como puede ver, tropieza conMT5CopyRatesFrom durante alguna operación de archivo.
 

Lanzamiento de una versión actualizada de MetaTrader 5.0.7 para Python.

Se puede actualizar de la siguiente manera:

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

Lanzamiento de una versión actualizada de MetaTrader 5.0.7 para Python.

Puedes actualizarlo así:

¿algún cambio?

 
Maxim Dmitrievsky:

¿algún cambio?

Cambiar los resultados de verdadero/falso por códigos numéricos detallados.

Mejora de los modos de espera de la disponibilidad de datos del terminal.
 
Almaz:

Por favor, conéctese al servidor de MetaQuotes-Demo, seleccione Ayuda -> Comprobar actualizaciones del escritorio -> Última versión beta, y espere la actualización. La construcción debe ser anterior o igual a 2174. Intente ejecutar su script en este servidor e informe del resultado.


PS. Además, asegúrese de que tiene una cuenta abierta en la terminal, MT5TerminalInfo() devuelve valores razonables y MT5WaitForTerminal() devuelve True.

Mi terminal tiene la build 2190; la terminal tiene la misma herramienta solicitada en el script. El script me devuelve el nombre del broker y el código de operación:[2, 'Exness-MT5Real', '*******'].

Después de que se produzca el error de actualización del paquete en la misma línea de código, el mensaje de error ha cambiado: RuntimeError: Terminal: Call failed

(base) C:\N-Users\labor>python.exe C:/Users/labor/Downloads/MetaTrader5-Python/mt5test2.py

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

[500, 2190, '18 oct 2019]

Traceback (última llamada más reciente):

File "C:/Users/labor/Downloads/MetaTrader5-Python/mt5test2.py", line 17, in <module>.

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

RuntimeError: Terminal: Call failed

 
capissimo:

Mi terminal tiene la build 2190; el terminal tiene el mismo instrumento solicitado en el script. El script me devuelve el nombre del broker y el código de operación: [2, 'Exness-MT5Real', '*******'].

Actualice al paquete python de MetaTrader 5.0.7 y adjunte los resultados, por favor.

 
MetaQuotes Software Corp.:

Actualice al paquete python de MetaTrader 5.0.7 y adjunte los resultados, por favor.

1) Utilizo Anaconda Python 3.7.4 y trabajo en un entorno de base virtual. Por cierto, ¿para qué versión de Python es el paquete MetaTrader 5.0.7?

2) He vuelto a instalar Python 3.8 a petición tuya, he actualizado el pip y ya en la fase de instalación de matplotlib me sale esto (ver todo el PROTOCOLO en la grapa):

Microsoft Windows [Versión 10.0.17134.1069]. Mierda...

(c) Microsoft Corporation, 2018. Todos los derechos reservados.

C:|Users\labor>pip install matplotlib

Recopilación de matplotlib

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

Requisito ya cumplido: cycler>=0.10 en c:\Npython38\lib\site-packages (from matplotlib) (0.10.0)

Requisito ya satisfecho: kiwisolver>=1.0.1 en c:\python38\lib\site-packages (from matplotlib) (1.1.0)

Requisito ya cumplido: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in c:\python38\lib\site-packages (from matplotlib) (2.4.2)

Requisito ya satisfecho: python-dateutil>=2.1 en c:\python38\lib\site-packages (from matplotlib) (2.8.0)

Requisito ya satisfecho: numpy>=1.11 en c:\python38\lib\site-packages (from matplotlib) (1.17.3)

Requisito ya satisfecho: seis en c:\python38\lib\site-packages (de cycler>=0.10->matplotlib) (1.12.0)

Requisito ya satisfecho: setuptools en c:\python38\lib\site-packages (de kiwisolver>=1.0.1->matplotlib) (41.2.0)

Instalación de los paquetes recopilados: matplotlib

Ejecutando setup.py install para matplotlib ... error

ERROR: El comando ha dado error con el estado de salida 1:

comando: 'c:\python38\python.exe' -u -c'import sys, setuptools, tokenize; sys.argv[0] = '"'''C:\NUsers\Nlabor\NAppData\NLocal\NTemp\pip-install-unwrm6r5\Nmatplotlib\\\Nsetup.py'''; __file__=''''C:\NUsers\Nlabor\NAppData\NLocal\NTemp\pip-install-unwrm6r5\Nmatplotlib\Nsetup.py'';f=getattr(tokenize, ''''open'', open)(__file__);code=f.read().replace(''''\r\n'', '''''\n'');f.close();exec(compile(code, __file__, '''exec''')' install --record 'C:\sers\labor\AppData\Local\Temp\pip-record-ly12rvmr\install-record.txt' --single-version-externally-managed --compile

............. continúa en el archivo

3) Instalado matplotlib usando http://www.lfd.uci.edu/~gohlke/pythonlibs/, instalado pytz y su paquete como estándar. Tengo el mismo error: RuntimeError: Terminal: Call failed. Véase la grapa 2.

Archivos adjuntos:
6ww6n.zip  7 kb
report.zip  2 kb