MetaTrader 5 Python User Group - Comment utiliser Python dans Metatrader - page 63
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
La prochaine version bêta sera disponible ce soir :
https://www.mql5.com/en/forum/306742/page16#comment_16148685
J'ai essayé d'exécuter le script de démarrage - tout fonctionne, imprime un tableau de données sur les paires de transactions de l'exemple, exécute une fenêtre sur laquelle il dessine le graphique.
Mais j'ai essayé de remplacer "EURAUD" par "DAX30", par exemple - après avoir exécuté le script, il est indiqué "Failed to select DAX30" (échec de la sélection du DAX30).
Veuillez me dire quel est le problème ? Version du terminal 2402
Je fais la connexion avec le login et le mot de passe et un serveur au compte démo du broker par mt5.initialize
https://www.mql5.com/ru/docs/integration/python_metatrader5
J'ai essayé d'exécuter le script de démarrage - tout fonctionne, imprime un tableau de données sur les paires de transactions de l'exemple, exécute une fenêtre sur laquelle il dessine le graphique.
Mais j'ai essayé de remplacer "EURAUD" par "DAX30", par exemple - après avoir exécuté le script, il est indiqué "Failed to select DAX30" (échec de la sélection du DAX30).
Veuillez me dire quel est le problème ? Version du terminal 2402
Je me connecte avec un mot de passe et un serveur au compte de démonstration de mon courtier via mt5.initialize.
# essayons d'activer l'affichage du symbole DAX30 dans MarketWatch
selected = mt5.symbol_select("DAX30", True)
if not selected :
print("initialize() failed, error code = ", mt5 .last_error())
mt5 .shutdown()
quit()
voici l'erreur (-1, 'Terminal : Call failed')
# essayons d'activer le symbole DAX30 dans MarketWatch
selected = mt5.symbol_select("DAX30", True)
Si elle n'est pas sélectionnée :
print("initialize() failed, error code = ", mt5 .last_error())
mt5 .shutdown()
quitter()
Voici l'erreur (-1, 'Terminal : Call failed')
Êtes-vous sûr d'avoir le symbole DAX30 dans votre compte de trading ?
Montrez une capture d'écran de l'aperçu du marché avec ce symbole sur votre compte de trading, s'il vous plaît.
Êtes-vous sûr d'avoir le symbole DAX30 dans votre compte de trading ?
Montrez une capture d'écran de l'aperçu du marché avec ce symbole sur votre compte de trading, s'il vous plaît.
***
Je prends ce code -https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5copyratesrange_py, je l'initialise en le connectant à mon compte de démonstration. Si je l'exécute avec USDJPY de l'exemple - tout est OK, il affiche un tableau. Si je le change en DAX30
Pour les tarifs dans les tarifs :
TypeError : L'objet 'NoneType' n'est pas itérable.
https://prnt.sc/sbapam
Je prends ce code et je l'initialise en le connectant à mon compte de démonstration. Si je l'exécute avec USDJPY de l'exemple - tout est OK, il affiche un tableau. Si je le change en DAX30
Pour les tarifs dans les tarifs :
TypeError : L'objet 'NoneType' n'est pas itérable.
# essayons d'activer l'affichage du symbole DAX30 dans MarketWatch
selected = mt5.symbol_select("DAX30", True)
si elle n'est pas sélectionnée :
print("initialize() failed, error code = ", mt5 .last_error())
mt5 .shutdown()
quitter()
erreur comme celle-ci (-1, 'Terminal : Call failed')
Vous avez Dax30 entre crochets. L'erreur que l'on vous donne est correcte.
Ugh, je n'ai jamais fait attention à ça, merci.
Et merci aux développeurs pour l'opportunité de transférer la logique vers un langage tiers, plus précisément Python.
J'essaierai de fournir un retour d'information ici au fur et à mesure que la logique est analysée et mise en œuvre.
Bonjour à tous,
J'espère que vous ne voyez pas d'inconvénient à ce qu'un Anglais vienne ici. Je cherche des conseils après avoir passé beaucoup de temps à chercher sur le Web sans succès.
J'utilise la bibliothèque Python de MetaTrader5 après m'être inspiré des articles de Maxiums. J'ai remarqué un problème de gestion de la mémoire.
Lorsque je crée un Dataframe en utilisant la librairie mt5, le Dataframe résultant fonctionne comme prévu. Je l'ai fait dans une fonction qui collecte les ticks et effectue ensuite diverses analyses avant de sortir le df manipulé.
Cependant, si je réexécute la fonction qui crée le DataFrame, j'ai remarqué que la mémoire continue de s'accumuler depuis l'instance précédente.
J'obtiens le même problème en utilisant mt5.copy_ticks_range () et mt5.copy_rates_range (). Je dois réinitialiser le noyau pour effacer la mémoire.
J'obtiens le même problème même après avoir supprimé tout le code sauf la ligne créant le dataframe. Par exemple :
def vel (symbole, lookback, lookforward, start_date, end_date, quantile_size) :
ticks = pd.DataFrame (mt5.copy_ticks_range (symbol, datetime (start_date.year, start_date.month, start_date.day), datetime (end_date.year, end_date.month, end_date.day), mt5.COPY_TICKS_ALL), columns = [ 'time', 'bid', 'ask', 'last', 'volume', 'time_msc', 'flags', 'volume_real'])
Si je l'exécute plusieurs fois, l'utilisation de la mémoire augmente de 27 Mo à chaque fois :
Line # Mem usage Increment Line Contents ================================================== 126.3 MiB 126.3 MiB def vel (symbol, lookback, lookforward, start_date, end_date, quantile_size) : 153.3 MiB 26.9 MiB ticks = pd.DataFrame (mt5.copy_ticks_range (symbol, datetime (start_date.year, start_date.month, start_date.day), .
Ligne # Mem usage Increment Line Contents