You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
한국투자증권 Open API를 활용하여 미국 주식(SOXL, TQQQ 등)을 자동으로 매매하는 파이썬 트레이딩 봇 예제입니다. 라오어의 무한매수법 퀀트 전략, VWAP 타임 슬라이싱, 텔레그램 봇 제어, Docker 배포를 학습할 수 있는 기술적 레퍼런스로 작성되었습니다.
Keywords: 한투 API, 한국투자증권 자동매매, 미국주식 자동매매 봇, 라오어 무한매수법 파이썬, SOXL TQQQ 자동매매, VWAP 알고리즘, 텔레그램 트레이딩봇, KIS Open API Python, US Stock Trading Bot, Raspberry Pi 주식봇
본 저장소는 순수하게 파이썬과 API를 공부하기 위한 기술적 예제일 뿐이며, 원작자의 공식적인 승인이나 검수를 받은 프로그램이 아닙니다.
만약 원작자(라오어님)께서 본 코드의 공유를 원치 않으시거나 삭제를 요청하실 경우, 본 저장소는 어떠한 사전 예고 없이 즉각적으로 삭제(또는 비공개 처리)될 수 있음을 명확히 밝힙니다.
면책 조항 (Disclaimer)
이 코드는 한국투자증권 Open API의 기능과 파이썬 자동화 로직을 학습하기 위해 작성된 교육 및 테스트 목적의 순수 예제 코드입니다.
특정 투자 전략이나 종목을 추천하거나 투자를 권유하는 목적이 절대 아닙니다.
본 코드를 실제 투자에 적용하여 발생하는 모든 금전적 손실 및 시스템 오류에 대한 법적, 도의적 책임은 전적으로 코드를 실행한 사용자 본인에게 있습니다.
본 코드는 어떠한 형태의 수익도 보장하지 않으므로, 반드시 충분한 모의 테스트 후 본인의 책임하에 사용하시기 바랍니다.
주요 기능
매매 엔진
기능
설명
라오어 무한매수법(V14) 퀀트 엔진
T값, 별값 공식 기반 분할 매수/매도. LOC 단일 타격 또는 VWAP 슬라이싱 선택 가능
V-REV 역추세 방어 엔진
LIFO 지층별 독립 익절, 0주 새출발 디커플링(0.999/0.935), 자동/수동 VWAP 모드
VWAP 타임 슬라이싱
장 마감 33분 전부터 U-Curve 유동성 가중치로 1분 단위 분할 매매. 5년 백테스트 기반 30개 가중치
AVWAP 듀얼 레퍼런싱
기초자산(SOXX) 시그널 스캔 + 파생상품(SOXL) 호가창 타격. 3대 강제 청산(하드스탑, 스퀴즈, 타임스탑)
잭팟 스윕 피니셔
목표 수익률 도달 시 전량 지정가 덤핑. 거래소 락다운 우회, Daily Buy-Lock 방어
시스템
기능
설명
멀티 코어 스케줄러
시스템 관리(core_jobs)와 실전 매매(trade_jobs) SRP 분리
텔레그램 모바일 UI
인라인 버튼으로 장부 조회, 수동 주문, 모드 전환, 졸업 카드 발급
TrueSync 장부 동기화
NYSE 영업일 자동 인식, 비파괴 보정(CALIB), 팩트 기반 잔고 교정
KIS API 토큰 관리
OAuth2 로컬 캐싱, 만료 전 자동 갱신(Self-Healing), 원자적 쓰기(fsync)
공포지수 기반 Regime-Switching
ATR/VXN 실시간 스캔으로 하방 매수 차단/상방 익절 전환 자율주행
졸업 카드 GIF 렌더링
전량 익절 달성 시 수익금을 각인한 움짤(.gif) 텔레그램 자동 발급
기술 스택
분류
기술
언어
Python 3.12+
증권 API
한국투자증권(KIS) Open API (REST, OAuth2)
시세 데이터
yfinance (야후 파이낸스)
봇 프레임워크
python-telegram-bot (JobQueue 스케줄러)
데이터 처리
pandas, numpy, pandas_market_calendars
이미지 생성
Pillow (PIL)
배포
Docker, Docker Compose, systemd, Raspberry Pi
CI/CD
GitHub Actions (Python 3.12/3.13, Docker 빌드)
테스트
pytest, pytest-asyncio (291 tests)
빠른 시작
필수 환경
Python 3.12 이상
한국투자증권 Open API 발급 (App Key, App Secret)
Telegram Bot Token 및 Chat ID
방법 1: Docker Compose (권장)
# 1. 환경변수 설정
cp .env.example .env
# .env 파일에 실제 키 입력# 2. 빌드 + 백그라운드 실행
docker compose up -d --build
# 3. 실시간 로그 확인
docker compose logs -f
# 4. 중지
docker compose down
방법 2: 스크립트 실행 (Linux)
git clone https://github.com/aaron-jang/KIS-API-Python-Trading-Bot-Example.git
cd KIS-API-Python-Trading-Bot-Example
# 시스템 라이브러리 설치 (Debian/Ubuntu/라즈베리파이)
sudo apt install -y libopenblas-dev
# 초기 설치 (venv 생성 + 패키지 설치)
./scripts/setup.sh
# .env 편집
vi .env
# 실행 / 중지 / 로그
./scripts/start.sh
./scripts/stop.sh
./scripts/logs.sh
방법 3: systemd 서비스 등록 (Linux, 재부팅 시 자동 실행)
sudo tee /etc/systemd/system/kis-trading-bot.service << 'EOF'[Unit]Description=KIS Trading BotAfter=network-online.targetWants=network-online.target[Service]Type=simpleUser=piWorkingDirectory=/home/pi/project/kis-api-pythonEnvironment="TZ=Asia/Seoul"ExecStart=/home/pi/project/kis-api-python/venv/bin/python /home/pi/project/kis-api-python/main.pyRestart=alwaysRestartSec=10[Install]WantedBy=multi-user.targetEOF
sudo systemctl daemon-reload
sudo systemctl enable kis-trading-bot # 부팅 시 자동 시작
sudo systemctl start kis-trading-bot # 지금 시작# 관리
sudo systemctl status kis-trading-bot # 상태 확인
sudo systemctl restart kis-trading-bot # 재시작
journalctl -u kis-trading-bot -f # 실시간 로그
User, WorkingDirectory, ExecStart 경로는 환경에 맞게 수정하세요.