import MetaTrader5 as mt5
# выведем данные о пакете MetaTrader5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
# установим подключение к терминалу MetaTrader 5if not mt5.initialize():
print("initialize() failed")
mt5.shutdown()
# подключимся к торговому счету с указанием пароля и сервера
authorized=mt5.login(25115284, password="ваш_пароль",server="MetaQuotes-Demo")
if(authorized):
# выведем данные о торговом счете
#print(mt5.account_info())
account_info=mt5.account_info()._asdict()
print(account_info)
print("Вывод каждого свойства отдельно:")
for property in account_info:
print(" ",property,"=",account_info[property])else:
print("failed to connect to trade account 25115284 with password=gqz0lbdm")
mt5.shutdown()
5.0.27 a déjà, toute séquence de structure (analogue de tuple nommé pour l'API C) ajouté la méthode _asdict()
mt5.symbol_info()._asdict() -big thnx, ce dont nous avons besoin.
history_deals_get ne semble pas être dans la séquence de structure ... heh.
deal = mt5.history_deals_get(position=order.position_id)._asdict()
AttributeError: 'tuple' object has no attribute '_asdict'
Il manque juste une construction qui donne les noms des attributs, dans l'ordre correct. Si pourhistory_deals_get_asdict() n'est pas réalisable ou contredit le concept - au moins un analogue de _fields fromcollections.namedtuple (python), nous pouvons alors tirer l'ordre correct des attributs, non pas manuellement en boucle, mais manuellement. Pour l'instant, ça donne quelque chose comme :
history_deals_get ne semble pas entrer dans la séquence de structure ... heh.
Il manque juste une construction qui donne les noms des attributs, dans l'ordre correct. Si pourhistory_deals_get_asdict() n'est pas réalisable ou contredit le concept - au moins un analogue de _fields fromcollections.namedtuple (python), nous pouvons alors tirer l'ordre correct des attributs, non pas manuellement en boucle, mais manuellement. Pour l'instant, ça donne quelque chose comme :
et la sortie :
Ou un code de nouilles avec des boucles.
history_deals_get renvoie toujours un tuple Python normal contenant une collection de transactions nommées TradeDeal. Pour que cela fonctionne, vous devez accéder à un certain index :
r = mt5.history_deals_get(position=544536443)
print(r[0]._asdict())
mt5.symbol_info()._asdict() -big thnx, ce dont nous avons besoin.
history_deals_get ne semble pas entrer dans la séquence de structure ... heh.
Essayez de cette façon :
import MetaTrader5 as mt5
# выведем данные о пакете MetaTrader5
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
# установим подключение к терминалу MetaTrader 5if not mt5.initialize():
print("initialize() failed")
quit()
# проверим наличие открытых позиций
positions=mt5.positions_total()
if(positions>0):
print("Total positions=",positions)
# выведем все открытые позиции
positions=mt5.positions_get()
count=0for position in positions:
count+=1
print(count,":",position)
position_info=position._asdict()
for property in position_info:
print(" ",property,"=",position_info[property])if count>=5:
breakelse:
print("Positions not found")
# завершим подключение к терминалу MetaTrader 5
mt5.shutdown()
history_deals_get renvoie toujours un tuple Python normal contenant une collection de transactions nommées TradeDeal. Pour que cela fonctionne, nous devons accéder à un index :
Aha, merci beaucoup, je l'ai déjà trouvé par analogie. Sens.
Et si, dans les prochaines versions, il sera possible non seulement de sélectionner un tuple nommé avec history_deals_get(et analogues), mais aussi de dire que list[_asdict()] sera juste
Rashid, y a-t-il une annonce de mise à jour duproduit quelque part sur le site Web ?
Ainsi, vous pouvez garder la trace des modifications apportées et du moment où elles ont été effectuées.
Il est un peu difficile de planifier le remaniement.
Je surveille Pypi. Les développeurs attendent nos commentaires pour continuer/améliorer. Mais jusqu'à présent, nous ne voyons aucune activité des utilisateurs dans ce domaine.
Je pense, que nous devons discuter dans une branche séparée des problèmes d'infrastructure générale pour les systèmes de trading complexes (terminal (MT4/МТ5) <-> TS (sur différentes IP) <_> différentes bases de données. Différentes configurations, problèmes, difficultés, avantages.
Mise à jour vers 5.0.27
Sauvegarde du script
Résultat
MetaTrader5 package author: MetaQuotes Software Corp. MetaTrader5 package version: 5.0.27 {'login': 25115284, 'trade_mode': 0, 'leverage': 100, 'limit_orders': 200, 'margin_so_mode': 0, 'trade_allowed': True, 'trade_expert': True, 'margin_mode': 2, 'currency_digits': 2, 'fifo_close': False, 'balance': 97639.46, 'credit': 0.0, 'profit': -178.77, 'equity': 97460.69, 'margin': 704.8, 'margin_free': 96755.89, 'margin_level': 13828.134222474464, 'margin_so_call': 50.0, 'margin_so_so': 30.0, 'margin_initial': 0.0, 'margin_maintenance': 0.0, 'assets': 0.0, 'liabilities': 0.0, 'commission_blocked': 0.0, 'name': 'MetaQuotes Dev Demo', 'server': 'MetaQuotes-Demo', 'currency': 'USD', 'company': 'MetaQuotes Software Corp.'} Вывод каждого свойства отдельно: login = 25115284 trade_mode = 0 leverage = 100 limit_orders = 200 margin_so_mode = 0 trade_allowed = True trade_expert = True margin_mode = 2 currency_digits = 2 fifo_close = False balance = 97639.46 credit = 0.0 profit = -178.77 equity = 97460.69 margin = 704.8 margin_free = 96755.89 margin_level = 13828.134222474464 margin_so_call = 50.0 margin_so_so = 30.0 margin_initial = 0.0 margin_maintenance = 0.0 assets = 0.0 liabilities = 0.0 commission_blocked = 0.0 name = MetaQuotes Dev Demo server = MetaQuotes-Demo currency = USD company = MetaQuotes Software Corp.Pouvez-vous m'en dire plus sur la minuterie ?
Je ne l'ai pas examiné moi-même, juste une recherche .
5.0.27 a déjà, toute séquence de structure (analogue de tuple nommé pour l'API C) ajouté la méthode _asdict()
mt5.symbol_info()._asdict() -big thnx, ce dont nous avons besoin.
history_deals_get ne semble pas être dans la séquence de structure ... heh.
Il manque juste une construction qui donne les noms des attributs, dans l'ordre correct. Si pourhistory_deals_get_asdict() n'est pas réalisable ou contredit le concept - au moins un analogue de _fields fromcollections.namedtuple (python), nous pouvons alors tirer l'ordre correct des attributs, non pas manuellement en boucle, mais manuellement. Pour l'instant, ça donne quelque chose comme :
et la sortie :
Eh bien, ou noodlecode avec des boucles.
Mise à jour vers 5.0.27
Sauvegarde du script
Résultats
Sens !
Vraiment à l'aise dans cette partie.
mt5.symbol_info()._asdict() -big thnx, c'est ça.
history_deals_get ne semble pas entrer dans la séquence de structure ... heh.
Il manque juste une construction qui donne les noms des attributs, dans l'ordre correct. Si pourhistory_deals_get_asdict() n'est pas réalisable ou contredit le concept - au moins un analogue de _fields fromcollections.namedtuple (python), nous pouvons alors tirer l'ordre correct des attributs, non pas manuellement en boucle, mais manuellement. Pour l'instant, ça donne quelque chose comme :
et la sortie :
Ou un code de nouilles avec des boucles.
history_deals_get renvoie toujours un tuple Python normal contenant une collection de transactions nommées TradeDeal. Pour que cela fonctionne, vous devez accéder à un certain index :
mt5.symbol_info()._asdict() -big thnx, ce dont nous avons besoin.
history_deals_get ne semble pas entrer dans la séquence de structure ... heh.
Essayez de cette façon :
Résultat
history_deals_get renvoie toujours un tuple Python normal contenant une collection de transactions nommées TradeDeal. Pour que cela fonctionne, nous devons accéder à un index :
Aha, merci beaucoup, je l'ai déjà trouvé par analogie. Sens.
Et si, dans les prochaines versions, il sera possible non seulement de sélectionner un tuple nommé avec history_deals_get(et analogues), mais aussi de dire que list[_asdict()] sera juste
fantastique. ;) Merci.
Essayez de cette façon :
Résultat
Merci ! Ça marche.
Oh, et merci d'avoir répondu aux :) suggestions pour améliorer la librairie.
Mise à jour vers 5.0.27
Sauvegarde du script
Résultats
Après-midi.
Rashid, y a-t-il une sorte d'annonce de mise à jour duproduit quelque part sur le site Web de MetaTrader5 ?
J'aimerais savoir quand et quels changements ont été mis en œuvre.
Il est un peu difficile de planifier le remaniement.
Bon après-midi.
Rashid, y a-t-il une annonce de mise à jour duproduit quelque part sur le site Web ?
Ainsi, vous pouvez garder la trace des modifications apportées et du moment où elles ont été effectuées.
Il est un peu difficile de planifier le remaniement.
Je surveille Pypi. Les développeurs attendent nos commentaires pour continuer/améliorer. Mais jusqu'à présent, nous ne voyons aucune activité des utilisateurs dans ce domaine.
Je pense, que nous devons discuter dans une branche séparée des problèmes d'infrastructure générale pour les systèmes de trading complexes (terminal (MT4/МТ5) <-> TS (sur différentes IP) <_> différentes bases de données. Différentes configurations, problèmes, difficultés, avantages.
Bonne chance