order_calc_profit

Restituisce il profitto nella valuta del conto per un'operazione di trading specificata.

order_calc_profit(
   action,          // tipo di ordine (ORDER_TYPE_BUY o ORDER_TYPE_SELL)
   symbol,          // nome del simbolo
   volume,          // volume
   price_open,      // prezzo di apertura
   price_close      // prezzo di chiusura
   );

Parametri

action

[in]  Il tipo di ordine può richiedere uno dei due valori ORDER_TYPE di enumerazione: ORDER_TYPE_BUY o ORDER_TYPE_SELL. Parametro unnamed richiesto.

symbol

[in] Nome dello strumento finanziario. Parametro richiesto senza nome.

volume

[in] Volume delle operazioni di trading. Parametro richiesto senza nome.

price_open

[in] Prezzo di apertura. Parametro richiesto senza nome.

price_close

[in] Prezzo di chiusura. Parametro richiesto senza nome.

Valore di Ritorno

Valore Real in caso di successo, altrimenti Nessuno. Le informazioni sull'errore possono essere ottenute utilizzando last_error().

Nota

La funzione consente di stimare un risultato dell'operazione di trading sull'attuale account e nell'ambiente di trading corrente. La funzione è simile a OrderCalcProfit.

Esempio:

import MetaTrader5 as mt5
# visualizza i dati sul pacchetto MetaTrader 5
Stampa("Autore del pacchetto MetaTrader5:",MT5 .__ author__)
Stampa("Versione del pacchetto MetaTrader5:",MT5 .__ version__)
 
# stabilisce la connessione al terminale MetaTrader 5
if not mt5.initialize():
    print("initialize() fallito, error code =",mt5.last_error())
    quit()
 
# ottiene la valuta dell'account
account_currency=mt5.account_info().currency
print("Valuta dell'account:",account_currency)
 
# dispone la lista dei simboli
symbols = ("EURUSD","GBPUSD","USDJPY")
print("Simboli da controllarne il margine:", symbols)
# profitto stimato per acquisti e vendite
lot=1.0
distance=300
for symbol in symbols:
    symbol_info=mt5.symbol_info(symbol)
    if symbol_info is None:
        print(symbol,"non trovato, saltato")
        continue
    if not symbol_info.visible:
        print(symbol, "se non visibile, provare ad attivarlo")
        if not mt5.symbol_select(symbol,True):
            print("symbol_select({}}) fallito, saltato",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 {} {} lot: profitto su {} punti => {} {}".format(symbol,lot,distance,buy_profit,account_currency));
    else:
        print("order_calc_profit(ORDER_TYPE_BUY) fallito, error code =",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: profitto su {}punti => {} {}".format(symbol,lot,distance,sell_profit,account_currency));
    else:
        print("order_calc_profit(ORDER_TYPE_SELL) fallito, error code =",mt5.last_error())
    print()
 
# interrompe la connessione al terminale MetaTrader 
mt5.shutdown()
 
 
 Risultato: 
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:  5.0.29
 
Account сurrency: USD
Simboli per cui controllare il margine: ('EURUSD', 'GBPUSD', 'USDJPY')
   buy EURUSD 1.0 lot: profit on 300 points => 300.0 USD
   sell EURUSD 1.0 lot: profit on 300 points => 300.0 USD
 
   buy GBPUSD 1.0 lot: profit on 300 points => 300.0 USD
   sell GBPUSD 1.0 lot: profit on 300 points => 300.0 USD
 
   buy USDJPY 1.0 lot: profit on 300 points => 276.54 USD
   sell USDJPY 1.0 lot: profit on 300 points => 278.09 USD

See also

order_calc_margin, order_check