MetaTrader 5 Python User Group - Come usare Python in Metatrader - pagina 20

 
capissimo:

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.

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

Lo stesso errore si verifica quando non c'è tale simbolo sul conto in mt5. Per esempio, EURPLN non è nel terminale


 
capissimo:
Il terminale funziona come dovrebbe.

Si prega di connettersi al server MetaQuotes-Demo, selezionare Help -> Check Desktop Updates -> Latest Beta Build, attendere l'aggiornamento. La build dovrebbe essere più vecchia o uguale alla 2174. Prova ad eseguire il tuo script su questo server e riporta il risultato.


PS. Inoltre, assicuratevi di avere un conto aperto nel terminale, MT5TerminalInfo() restituisce valori ragionevoli e MT5WaitForTerminal() restituisce True.

 
Maxim Dmitrievsky:

Lo stesso errore si verifica quando non c'è tale simbolo sul conto in mt5. Per esempio, EURPLN non è nel terminale


Ne ho tenuto conto fin dall'inizio - ho cambiato il codice per adattarlo alle mie risorse, non funziona
 
Almaz:

Si prega di connettersi al server MetaQuotes-Demo, selezionare Help -> Check Desktop Updates -> Latest Beta Build, attendere l'aggiornamento. La build dovrebbe essere più vecchia o uguale alla 2174. Prova ad eseguire il tuo script su questo server e riporta il risultato.


PS. Inoltre, assicuratevi di avere un conto aperto nel terminale, MT5TerminalInfo() restituisce valori ragionevoli e MT5WaitForTerminal() restituisce True.

L'account è aperto, il terminale funziona, e il pacchetto mi restituisce la password ecc. ([2, 'Exness-MT5Real', '0000000'] , nota: la password è bloccata), ma si verifica un errore nella fase di estrazione dei dati.

Stessa merda in Anaconda Python (ho tolto Python 3.8 e installato una distribuzione Anaconda fresca che usa una delle versioni di Python 3.7 e ci ho messo dentro la tua MetaTrader5):

File "C:\Users\labor\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", linea 110, in execfile

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

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

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

RuntimeError: chiamata IPC fallita

Come potete vedere, inciampa suMT5CopyRatesFrom durante qualche operazione di file.
 

Rilasciata una versione aggiornata di MetaTrader 5.0.7 per Python.

Potete aggiornare come segue:

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

Rilasciata una versione aggiornata di MetaTrader 5.0.7 per Python.

Potete aggiornarlo in questo modo:

qualche cambiamento?

 
Maxim Dmitrievsky:

qualche cambiamento?

Passare da risultati vero/falso a codici numerici dettagliati.

Modalità migliorate di attesa della disponibilità dei dati dal terminale.
 
Almaz:

Si prega di connettersi al server MetaQuotes-Demo, selezionare Help -> Check Desktop Updates -> Latest Beta Build, attendere l'aggiornamento. La build dovrebbe essere più vecchia o uguale alla 2174. Prova ad eseguire il tuo script su questo server e riporta il risultato.


PS. Inoltre, assicuratevi di avere un conto aperto nel terminale, MT5TerminalInfo() restituisce valori ragionevoli e MT5WaitForTerminal() restituisce True.

Il mio terminale ha la build 2190; il terminale ha lo stesso strumento richiesto nello script. Lo script restituisce il mio nome di broker e il mio codice commerciale:[2, 'Exness-MT5Real', '*******'].

Dopo che l'errore di aggiornamento del pacchetto si verifica sulla stessa linea di codice, il messaggio di errore è cambiato: RuntimeError: Terminal: Call failed

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

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

[500, 2190, '18 ottobre 2019]

Traceback (ultima chiamata più recente):

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

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

RuntimeError: Terminale: chiamata fallita

 
capissimo:

Il mio terminale ha la build 2190; il terminale ha lo stesso strumento richiesto nello script. Lo script restituisce il mio nome di broker e il mio codice commerciale: [2, 'Exness-MT5Real', '*******'].

Fai l'aggiornamento al pacchetto python di MetaTrader 5.0.7 e allega i risultati, per favore.

 
MetaQuotes Software Corp.:

Fai l'aggiornamento al pacchetto python di MetaTrader 5.0.7 e allega i risultati, per favore.

1) Uso Anaconda Python 3.7.4 e lavoro in un ambiente di base virtuale. A proposito, per quale versione di Python è disponibile il pacchetto MetaTrader 5.0.7?

2) Ho installato di nuovo Python 3.8 su tua richiesta, ho aggiornato il pip e già nella fase di installazione di matplotlib ottengo questo (vedi tutto il PROTOCOLLO nel fiocco):

Microsoft Windows [Versione 10.0.17134.1069]. Porca miseria...

(c) Microsoft Corporation, 2018. Tutti i diritti riservati.

C:\Users\labor>pip install matplotlib

Raccogliere matplotlib

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

Requisito già soddisfatto: cycler>=0.10 in c:\python38\lib\site-packages (da matplotlib) (0.10.0)

Requisito già soddisfatto: kiwisolver>=1.0.1 in c:\python38\lib\site-packages (da matplotlib) (1.1.0)

Requisito già soddisfatto: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in c:\python38\lib\site-packages (da matplotlib) (2.4.2)

Requisito già soddisfatto: python-dateutil>=2.1 in c:\python38\lib\site-packages (da matplotlib) (2.8.0)

Requisito già soddisfatto: numpy>=1.11 in c:\python38\lib\site-packages (da matplotlib) (1.17.3)

Requisito già soddisfatto: sei in c:\python38\lib\site-packages (da cycler>=0.10->matplotlib) (1.12.0)

Requisito già soddisfatto: setuptools in c:\python38\lib\site-packages (da kiwisolver>=1.0.1->matplotlib) (41.2.0)

Installazione dei pacchetti raccolti: matplotlib

Esecuzione di setup.py install per matplotlib ... 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-unwrm6r5\matplotlib\setup.py'''; __file__=''''C:\Users\labor\AppData\Local\Temp\pip-install-unwrm6r5\matplotlib\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-ly12rvmr\install-record.txt'' --single-version-externally-managed --compile

............. continua nel file

3) Installato matplotlib usando http://www.lfd.uci.edu/~gohlke/pythonlibs/, installato pytz e il tuo pacchetto come standard. Ho lo stesso errore: RuntimeError: Terminal: Call failed. Vedi punto 2.

File:
6ww6n.zip  7 kb
report.zip  2 kb