order_calc_margin

지정된 거래 작업을 수행하려면 계정 통화의 마진을 반환하십시오.

order_calc_margin(
   action,      // 주문 유형 (ORDER_TYPE_BUY 또는 ORDER_TYPE_SELL)
   symbol,      // 심볼명
   volume,      // 거래량
   price        // 시가
   )

Parameters

action

[in] ORDER_TYPE 열거에서 값을 가져오는 주문 유형. 이름이 지정되지 않은 필수 매개 변수.

symbol

[in]  금융상품명. 이름이 지정되지 않은 필수 매개 변수.

volume

[in]  거래 작업량. 이름이 지정되지 않은 필수 매개 변수.

price

[in]  시가. 이름이 지정되지 않은 필수 매개 변수.

반환 값

성공한 경우 실제 값, 그렇지 않은 경우 None. 오류 정보는 last_error()를 사용하여 얻을 수 있습니다.

참고

이 함수는 현재 보류 중인 주문 및 오픈 포지션을 고려하지 않고 현재 마켓 환경과 현재 계정에서 특정 주문 유형에 필요한 마진을 추정할 수 있도록 합니다. 이 함수는 OrderCalcMargin와 유사합니다.

ORDER_TYPE

ID

Description

ORDER_TYPE_BUY

시장 매수 주문

ORDER_TYPE_SELL

시장 매도 주문

ORDER_TYPE_BUY_LIMIT

구매 한도 보류 주문

ORDER_TYPE_SELL_LIMIT

판매 한도 보류 주문

ORDER_TYPE_BUY_STOP

구매 중지 보류 주문

ORDER_TYPE_SELL_STOP

판매 중지 보류 주문

ORDER_TYPE_BUY_STOP_LIMIT

주문 가격에 도달하면 주문 보류 중인 구매 한도가 StopLimit 가격에 배치됩니다

ORDER_TYPE_SELL_STOP_LIMIT

주문 가격에 도달하면 주문이 보류 중인 판매 한도가 StopLimit 가격에 배치됩니다

ORDER_TYPE_CLOSE_BY

반대위치 마감순서

예:

import MetaTrader5 as mt5
# MetaTrader 5 패키지에 데이터 표시
print("MetaTrader5 패키지 저자: ",mt5.__author__)
print("MetaTrader5 패키지 버전: ",mt5.__version__)
 
# MetaTrader 5 터미널 연결 설정
if not mt5.initialize():
    print("initialize() 실패, 에러 코드 =",mt5.last_error())
    quit()
 
# 계정 통화 가져오기
account_currency=mt5.account_info().currency
print("계정 통화:",account_currency)
 
# 심볼 리스트 정렬
symbols=("EURUSD","GBPUSD","USDJPY""USDCHF","EURJPY","GBPJPY")
print("마진을 확인할 심볼:", 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(심볼,"찾을 수 없음, 스킵")
        continue
    if not symbol_info.visible:
        print(심볼, "이 보이지 않습니다, 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 터미널 연결 종료
mt5.shutdown()
 
 
Result:
MetaTrader5 패키지 저자:  MetaQuotes Software Corp.
MetaTrader5 패키지 버전:  5.0.29
 
계정 통화: USD
 
마진을 체크하기 위한 심볼: ('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

더 보기

order_calc_profit, order_check