Files
kyu 97cf5aecb0
trading/pipeline/head This commit looks good
chore: 누적 미커밋 작업분 일괄 커밋
이번 세션 외 그간 쌓인 변경 일괄 저장:
- bareunaapi: finance_dict 금융용어 / stock_loader 종목 로더 보강
- kis-api: 키움 토큰·수집 로직
- us-market / dart-collector: 수집 보강
- docker-compose: GEMINI_API_KEY 등 환경변수 추가
- score-engine/news-collector requirements, CLAUDE.md
- 신규: PROJECT.md, news-collector/sentiment_rules.py

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 01:24:16 +09:00

7.2 KiB
Raw Permalink Blame History

Trading AI — 프로젝트 구조 정리

한국 주식 AI 투자 분석 시스템. 뉴스·공시·주가·미국증시를 수집해 워런 버핏식 가치투자 + 퀀트 멀티팩터로 분석하고 매수/매도를 추천한다. (개발자 상세 가이드는 CLAUDE.md, 이 파일은 전체 구조 요약)


1. 한눈에

  • 무엇을: 약 1,500개 한국 상장사를 매일 0100점으로 스코어링 → 등급(강력매수강력매도)
  • 어떻게: 정형 데이터(재무·주가·수급)와 비정형 데이터(뉴스·공시 텍스트)를 결합
  • 결과: 대시보드(웹) + 텔레그램 알림으로 추천 전달
  • 철학: 가치투자가 기본 관점, 실제 엔진은 가치·성장·모멘텀·퀄리티를 섞은 멀티팩터

2. 데이터 흐름

뉴스/공시 수집 → 형태소분석(바른) → 임베딩(bge-m3) → 중복제거(Qdrant)
   → EXAONE LLM 감성분석(호재/악재·강도·catalyst)
주가·수급·미국증시 수집 ─────────────────────────────┐
재무제표(DART) 수집 ────────────────────────────────┤
                                                    ▼
                              종합 스코어링 (score-engine)
                                                    ▼
                       매수/매도 추천 → 대시보드 + 텔레그램

3. 인프라

항목
서버 Ubuntu 22.04, GPU 2장 (RTX 3060 12G / RTX 3070 8G)
DB PostgreSQL trading_ai
캐시 Redis (중복제거·가격캐시)
벡터DB Qdrant (뉴스 유사도)
컨테이너 docker compose, 16개 서비스
LLM Ollama — EXAONE 3.5 7.8B(추론) + bge-m3(임베딩)

4. 서비스 구조 (16개 컨테이너)

서비스 포트 역할
news-collector 8787 뉴스 수집 + 형태소 + 임베딩 + EXAONE 감성분석
bareunaapi / bareun 5757 / 5656 한국어 형태소분석
dart-collector 8888 DART 공시·재무제표·배당·자사주·섹터 수집
score-engine 8686 종합 스코어링 + 학습 + 텔레그램 + 백테스트
ta-engine 8484 기술적 분석 (MA·RSI·MACD·볼린저 등)
dashboard-api 8989 대시보드 웹 + REST API
kis-api 8585 한국 주가 수집 + 매매시그널
aux-signal 8282 컨센서스·기관/외국인 수급 + 매크로(ECOS)
us-market 8383 미국증시 → 한국 동조 시그널 + 새벽 브리핑
graph-engine 9090 GAT 그래프 신경망 → graph_score
telegram-bot - 텔레그램 명령 처리 (/buy /sell /stock 등)
ollama 11434 LLM 추론·임베딩
postgres / redis / qdrant - DB·캐시·벡터DB
n8n / n8n-worker 5678 워크플로우 자동화

5. 종합점수 산정

종합점수 = 펀더멘털통합 ×0.24 + 뉴스 ×0.18 + 기술 ×0.15
        + DART공시 ×0.10 + 외국인수급 ×0.14 + 공매도 ×0.06
        + 가격모멘텀 ×0.03 + DCF안전마진 ×0.10
        + 시장레짐 보정 + 앙상블 보팅(±18) + 미국증시(±15)
        + 보조신호(컨센서스·수급·매크로 등)
        + 사이클 고점 가드(경기민감주 실적정점 함정 −6~−12)
  • 펀더멘털통합 = 버핏점수 + 추세 + 이익품질 + 매직포뮬러 + F-Score + 주주환원율 보너스
  • 추천 등급: 강력매수(≥70·매수보팅≥3) / 매수관심 / 관망 / 매도관심 / 강력매도

6. 10공식 앙상블 + 학습

매직포뮬러 · F-Score · 알트만Z · PEG · 12-1모멘텀 · Beneish · GP/A · G-Score · Amihud · 베타(BAB) — 각 공식이 매수/매도/관망 투표 → 학습 가중치로 결합.

학습 시스템

  • /learn-weights — 공식별 가중치를 백테스트 edge로 학습 (국면별 segment 지원)
  • /learn-pricing — 26+1개 피처로 7d/30d 수익률 예측 모델 학습 (Ridge·RF·XGBoost, walk-forward CV)
    • 학습 데이터: 전 종목 stock_scores 이력 × stock_ohlcv 실현수익률 (약 9,400 표본)
    • RF/XGB 모델은 DB에 직렬화 저장 → /predict-price가 직접 추론
  • 일요일 자동 재학습 (04:00 가중치 / 05:00 가격모델)

7. 핵심 DB 테이블

테이블 내용
news_analysis 뉴스별 감성·강도·catalyst·종목매핑
stock_scores 종목별 일일 종합점수·세부점수·추천등급·신호
dart_financials 재무제표 + ROE·부채비율 등 비율 + 자사주매입액
dart_dividends 배당금(DPS·총액)
stock_technical 기술적 지표
stock_ohlcv 일봉 시계열 (수익률·베타·학습용)
recommendation_performance 추천 성과 추적 (7d/30d 수익률·알파)
weight_config / pricing_model_v2 학습된 가중치 / 가격예측 모델(직렬화 포함)
us_overnight_signal 미국증시 → 한국 동조 보정값

8. 대시보드 (15개 탭)

종합 · 추천성과 · 매매시그널 · 거래량급증 · 포트폴리오 · 내 종목 분석 · 추천종목 · 뉴스피드 · 수급 · 알림 · 10공식 · 백테스트 · 미증시 · 매크로 · 용어설명

  • 좌측 사이드바 네비게이션, 모바일 대응(햄버거 메뉴)
  • 포트폴리오 탭: 보유종목 손익·섹터비중·리밸런싱 진단 + AI 추천 포트폴리오 구성
  • 미증시 탭: 새벽 미국 핫/저조 종목 → 관련 KOSPI 추천
  • 용어설명 탭: 차트·지표·재무·시장제도·투자스타일 용어 풀이

9. 주요 운영 명령

docker compose ps                                  # 서비스 상태
docker logs trading-<서비스> --tail 50 -f           # 로그
docker compose build <서비스> && docker compose up -d <서비스>   # 재배포

curl -X POST http://localhost:8686/score/calculate        # 전체 재스코어링
curl -X POST 'http://localhost:8686/learn-weights?days=90' # 가중치 학습
curl -X POST 'http://localhost:8686/learn-pricing?target=return_7d'  # 가격모델 학습
curl    http://localhost:8686/backtest                    # 백테스트
curl -X POST 'http://localhost:8888/collect/financials?count=3000'   # 재무 수집
curl -X POST  http://localhost:8888/collect/sectors        # 섹터 수집

10. 개선 이력 (2026-05)

  • 백테스트 신뢰성: 수익률 라벨을 OHLCV 정확한 날짜 종가로 정정, 거래비용 반영, 실제 MDD(자산곡선) 계산, 10공식 가중치 동기화
  • 학습 데이터 140배 확장: 추천종목 63건 → 전 종목 단면 9,394건. 모델 R² 0.40 → +0.38
  • 모델 직렬화: RF/XGB 모델을 DB에 저장 → /predict-price가 실제 모델로 추론
  • 주주환원율 팩터: (배당 + 자사주매입) / 시총 → 펀더멘털 보너스 (코리아 디스카운트 방어)
  • 사이클 고점 가드: 경기민감주 실적정점 함정 방어
  • 미증시 새벽 브리핑: 미국 핫/저조 종목 → 관련 KOSPI 추천
  • UI: 좌측 사이드바 + 모바일 대응, 용어설명 탭 신설
  • 포트폴리오 4종: 추천 구성 · 자산곡선 백테스트 · 보유 관리 · 통합 탭
  • 텔레그램: 하루 4회 → 3회로 축소