해외주식, IBKR

IBKR 미국주식 그리드 트레이딩 봇

미국주식을 일정한 가격 간격으로 사고팔기를 반복하는 그리드 매매를 Interactive Brokers(IBKR) API로 만든 사례입니다. 현재가 ±20% 범위에 지정가 주문을 깔아 두면, 매수가 체결될 때 매도가 걸리고 매도가 체결되면 다시 매수가 걸립니다. 고객이 가장 걱정한 것은 프로그램을 켜자마자 대량매수가 나가는 사고였습니다.

플랫폼
Interactive Brokers
IB Gateway 또는 TWS, ib_insync
특징
현재가 ±20%
지정가 페어 자동 배치
유형
미국주식 그리드
지정가(GTC)
제작 기간
약 2주 (10~14일)
IBKR 그리드 트레이딩 프로그램 대시보드. 연결 상태(페이퍼), 현재가와 ±20% 범위 표, 체결된 매수 레벨과 자동 생성된 매도 주문가, 미체결 매도와 현재가 아래 매수 주문 현황
납품한 프로그램의 대시보드(페이퍼 계좌). 체결된 매수 레벨마다 $0.50 위에 매도가 자동으로 걸리고, 매수는 현재가 아래에만 배치됩니다. 수량과 가격은 예시입니다.

01배경과 요구사항

고객은 미국 주식을 격자(그리드)로 반복 매매하고 싶어 했습니다. 가격이 일정 간격 내려갈 때마다 조금씩 사고, 다시 그만큼 오르면 파는 것을 정해 둔 범위 안에서 계속 되풀이하는 전략입니다. 사람이 직접 하려면 밤새 수십 개의 지정가 주문을 관리해야 합니다.

그리드에는 처음 켤 때 흔히 나는 사고가 하나 있습니다. 현재가 위아래 ±20% 전 범위에 매수 주문을 깔면, 현재가보다 높은 가격의 매수 지정가는 넣는 순간 바로 체결됩니다. 프로그램을 켜자마자 위쪽 매수 주문이 한꺼번에 나가 의도하지 않은 대량매수가 됩니다.

요청은 네 가지였습니다. 국내 계좌 대신 IBKR 계좌로 미국주식 그리드를 자동 운영할 것, 시작 직후 대량매수가 나가지 않을 것, 매수가 체결되면 매도가, 매도가 체결되면 다시 매수가 자동으로 걸릴 것. 그리고 PC를 껐다 켜도 매매내역과 실현손익이 남아 있어야 했습니다.

02구현 방식

IB Gateway나 TWS에 ib_insync로 붙어 그리드 엔진을 돌립니다. 주문은 모두 취소하기 전까지 유효한 지정가(GTC)입니다.

그리드 매매 흐름. 현재가 ±20% 격자에 지정가 매수와 매도 페어를 배치하고 체결되면 반대주문을 자동으로 만들어 반복, 현재가 아래에만 매수해 시작 대량매수 방지
그리드 매매 흐름. 격자 배치, 체결 뒤 반대주문 생성, 시작 대량매수를 막는 장치
설정 탭. Paper와 Live 선택, 포트 4002와 4001, 범위 ±20%, 격자 간격 $0.50, 레벨당 2주, GTC, 현재가 아래 레벨에만 매수 배치 체크
설정 탭. 현재가 아래 레벨에만 매수 배치 체크박스가 시작 직후 대량매수를 막습니다.

명세서에는 ±20% 전 범위에 매수를 배치한다고 적혀 있었습니다. 그대로 만들면 위쪽 매수가 즉시 체결되어 사고가 납니다. 그래서 현재가 아래는 매수 대기, 위는 매도 대기로 나눠 깔았습니다. 이 동작은 설정 화면의 체크박스로 두어서 고객이 필요하면 직접 바꿀 수 있습니다.

03어려웠던 부분

시작 대량매수와 주문 중복을 막는 일

그리드에서 위험한 것은 두 가지입니다. 하나는 앞에서 말한 시작 직후의 대량매수이고, 다른 하나는 가격이 흔들릴 때 같은 격자에 주문이 두 번 나가거나 빠지는 일입니다. 앞의 것은 현재가 아래에만 매수를 두는 것으로 막았습니다. 뒤의 것은 격자 가격을 소수점 없이 센트 단위 정수로 고정해서 풀었습니다. 현재가가 움직여도 각 레벨의 가격이 달라지지 않으니 중복도 누락도 생기지 않습니다.

04주요 기능

로그 탭. 정수 센트 격자 정렬, 매수 25개 배치, 체결 시 반대주문 자동 생성 흐름
로그 탭. 격자를 센트 단위로 정렬하고, 체결이 오면 반대 주문을 만드는 과정이 순서대로 남습니다.

05제작 과정 (약 2주)

06납품 결과물

07기술 스택

Interactive Brokers API (IB Gateway, TWS) ib_insync (Python, async) Python 3.10 (64bit) PyQt5 (GUI 대시보드) 매매내역 CSV 저장 Telegram Bot API PyInstaller (.exe 패키징)

08관련 사례

※ 본 사례는 과거 고객 요구사항을 익명 처리하여 재구성한 것이며, 수익률과 수익금은 공개하지 않습니다. 알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천, 투자 자문, 수익 보장 서비스가 아닙니다. 과거 백테스트 결과가 미래 실거래 수익을 보장하지 않습니다. 해외주식 투자는 원금 손실 위험이 있으며, 레버리지 ETF 등 변동성이 큰 종목은 손실이 확대될 수 있습니다.

그리드 매매를 맡기고 싶으시다면

종목과 간격이 정해져 있지 않아도 됩니다.
지금 손으로 하고 계신 방식을 상담에서 말씀해 주세요.

무료 상담 시작하기 고객 후기 보기
← 제작 사례 전체 보기