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

 
Дмитрий Прокопьев:

Merci, j'ai vu cet exemple, il fonctionne.

Je parle juste d'autre chose.


positions_get - il me retournera une liste de positions de transaction. En principe, c'est OK, vous pouvez le mettre dans pandas et fonctionner correctement.

Mais ce n'est pas limité à un seul pandas, et si vous voulez obtenir quelque chose comme ça :

[{'ticket': 164661016, 'time': 1585075408, 'time_msc': 1585075408163, 'time_update': 1585075408, 'time_update_msc': 1585075408163, 'type': 1, 'magic': 0, 'identifier': 164661016, 'reason': 0, 'volume': 0.01, 'price_open': 120.306, 'sl': 0.0, 'tp': 0.0, 'price_current': 120.328, 'swap': 0.0, 'profit': -0.2, 'symbol': 'EURJPY', 'comment': '', 'external_id': ''}, 
{'ticket': 164661051, 'time': 1585075426, 'time_msc': 1585075426062, 'time_update': 1585075426, 'time_update_msc': 1585075426062, 'type': 0, 'magic': 0, 'identifier': 164661051, 'reason': 0, 'volume': 0.01, 'price_open': 1.07798, 'sl': 0.0, 'tp': 0.0, 'price_current': 1.07881, 'swap': 0.0, 'profit': 0.83, 'symbol': 'EURUSD', 'comment': '', 'external_id': ''}]

Regardez l'exemple de positions_get, il utilise plusieurs chaînes de caractères.

Exemple :

importMetaTrader5 commemt5
importpandas aspd.
pd.set_option('display.max_columns',500)# combien de colonnes sont affichées
pd.set_option('display.width', 1500)# largeur maximale du tableau à afficher
# afficher les données du paquet MetaTrader5
print("Auteur du paquet MetaTrader5 : ",mt5.__author__)
print("Version du paquet MetaTrader5 : ",mt5.__version__)
print()
# établir la connexion au terminal MetaTrader 5
si pasmt5.initialize() :
print("initialize() failed, error code =",mt5.last_error())
quitter()

# recevoir les positions ouvertes sur USDCHF
positions=mt5.positions_get(symbol="USDCHF")
sipositions==None:
print("Aucune position sur USDCHF, code d'erreur={}".format(mt5.last_error())))
elif len(positions)>0:
print("Total des positions sur USDCHF =",len(positions))
# imprimer toutes les positions ouvertes
pour la position dans lespositions:
print(position)

# obtenir la liste des positions sur les symboles qui contiennent "*USD*" dans leur nom
usd_positions=mt5.positions_get(group="*USD*")
siusd_positions==None:
print("Aucune position avec groupe=\"*USD*\", code d'erreur={}".format(mt5.last_error())))
elif len(usd_positions)>0:
print("positions_get(group=\"*USD*\")={}".format(len(usd_positions))
# sortir ces positions sous forme de tableau en utilisant pandas.DataFrame
df=pd.DataFrame(list(usd_positions),columns=usd_positions[0]._asdict().keys())
df['time'] = pd.to_datetime(df['time'], unit='s')
df.drop(['time_update', 'time_msc', 'time_update_msc', 'external_id'], axis=1, inplace=True)

print(df)

# terminer la connexion au terminal MetaTrader 5
mt5.shutdown()


Résultat:
Auteur du paquet MetaTrader5 : MetaQuotes Software Corp.
Version du paquet MetaTrader5 : 5.0.29

positions_get(group="*USD*")=5
billetheure type identifiant magique raisonvolume price_open sl tp price_current swap profit symbol comment
0 548297723 2020-03-18 15:00 :55 1 0 548297723 3 0.01 1.09301 1.11490 1.06236 1.10101 -0,10 -8,00 EURUSD
1 548655158 2020-03-18 20:31 :26 0 0 548655158 3 0.01 1.08676 1.06107 1.12446 1.10098 -0,08 14,22 EURUSD
2 548663803 2020-03-18 20:40 :04 0 0 548663803 3 0.01 1.08640 1.06351 1.11833 1.10098 -0,08 14,58 EURUSD
3 548847168 2020-03-19 01:10 :05 0 0 548847168 3 0.01 1.09545 1.05524 1.15122 1.10098 -0,06 5,53 EURUSD
4 548847194 2020-03-19 01:10 :07 0 0 548847194 3 0.02 1,09536 1,04478 1,16587 1,10098 -0,08 11,24 EURUSD

Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
Документация по MQL5: Интеграция / MetaTrader для Python / positions_get
  • www.mql5.com
ticket                time  type  magic  identifier  reason  volume  price_open       sl       tp  price_current  swap  profit  symbol comment 0  548297723 2020-03-18 15:00:55     1      0   548297723       3    0.01     1.09301  1.11490  1.06236        1.10101 -0.10   -8.00  EURUSD        ...
 

Des descriptions de 3 nouvelles fonctions ont été ajoutées à l'aide :

En outre, les descriptions de nombreuses fonctions ont été modifiées au fur et à mesure qu'elles ont été affinées. Presque tous les exemples ont été réécrits pour refléter la nouvelle fonctionnalité. Cependant, les exemples pour les fonctions suivantes n'ont pas encore été mis à jour sur le site web, ils le seront un peu plus tard :

Документация по MQL5: Интеграция / MetaTrader для Python / last_error
Документация по MQL5: Интеграция / MetaTrader для Python / last_error
  • www.mql5.com
позволяет получить код ошибки в случае неуспешного выполнения какой-либо функции библиотеки MetaTrader 5. Является аналогом GetLastError(), но используются свои коды ошибок. Возможные значения:
 
Дмитрий Прокопьев:

Messieurs, les gars du fil suivant posent des questions sur les libéraux :

URL: https://www.mql5.com/en/forum/306742/page11#comment_15595095

Pouvez-vous m'apporter votre soutien ?

Réponse dans ce fil

 
Rashid Umarov:

Regardez l'exemple pour positions_get, il y a plusieurs chaînes utilisées

Merci !

 
Rashid Umarov:

Réponse dans ce fil

Rashid, dites-moi, est-il possible d'utiliser le testeur avec MetaTrader5 ?

Lors de la modélisation dans le testeur, il y a un élément très efficace - la mise en parallèle des tâches de simulation dans la ferme de réseau local ou

Je veux utiliser la ressource du testeur avec MetaTrader5.

 
Vladimir Perervenko:

Pourquoi en avez-vous besoin ? Ne pouvez-vous pas le calculer en Python ? Je suis surpris.

Je ne suis pas du tout familier avec Python, je suis sur le point de passer de Lua à Python, donc j'apprends le truc...
 

La section d'aide vous indique comment installer et mettre à jour la bibliothèque - https://www.mql5.com/ru/docs/integration/python_metatrader5.

Установка пакета в командной строке:

pip install MetaTrader5

Mettre à niveau le paquet sur la ligne de commande :

pip install --upgrade MetaTrader5



Документация по MQL5: Интеграция / MetaTrader для Python
Документация по MQL5: Интеграция / MetaTrader для Python
  • www.mql5.com
Python является современным высокоуровневым языком программирования для разработки сценариев и приложений. Содержит множество библиотек для машинного обучения, автоматизации процессов, анализа и визуализации данных. Пакет MetaTrader для Python предназначен для...
 
Rashid Umarov:

La section d'aide vous indique comment installer et mettre à jour la bibliothèque - https://www.mql5.com/ru/docs/integration/python_metatrader5.

Pour être honnête, ce n'est pas très clair. Parce qu'il ne fonctionne pas sans VS, et ce qui est exactement nécessaire de VS - n'est pas clair (parce que je ne veux pas installer tout le studio, comme il n'est pas nécessaire) ;

Si vous pouvez le clarifier, ce serait formidable.

 
Alexey Kozitsyn:

Pour être honnête, ce n'est pas très clair. Parce qu'il ne fonctionne pas sans VS, et ce qui est exactement requis de VS - n'est pas clair (parce que je ne voudrais pas installer tout le studio parce que je n'en ai pas besoin) ;

Si vous pouviez nous en dire plus, ce serait formidable.

Pourquoi avez-vous besoin de VS ? Python ne nécessite pas VS.

Cherchez sur Google quelque chose comme window python et vous serez prêt.

 

Messieurs les développeurs, une bonne remarque a été faite dans le fil suivant.

Cela s'applique au traitement des**kwargs, dans le cas de l'écriture de tests - c'est un point très important.

https://www.mql5.com/en/forum/306742/page12#comment_15660939