order_calc_margin

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

order_calc_margin(
   action,      // tipo di ordine (ORDER_TYPE_BUY or ORDER_TYPE_SELL)
   symbol,      // nome del simbolo
   volume,      // volume
   price        // prezzo di apertura
   )

Parametri

action

[in] Tipo di ordine che prende valori dall'enumerazione ORDER_TYPE. 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

[in] Prezzo di apertura. 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 il margine necessario per un determinato tipo di ordine sul conto attuale e nell'attuale contesto di mercato senza considerare le posizioni aperte e gli ordini in sospeso. La funzione è simile a OrderCalcMargin.

ORDER_TYPE

ID

Descrizione

ORDER_TYPE_BUY

Ordine di Buy sul mercato

ORDER_TYPE_SELL

Ordine di Sell sul mercato

ORDER_TYPE_BUY_LIMIT

Ordine pendente Buy Limit

ORDER_TYPE_SELL_LIMIT

Ordine pendente Sell Limit

ORDER_TYPE_BUY_STOP

Ordine pendente Buy Stop

ORDER_TYPE_SELL_STOP

Ordine pendente Sell Stop

ORDER_TYPE_BUY_STOP_LIMIT

Al raggiungimento del prezzo dell'ordine, l'ordine pendente Buy Limit viene posto al prezzo StopLimit

ORDER_TYPE_SELL_STOP_LIMIT

Al raggiungimento del prezzo dell'ordine, l'ordine pendente Sell Limit viene posto al prezzo StopLimit

ORDER_TYPE_CLOSE_BY

Ordine per la chiusura di una posizione con una posizione opposta

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 valuta del conto
account_currency=mt5.account_info().currency
print("Valuta del conto:",account_currency)
 
# dispone la lista dei simboli
symbols=("EURUSD","GBPUSD","USDJPY""USDCHF","EURJPY","GBPJPY")
print("Simboli col margine da controllare:", 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 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
    ask=mt5.symbol_info_tick(symbol).ask
    margin=mt5.order_calc_margin(action,symbol,lot,ask)
    if margin != None:
        print("   {} buy {} margine lotto: {} {}".format(symbol,lot,margin,account_currency));
    else:
        print("order_calc_margin fallito: , error code ="mt5.last_error())
 
# interrompe la connessione al terminale MetaTrader 5
mt5.shutdown()
 
 
Result:
MetaTrader5 package author:  MetaQuotes Software Corp.
MetaTrader5 package version:  5.0.29
 
Account сurrency: USD
 
Symbols to check margin: ('EURUSD', 'GBPUSD', 'USDJPY', 'USDCHF', 'EURJPY', 'GBPJPY')
   EURUSD buy 0.1 lot margin: 109.91 USD
   GBPUSD buy 0.1 lot margin: 122.73 USD
   USDJPY buy 0.1 lot margin: 100.0 USD
   USDCHF buy 0.1 lot margin: 100.0 USD
   EURJPY buy 0.1 lot margin: 109.91 USD
   GBPJPY buy 0.1 lot margin: 122.73 USD

See also

order_calc_profit, order_check