MetaTrader 5 Python User Group - Comment utiliser Python dans Metatrader - page 20

 
capissimo:

Au minimum, il devrait y avoir une documentation détaillée qui prend en compte tous les cas. Universum n'est pas si grand - seulement 3 branches de systèmes d'exploitation - Win/Linux/MacOS.

Installation des outils de construction Microsoft à partir de https://visualstudio.microsoft.com/ru/downloads/?rr=https%3A%2F%2Fwww.google.com%2F. Le paquet est maintenant installé dans Python 3.8. Ce problème est résolu.

C:\Users\labor>pip install MetaTrader5

Collecte de MetaTrader5

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

Installation des paquets collectés : MetaTrader5

Exécution de setup.py install pour MetaTrader5 ... fait

MetaTrader5-5.0.6 a été installé avec succès.


MAIS ! RuntimeError : L'appel IPC a échoué :

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

[2, 'Exness-MT5Real', '0000000'] # le code est mis à zéro dans l'impression

[500, 2174, '11 Oct 2019']

Traceback (dernier appel le plus récent) :

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

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

RuntimeError : échec de l'appel IPC

La même erreur se produit lorsqu'il n'y a pas de tel symbole sur le compte dans mt5. Par exemple, EURPLN n'est pas dans le terminal


 
capissimo:
Le terminal fonctionne comme il se doit.

Veuillez vous connecter au serveur MetaQuotes-Demo, sélectionnez Aide -> Vérifier les mises à jour du bureau -> Dernière version bêta, attendez la mise à jour. La construction doit être antérieure ou égale à 2174. Essayez d'exécuter votre script sur ce serveur et rapportez le résultat.


PS. Vérifiez également que vous avez un compte ouvert dans le terminal, que MT5TerminalInfo() renvoie des valeurs raisonnables et que MT5WaitForTerminal() renvoie True.

 
Maxim Dmitrievsky:

La même erreur se produit lorsqu'il n'y a pas de tel symbole sur le compte dans mt5. Par exemple, EURPLN n'est pas dans le terminal


J'en ai tenu compte dès le début - j'ai modifié le code pour l'adapter à mes ressources, mais ça ne fonctionne pas.
 
Almaz:

Veuillez vous connecter au serveur MetaQuotes-Demo, sélectionnez Aide -> Vérifier les mises à jour du bureau -> Dernière version bêta, attendez la mise à jour. La construction doit être antérieure ou égale à 2174. Essayez d'exécuter votre script sur ce serveur et rapportez le résultat.


PS. Vérifiez également que vous avez un compte ouvert dans le terminal, que MT5TerminalInfo() renvoie des valeurs raisonnables et que MT5WaitForTerminal() renvoie True.

Le compte est ouvert, le terminal fonctionne, et le paquet me renvoie mon mot de passe, etc. ([2, 'Exness-MT5Real', '0000000'] , note : le mot de passe est verrouillé), mais une erreur se produit lors de l'extraction des données.

Même chose dans Anaconda Python (j'ai démonté Python 3.8 et installé une nouvelle distribution Anaconda qui utilise une des versions de Python 3.7 et j'y ai inséré votre MetaTrader5) :

Fichier "C:\Users\labor\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", ligne 110, dans execfile

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

Fichier "C:/Users/labor/.spyder-py3/temp.py", ligne 17, dans <module>

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

RuntimeError : échec de l'appel IPC

Comme vous pouvez le voir, il tombe surMT5CopyRatesFrom pendant une opération sur un fichier.
 

Publication d'une version mise à jour de MetaTrader 5.0.7 pour Python.

Vous pouvez mettre à jour comme suit :

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

Publication d'une version mise à jour de MetaTrader 5.0.7 pour Python.

Vous pouvez le mettre à jour comme ceci :

Des changements ?

 
Maxim Dmitrievsky:

Des changements ?

Passer de résultats vrai/faux à des codes numériques détaillés.

Amélioration des modes d'attente de la disponibilité des données du terminal.
 
Almaz:

Veuillez vous connecter au serveur MetaQuotes-Demo, sélectionnez Aide -> Vérifier les mises à jour du bureau -> Dernière version bêta, attendez la mise à jour. La construction doit être antérieure ou égale à 2174. Essayez d'exécuter votre script sur ce serveur et rapportez le résultat.


PS. Vérifiez également que vous avez un compte ouvert dans le terminal, que MT5TerminalInfo() renvoie des valeurs raisonnables et que MT5WaitForTerminal() renvoie True.

Mon terminal a la build 2190 ; le terminal a le même outil demandé dans le script. Le script renvoie mon nom de courtier et mon code de transaction :[2, 'Exness-MT5Real', '*******'].

Après que l'erreur de mise à jour du paquet se soit produite sur la même ligne de code, le message d'erreur a changé : 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 Oct 2019]

Traceback (dernier appel le plus récent) :

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

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

RuntimeError : Terminal : échec de l'appel

 
capissimo:

Mon terminal a la build 2190 ; le terminal a le même instrument demandé dans le script. Le script renvoie mon nom de courtier et mon code de transaction : [2, 'Exness-MT5Real', '*******'].

Passez au paquet python de MetaTrader 5.0.7 et joignez les résultats, s'il vous plaît.

 
MetaQuotes Software Corp.:

Passez au paquet python de MetaTrader 5.0.7 et joignez les résultats, s'il vous plaît.

1) J'utilise Anaconda Python 3.7.4 et travaille dans un environnement de base virtuel. Au fait, pour quelle version de Python le package MetaTrader 5.0.7 est-il prévu ?

2) J'ai réinstallé Python 3.8 à votre demande, mis à jour le pip et déjà à l'étape d'installation de matplotlib j'obtiens ceci (voir le PROTOCOLE complet dans l'agrafe) :

Microsoft Windows [Version 10.0.17134.1069]. Putain de merde...

(c) Microsoft Corporation, 2018. Tous droits réservés.

C:\Users\labor>pip install matplotlib

Collecte de matplotlib

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

Exigence déjà satisfaite : cycler>=0.10 dans c:\python38\lib\site-packages (de matplotlib) (0.10.0)

Exigence déjà satisfaite : kiwisolver>=1.0.1 dans c:\python38\lib\site-packages (de matplotlib) (1.1.0)

Exigence déjà satisfaite : pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in c:\python38\lib\site-packages (from matplotlib) (2.4.2)

Exigence déjà satisfaite : python-dateutil>=2.1 dans c:\python38\lib\site-packages (from matplotlib) (2.8.0)

Exigence déjà satisfaite : numpy>=1.11 dans c:\python38\lib\site-packages (from matplotlib) (1.17.3)

Exigence déjà satisfaite : six dans c:\python38\lib\site-packages (de cycler>=0.10->matplotlib) (1.12.0)

Exigence déjà satisfaite : setuptools dans c:\python38\lib\site-packages (de kiwisolver>=1.0.1->matplotlib) (41.2.0)

Installation des paquets collectés : matplotlib

Exécution de setup.py install pour matplotlib ... erreur

ERROR : La commande a échoué avec le statut de sortie 1 :

commande : 'c:\python38\python.exe' -u -c'import sys, setuptools, tokenize ; sys.argv[0] = '''''C:\Users\\\NLabor\\\NAppData\NLocal\NTemp\N-install-unwrm6r5\Nmatplotlib\Nsetup.py''' ; __file__=''''C:\NUsers\NLocal\NTemp\N-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:\Users\labor\AppData\Local\Temp\pip-record-ly12rvmr\install-record.txt' --single-version-externally-managed --compile

............. suite dans le dossier

3) Installé matplotlib en utilisant http://www.lfd.uci.edu/~gohlke/pythonlibs/, installé pytz et votre paquet en standard. J'ai obtenu la même erreur : RuntimeError : Terminal : Call failed. Voir l'agrafe 2.

Dossiers :
6ww6n.zip  7 kb
report.zip  2 kb
Raison: