order_calc_profit

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

order_calc_profit(
   action,          // type de l'ordre (ORDER_TYPE_BUY ou ORDER_TYPE_SELL)
   symbol,          // nom du symbole
   volume,          // volume
   price_open,      // prix d'ouverture
   price_close      // prix de clôture
   );

Paramètres

action

[in] Le type d'ordre peut prendre l'une des deux valeurs de l'énumération ORDER_TYPE : ORDER_TYPE_BUY ou ORDER_TYPE_SELL. 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_open

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

price_close

[in]  Prix de clôture. 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 le résultat d'une opération de trading sur le compte courant et dans l'environnement de trading actuel. La fonction est similaire à OrderCalcProfit.

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)
 
# organise la liste des symboles
symbols = ("EURUSD","GBPUSD","USDJPY")
print("Symboles pour vérifier la marge :", symboles)
# estimation du bénéfice d'achat et de vente
lot=1.0
distance=300
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
    point=mt5.symbol_info(symbol).point
    symbol_tick=mt5.symbol_info_tick(symbol)
    ask=symbol_tick.ask
    bid=symbol_tick.bid
    buy_profit=mt5.order_calc_profit(mt5.ORDER_TYPE_BUY,symbol,lot,ask,ask+distance*point)
    if buy_profit!=None:
        print("   buy {} {} lots : profit de {} points => {} {}".format(symbol,lot,distance,buy_profit,account_currency));
    else:
        print("order_calc_profit(ORDER_TYPE_BUY) a échoué, code d'erreur=",mt5.last_error())
    sell_profit=mt5.order_calc_profit(mt5.ORDER_TYPE_SELL,symbol,lot,bid,bid-distance*point)
    if sell_profit!=None:
        print("   sell {} {} lots : profit de {} points => {} {}".format(symbol,lot,distance,sell_profit,account_currency));
    else:
        print("order_calc_profit(ORDER_TYPE_SELL) a échoué, code d'erreur=",mt5.last_error())
    print()
 
# 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')
  buy EURUSD 1.0 lots : profit de 300 points => 300.0 USD
  sell EURUSD 1.0 lots : profit de 300 points => 300.0 USD
 
  buy GBPUSD 1.0 lots : profit de 300 points => 300.0 USD
  sell GBPUSD 1.0 lots : profit de 300 points => 300.0 USD
 
  buy USDJPY 1.0 lots : profit de 300 points => 276.54 USD
  sell USDJPY 1.0 lots : profit de 300 points => 278.09 USD

Voir aussi

order_calc_margin, order_check