Interactive Brokers
Flex Web Service 토큰과 Flex Query 두 개로 Interactive Brokers를 한 번만 연결하세요. Tradeways가 정해진 일정에 따라 새 주식, ETF, Forex 체결을 가져와요.
Interactive Brokers
Interactive Brokers를 한 번만 연결하면 Tradeways가 체결을 자동으로 가져와요. 설치할 것은 없고 컴퓨터를 켜 둘 필요도 없어요. Tradeways가 정해진 일정에 따라 Interactive Brokers에서 여러분이 설정한 Flex 보고서를 다운로드해요.
연결은 읽기 전용이에요. Flex Web Service 토큰으로는 여러분이 구성한 Flex 보고서만 다운로드할 수 있어요. 주문을 내거나 자금을 이동할 수는 없어요.
설정에는 10분 정도 걸려요. Interactive Brokers에서 세 가지를 만들어 Tradeways에 붙여 넣어요.
| 항목 | 생김새 | 용도 |
|---|---|---|
| Flex Web Service 토큰 | 긴 숫자, 약 25자리 | Tradeways가 보고서를 다운로드하도록 허용해요 |
| Activity Flex Query ID | 짧은 숫자, 약 7자리 | 일일 보고서: 정정, 수수료, 보유 포지션 |
| Trade Confirmation Flex Query ID | 짧은 숫자, 약 7자리 | 당일 보고서: 새 체결 |
모두 Interactive Brokers의 Performance & Reports → Flex Queries에 있어요. 아래 그림은 Interactive Brokers 모바일 앱에서 가져온 것으로, 이 페이지의 이름이 Trade Reports예요. 데스크톱의 Client Portal에도 같은 필드가 있어요.
연결 이전의 기록을 가져오거나 토큰 없이 가져오려면 Interactive Brokers 파일 가져오기를 참고하세요.
Interactive Brokers 설정하기
1. Flex Web Service를 켜고 토큰 만들기
Flex Queries를 열고 Flex Web Service Configuration 옆의 톱니바퀴 아이콘을 선택하세요.

- Flex Web Service Status를 켜세요.
- Valid for IP Address는 비워 두세요. Tradeways는 고정된 주소에서 연결하지 않으므로 IP 주소로 제한한 토큰은 거부돼요.
- Generate New Token을 선택하고 토큰의 유효 기간을 고르세요. 가장 긴 기간을 고르면 곧바로 교체하지 않아도 돼요.
토큰을 복사하세요. 나중에 다른 토큰을 생성하면 이 토큰은 무효가 되므로, 그때는 Tradeways에서 자격 증명을 교체하세요.
2. Flex Query 두 개 만들기
Flex Queries 페이지에는 쿼리 유형마다 + 버튼이 따로 있어요.

Activity Flex Query (1). 독일어 포털에서는 Kontoumsatz-Flex-Query예요.
- 이름을 지정하세요. 예:
Tradeways. - Trades 섹션을 추가하세요. 세부 정보 수준으로 Executions를 선택하고 모든 필드를 선택하세요.
- Open Positions 섹션을 추가하세요. 세부 정보 수준으로 Summary를 선택하고 모든 필드를 선택하세요.
- 형식을 XML로 설정하세요. 기간은 상관없어요. Tradeways가 요청할 때마다 날짜를 지정해요.
- 3단계와 같이 일반 구성을 설정한 다음 저장하세요.
Trade Confirmation Flex Query (2). 독일어 포털에서는 Handelsbestätigungs-Flex-Query예요.
- 이름을 지정하세요. 예:
Tradeways. - Trade Confirmation 섹션을 추가하세요. 세부 정보 수준으로 Execution을 선택하고 모든 필드를 선택하세요.
- 형식을 XML로 설정하세요.
- 3단계와 같이 일반 구성을 설정한 다음 저장하세요.
쿼리 하나에 Interactive Brokers 계좌 여러 개를 포함할 수 있어요. 계좌마다 쿼리를 따로 만들 필요는 없어요. Tradeways가 계좌를 처음 발견하면 어디로 보낼지 물어봐요.
3. 두 쿼리의 일반 구성 설정하기
두 쿼리 모두 General Configuration 블록이 있어요. 각각 같은 네 가지 값을 설정하세요.

- Date Format:
yyyyMMdd. - Time Format:
HHmmss TimeZone. 가장 놓치기 쉬운 설정이에요. 이 설정이 없으면 체결 시각에 시간대가 포함되지 않고, Tradeways는 시각을 추측해야 하는 보고서는 가져오지 않아요. - Date/Time Separator:
; (semi-colon). - Include Offsetting Trade/Cancel Pairs?: Yes. 그러면 Interactive Brokers가 취소한 체결도 매매일지에서 제거돼요.
Profit and Loss는 Default로 두세요. 나머지 옵션은 그대로 두어도 돼요.
4. 쿼리 ID 두 개 복사하기
각 쿼리를 여세요. Query ID는 세부 정보 맨 위에 표시돼요.

두 쿼리 ID는 서로 달라야 해요. 토큰은 쿼리 ID보다 훨씬 길어서 세 값을 쉽게 구분할 수 있어요.
Tradeways에서 연결하기
- 설정 → 연동으로 이동해 Interactive Brokers를 찾으세요.
- Interactive Brokers 연결을 선택하세요.
- Flex Web Service 토큰에는 토큰을, Activity 쿼리 ID에는 Activity 쿼리 ID를, Trade Confirmation 쿼리 ID에는 Trade Confirmation 쿼리 ID를 붙여 넣은 다음 연결을 선택하세요.
- Tradeways가 토큰과 두 쿼리를 확인해요. Interactive Brokers가 보고서를 생성하는 데 몇 분 걸릴 수 있어요. 창을 닫아도 되며, 상태는 설정에서 업데이트돼요.
- 보고서에 Interactive Brokers 계좌가 있으면 각 계좌를 Tradeways 계좌와 하나씩 매핑하거나 가져오지 않기를 선택하세요. 매핑하기 전에는 해당 계좌에서 아무것도 가져오지 않아요.
토큰은 암호화되어 저장되며 다시 표시되지 않아요. Interactive Brokers 계좌 번호는 일부를 가려서 표시해요.
첫 동기화에서 무언가를 가져온 뒤에는 매핑된 계좌가 대상 계좌를 유지해요. 계좌를 제외했다가 나중에 다시 포함할 수는 있지만, 같은 Tradeways 계좌로만 가능해요. 대상을 옮기면 같은 기록이 두 번째 계좌로 중복해서 들어오기 때문이에요.
동기화 방식
자동 동기화는 실시간 피드가 아니에요. Interactive Brokers는 Flex 보고서를 지연해서 게시하고, Tradeways는 정해진 일정에 따라 이를 읽어요.
- 새 체결: Trade Confirmation 쿼리를 약 15분마다 확인해요. 새 체결은 대략 10~20분 안에 매매일지에 나타나요.
- 정정 및 보유 포지션: Activity 쿼리를 하루에 한 번 확인해요. 늦게 들어온 체결, 정정된 수수료, 보유 포지션의 당일 종가를 반영해요.
- 첫 동기화: 최근 365일을 가져와요. 그보다 오래된 기록은 파일 가져오기로 가져오세요.
지금 동기화를 선택하면 점검을 앞당겨 요청할 수 있어요. 요청은 15분에 한 번으로 제한돼요.
체결은 Interactive Brokers 체결 ID로 매칭해요. 이전 보고서나 파일 가져오기로 이미 매매일지에 있는 체결은 두 번 가져오지 않아요. 삭제한 Trade는 이후 보고서에 해당 체결이 다시 포함되어도 삭제된 상태로 유지돼요.
가져오는 항목
- 주식 및 ETF 체결, 그리고 Interactive Brokers가 진입 또는 청산으로 표시한
CASHForex 체결. 다른 자산군은 미지원으로 집계하고 건너뛰어요. - Interactive Brokers가 보고한 부분 체결, 포지션 반전, 수수료(수수료 환급 포함).
- 취소: 취소된 체결은 해당 체결이 속한 Trade에서 제거돼요.
- Activity 보고서의 일일 종가(
MarkPrice)로 계산한 보유 주식 및 ETF 포지션의 진행 중 P&L. 실시간 시세는 아니에요.
Excursion 지표와 그 밖의 가격 기반 분석은 가격 기록을 지원하는 상품에만 표시돼요. 그 밖의 Trade는 지표 없이 가져오며, Tradeways는 값을 추정하지 않아요.
기록 공백
청산 체결에는 그에 대응하는 진입 체결이 필요해요. 진입 체결이 동기화 기간보다 오래됐고 매매일지에도 없으면, Tradeways는 청산 체결을 건너뛰고 기록 공백으로 집계해요. 대체 진입 체결을 만들지는 않아요. 공백을 메우려면 두 체결을 모두 포함하는 파일을 가져오세요. 같은 계좌로 가져와야 해요.
상태와 집계
설정의 각 연결에는 상태, 마지막 점검, 마지막 성공한 점검, 다음 예약된 점검이 여러분의 시간대로 표시돼요.
| 상태 | 의미 |
|---|---|
| 점검 중 | 보고서를 요청하거나 처리하고 있어요. |
| 계좌 선택 | 새 Interactive Brokers 계좌가 발견됐어요. 계속하려면 매핑하거나 제외하세요. |
| 활성 | 마지막 점검에 성공했어요. |
| 활성, 일부 행 건너뜀 | 마지막 보고서를 가져왔지만 검토가 필요한 일부 행은 건너뛰었어요. 동기화는 계속돼요. |
| 지연됨, 재시도 중 | Interactive Brokers를 사용할 수 없었어요. Tradeways가 자동으로 다시 시도해요. |
| 조치 필요 | 토큰, 쿼리 또는 보고서 형식을 확인해야 해요. 해결할 때까지 동기화가 중지돼요. 메시지에 원인이 표시돼요. |
집계는 마지막 보고서를 기준으로 해요. 가져온 체결, 중복으로 건너뛴 체결, 취소로 제거된 체결, 미지원으로 건너뛴 체결, 기록 공백으로 건너뛴 체결이 포함돼요. 일일 Activity 보고서는 이전 며칠과 겹치므로 대부분의 체결이 중복으로 집계되는데, 정상이에요.
문제 해결
| 메시지 또는 증상 | 해결 방법 |
|---|---|
| Flex 토큰이 만료됐어요 | 1단계에서 새 토큰을 생성한 다음 자격 증명 교체를 선택하세요. |
| Flex 토큰이 특정 IP 주소로 제한돼 있어요 | Valid for IP Address를 비워 두고 토큰을 생성하세요. |
| Flex Query ID가 잘못됐어요 | 각 ID가 올바른 필드에 들어갔는지, Activity 쿼리와 Trade Confirmation 쿼리가 서로 바뀌지 않았는지 확인하세요. |
| 보고서를 읽을 수 없어요 | 두 쿼리의 형식을 모두 XML로 설정하세요. |
| 이 보고서의 일부 행을 읽을 수 없어요 | 두 쿼리의 시간 형식을 HHmmss TimeZone으로 설정하고 각 섹션의 모든 필드를 선택하세요. 체결 시각에는 미국 동부 시간 접미사(EST 또는 EDT)가 있어야 해요. |
| 새 체결이 다음 날에야 나타나요 | Trade Confirmation 쿼리가 체결을 반환하지 않고 있어요. 섹션과 일반 구성을 확인하세요. |
| 이미 다른 Flex 토큰으로 연결된 계좌가 있어요 | 쿼리 중 하나에서 해당 계좌를 제거하거나 다른 연결을 해제하세요. |
| 보고서가 너무 커요 | 이전 기록은 파일로 가져오세요. 새 체결이 들어오지 않으면 지원팀에 문의하세요. |
Interactive Brokers에서 토큰이나 쿼리를 수정한 뒤에는 자격 증명 교체를 선택해 다시 확인하세요. 대상 계좌를 사용할 수 없으면 계좌 매핑을 선택하세요. 연결 해제를 선택하면 모든 점검이 중지되고 토큰이 삭제돼요. 이미 가져온 Trade는 계좌에 그대로 남아요.