Grupo de usuarios de MetaTrader 5 Python - cómo utilizar Python en Metatrader - página 19
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
1. Originalmente tenía instalado Python 3.7.2. Instalé su paquete y el shell de comandos y el bloc de notas Jupyter aparecen el mismo error: RuntimeError: IPC call failed
2. Arranqué Python 3.7.2, instalé Python 3.8, pero la misma historia - no se instala en Python 3.8
3. Instalado Anaconda Python, específicamente creado un entorno virtual para Python 3.7.2 y trató de pip su paquete y ejecutar el ejemplo - la misma vista, pero en el lado: RuntimeError: IPC llamada falló
hacer algo mal
Un buen tutorial sobre cómo trabajar con los datos y un poco de MO si hay algo que no sabías pero que has olvidado. Incluyendo un consejo sobre cómo dejar de pensar que Python es retrasado.
https://jakevdp.github.io/PythonDataScienceHandbook/
Aquí está el informe en Python 3.8
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 ... 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:\servidores\\\\labor\AppData\Local\\\\Temp\pip-install-283aremb\\MetaTrader5\\\setup.py'"'"'; __file__='"'"'C:\\Users\\labor\\AppData\\Local\\Temp\\pip-install-283aremb\\MetaTrader5\\setup.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-t10_91ai\install-record.txt' --single-version-externally-managed --compile
cwd: C:\NUsuarios-trabajo-aplicación-datos-local-tiempo-pip-install-283aremb\NMetaTrader5
Salida completa (16 líneas):
instalación en marcha
construcción en marcha
ejecutando build_py
creación de la construcción
creando build\lib.win-amd64-3.8
creando build\lib.win-amd64-3.8\MetaTrader5
copiando MetaTrader5\__init__.py -> build\lib.win-amd64-3.8\MetaTrader5
ejecutando build_ext
construir la extensión 'MetaTrader5.C'
creando build/temp.win-amd64-3.8
creando build/temp.win-amd64-3.8/Release
creando build\temp.win-amd64-3.8\release\src
creando build\temp.win-amd64-3.8\\Nrelease\Nsrc\NInterprocess
creando el build\temp.win-amd64-3.8\\Nde la versión\Nde los conectores
cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DUNICODE -Isrc -Ic:\python38\include -Ic:\python38\include /EHsc /Tpsrc/MetaTrader.cpp /Fobuild\temp.win-amd64-3.8\Release\src/MetaTrader.obj
error: el comando 'cl.exe' ha fallado: no existe tal archivo o directorio
----------------------------------------
ERROR: El comando dio un error con estado de salida 1: 'c:\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'''C:\NUsers\Nlabor\NAppData\NLocal\NTemp\Ninstalar-283aremb\NMetaTrader5\Nsetup.py'''; __file__=''''C:\NUsers\Nlabor\NAppData\NLocal\NTemp\Ninstalar-283aremb\NMetaTrader5\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-t10_91ai\install-record.txt' --single-version-externally-managed --compile Compruebe los registros para la salida completa del comando.
Aquí está el informe en Python 3.7.2
Creé un proyecto en JreBrains IDE bajo Python 3.7.2. Cargué el archivo de prueba metatrader5-test.py y obtuve el mismo resultado:
C:\NUsers\labor\NAnaconda3\envs\metatrader5\python.exe C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py
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)
[2, 'Exness-MT5Real', '0000000'] # los ceros cierran el código real
RuntimeError: Fallo en la llamada IPC
[500, 2174, '11 oct 2019']
Proceso finalizado con código de salida 1
Nota: localhost en Opciones -> Asesores Expertos añadido. No funciona.
Tropieza con :
ticks1= MT5CopyTicksFrom("EURAUD", datetime(2019,1,28,13),10000, MT5_COPY_TICKS_ALL)
...
RuntimeError: Fallo en la llamada IPC
Ruta de acceso a la terminal a través de r (raw). El propio terminal se detecta, por supuesto.
Aquí está el informe en Python 3.8
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 ... 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:\servidores\\\\labor\AppData\Local\\\\Temp\pip-install-283aremb\\MetaTrader5\\\setup.py''; __file__='''''C:\N-Universitarios-abor-AppData\NLocal\NTemp\N-instalar-283aremb\NMetaTrader5\Nconfiguración.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-t10_91ai\install-record.txt' --single-version-externally-managed --compile
cwd: C:\NUsuarios-trabajo-aplicación-datos-local-tiempo-pip-install-283aremb\NMetaTrader5
Salida completa (16 líneas):
instalación en marcha
construcción en marcha
ejecutando build_py
creación de la construcción
creando build\lib.win-amd64-3.8
creando build\lib.win-amd64-3.8\MetaTrader5
copiando MetaTrader5\__init__.py -> build\lib.win-amd64-3.8\MetaTrader5
ejecutando build_ext
construir la extensión 'MetaTrader5.C'
creando build/temp.win-amd64-3.8
creando build/temp.win-amd64-3.8/Release
creando build\temp.win-amd64-3.8\release\src
creando build\temp.win-amd64-3.8\\Nrelease\Nsrc\NInterprocess
creando el build\temp.win-amd64-3.8\\Nde la versión\Nde los conectores
cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DUNICODE -Isrc -Ic:\python38\include -Ic:\python38\include /EHsc /Tpsrc/MetaTrader.cpp /Fobuild\temp.win-amd64-3.8\Release\src/MetaTrader.obj
error: el comando 'cl.exe' ha fallado: no existe tal archivo o directorio
----------------------------------------
ERROR: El comando dio un error con el estado de salida 1: 'c:\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'''C:\NUsers\Nlabor\NAppData\NLocal\NTemp\Ninstalar-283aremb\NMetaTrader5\Nsetup.py'''; __file__=''''C:\NUsers\Nlabor\NAppData\NLocal\NTemp\Ninstalar-283aremb\NMetaTrader5\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-t10_91ai\install-record.txt' --single-version-externally-managed --compile Compruebe los registros para la salida completa del comando.
Aquí está el informe en Python 3.7.2
Creé un proyecto en JreBrains IDE bajo Python 3.7.2. Cargué el archivo de prueba metatrader5-test.py y obtuve el mismo resultado:
C:\NUsers\labor\NAnaconda3\envs\metatrader5\python.exe C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py
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)
[2, 'Exness-MT5Real', '0000000'] # los ceros cierran el código real
RuntimeError: Fallo en la llamada IPC
[500, 2174, '11 oct 2019']
Proceso finalizado con código de salida 1
Nota: localhost en Opciones -> Asesores Expertos añadido. No funciona.
En el primer caso creo que necesito algún compilador para construir el paquete. Mb los desarrolladores responderán. Tengo todo funcionando en 3.7
Cuando esto ocurre, ¿funciona el terminal, es decir, no se congela (por ejemplo, el menú funciona)?
En el primer caso necesitas algún tipo de compilador, entiendo, para construir el paquete. Mb los desarrolladores responderán. Tengo todo funcionando en 3.7
¿Y cómo compilarlo, si no hay Git de este paquete, ni fuentes?
Se autocompila cuando el paquete se instala en tu ordenador, para ello necesitas instalar algún compilador cis, por ejemplo cL.exe como dice en los registros. El proceso no puede encontrarlo contigo
Descargado VC_redist.x64.exe. No he tenido suerte hasta ahora y estoy seguro de que no debería hacerlo, es cosa del desarrollador, ¿no? 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:
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 ... 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:\sers\\\\labor\AppData\Local\\\\Temp\pip-install-d68bdu0o\MetaTrader5\\setup.py'"'"'; __file__='"'"'C:\\Users\\labor\\AppData\\Local\\Temp\\pip-install-d68bdu0o\\MetaTrader5\\setup.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-mt16672p\install-record.txt' --single-version-externally-managed --compile
cwd: C:\NUsuarios-trabajo-aplicación-datos-local-tiempo-pip-instalación-d68bdu0o\NMetaTrader5
Salida completa (16 líneas):
instalación en marcha
construcción en marcha
ejecutando build_py
creación de la construcción
creando build\lib.win-amd64-3.8
creando build\lib.win-amd64-3.8\MetaTrader5
copiando MetaTrader5\__init__.py -> build\lib.win-amd64-3.8\MetaTrader5
ejecutando build_ext
construir la extensión 'MetaTrader5.C'
creando build/temp.win-amd64-3.8
creando build/temp.win-amd64-3.8/Release
creando build\temp.win-amd64-3.8\release\src
creando build\temp.win-amd64-3.8\\Nrelease\Nsrc\NInterprocess
creando el build\temp.win-amd64-3.8\\Nde la versión\Nde los conectores
cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DUNICODE -Isrc -Ic:\python38\include -Ic:\python38\include /EHsc /Tpsrc/MetaTrader.cpp /Fobuild\temp.win-amd64-3.8\Release\src/MetaTrader.obj
error: el comando 'cl.exe' ha fallado: no existe tal archivo o directorio
----------------------------------------
ERROR: El comando dio un error con el estado de salida 1: 'c:\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'''C:\NUsers\Nlabor\NAppData\NLocal\NTemp\Ninstalar-d68bdu0o\NMetaTrader5\\Nsetup.py'''; __file__=''''C:\NUsers\Nlabor\NAppData\NLocal\NTemp\Ninstalar-d68bdu0o\NMetaTrader5\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-mt16672p\install-record.txt' --single-version-externally-managed --compile Compruebe los registros para la salida completa del comando.
Descargado VC_redist.x64.exe. No he tenido suerte hasta ahora y estoy seguro de que no debería hacer esto - depende del desarrollador, ¿no?
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 ... 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:\sers\\\\labor\AppData\Local\\\\Temp\pip-install-d68bdu0o\MetaTrader5\\setup.py''; __file__=''''C:\N-Universitarios-trabajadores-AppData-Local-Universitario-instalar-d68bdu0o\NMetaTrader5\N-setup.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-mt16672p\install-record.txt' --single-version-externally-managed --compile
cwd: C:\NUsuarios-trabajo-aplicación-datos-local-tiempo-pip-instalación-d68bdu0o\NMetaTrader5
Salida completa (16 líneas):
instalación en marcha
construcción en marcha
ejecutando build_py
creación de la construcción
creando build\lib.win-amd64-3.8
creando build\lib.win-amd64-3.8\MetaTrader5
copiando MetaTrader5\__init__.py -> build\lib.win-amd64-3.8\MetaTrader5
ejecutando build_ext
construir la extensión 'MetaTrader5.C'
creando build/temp.win-amd64-3.8
creando build/temp.win-amd64-3.8/Release
creando build\temp.win-amd64-3.8\release\src
creando build\temp.win-amd64-3.8\\Nrelease\Nsrc\NInterprocess
creando el build\temp.win-amd64-3.8\\Nde la versión\Nde los conectores
cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DUNICODE -Isrc -Ic:\python38\include -Ic:\python38\include /EHsc /Tpsrc/MetaTrader.cpp /Fobuild\temp.win-amd64-3.8\Release\src/MetaTrader.obj
error: el comando 'cl.exe' ha fallado: no existe tal archivo o directorio
----------------------------------------
ERROR: El comando dio un error con el estado de salida 1: 'c:\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'''C:\NUsers\Nlabor\NAppData\NLocal\NTemp\Ninstalar-d68bdu0o\NMetaTrader5\\Nsetup.py'''; __file__=''''C:\NUsers\Nlabor\NAppData\NLocal\NTemp\Ninstalar-d68bdu0o\NMetaTrader5\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-mt16672p\install-record.txt' --single-version-externally-managed --compile Compruebe los registros para la salida completa del comando.
Creo que eso es lo que le faltaba a las herramientas de construcción de Microsoft, eso es lo que escriben:
https://stackoverflow.com/questions/41724445/python-pip-on-windows-command-cl-exe-failed
es decir, añadir cl.exe al PATH, o abrir una línea de comandos desde la carpeta donde está instalado y pip install metatrader5 desde allí
los desarrolladores no tienen que hacerlo, el sistema simplemente no ve el compilador
Las herramientas de construcción de Microsoft parecían ser exactamente lo que faltaba, esto es lo que dicen:
https://stackoverflow.com/questions/41724445/python-pip-on-windows-command-cl-exe-failed
es decir, añadir cl.exe al PATH, o abrir una línea de comandos desde la carpeta donde está instalado, y pip install metatrader5 desde allí
Los desarrolladores no tienen que hacerlo, el sistema simplemente no ve el compilador.
Al menos debería 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