orders_get

Retourne les ordres actifs avec la possibilité de filtrer par symbole ou ticket. Il existe trois options d'appel.

Appel sans paramètres. Retourne les ordres actifs sur tous les symboles.

orders_get()

Appel spécifiant un symbole pour lequel les ordres actifs sont demandés.

orders_get(
   symbol="SYMBOL"      // nom du symbole
)

Appel spécifiant un groupe de symboles pour lesquels les ordres actifs sont demandés.

orders_get(
   group="GROUP"        // filtre pour sélectionner les ordres pour les symboles
)

Appel spécifiant le ticket de l'ordre.

orders_get(
   ticket=TICKET        // ticket
)

symbol="SYMBOL"

[in]  Nom du symbole. Paramètre nommé facultatif. Si un symbole est spécifié, le paramètre ticket est ignoré.

group="GROUP"

[in] Le filtre pour organiser un groupe de symboles nécessaires. Paramètre nommé facultatif. Si le groupe est spécifié, la fonction renvoie uniquement les ordres actifs répondant à un critère spécifié pour un nom de symbole.

ticket=TICKET

[in]  Ticket de l'ordre (ORDER_TICKET). Paramètre nommé facultatif.

Valeur de Retour

Renvoie les informations sous la forme d'une structure de tuple nommée (namedtuple). Retourne None en cas d'erreur. Les informations sur l'erreur peuvent être obtenues en utilisant last_error().

Note

La fonction permet de recevoir tous les ordres actifs dans un même appel, comme pour OrdersTotal et OrderSelect.

Le paramètre group permet de trier les ordres par symboles. '*' peut être utilisé au début et à la fin d'une chaîne.

Le paramètre group peut contenir plusieurs conditions séparées par des virgules. Une condition peut être définie comme un masque à l'aide de '*'. Le symbole de négation logique '!' peut être utilisé pour une exclusion. Toutes les conditions sont appliquées séquentiellement, ce qui signifie que les conditions d'inclusion à un groupe doivent être spécifiées en premier, suivies d'une condition d'exclusion. Par exemple, group="*, !EUR" signifie que les ordres pour tous les symboles doivent être sélectionnés en premier et que ceux contenant "EUR" dans les noms de symboles doivent être exclus par la suite.

Exemple :

import MetaTrader5 as mt5
import pandas as pd
pd.set_option('display.max_columns'500# nombre de colonnes à afficher
pd.set_option('display.width', 1500)      # largeur max d'affichage de la table
# affiche les données sur le package MetaTrader 5
print("Auteur du package MetaTrader5 : ",mt5.__author__)
print("Version du package MetaTrader5 : ",mt5.__version__)
print()
# établit une connexion avec le terminal MetaTrader 5
if not mt5.initialize():
 print("initialize () a échoué, code d'erreur =",mt5.last_error())
    quit()
 
# affiche les données des ordres actives sur GBPUSD
orders=mt5.orders_get(symbol="GBPUSD")
if orders is None:
    print("Aucun ordre sur GBPUSD, code d'erreur={}".format(mt5.last_error()))
else:
    print("Total d'ordres sur GBPUSD :",len(orders))
    # affiche tous les ordres actifs
    for order in orders:
        print(order)
print()
 
# récupère la liste des ordres sur les symboles dont les noms contiennent "*GBP*"
gbp_orders=mt5.orders_get(group="*GBP*")
if gbp_orders is None:
    print("Aucun ordre avec group=\"*GBP*\", code d'erreur={}".format(mt5.last_error()))
else:
    print("orders_get(group=\"*GBP*\")={}".format(len(gbp_orders)))
 # affiche ces ordres sous forme de tableau à l'aide de pandas.DataFrame
    df=pd.DataFrame(list(gbp_orders),columns=gbp_orders[0]._asdict().keys())
    df.drop(['time_done', 'time_done_msc', 'position_id', 'position_by_id', 'reason', 'volume_initial', 'price_stoplimit'], axis=1, inplace=True)
    df['time_setup'] = pd.to_datetime(df['time_setup'], unit='s')
    print(df)
 
# ferme la connexion au terminal MetaTrader 5
mt5.shutdown()
 
Résultat :
Auteur du package MetaTrader5 :  MetaQuotes Software Corp.
Version du package MetaTrader5 :  5.0.29
 
Total d'ordres sur GBPUSD: 2
TradeOrder(ticket=554733548, time_setup=1585153667, time_setup_msc=1585153667718, time_done=0, time_done_msc=0, time_expiration=0, type=3, type_time=0, ...
TradeOrder(ticket=554733621, time_setup=1585153671, time_setup_msc=1585153671419, time_done=0, time_done_msc=0, time_expiration=0, type=2, type_time=0, ...
 
orders_get(group="*GBP*")=4
      ticket          time_setup  time_setup_msc  time_expiration  type  type_time  type_filling  state  magic  volume_current  price_open   sl   tp  price_current  symbol comment external_id
0  554733548 2020-03-25 16:27:47   1585153667718                0     3          0             2      1      0             0.2     1.25379  0.0  0.0        1.16803  GBPUSD                    
1  554733621 2020-03-25 16:27:51   1585153671419                0     2          0             2      1      0             0.2     1.14370  0.0  0.0        1.16815  GBPUSD                    
2  554746664 2020-03-25 16:38:14   1585154294401                0     3          0             2      1      0             0.2     0.93851  0.0  0.0        0.92428  EURGBP                    
3  554746710 2020-03-25 16:38:17   1585154297022                0     2          0             2      1      0             0.2     0.90527  0.0  0.0        0.92449  EURGBP    

Voir aussi

orders_total, positions_get