8971a648e2d1e0adae2e7312e355d2af70e8b7fa
- korea_investment_api: 주문 계열 엔드포인트는 내부 재시도 금지(_NON_IDEMPOTENT_ENDPOINTS). 상위 _place_order_with_retry 와 중첩돼 타임아웃 시 동일 주문 최대 12회 전송 가능했음. get_todays_orders() 추가. - trade_executor: 예외 후 재시도 전에 당일 주문내역으로 접수 여부 확인(_find_recent_order) → 접수됐으면 재주문하지 않고 기존 주문 반환. - daytrading/exit_service: 주문 체결 이후 상태 반영을 _finalize_exit 로 분리하고 asyncio.shield 로 보호 — 스케줄러 단계 타임아웃이 이 구간을 취소하면 브로커는 팔았는데 인메모리는 그대로라 다음 사이클이 재매도. - swing/position_manager: active 행이 2개면 MultipleResultsFound 로 해당 종목 청산이 통째로 스킵됐음(손절 미작동) → 최신 행 사용. - swing/exit_service: 큐 지연·DLQ 시 같은 분할매도가 반복되지 않도록 180초 인메모리 쿨다운. - portfolio_v2: 부분매도 ActiveTrade 잔량 갱신 + 전략명 매핑(daytrading→day_trade, us_swing→us_mean_reversion) — 매칭 실패로 active 행이 영구 잔존했음. - portfolio.sell_stock: safe_place_order 경유(세마포어·분산락) + DT 인메모리 잔량 반영. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Auto Stock Trading System with MCP
Claude AI와 MCP(Model Context Protocol)를 활용한 한국 주식 자동매매 시스템
시스템 아키텍처
- Frontend: React + TypeScript + Vite
- Backend: Python FastAPI + WebSocket
- MCP Server: Claude AI 통합
- Database: PostgreSQL
- Cache: Redis
- Message Queue: RabbitMQ
- API: 한국투자증권 API
주요 기능
- 실시간 시장 데이터 수집
- Claude AI 기반 규칙 검증
- 자동 매매 실행
- 포트폴리오 관리
- 실시간 모니터링
프로젝트 구조
auto-stock/
├── frontend/ # React 프론트엔드
├── backend/ # FastAPI 백엔드
├── mcp-server/ # MCP 서버
├── docker/ # Docker 설정
└── scripts/ # 배포 스크립트
빠른 시작
# 환경 변수 설정
cp .env.example .env
# 기본값
# - `DATABASE_URL`은 `.env.example`에 이미 도커 컨테이너(127.0.0.1:5432)를
# 가리키도록 설정되어 있습니다. 로컬 개발 시 별도 수정이 필요 없습니다.
# 원격 DB를 사용하려면 여기에 URL을 덮어쓰십시오.
# Docker로 전체 시스템 시작
./scripts/deploy.sh
# 개발 모드
./scripts/dev.sh
환경 변수
.env 파일에 다음 설정 필요:
KOREA_INVESTMENT_APP_KEY: 한국투자증권 앱키KOREA_INVESTMENT_APP_SECRET: 한국투자증권 시크릿ANTHROPIC_API_KEY: Claude API 키DATABASE_URL: PostgreSQL 연결 URL (기본값은 도커 컨테이너)REDIS_URL: Redis 연결 URL
라이센스
MIT
Description
Languages
Python
90.6%
TypeScript
8.6%
Shell
0.5%
CSS
0.1%