order_check

필요한 거래 작업을 수행하기에 충분한 자금을 확보하십시오. 검사 결과가 MqlTradeCheckResult 구조로 반환됩니다.

order_check(
   request      // 요청 구조
   );

Parameters

request

[in]  필요한 거래 작업을 설명하는 MqlTradeRequest 유형 구조. 이름이 지정되지 않은 필수 매개 변수. 요청 및 열거 내용 작성의 예가 아래에 설명되어 있습니다.

반환 값

MqlTradeCheckResult 구조로 결과를 확인합니다. 요청 필드는 order_check()에 전달된 거래 요청의 구조를 포함합니다.

참고

요청 전송 성공에는 요청된 거래 작업이 성공적으로 실행되지 않습니다. order_check 함수는 OrderCheck와 유사합니다.

TRADE_REQUEST_ACTIONS

ID

Description

TRADE_ACTION_DEAL

지정된 매개 변수를 사용하여 즉시 거래 주문(시장 주문 설정)

TRADE_ACTION_PENDING

지정된 조건에서 거래를 수행하기 위한 주문(보류 주문)

TRADE_ACTION_SLTP

스탑 로스 및 이익 실현의 오픈 포지션 변경

TRADE_ACTION_MODIFY

이전에 실행된 거래 주문의 매개 변수 변경

TRADE_ACTION_REMOVE

이전에 보류 중인 주문 제거

TRADE_ACTION_CLOSE_BY

반대로 포지션 닫음

ORDER_TYPE_FILLING

ID

Description

ORDER_FILLING_FOK

이 실행 정책은 지정된 볼륨에서만 주문을 실행할 수 있음을 의미합니다. 현재 마켓에서 필요한 금융상품을 구할 수 없는 경우 주문이 실행되지 않습니다. 원하는 거래량은 사용 가능한 여러 오퍼로 구성할 수 있습니다.

ORDER_FILLING_IOC

주문에 지정된 거래량 내에서 시장에서 사용 가능한 최대 거래량으로 거래를 실행하기로 합의합니다. 요청을 완전히 작성할 수 없는 경우 사용 가능한 거래량으로 주문이 실행되고 나머지 거래량이 취소됩니다.

ORDER_FILLING_RETURN

이 정책은 마켓에만 사용됩니다. (ORDER_TYPE_BUY 및 ORDER_TYPE_SELL), 제한 및 제한정지 주문 (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY_STOP_LIMIT 및 ORDER_TYPE_SELL_STOP_LIMIT) 그리고 마켓 또는 거래소 실행 모드의 심볼에만 해당됩니다. 일부만 채워지면 남은 수량의 시장 또는 한정 주문이 취소되지 않고 추가로 처리됩니다.

ORDER_TYPE_BUY_STOP_LIMIT 및 ORDER_TYPE_SELL_STOP_LIMIT 주문을 활성화하는 동안, ORDER_FILLING_RETURN 유형의 적절한 제한 주문 ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT가 생성됩니다.

ORDER_TYPE_TIME

ID

Description

ORDER_TIME_GTC

주문이 수동으로 취소될 때까지 대기열에 남아 있습니다

ORDER_TIME_DAY

주문이 현재 거래일 동안만 활성 상태입니다

ORDER_TIME_SPECIFIED

주문이 지정된 날짜까지 활성 상태입니다.

ORDER_TIME_SPECIFIED_DAY

주문은 지정된 날짜의 23:59:59까지 활성화됩니다. 이 시간이 거래 세션을 벗어난 것으로 보이면 만료가 가장 가까운 거래 시간에 처리됩니다.

예:

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)
 
# 요청 구조 준비
symbol="USDJPY"
symbol_info = mt5.symbol_info(symbol)
if symbol_info is None:
    print(심볼, "찾을 수 없음, order_check() 호출 불가")
    mt5.shutdown()
    quit()
 
# 심볼을 MarketWatch에서 사용할 수 없는 경우 추가
if not symbol_info.visible:
    print(심볼, "보이지 않음, trying to switch on")
    if not mt5.symbol_select(symbol,True):
        print("symbol_select({}}) failed, exit",symbol)
        mt5.shutdown()
        quit()
 
# 요청 준비
point=mt5.symbol_info(symbol).point
request = {
    "action"mt5.TRADE_ACTION_DEAL,
    "symbol": symbol,
    "volume": 1.0,
    "type"mt5.ORDER_TYPE_BUY,
    "price"mt5.symbol_info_tick(symbol).ask,
    "sl"mt5.symbol_info_tick(symbol).ask-100*point,
    "tp"mt5.symbol_info_tick(symbol).ask+100*point,
    "deviation": 10,
    "magic": 234000,
    "comment""python script",
    "type_time"mt5.ORDER_TIME_GTC,
    "type_filling"mt5.ORDER_FILLING_RETURN,
}
 
# 점검을 수행하고 '있는 그대로' 결과를 표시합니다.
result = mt5.order_check(request)
print(result);
# 결과를 딕셔너리로 요청하여 요소별로 표시
result_dict=result._asdict()
for field in result_dict.keys():
    print("   {}={}".format(field,result_dict[field]))
    # 거래 요청 구조인 경우 요소별로도 표시
    if field=="request":
        traderequest_dict=result_dict[field]._asdict()
        for tradereq_filed in traderequest_dict:
            print("       traderequest: {}={}".format(tradereq_filed,traderequest_dict[tradereq_filed]))
 
# MetaTrader 5 터미널에 대한 연결 종료
mt5.shutdown()
 
 
결과:
MetaTrader5 패키지 저자:  MetaQuotes Software Corp.
MetaTrader5 패키지 버전:  5.0.29
 
계정 통화: USD
   retcode=0
   balance=101300.53
   equity=68319.53
   profit=-32981.0
   margin=51193.67
   margin_free=17125.86
   margin_level=133.45308121101692
   comment=Done
   request=TradeRequest(action=1, magic=234000, order=0, symbol='USDJPY', volume=1.0, ...
       traderequest: action=1
       traderequest: magic=234000
       traderequest: order=0
       traderequest: symbol=USDJPY
       traderequest: volume=1.0
       traderequest: price=108.081
       traderequest: stoplimit=0.0
       traderequest: sl=107.98100000000001
       traderequest: tp=108.181
       traderequest: deviation=10
       traderequest: type=0
       traderequest: type_filling=2
       traderequest: type_time=0
       traderequest: expiration=0
       traderequest: comment=python script
       traderequest: position=0
       traderequest: position_by=0

더 보기

order_send, OrderCheck, Trading operation types, Trading request structure, Structure of the trading request check results, Structure of the trading request result