콘텐츠로 이동

Interactive Brokers: Flex Query로 연결

Trader, Pro, Fleet 요금제.

Interactive Brokers는 다른 애플리케이션에 실시간 읽기 전용 접근을 제공하지 않지만, Flex Web Service로 명세서를 공개합니다. Client Portal에서 만드는 토큰과 Flex Query입니다. TakeJournal은 이를 스스로, 읽기 전용으로 요청합니다. 주식, 주식 옵션, 선물, 선물 옵션을 커미션, 만기, 권리 행사, 배정과 함께, 그리고 입금과 출금을 읽습니다. 주문은 절대 내지 않으며 낼 수도 없습니다.

  1. Performance & Reports → Flex Queries. Trade Confirmation Flex Query를 만듭니다. Trade Confirmation 섹션에서 Executions를 체크하고 모든 항목을 고르며, 형식은 XML, 기간은 Today입니다. 저장하고 Query ID를 적어 둡니다.
  2. 선택 사항(내역과 자금 이동용): Trades(Executions, 모든 항목), Cash Transactions, Corporate Actions, Account Information 섹션을 넣은 Activity Flex Query를 형식 XML, 기간 Last 365 Calendar Days로 만듭니다. 이 Query ID도 적어 둡니다.
  3. 같은 페이지의 Flex Web Service Configuration에서 서비스를 켜고 토큰을 생성합니다. IB가 제공하는 가장 긴 유효 기간(최대 1년)을 고르고, IP 제한은 비워 두세요. TakeJournal 서버는 자체 주소에서 요청합니다.

연결 → 연결 추가, 유형 Interactive Brokers(Flex Web Service):

  • Flex Web Service 토큰: 3단계의 토큰. 암호화해 저장하며 읽기에만 씁니다. 연결을 삭제하면 함께 사라집니다.
  • Trade Confirmation 쿼리 ID: 1단계의 ID.
  • Activity 쿼리 ID(선택): 2단계의 ID, 또는 비워 둡니다.

계좌는 첫 동기화 때 들어오며, IB에서 붙인 별칭으로, IB의 기준 통화로 표시됩니다.

IB는 Flex Web Service가 매분 묻는 용도가 아니라고 밝히며, 명세서도 실시간이 아닙니다. 체결은 5~10분 뒤에 Trade Confirmation 명세서에 들어가고, Activity 명세서는 장 마감 뒤 하루 한 번 갱신됩니다. 그래서 자동 동기화(Fleet에서 TakeJournal이 열려 있는 동안)는 평일 뉴욕 시간 9:00부터 17:30까지 30분마다, 그 뒤에 한 번, 주말에는 하루 한 번 묻습니다. Activity 쿼리는 최대 20시간에 한 번입니다. 대시보드나 연결 페이지의 지금 동기화는 바로 묻습니다.

Flex Query 파일 가져오기와 연결은 같은 체결을 IB의 체결 ID로 알아보므로, 오래된 거래 파일을 가져와도 동기화로 들어온 것이 중복되지 않습니다.

Activity 거래 내역서의 Corporate Actions가 주식 분할, 종목 변경, 주식 배당을 가져와요(주식 분할). 합병이나 스핀오프 같은 다른 기업 행위는 세지 않아요.

IB가 거부하면 연결 카드에 이유와 할 일이 표시됩니다. 만료된 토큰(새로 만들어 연결에 입력), 다른 IP 주소로 제한된 토큰, 토큰에 속하지 않는 쿼리, IB가 아직 다 만들지 않은 명세서(다음 동기화가 읽음)입니다.

Activity 쿼리에 Open Positions 섹션(모든 필드)을 넣으면, 그것을 읽는 동기화가 나열된 포지션을 체결과 비교하므로 내역에 빠진 청산을 찾아냅니다(청산 누락). 누락된 청산으로 설명되지 않는 주식 수량 차이(다른 브로커에서 이전된 주식 등)는 경고를 띄우지 않습니다.

Interactive Brokers: Flex Query 가져오기 · 가져오기 보고서 · 브로커와 가져오기