이종관
프로젝트 목록으로

PersonalTrader — AI 멀티에이전트 주식 자동매매

LLM 기반 멀티에이전트 주식 자동매매 시스템

·2025.12 - 현재·1인 풀스택 설계 및 개발
FastAPI
Next.js
PostgreSQL
Redis
Kafka
Claude API
LangGraph
Celery
Docker

배경

증권 API와 LLM을 결합하여, 여러 독립 에이전트가 각자의 예산/전략/포지션으로 자율적으로 매매하는 시스템을 구축하고자 했습니다. 초기 AI 파이프라인은 단순한 전략 평가(V1)로 시작했지만, 실전 적용 과정에서 분석 깊이 부족, 이벤트 추적 불가, 과도한 복잡성 등의 문제를 반복적으로 마주했습니다. KIS API의 초당 호출 제한과 해외 잔고 조회 시 통화별 다건 호출이 필요한 비효율도 해결해야 했습니다.

해결 과정

AI 파이프라인 4단계 진화: V1(단순 전략) → V2(12에이전트) → V3(Kafka+LangGraph 이벤트 소싱) → V4(4단계 단순화)로 진화했습니다. V3에서 Kafka 5개 토픽과 LangGraph 상태 머신까지 구축했지만, 디버깅과 운영이 어려워 V4에서 Scan→Score→Guard→Execute 4단계로 단순화하고, LLM 역할을 의사결정자에서 리포트 전용으로 전환했습니다. 백테스트 프레임워크(Sharpe/MaxDD/WinRate/Calmar 메트릭)를 추가하여 정량적 검증을 가능하게 했습니다.

증권 API 최적화: 해외 잔고 조회를 통화별 4건에서 1건으로 통합하고, 복수 종목 시세를 배치 1건으로, 거래소 자동 감지로 3건→1건으로 줄였습니다. WebSocket 체결 확인으로 폴링을 제거하고 Redis 시세 캐시와 적응형 OHLCV TTL을 적용했습니다.

Zero-Trust 보안: Docker 네트워크를 3개(분석, 실행, 공유 인프라)로 격리하여 분석 서비스에서 주문 실행이 불가능한 구조를 구현하고, API 키는 Docker Secrets로 파일 기반 격리했습니다.

멀티 브로커 추상화: Python Protocol 기반 브로커 추상화 레이어를 설계하여 KIS/Kiwoom 2사를 통합하고, 신규 브로커 추가 시 어댑터 1개만 구현하면 되는 확장 구조를 확보했습니다.

WebSocket 서버 푸시 및 ReACT 리포트: 폴링 방식을 3채널 WebSocket(가격, 포트폴리오 요약, 에이전트 로그)으로 전환하고, ReACT(Reasoning + Acting) 에이전트 패턴으로 도구 호출을 통해 증거를 수집한 후 리포트를 자동 작성하도록 했습니다.

학술 기반 청산 시스템: VWAP 래더 분할 청산, ATR 적응형 트레일링 스탑, 시간 감쇄 강제 청산의 3단계 보호 체계를 학술 연구 기반으로 설계하여, LLM 의존도를 낮추고 규칙 기반 포지션 관리를 자동화했습니다.

성과

  • AI 파이프라인 V1→V4 4단계 진화를 거쳐 실용적 4단계 구조로 수렴, 정량적 백테스트 검증 가능
  • 해외 잔고 API 호출 75% 절감(4건→1건), 복수 종목 시세 배치 처리, 거래소 감지 67% 절감
  • Zero-Trust Docker 네트워크 3개 격리, 10개 서비스 오케스트레이션, Cloudflare Tunnel 외부 접근
  • Protocol 기반 멀티 브로커 추상화로 신규 브로커 어댑터 1개만 추가하면 확장 가능
  • 11개 대형 파일을 38개 모듈로 분리하는 대규모 리팩토링으로 코드 유지보수성 확보