order_calc_margin

Retourne la marge dans la devise du compte pour effectuer une opération de trading spécifiée.

order_calc_margin(
   action,      // type de l'ordre (ORDER_TYPE_BUY ou ORDER_TYPE_SELL)
   symbol,      // nom du symbole
   volume,      // volume
   price        // prix d'ouverture
   )

Paramètres

action

[in]  Type de l'ordre dont les valeurs proviennent de l'énumération ORDER_TYPE. Paramètre sans nom requis.

symbol

[in] Nom de l'instrument financier. Paramètre non nommé requis.

volume

[in] Volume de l'opération de trading. Paramètre non nommé requis.

price

[in]  Prix d'ouverture. Paramètre non nommé requis.

Valeur de Retour

Valeur réelle en cas de succès, sinon None. Les informations sur l'erreur peuvent être obtenues en utilisant last_error().

Note

La fonction permet d'estimer la marge nécessaire pour un type d'ordre spécifié sur le compte courant et dans l'environnement de marché actuel sans tenir compte des ordres en cours et des positions ouvertes. La fonction est similaire à OrderCalcMargin.

ORDER_TYPE

ID

Description

ORDER_TYPE_BUY

Ordre d'achat sur le marché

ORDER_TYPE_SELL

Ordre de vente au marché

ORDER_TYPE_BUY_LIMIT

Achat à cours limité

ORDER_TYPE_SELL_LIMIT

Vente à cours limité

ORDER_TYPE_BUY_STOP

Ordre Buy Stop

ORDER_TYPE_SELL_STOP

Ordre Sell Stop

ORDER_TYPE_BUY_STOP_LIMIT

Une fois le prix de l'ordre atteint, l'ordre en attente Buy Limit est placé au prix StopLimit

ORDER_TYPE_SELL_STOP_LIMIT

Une fois le prix de l'ordre atteint, l'ordre en attente Sell Limit est placé au prix StopLimit

ORDER_TYPE_CLOSE_BY

Ordre pour fermer une position par une position opposée

Exemple :

import MetaTrader5 as mt5
# affiche les données du package MetaTrader 5
print("Auteur du package MetaTrader5 : ",mt5.__author__)
print("Version du package MetaTrader5 : ",mt5.__version__)
 
# établit une connexion au terminal MetaTrader 5
if not mt5.initialize():
 print("initialize() a échoué, code d'erreur=",mt5.last_error())
    quit()
 
# récupère la devise du compte
account_currency=mt5.account_info().currency
print("Devise du compte :",account_currency)
 
# arrange la liste des symboles
symbols=("EURUSD","GBPUSD","USDJPY""USDCHF","EURJPY","GBPJPY")
print("Symboles pour vérifier la marge :", symbols)
action=mt5.ORDER_TYPE_BUY
lot=0.1
for symbol in symbols:
    symbol_info=mt5.symbol_info(symbol)
    if symbol_info is None:
        print(symbol,"non trouvé, ignoré")
        continue
    if not symbol_info.visible:
        print(symbol, "n'est pas visible, tente de l'afficher")
        if not mt5.symbol_select(symbol,True):
            print("symbol_select({}}) a échoué, ignoré",symbol)
            continue
    ask=mt5.symbol_info_tick(symbol).ask
    margin=mt5.order_calc_margin(action,symbol,lot,ask)
    if margin != None:
        print("   {} buy {} lots marge : {} {}".format(symbol,lot,margin,account_currency));
    else:
        print("order_calc_margin a échoué : , code d'erreur="mt5.last_error())
 
# 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
 
Devise du compte : USD
 
Symboles pour vérifier la marge : ('EURUSD', 'GBPUSD', 'USDJPY', 'USDCHF', 'EURJPY', 'GBPJPY')
  EURUSD buy 0.1 lots marge : 109.91 USD
  GBPUSD buy 0.1 lots marge : 122.73 USD
  USDJPY buy 0.1 lots marge : 100.0 USD
  USDCHF buy 0.1 lots marge : 100.0 USD
  EURJPY buy 0.1 lots marge : 109.91 USD
  GBPJPY buy 0.1 lots marge : 122.73 USD

Voir aussi

order_calc_profit, order_check