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

 
MetaQuotes:

La prochaine version bêta sera disponible ce soir :

https://www.mql5.com/en/forum/306742/page16#comment_16148685

MetaTrader 5 Python User Group - the summary
MetaTrader 5 Python User Group - the summary
  • 2020.04.24
  • www.mql5.com
The Main Study MetaTrader module for integration with Python - documentation Python Releases for Windows - website MetaTrader5 : Python Package...
 
Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite
Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite
  • 2020.05.03
  • www.mql5.com
В пятницу 6 марта 2020 года будет выпущена обновленная версия платформы MetaTrader 5...
 
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 fais la connexion avec le login et le mot de passe et un serveur au compte démo du broker par mt5.initialize
Документация по MQL5: Интеграция / MetaTrader для Python
Документация по MQL5: Интеграция / MetaTrader для Python
  • www.mql5.com
Python является современным высокоуровневым языком программирования для разработки сценариев и приложений. Содержит множество библиотек для машинного обучения, автоматизации процессов, анализа и визуализации данных. Пакет MetaTrader для Python предназначен для...
 
Lol Kek:
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.
Vérifier ce qui est retourné dans mt5.last_error() après l'appel de la fonction travaillant avec DAX30
 

# 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')
 
Lol Kek:

# 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.

 
Renat Fatkhullin:

Ê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.

 
Lol Kek:

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.

Lol Kek:

# 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. C'est la bonne erreur que vous obtenez.
 
Dmitriy Skub:
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

================================================== 140,9 MiB 140,9 MiB def vel (symbol, lookback, lookforward, start_date, end_date, quantile_size) : 166,5 MiB 25,7 MiB ticks = pd.DataFrame (mt5.copy_ticks_range (symbol, datetime (start_date.year, start_date.month, start_date.day), ...