반도체 지수(SOXX)가 오르면 3배 롱 ETF(SOXL), 내리면 3배 숏 ETF(SOXS) — 지수 방향만 보고
레버리지 ETF를 주간·프리·정규 3세션에 걸쳐 사람 손 없이 사고팔고 싶다. 이 요청을
한국투자증권 KIS 해외주식 API로 구현한 사례입니다. 미국장이 열려 있는 사실상 하루 종일,
지켜보지 않아도 세션마다 알아서 방향을 판단하고 진입·청산합니다.
고객은 필라델피아 반도체 지수(SOXX)의 그날 방향에 확신이 설 때,
3배 레버리지 ETF인 SOXL(롱)·SOXS(숏)로 데이트레이딩을 하고 있었습니다.
문제는 미국장이 한국 시간으로 밤~새벽에 열리고, 그것도 한투 주간거래 · 프리마켓 · 정규장
세 개 세션에 걸쳐 사실상 하루 종일 움직인다는 것. 세 시간대를 사람이 다 지키는 건 불가능했습니다.
요청은 명확했습니다. ① 세션이 시작될 때마다 SOXX 전일 대비 ±1% 방향을 판단해
롱이면 SOXL, 숏이면 SOXS를 자동으로 고르고, ② 주간·프리·정규 3세션에 나눠 분할 매수하고,
③ 목표 수익에 닿으면 자동으로 청산하고, ④ PC를 꺼둬도 클라우드에서 24시간 돌아가는 것.
레버리지 3배 ETF는 지수가 1% 움직이면 대략 3% 움직이는 고위험 상품입니다.
그래서 이 프로젝트의 핵심은 단순한 "자동 진입"이 아니라, 세션이 바뀌며 방향이 뒤집히는 상황,
프로그램이 재시작되거나 한국 시간 자정을 넘겨도 같은 날 포지션에 중복 진입하지 않도록 상태를 정확히
지키는 것이었습니다.
02구현 방식
한투 KIS 해외주식 API를 REST와 WebSocket으로 나눠 연동하고,
세 세션을 각각 독립된 상태머신으로 돌리는 구조로 설계했습니다. 흐름은 이렇습니다:
방향 판단 → 세션 시작 시 SOXX 전일 종가 대비 현재가 변동률을 1회 계산. +1% 이상이면 롱(SOXL), −1% 이하면 숏(SOXS), 그 사이면 그 세션은 그날 휴장 처리
분할 매수 → 주간장은 호가 사다리로 첫 매수 + 하향 분할, 프리장은 이월 금액으로 추가 분할, 정규장은 TWAP(시간 분할)로 상한가를 추적하며 매수
분할 지정가 매도 → 매수 직후 익절가부터 1틱씩 올린 여러 개의 지정가 매도를 거래소에 미리 걸어둠. 프로그램이 감시하다 파는 게 아니라 목표가에 닿는 즉시 서버가 체결
청산·안전장치 → SOXX가 진입 방향과 반대로 크게 돌면 손절, 정규장은 장 마감 LOC로 종가 청산(또는 익일 이월 선택), 세션별 익절률·재진입 횟수를 설정
매매 로직은 Python asyncio 단일 프로세스로 구현했습니다.
한투 해외주식은 일반 시장가 주문이 지원되지 않기 때문에, 모든 주문을 지정가로 처리하되
호가를 기준으로 즉시 체결되는 가격을 산출해 "시장가 효과"를 냈습니다.
구체적으로는 — 세션이 시작되면 SOXX 방향을 판단해 종목을 확정하고,
세션 성격에 맞는 분할 매수 시퀀스를 실행합니다. 매수와 동시에 익절가부터 1틱 간격으로
여러 지정가 매도를 미리 걸어두고, SOXX 손절 감시와 장마감 청산을 함께 돌립니다.
설정은 텔레그램 명령으로 즉시 바꿀 수 있고, 변경 즉시 저장됩니다.
03해결한 기술 난제
3세션 상태머신 + 방향추종 3배 ETF 리스크
3세션 자동매매의 진짜 어려움은 "언제 사고파느냐"가 아니라,
세션이 넘어가고 프로그램이 재시작돼도 상태가 어긋나지 않는 것입니다.
각 세션을 상태머신으로 관리하고 파일에 영속화해, 재시작하면 진입은 건너뛰고
보유분 관리(익절·손절·청산)만 이어가며 같은 거래일 중복 진입을 차단했습니다.
여기에 3배 ETF는 방향이 맞아도 순간 되돌림 폭이 크므로, 미리 걸어둔 분할 지정가 매도로
목표가에 닿는 즉시 청산하고, SOXX가 역행하면 손절해 고위험 상품의 되돌림을 구조적으로 방어했습니다.
전략 흐름 — SOXX 방향판단부터 3세션 분할매수·익절가 1틱 상향 분할 지정가 매도까지
세션 FSM + 상태 영속화 — 각 세션을 판단→매수→보유→매도→재진입 상태머신으로 관리하고 파일에 저장. 재시작 시 보유 포지션은 "진입 생략, 관리만" 경로로 복구해 익절·손절·장마감 청산이 끊기지 않음
미리 거는 분할 지정가 매도 — 익절가부터 1틱씩 올린 여러 지정가 매도를 매수 직후 예약. 프로그램이 감시하다 파는 방식보다 빠르고, 폴링 주기와 무관하게 목표가 도달 즉시 서버측에서 체결
세션별 현지 거래일 휴장 판정 — 주간장은 한국 날짜, 프리·정규장은 미국 동부 날짜로 거래일을 계산해 시차 경계의 "유령 세션"을 차단(한국 월요일 새벽은 미국은 아직 일요일). 조기 마감일은 장마감 청산 시각을 자동으로 앞당김
SOXX 역행 손절 + LOC 종가 청산 — 지수가 진입 방향과 반대로 설정 폭 이상 움직이면 즉시 손절하고, 정규장은 장 마감 지정가(LOC)로 종가 청산하거나 익일 이월을 선택
적응형 시세 + 토큰 자동 갱신 — 실시간 시세(WebSocket)가 끊기면 REST 폴링으로 자동 전환·복귀하고, 24시간마다 만료되는 KIS 접근 토큰을 만료 전 선제 재발급해 무중단 운영
04핵심 기능
SOXX ±1% 방향추종 — 세션 시작마다 지수 방향을 판단해 SOXL(롱)·SOXS(숏)를 자동 선택
주간·프리·정규 3세션 분할 매수 — 세션별 투자 비율·분할 단계·TWAP를 설정대로 자동 실행
익절가 1틱 상향 분할 지정가 매도 — 목표 수익 구간을 여러 지정가로 나눠 미리 걸어 자동 청산
세션별 익절률·재진입·손절 — 세션마다 목표 익절률, 재진입 횟수, SOXX 역행 손절을 개별 설정
텔레그램 원격 제어 — 시드·투자 비율·익절/손절·종목 페어까지 다수 명령으로 즉시 조정하고, 설정은 바로 저장
클라우드 24시간 무중단 — PC를 꺼도 세 세션 모두 자동 대응, 재시작 시 마지막 상태로 복구
05제작 과정 (약 20~25일)
초반 · 연동·세션 골격 — KIS 해외주식 OAuth·주문·조회 연동, 3세션 시간대(써머타임·휴장·조기마감) 판정, 세션 상태머신 뼈대 구축
중반 · 전략 로직 — SOXX 방향 판단, 세션별 분할 매수·TWAP, 익절가 1틱 상향 분할 지정가 매도, 손절·재진입·LOC 청산 구현
후반 · 안정화·배포·검증 — 상태 영속화·재시작 복구, WebSocket↔REST 적응형 시세, 텔레그램 명령, 클라우드 배포 후 모의·소액 실계좌로 실체결 검증 및 인수인계
06납품 결과물
실행 봇 (3세션 자동매매 프로그램)
세션 상태 영속화 + 클라우드 배포 설정 (24/7 운영)
텔레그램 알림·원격 제어 봇 연동
사용설명서 + API·서버 설정 가이드
납품 후 30일 무료 AS (협의 범위 내)
07기술 스택
한국투자증권 KIS API (REST · 해외주식)KIS WebSocket (실시간 시세·체결통보)Python 3.10 (asyncio)세션 상태머신 + state 영속화클라우드 서버 (GCE/VPS · 24/7)Telegram Bot API
※ 본 사례는 과거 고객 요구사항을 익명 처리하여 재구성한 것이며, 수익률·수익금은 공개하지 않습니다.
알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천·투자 자문·수익 보장 서비스가 아닙니다.
과거 백테스트 결과가 미래 실거래 수익을 보장하지 않습니다. 미국 레버리지 ETF(3배)는 기초 지수의
하루 변동을 배수로 추종해 변동성이 매우 크며, 파생·레버리지 상품 투자는 원금 손실 위험이 있습니다.
이런 자동매매, 바로 견적 받아보세요
SOXX 방향추종·레버리지 ETF 같은 전략이 이미 있으셔도, 아직 아이디어 단계여도 괜찮습니다.
알고랩이 24시간 빠르게 답변드립니다.