MetaTrader 5 Python User Group - Comment utiliser Python dans Metatrader - page 20
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
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
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.
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
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 :
Publication d'une version mise à jour de MetaTrader 5.0.7 pour Python.
Vous pouvez le mettre à jour comme ceci :
Des changements ?
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.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
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.
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.