order_calc_profit

지정된 거래 작업에 대한 계정 통화로 수익을 반환합니다.

order_calc_profit(
   action,          // 주문 유형 (ORDER_TYPE_BUY 또는 ORDER_TYPE_SELL)
   symbol,          // 심볼명
   volume,          // 거래량
   price_open,      // 시가
   price_close      // 종가
   );

Parameters

action

[in]  주문 유형에는 두개의 ORDER_TYPE 열거값 중 하나가 포함될 수 있습니다: ORDER_TYPE_BUY 또는 ORDER_TYPE_SELL. 이름이 지정되지 않은 필수 매개 변수.

symbol

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

volume

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

price_open

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

price_close

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

반환 값

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

참고

현재 거래 환경과 현재 계정에서 거래활동 결과를 추정하는 기능입니다. 이 함수는 OrderCalcProfit와 유사합니다.

예:

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()
 
# get account currency
account_currency=mt5.account_info().currency
print("계정 통화:",account_currency)
 
# 심볼 리스트 정렬
symbols = ("EURUSD","GBPUSD","USDJPY")
print("마진을 확인할 기호:", symbols)
# 매매이익 추정
lot=1.0
distance=300
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
    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: profit on {} points => {} {}".format(symbol,lot,distance,buy_profit,account_currency));
    else:
        print("order_calc_profit(ORDER_TYPE_BUY) 실패, 오류 코드 =",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 on {} points => {} {}".format(symbol,lot,distance,sell_profit,account_currency));
    else:
        print("order_calc_profit(ORDER_TYPE_SELL) failed, error code =",mt5.last_error())
    print()
 
# MetaTrader 5 터미널에 대한 연결 종료
mt5.shutdown()
 
 
결과:
MetaTrader5 패키지 저자:  MetaQuotes Software Corp.
MetaTrader5 패키지 버전:  5.0.29
 
계정 통화: USD
마진을 체크할 심볼: ('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

더 보기

order_calc_margin, order_check