order_calc_margin

Belirtilen alım-satım işlemini gerçekleştirmek için hesap para birimi cinsinden marjini geri döndürür.

order_calc_margin(
   action,      // emir tipi (ORDER_TYPE_BUY veya ORDER_TYPE_SELL)
   symbol,      // sembol adı
   volume,      // hacim
   price        // açılış fiyatı
   )

Parametreler

action

[in] ORDER_TYPE sayımından değer alan emir tipi. Gerekli adsız parametre.

symbol

[in]  Finansal enstrüman adı. Gerekli adsız parametre.

volume

[in]  İşlem hacmi. Gerekli adsız parametre.

price

[in]  Açılış fiyatı. Gerekli adsız parametre.

Geri dönüş değeri

Başarılı olursa gerçek değer, aksi takdirde None geri döner. Hataya ilişkin bilgiler last_error() kullanılarak elde edilebilir.

Not

Fonksiyon, mevcut bekleyen emirler ve açık pozisyonlar dikkate alınmaksızın mevcut hesapta ve mevcut piyasa ortamında belirli bir emir tipi için gerekli marjın miktarının hesaplanmasına olanak sağlar. Fonksiyon, OrderCalcMargin'e benzerdir.

ORDER_TYPE

ID

Açıklama

ORDER_TYPE_BUY

Piyasa alış emri

ORDER_TYPE_SELL

Piyasa satış emri

ORDER_TYPE_BUY_LIMIT

Bekleyen Buy Limit emri

ORDER_TYPE_SELL_LIMIT

Bekleyen Sell Limit emri

ORDER_TYPE_BUY_STOP

Bekleyen Buy Stop emri

ORDER_TYPE_SELL_STOP

Bekleyen Sell Stop emri

ORDER_TYPE_BUY_STOP_LIMIT

Emir fiyatına ulaşıldığında, bekleyen Buy Limit emri StopLimit fiyatından yerleştirilir

ORDER_TYPE_SELL_STOP_LIMIT

Emir fiyatına ulaşıldığında, bekleyen Sell Limit emri StopLimit fiyatından yerleştirilir

ORDER_TYPE_CLOSE_BY

Bir pozisyonu zıt yönde bir pozisyonla kapatma emri

Örnek:

import MetaTrader5 as mt5
# MetaTrader 5 paketi ile ilgili verileri görüntüle
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)
 
# MetaTrader 5 terminaline bağlantı kur
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    quit()
 
# hesap para birimini elde et
account_currency=mt5.account_info().currency
print("Account сurrency:",account_currency)
 
# sembol listesini oluştur
symbols=("EURUSD","GBPUSD","USDJPY""USDCHF","EURJPY","GBPJPY")
print("Symbols to check margin:", 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,"not found, skipped")
        continue
    if not symbol_info.visible:
        print(symbol, "is not visible, trying to switch on")
        if not mt5.symbol_select(symbol,True):
            print("symbol_select({}}) failed, skipped",symbol)
            continue
    ask=mt5.symbol_info_tick(symbol).ask
    margin=mt5.order_calc_margin(action,symbol,lot,ask)
    if margin != None:
        print("   {} buy {} lot margin: {} {}".format(symbol,lot,margin,account_currency));
    else:
        print("order_calc_margin failed: , error code ="mt5.last_error())
 
# MetaTrader 5 terminaline olan bağlantıyı kapat
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

Ayrıca bakınız

order_calc_profit, order_check