Q

PRIVATE NAVIGATION MODE

ML4T_S 탭 잠금 해제

패스워드를 확인하면 이 브라우저에서 ML4T_S 탭과 검색 결과를 표시합니다.

STUDY SEARCH

학습 자료 검색

제목과 설명, 키워드, 학습 본문에서 찾습니다.

검색 범위

검색어를 입력해 주세요.

SEARCH THE NOTEBOOK

찾고 싶은 금융·통계·전략 개념을 입력해 보세요.

CHAPTER 17 / SECTION 02

17.2 IBKR에 연결하고 주문 상태 복구하기

접속 방식과 주문 유형을 비교하고 연결 중단 뒤 계좌와 주문을 대조합니다.

17장. Live Trading Systems(실거래 시스템)초급 학습 노트

화면이 있는 연결과 서버용 연결

여러 나라의 주식과 선물을 한 전략에서 거래한다면 상품마다 주문 규격과 거래 시간이 달라진다. Interactive Brokers(인터랙티브 브로커스, IBKR)를 연결할 때는 먼저 대상 상품의 거래 권한과 시세 구독을 확인한다. Trader Workstation(거래 데스크톱 프로그램, TWS)은 사람이 화면에서 주문과 계좌를 함께 확인하기 편하다. IB Gateway(서버용 접속 프로그램)는 같은 계열의 소켓 연결을 제공하며 화면 사용이 적은 운영 환경에 적합하다. 두 방식 모두 인증과 세션 갱신이 필요하다. Client Portal이나 Financial Information eXchange(금융 정보 교환 프로토콜, FIX) 같은 별도 접속 경로는 사용 대상과 계약 조건이 다르다.

Application Programming Interface(응용 프로그램 인터페이스, API)는 프로그램이 주문을 보내고 응답을 읽는 접점이다. 소켓 방식에서는 연결을 유지한 채 가격과 주문 상태를 받는다. ib_async처럼 저수준 응답을 감싸는 라이브러리를 쓸 수 있다. 연결할 때 실계좌와 모의 계좌의 포트를 구분하고, 동시에 실행하는 프로세스는 서로 다른 Client ID(클라이언트 식별자)를 사용한다.

연결 복구 뒤 미결 주문부터 읽는다

시세가 잠깐 조용한 것과 연결이 끊긴 것은 구별해야 한다. Heartbeat(생존 확인 요청)로 서버 시각을 주기적으로 물어보고 응답이 늦어지면 장애로 분류한다. 재연결 시도 간격을 1초, 2초, 4초처럼 늘리는 Exponential Backoff(지수 백오프)는 장애 중 요청이 몰리는 일을 줄인다.

IBKR 연결 중단부터 거래 재개까지
  1. 응답 지연
    새 주문을 멈추고 연결을 재시도한다.
  2. 세션 복구
    필요한 시세를 다시 구독하고 주문·체결·계좌를 조회한다.
  3. 기록 대조
    내부 보유량과 미결 주문을 맞춘 뒤 거래를 재개한다.
서버가 응답해도 단절 중 체결이 들어왔을 수 있다. 마지막 대조를 마친 시점부터 다시 거래한다.

브로커가 보고한 보유량과 내부 장부는 시작할 때와 운영 중에 대조한다. 계좌 업데이트에서는 순자산, 증거금, 구매 가능 금액과 손익을 본다. 여유 증거금이 작으면 가격 변동만으로도 강제 청산 위험이 커진다. 체결 보고서에서 수량·단가·시각을 얻고 수수료 보고를 연결하면, 어떤 주문이 보유량과 현금을 바꿨는지 재구성할 수 있다.

주문 방식이 가격과 체결 가능성을 바꾼다

현재 매도 호가에 40주가 100원, 다음 호가에 60주가 101원에 나와 있다고 하자. 호가가 그대로라면 100주 Market Order(시장가 주문)는 첫 40주에 4,000원, 다음 60주에 6,060원을 쓴다. 합계 10,060원을 100주로 나누면 평균 매수가는 주당 100.6원이다. 100원으로 Limit Order(지정가 주문)를 내면 100원 이하에서만 매수하고 남은 60주는 기다릴 수 있다. 지정가에서도 다른 주문의 대기 순서에 따라 40주보다 적게 체결될 수 있다. Stop Order(스톱 주문)는 조건 가격에 도달하면 시장가 주문으로 전환될 수 있어 가격이 빠르게 건너뛰는 구간에서는 체결가가 조건 가격을 벗어난다.

SmartRouting(복수 시장 주문 경로 선택)은 여러 거래 장소의 가격과 체결 여건을 비교한다. Adaptive Order(적응형 주문)는 서두를수록 호가를 더 많이 소진할 수 있고 기다릴수록 가격이 불리하게 움직일 수 있다는 절충을 다룬다. Good-Till-Canceled(취소 전까지 유효, GTC)는 세션을 넘어 남을 수 있다. Immediate-or-Cancel(즉시 체결 후 잔량 취소, IOC)은 가능한 수량을 즉시 채우고 잔량을 취소한다. All-or-None(전량 체결 조건, AON)은 전량이 가능한 경우에만 체결한다. 상품마다 조합할 수 있는 조건을 확인한다.

실행 품질을 볼 때는 직접 수수료와 함께 주문 도착 때의 기준가와 실제 체결가를 비교한다. 여러 브로커에 같은 시각에 시장가 주문을 낸 비교에서도 왕복 비용의 차이가 관찰됐다. 비교할 때 주문 크기·시각·상품을 맞춰야 수수료와 라우팅 차이를 구분할 수 있다.

오류 번호와 원문 메시지를 함께 기록한다

IBKR 오류 유형별 첫 대응
코드의미확인할 항목
502연결할 수 없음TWS·Gateway 실행 여부, API 허용, 포트
504연결되지 않음재연결 후 미결 주문·체결·잔고 대조
201주문 거부구매력·상품 코드·주문 조건을 거부 사유와 대조
202주문 취소요청한 취소인지 확인하고 이미 체결된 수량을 반영
162과거 데이터 서비스 오류메시지에서 요청 속도 위반인지 확인하고 해당 시 간격 조정

과거 가격 막대는 reqHistoricalData()로 요청할 수 있다. 구독과 상품에 따라 제공 기간과 간격이 다르고, 짧은 간격 자료를 연달아 요청하면 처리 한도에 걸릴 수 있다. 운영에서는 요청을 대기열에 넣고 최근 막대를 받아 지표를 초기화한다. 수년치 자료가 필요한 연구에서는 별도 공급자의 기록을 사용하고, 두 공급자의 중복 기간을 대조해 시간대와 가격 조정 방식이 맞는지 확인한다.