MetaTrader 5 Python User Group - Come usare Python in Metatrader - pagina 19
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
1. Originariamente avevo installato Python 3.7.2. Ho installato il tuo pacchetto e la shell di comando e il blocco note Jupyter mi danno lo stesso errore: RuntimeError: IPC call failed
2. Ho rippato Python 3.7.2, installato Python 3.8, ma la stessa storia - non si installa in Python 3.8
3. Installato Anaconda Python, in particolare creato un ambiente virtuale per Python 3.7.2 e provato a pip il tuo pacchetto ed eseguire un esempio - stessa vista, ma sul lato: RuntimeError: IPC call failed
fare qualcosa di sbagliato
Un buon tutorial su come lavorare con i dati e un po' di MO se c'è qualcosa che non sapevate, ma che avete dimenticato. Incluso un consiglio su come smettere di pensare che python sia ritardato.
https://jakevdp.github.io/PythonDataScienceHandbook/
Ecco il rapporto in Python 3.8
C:\Users\labor>pip install MetaTrader5
Raccolta di MetaTrader5
Using cached https://files.pythonhosted.org/packages/3c/c8/713f1b8283cbbdef30dc9cf50a5d767f9b4a194eb4f886a8e50074b696a1/MetaTrader5-5.0.6.tar.gz
Installazione dei pacchetti raccolti: MetaTrader5
Esecuzione di setup.py install per MetaTrader5 ... errore
ERROR: Il comando è andato in errore con lo stato di uscita 1:
comando: 'c:\python38\python.exe' -u -c'import sys, setuptools, tokenize; sys.argv[0] = '"'''C:\Users\\\\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:-Users\labor\AppData\Local\Temp\pip-record-t10_91ai\install-record.txt'' --single-version-externally-managed --compile
cwd: C:\Users\labor\AppData\Local\Temp\pip-install-283aremb\MetaTrader5\
Uscita completa (16 linee):
installazione in corso
costruzione in corso
eseguire build_py
creare la costruzione
creando buildlib.win-amd64-3.8
creando buildlib.win-amd64-3.8\MetaTrader5
copiare MetaTrader5\__init__.py -> build\lib.win-amd64-3.8\MetaTrader5
eseguire build_ext
costruire l'estensione 'MetaTrader5.C
creando build/temp.win-amd64-3.8
creando build/temp.win-amd64-3.8/Release
creare build\temp.win-amd64-3.8\release\src
creare build\temp.win-amd64-3.8\Release\src\Interprocess
creando build\temp.win-amd64-3.8\Release\src\Connector
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
errore: comando 'cl.exe' fallito: No such file or directory
----------------------------------------
ERROR: Il comando è fallito con lo stato di uscita 1: 'c:\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '''C:\Users\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:-Users\labor\AppData\Local\Temp\pip-record-t10_91ai\install-record.txt'' --single-version-externally-managed --compile Controllare i log per l'output completo del comando.
Ecco il rapporto in Python 3.7.2
Ho creato un progetto in JreBrains IDE sotto Python 3.7.2. Ho caricato il file di test metatrader5-test.py e ho ottenuto lo stesso risultato:
C:\Users\labor\Anaconda3\envs\metatrader5\python.exe C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py
Traceback (ultima chiamata più recente):
File "C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py", linea 10, in <module>
ticks1 = MT5CopyTicksFrom('EURAUD', datetime(2019,1,28,13), 10000, MT5_COPY_TICKS_ALL)
[2, 'Exness-MT5Real', '0000000'] # gli zeri chiudono il codice reale
RuntimeError: chiamata IPC fallita
[500, 2174, '11 ott 2019']
Processo terminato con codice di uscita 1
Nota: localhost in Opzioni -> Consiglieri esperti aggiunto. Non funziona.
Inciampa su :
ticks1= MT5CopyTicksFrom("EURAUD", datetime(2019,1,28,13),10000, MT5_COPY_TICKS_ALL)
...
RuntimeError: chiamata IPC fallita
Percorso verso il terminale attraverso r (raw). Il terminale stesso viene rilevato, ovviamente.
Ecco il rapporto in Python 3.8
C:\Users\labor>pip install MetaTrader5
Raccolta di MetaTrader5
Using cached https://files.pythonhosted.org/packages/3c/c8/713f1b8283cbbdef30dc9cf50a5d767f9b4a194eb4f886a8e50074b696a1/MetaTrader5-5.0.6.tar.gz
Installazione dei pacchetti raccolti: MetaTrader5
Esecuzione di setup.py install per MetaTrader5 ... errore
ERROR: Il comando è andato in errore con lo stato di uscita 1:
comando: 'c:\python38\python.exe' -u -c'import sys, setuptools, tokenize; sys.argv[0] = '"'''C:\Users\\\\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:-Users\labor\AppData\Local\Temp\pip-record-t10_91ai\install-record.txt'' --single-version-externally-managed --compile
cwd: C:\Users\labor\AppData\Local\Temp\pip-install-283aremb\MetaTrader5\
Uscita completa (16 linee):
installazione in corso
costruzione in corso
eseguire build_py
creare la costruzione
creando buildlib.win-amd64-3.8
creando buildlib.win-amd64-3.8\MetaTrader5
copiare MetaTrader5\__init__.py -> build\lib.win-amd64-3.8\MetaTrader5
eseguire build_ext
costruire l'estensione 'MetaTrader5.C
creando build/temp.win-amd64-3.8
creando build/temp.win-amd64-3.8/Release
creare build\temp.win-amd64-3.8\release\src
creando build\temp.win-amd64-3.8\Release\src\Interprocess
creando build\temp.win-amd64-3.8\Release\src\Connector
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
errore: comando 'cl.exe' fallito: No such file or directory
----------------------------------------
ERROR: Il comando è fallito con lo stato di uscita 1: 'c:\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '''C:\Users\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:-Users\labor\AppData\Local\Temp\pip-record-t10_91ai\install-record.txt'' --single-version-externally-managed --compile Controllare i log per l'output completo del comando.
Ecco il rapporto in Python 3.7.2
Ho creato un progetto in JreBrains IDE sotto Python 3.7.2. Ho caricato il file di test metatrader5-test.py e ho ottenuto lo stesso risultato:
C:\Users\labor\Anaconda3\envs\metatrader5\python.exe C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py
Traceback (ultima chiamata più recente):
File "C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py", linea 10, in <module>
ticks1 = MT5CopyTicksFrom('EURAUD', datetime(2019,1,28,13), 10000, MT5_COPY_TICKS_ALL)
[2, 'Exness-MT5Real', '0000000'] # gli zeri chiudono il codice reale
RuntimeError: chiamata IPC fallita
[500, 2174, '11 ott 2019']
Processo terminato con codice di uscita 1
Nota: localhost in Opzioni -> Consiglieri esperti aggiunto. Non funziona.
Nel primo caso penso di aver bisogno di qualche compilatore per costruire il pacchetto. Mb gli sviluppatori risponderanno. Ho tutto funzionante su 3.7
Quando questo accade il terminale funziona, cioè non è congelato (ad esempio il menu funziona)?
Nel primo caso avete bisogno di un qualche tipo di compilatore, mi sembra di capire, per costruire il pacchetto. Mb gli sviluppatori risponderanno. Ho tutto funzionante su 3.7
E come compilarlo, se non c'è nessun Git di questo pacchetto, nessun sorgente?
Si compila da solo quando il pacchetto è installato sul tuo computer, per questo hai bisogno di installare qualche compilatore cis, ad esempio cL.exe come dice nei log. Il processo non può trovarlo con te
Scaricato VC_redist.x64.exe. Nessuna fortuna finora e sono sicuro che non dovrei farlo - è compito dello sviluppatore, no? Come minimo dovrebbe esserci una documentazione dettagliata che tenga conto di tutti i casi. Universum non è così grande - solo 3 rami di sistemi operativi - Win/Linux/MacOS:
C:\Users\labor>pip install MetaTrader5
Raccolta di MetaTrader5
Using cached https://files.pythonhosted.org/packages/3c/c8/713f1b8283cbbdef30dc9cf50a5d767f9b4a194eb4f886a8e50074b696a1/MetaTrader5-5.0.6.tar.gz
Installazione dei pacchetti raccolti: MetaTrader5
Esecuzione di setup.py install per MetaTrader5 ... errore
ERROR: Il comando è andato in errore con lo stato di uscita 1:
comando: 'c:\python38\python.exe' -u -c'import sys, setuptools, tokenize; sys.argv[0] = '"'''C:\Users\\\\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:-Users\labor\AppData\Local\Temp\pip-record-mt16672p\install-record.txt'' --single-version-externally-managed --compile
cwd: C:\Users\labor\AppData\Local\Temp\pip-install-d68bdu0o\MetaTrader5\
Uscita completa (16 linee):
installazione in corso
costruzione in corso
eseguire build_py
creare la costruzione
creando buildlib.win-amd64-3.8
creando buildlib.win-amd64-3.8\MetaTrader5
copiare MetaTrader5\__init__.py -> build\lib.win-amd64-3.8\MetaTrader5
eseguire build_ext
costruire l'estensione 'MetaTrader5.C
creando build/temp.win-amd64-3.8
creando build/temp.win-amd64-3.8/Release
creare build\temp.win-amd64-3.8\release\src
creando build\temp.win-amd64-3.8\Release\src\Interprocess
creando build\temp.win-amd64-3.8\Release\src\Connector
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
errore: comando 'cl.exe' fallito: No such file or directory
----------------------------------------
ERROR: Il comando è fallito con lo stato di uscita 1: 'c:\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '''C:\Users\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:-Users\labor\AppData\Local\Temp\pip-record-mt16672p\install-record.txt'' --single-version-externally-managed --compile Controllare i log per l'output completo del comando.
Scaricato VC_redist.x64.exe. Nessuna fortuna finora e sono sicuro che non dovrei farlo - è compito dello sviluppatore, no?
C:\Users\labor>pip install MetaTrader5
Raccolta di MetaTrader5
Using cached https://files.pythonhosted.org/packages/3c/c8/713f1b8283cbbdef30dc9cf50a5d767f9b4a194eb4f886a8e50074b696a1/MetaTrader5-5.0.6.tar.gz
Installazione dei pacchetti raccolti: MetaTrader5
Esecuzione di setup.py install per MetaTrader5 ... errore
ERROR: Il comando è andato in errore con lo stato di uscita 1:
comando: 'c:\python38\python.exe' -u -c'import sys, setuptools, tokenize; sys.argv[0] = '"'''C:\Users\\\\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:-Users\labor\AppData\Local\Temp\pip-record-mt16672p\install-record.txt'' --single-version-externally-managed --compile
cwd: C:\Users\labor\AppData\Local\Temp\pip-install-d68bdu0o\MetaTrader5\
Uscita completa (16 linee):
installazione in corso
costruzione in corso
eseguire build_py
creare la costruzione
creando buildlib.win-amd64-3.8
creando buildlib.win-amd64-3.8\MetaTrader5
copiare MetaTrader5\__init__.py -> build\lib.win-amd64-3.8\MetaTrader5
eseguire build_ext
costruire l'estensione 'MetaTrader5.C
creando build/temp.win-amd64-3.8
creando build/temp.win-amd64-3.8/Release
creare build\temp.win-amd64-3.8\release\src
creando build\temp.win-amd64-3.8\Release\src\Interprocess
creando build\temp.win-amd64-3.8\Release\src\Connector
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
errore: comando 'cl.exe' fallito: No such file or directory
----------------------------------------
ERROR: Il comando è fallito con lo stato di uscita 1: 'c:\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '''C:\Users\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:-Users\labor\AppData\Local\Temp\pip-record-mt16672p\install-record.txt'' --single-version-externally-managed --compile Controllare i log per l'output completo del comando.
Credo che questo sia ciò che mancava agli strumenti di build di Microsoft, è ciò che scrivono:
https://stackoverflow.com/questions/41724445/python-pip-on-windows-command-cl-exe-failed
cioè aggiungere cl.exe al PATH, o aprire una linea di comando dalla cartella in cui è installato e pip installare metatrader5 da lì
gli sviluppatori non devono farlo, il sistema semplicemente non vede il compilatore
Gli strumenti di costruzione di Microsoft sembravano essere esattamente ciò che mancava, questo è ciò che dicono:
https://stackoverflow.com/questions/41724445/python-pip-on-windows-command-cl-exe-failed
cioè aggiungere cl.exe al PATH, o aprire una linea di comando dalla cartella dove è installato, e pip installare metatrader5 da lì
Gli sviluppatori non devono farlo, il sistema semplicemente non vede il compilatore.
Almeno dovrebbe esserci una documentazione dettagliata che tenga conto di tutti i casi. Universum non è così grande - solo 3 rami di sistemi operativi - Win/Linux/MacOS.
Installati gli strumenti di build di Microsoft da https://visualstudio.microsoft.com/ru/downloads/?rr=https%3A%2F%2Fwww.google.com%2F. Il pacchetto è ora installato in Python 3.8. Questo problema è RISOLTO.
C:\Users\labor>pip install MetaTrader5
Raccolta di MetaTrader5
Using cached https://files.pythonhosted.org/packages/3c/c8/713f1b8283cbbdef30dc9cf50a5d767f9b4a194eb4f886a8e50074b696a1/MetaTrader5-5.0.6.tar.gz
Installazione dei pacchetti raccolti: MetaTrader5
Esecuzione di setup.py install per MetaTrader5 ... fatto
MetaTrader5-5.0.6 installato con successo
MA! RuntimeError: chiamata IPC fallita:
C:\Users\labor>C:\Users\labor\Anaconda3\envs\metatrader5\python.exe C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py
[2, 'Exness-MT5Real', '0000000'] # il codice è azzerato nella stampa
[500, 2174, '11 ott 2019']
Traceback (ultima chiamata più recente):
File "C:/Users/labor/Downloads/MetaTrader5-Python/metatrader5-test.py", linea 10, in <module>
ticks1 = MT5CopyTicksFrom("EURAUD", datetime(2019,1,28,13), 10000, MT5_COPY_TICKS_ALL)
RuntimeError: chiamata IPC fallita