Skip to content

sucheol9773/aqts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

443 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AQTS - AI Quant Trade System

AI êž°ë°˜ 정량·정성적 분석 통합 퀀튾 튞레읎딩 시슀템

시슀템 구성

구성요소 Ʞ술
Backend Python 3.11 + FastAPI 0.135.3
Database PostgreSQL 16 + TimescaleDB 2.14
Document DB MongoDB 7.0
Cache/Queue Redis 7.2
AI/LLM Anthropic Claude API (Haiku 4.5 + Sonnet 4)
Broker 한국투자슝권 OpenAPI
Container Docker + Docker Compose

시작하Ʞ

1. 환겜변수 섀정

cp .env.example .env
# .env 파음을 ì—Žì–Ž 싀제 값을 입력하섞요

상섞 환겜 구성: docs/operations/docker-setup-guide.md ì°žì¡°

2. Docker 싀행

# 개발 환겜 (소슀 마욎튞 + 자동 늬로드)
docker compose up -d

# 프로덕션 환겜 (override 제왞)
docker compose -f docker-compose.yml up -d

3. 시슀템 헬슀첎크

curl http://localhost:8000/api/system/health

4. 로컬 개발자 lint/format 도구 섀치 (선택)

컀밋 전 검슝(ruff check, black --check)을 로컬에서 돌늬렀멎 Docker 왞부의 Python 가상환겜에 lint 도구륌 섀치한닀. 버전 pin 은 backend/requirements-dev.txt 닚음 진싀원천(SSOT)에서 ꎀ늬되며 CI 와 자동윌로 음치한닀.

# lint 도구만 필요한 겜우 (editor LSP 등)
pip install -r backend/requirements-dev.txt

# 런타임 + lint 도구 몚두 섀치 (테슀튞까지 로컬에서 돌늬렀멎)
pip install -r backend/requirements.txt -r backend/requirements-dev.txt

프로젝튞 구조

aqts/
├── docker-compose.yml               # 서비슀 였쌀슀튞레읎션 (PostgreSQL, MongoDB, Redis, Backend)
├── docker-compose.override.yml      # 개발 환겜 였버띌읎드 (자동 병합)
├── .env.example                     # 환겜변수 템플늿
├── README.md
├── docs/
│   ├── PRD.md                       # 제품 요구사항 묞서
│   ├── FEATURE_STATUS.md            # Ʞ능 구현 현황 (Single Source of Truth)
│   ├── backtest/
│   │   └── oos-analysis-2026-04-06.md  # OOS 분석 늬포튞 (17개 섹션)
│   └── operations/                  # 욎영 묞서 (OPS-001 ~ OPS-008)
│       ├── trading-halt-policy.md   # OPS-001: 맀맀 쀑닚/재개 정책
│       ├── incident-runbook.md      # OPS-002: 장애 대응 런북
│       ├── model-change-policy.md   # OPS-003: 몚덞 변겜 정책
│       ├── release-gates.md         # OPS-004: 늎늬슀 승읞 게읎튞 (Gate A~E)
│       ├── rollback-plan.md         # OPS-005: 배포 례백 계획
│       ├── customer-notice.md       # OPS-006: 고객 공지/멎책
│       ├── docker-setup-guide.md    # OPS-007: Docker 환겜 섞팅 가읎드
│       └── deployment-roadmap.md    # OPS-008: 배포 및 검슝 로드맵
├── backend/
│   ├── Dockerfile                   # 멀티 슀테읎지 빌드 (Python 3.11.14+)
│   ├── requirements.txt             # Python 런타임 의졎성
│   ├── requirements-dev.txt         # 로컬/CI 전용 lint·format 도구 (ruff, black)
│   ├── requirements-security.txt    # 로컬/CI 전용 볎안 슀캐너 (pip-audit, OPS-025)
│   ├── pyproject.toml               # pytest/ruff/black 섀정
│   ├── main.py                      # FastAPI 엔튞늬포읞튞 (Lifespan, GracefulShutdown)
│   ├── config/
│   │   ├── settings.py              # 환겜변수 êž°ë°˜ 섀정 (pydantic-settings)
│   │   ├── constants.py             # 상수·Enum 정의 (20+ Enum, 맀핑 테읎랔)
│   │   ├── logging.py               # Loguru 로깅 섀정 (dev/production 분늬)
│   │   ├── operational_thresholds.yaml  # 전 슀테읎지 임계값 쀑앙ꎀ늬
│   │   ├── ensemble_config.yaml     # 앙상랔 하읎퍌파띌믞터 섀정 (YAML ꎀ늬)
│   │   └── ensemble_config_loader.py # YAML 섀정 로더·검슝·Hyperopt 연동
│   ├── contracts/                   # 데읎터 계앜 (9개 도메읞)
│   │   ├── converters.py            # 계앜 ↔ 엔진 변환Ʞ
│   │   ├── price_data.py            # 가격 데읎터 계앜
│   │   ├── financial_data.py        # 재묎 데읎터 계앜 (look-ahead 방지)
│   │   ├── news_data.py             # 뉎슀 데읎터 계앜
│   │   ├── feature_vector.py        # 플처 벡터 계앜
│   │   ├── signal.py                # 시귞널 계앜
│   │   ├── portfolio.py             # 포튞폎늬였 계앜 (weight 합 ≈ 1.0)
│   │   ├── order.py                 # 죌묞 계앜
│   │   ├── execution.py             # 첎결 계앜
│   │   └── risk_check.py            # 늬슀크 첎크 계앜
│   ├── core/
│   │   ├── data_collector/
│   │   │   ├── kis_client.py        # 한투 API 래퍌 (LIVE/DEMO/BACKTEST)
│   │   │   ├── market_data.py       # 시섞 데읎터 수집·묎결성 검슝
│   │   │   ├── news_collector.py    # RSS 뉎슀 + DART 공시 수집
│   │   │   ├── economic_collector.py # FRED·ECOS 겜제지표 수집
│   │   │   ├── financial_collector.py # DART 재묎제표 (하읎람늬드)
│   │   │   ├── social_collector.py  # Reddit SNS 수집
│   │   │   └── corp_action.py       # êž°ì—… 읎벀튞 처늬
│   │   ├── quant_engine/
│   │   │   ├── factor_analyzer.py   # 5팩터 분석 (Value·Momentum·Quality·LowVol·Size)
│   │   │   ├── signal_generator.py  # Ʞ술적 시귞널 생성
│   │   │   └── vectorized_signals.py # 벡터화 시귞널 (MR/TF/RP, 고속 연산)
│   │   ├── ai_analyzer/
│   │   │   ├── sentiment.py         # Mode A: Claude Haiku 감성 분석
│   │   │   ├── opinion.py           # Mode B: Claude Sonnet 투자 의견 (STOCK·SECTOR·MACRO)
│   │   │   ├── prompt_manager.py    # 프롬프튞 DB 버전 ꎀ늬
│   │   │   ├── cost_analyzer.py     # AI 사용 비용 분석
│   │   │   ├── drift_monitor.py     # 몚덞 드늬프튞 몚니터링
│   │   │   ├── promotion_checklist.py # LLM 승격 첎크늬슀튞
│   │   │   └── reproducibility.py   # 재현성 검슝
│   │   ├── strategy_ensemble/
│   │   │   ├── engine.py            # 가쀑 앙상랔 + Sharpe êž°ë°˜ 재볎정
│   │   │   ├── regime.py            # 레짐 감지 (상승/하띜/횡볎/고변동)
│   │   │   ├── dynamic_ensemble.py  # 동적 레짐 êž°ë°˜ 앙상랔 서비슀 (OOS 검슝)
│   │   │   └── runner.py            # 앙상랔 싀행 였쌀슀튞레읎터
│   │   ├── backtest_engine/
│   │   │   ├── engine.py            # 백테슀튞 엔진 + 전략 비교 + 벀치마크 지표
│   │   │   ├── metrics_calculator.py # 성곌 지표 산출
│   │   │   ├── benchmark.py         # 벀치마크 비교 (Alpha/Beta/IR/TE)
│   │   │   ├── fill_model.py        # 첎결 몚덞
│   │   │   ├── impact_model.py      # 시장 충격 몚덞
│   │   │   ├── bias_checker.py      # 백테슀튞 펞향 검사
│   │   │   ├── significance.py      # 통계적 유의성 검정
│   │   │   ├── regime_analyzer.py   # 레짐별 성곌 분석
│   │   │   ├── ablation.py          # 전략 제거 횚곌 분석
│   │   │   └── pass_fail.py         # 합격/불합격 판정
│   │   ├── pipeline.py              # 투자 의사결정 통합 파읎프띌읞
│   │   ├── state_machine.py         # 10-state 파읎프띌읞 상태 ëšžì‹ 
│   │   ├── gate_registry.py         # Gate 동적 등록/싀행
│   │   ├── fallback_handler.py      # Gate BLOCK 시 폎백 처늬
│   │   ├── gates/                   # 9개 파읎프띌읞 게읎튞
│   │   │   ├── base.py              # GateResult 슀킀마
│   │   │   ├── data_gate.py         # 수집 데읎터 품질 검슝
│   │   │   ├── factor_gate.py       # 팩터 벡터 생성 품질
│   │   │   ├── signal_gate.py       # 시귞널 유횚성 검슝
│   │   │   ├── ensemble_gate.py     # 앙상랔 결곌 검슝
│   │   │   ├── portfolio_gate.py    # 포튞폎늬였 구성 검슝
│   │   │   ├── trading_guard_gate.py # 포지션 늬슀크 사전검슝
│   │   │   ├── recon_gate.py        # 거래-포지션 대사 검슝
│   │   │   ├── execution_gate.py    # 첎결 성공/싀팚 검슝
│   │   │   └── fill_gate.py         # 죌묞 완전성 검슝
│   │   ├── portfolio_manager/
│   │   │   ├── profile.py           # 투자자 프로필 ꎀ늬
│   │   │   ├── construction.py      # 포튞폎늬였 구성 (MVO·Risk Parity·Black-Litterman)
│   │   │   ├── rebalancing.py       # 늬밞런싱 엔진 (정Ʞ·ꞎ꞉·방얎)
│   │   │   ├── universe.py          # 투자 유니버슀 ꎀ늬
│   │   │   └── exchange_rate.py     # 환윚 ꎀ늬 (KIS+FRED, Redis 캐싱)
│   │   ├── order_executor/
│   │   │   ├── executor.py          # 죌묞 집행 (시장가·지정가·TWAP·VWAP)
│   │   │   ├── slippage.py          # 슬늬플지 몚덞
│   │   │   └── time_rules.py        # 시간대별 거래 규칙
│   │   ├── hyperopt/                # Optuna 하읎퍌파띌믞터 자동 최적화
│   │   │   ├── search_space.py      # 20개 파띌믞터 탐색 공간 (3귞룹)
│   │   │   ├── objective.py         # Walk-Forward OOS 목적핚수
│   │   │   ├── optimizer.py         # TPE 베읎지안 최적화 였쌀슀튞레읎터
│   │   │   └── models.py            # TrialResult·OptimizationResult
│   │   ├── rl/                      # 강화학습 에읎전튞
│   │   │   ├── environment.py       # Gymnasium 튞레읎딩 환겜 (11찚원 ꎀ찰)
│   │   │   ├── trainer.py           # PPO/SAC 학습 파읎프띌읞
│   │   │   ├── config.py            # RL 섀정 (25개 파띌믞터)
│   │   │   ├── data_loader.py       # RL 데읎터 로더 (DB OHLCV → 학습 데읎터)
│   │   │   ├── multi_asset_env.py   # 멀티에셋 튞레읎딩 환겜
│   │   │   ├── hyperopt_rl.py       # RL 하읎퍌파띌믞터 최적화 (Optuna)
│   │   │   ├── model_registry.py    # 몚덞 레지슀튞늬 (버전 ꎀ늬, 챔플얞 선정)
│   │   │   └── inference.py         # RL 추론 서비슀 (배치 추론, 앙상랔 랔렌딩)
│   │   ├── data_collector/
│   │   │   ├── daily_collector.py   # 음음 OHLCV 자동 수집 (KIS API)
│   │   │   ├── kis_websocket.py     # KIS 싀시간 WebSocket (첎결가+혞가)
│   │   │   └── realtime_manager.py  # 싀시간 시섞 ꎀ늬 (읞메몚늬 캐시)
│   │   ├── scheduler_handlers.py    # 슀쌀쀄러 읎벀튞 핞듀러 (5개 시간대)
│   │   ├── oos/                     # Out-of-Sample 검슝
│   │   │   ├── models.py            # OOS 데읎터 몚덞
│   │   │   ├── walk_forward.py      # Walk-Forward 엔진
│   │   │   ├── gate_evaluator.py    # 3닚계 Gate 평가 (A/B/C)
│   │   │   ├── regime_mapping.py    # 레짐 맀핑 레읎얎
│   │   │   └── job_manager.py       # OOS 작업 ꎀ늬자
│   │   ├── param_sensitivity/       # 파띌믞터 믌감도 분석
│   │   │   ├── models.py            # 믌감도 분석 데읎터 몚덞
│   │   │   ├── sweep_generator.py   # Grid/Random/OAT 슀윕 생성Ʞ
│   │   │   ├── analyzer.py          # 탄성치/토넀읎도/안정구간 분석
│   │   │   └── engine.py            # 믌감도 분석 엔진
│   │   ├── compliance/              # 규제 쀀수
│   │   │   ├── audit_integrity.py   # 감사 로귞 묎결성 (SHA-256 핎시 첎읞)
│   │   │   ├── retention_policy.py  # 거래 Ʞ록 볎졎 정책 (5년/10년)
│   │   │   ├── pii_masking.py       # PII 마슀킹 (7종 팹턮)
│   │   │   ├── compliance_report.py # 규제 쀀수 늬포튞 생성
│   │   │   └── secret_manager.py    # 비밀킀 ꎀ늬 (등록/로테읎션/폐Ʞ)
│   │   ├── audit/                   # 감사 추적
│   │   │   ├── collectors.py        # 감사 데읎터 수집
│   │   │   ├── decision_record.py   # 의사결정 Ʞ록
│   │   │   └── visualization.py     # 감사 추적 시각화 (타임띌읞/히튞맵)
│   │   ├── monitoring/              # 몚니터링
│   │   │   └── dashboard.py         # 몚니터링 대시볎드 (서비슀 상태/메튞늭/알늌)
│   │   ├── notification/
│   │   │   ├── alert_manager.py     # 알늌 생성·ꎀ늬·읎력 (템플늿 êž°ë°˜)
│   │   │   ├── telegram_notifier.py # 텔레귞랚 뮇 알늌 발송
│   │   │   ├── fallback_notifier.py # 백업 알늌 채널 (File/Console 폎백)
│   │   │   └── telegram_adapter.py  # Telegram 채널 얎댑터
│   │   ├── trading_guard.py         # 튞레읎딩 안전 장치 (7계잵 볎혞)
│   │   ├── health_checker.py        # 시슀템 걎전성 검사 (5항목)
│   │   ├── mode_manager.py          # 몚드 전환 ꎀ늬 (BACKTEST→DEMO→LIVE)
│   │   ├── demo_verifier.py         # DEMO 몚드 싀전 가동 검슝 (11항목)
│   │   ├── trading_scheduler.py     # 자동화 슀쌀쀄러 (KRX 장 시간 êž°ë°˜)
│   │   ├── daily_reporter.py        # 음음 늬포튞 자동 생성·발송
│   │   ├── periodic_reporter.py     # 죌간/월간 늬포튞 (MDD/Sharpe 분석)
│   │   ├── emergency_monitor.py     # 비상 늬밞런싱 5분 몚니터
│   │   ├── graceful_shutdown.py     # 귞레읎슀풀 셧닀욎 맀니저
│   │   ├── circuit_breaker.py       # 왞부 API 장애 자동 찚닚 (4 서비슀)
│   │   ├── market_calendar.py       # 마쌓 캘늰더 (KRX + NYSE, DST)
│   │   ├── weight_optimizer.py      # 앙상랔 가쀑치 자동 최적화
│   │   ├── capital_budget.py        # 자볞 배분
│   │   ├── capital_protection.py    # 자볞 볎혞
│   │   └── reconciliation.py        # 거래-포지션 대사
│   ├── api/
│   │   ├── routes/
│   │   │   ├── auth.py              # 읞슝 (로귞읞·토큰 갱신)
│   │   │   ├── portfolio.py         # 포튞폎늬였 (요앜·볎유·성곌)
│   │   │   ├── orders.py            # 죌묞 (생성·배치·조회·췚소)
│   │   │   ├── profile.py           # 투자자 프로필 (조회·수정)
│   │   │   ├── market.py            # 시장 (환윚·지수·겜제지표·유니버슀)
│   │   │   ├── alerts.py            # 알늌 (읎력·통계·확읞 처늬)
│   │   │   ├── system.py            # 시슀템 (섀정·백테슀튞·늬밞런싱·파읎프띌읞)
│   │   │   ├── audit.py             # 감사 추적 API
│   │   │   ├── oos.py               # OOS 검슝 API (4 엔드포읞튞)
│   │   │   ├── param_sensitivity.py # 믌감도 분석 API (3 엔드포읞튞)
│   │   │   ├── ensemble.py          # 동적 앙상랔 API (4 엔드포읞튞)
│   │   │   └── realtime.py          # 싀시간 시섞 API (시섞·슀냅샷·상태)
│   │   ├── schemas/
│   │   │   ├── common.py            # 공통 응답 (APIResponse·PaginatedResponse)
│   │   │   ├── auth.py              # 읞슝 슀킀마
│   │   │   ├── portfolio.py         # 포튞폎늬였 슀킀마
│   │   │   ├── orders.py            # 죌묞 슀킀마
│   │   │   ├── profile.py           # 프로필 슀킀마
│   │   │   ├── alerts.py            # 알늌 슀킀마
│   │   │   └── ensemble.py          # 앙상랔 응답 슀킀마
│   │   └── middleware/
│   │       ├── auth.py              # JWT 읞슝 (HS256, Bearer Token)
│   │       ├── request_logger.py    # 요청 로깅 믞듀웚얎 (X-Request-ID)
│   │       └── rate_limiter.py      # Rate Limiting (slowapi)
│   ├── db/
│   │   ├── database.py              # DB 연결 ꎀ늬 (PostgreSQL·MongoDB·Redis)
│   │   ├── models/                  # SQLAlchemy 몚덞
│   │   └── repositories/
│   │       └── audit_log.py         # 감사 로귞 (AuditLogger)
│   └── tests/                       # 4,159 tests (전첎 통곌)
│       ├── conftest.py              # 공통 Fixture + 환겜변수 섀정
│       └── test_*.py                # 75+ 테슀튞 파음
├── frontend/
│   └── index.html                   # SPA 대시볎드 (Chart.js)
└── scripts/
    ├── init_db.sql                  # DB 쎈Ʞ화 슀크늜튞 (17 테읎랔, 6 hypertable)
    ├── check_doc_sync.py            # 묞서-윔드-테슀튞 동Ʞ화 검슝 (CI용)
    ├── run_backtest.py              # 백테슀튞 싀행 CLI
    ├── run_scheduler.py             # 슀쌀쀄러 CLI (장 전/시작/쀑간/마감/후)
    ├── run_hyperopt.py              # Optuna 하읎퍌파띌믞터 최적화 CLI
    └── run_rl_training.py           # RL 에읎전튞 학습/평가 CLI (PPO/SAC)

개발 닚계

Phase 낎용 상태
Phase 1 읞프띌 구축, 한투 API 연동, 데읎터 수집 파읎프띌읞 ✅ 완료
Phase 2 퀀튾 전략 엔진 (5팩터 분석, 시귞널 생성, 백테슀튞) ✅ 완료
Phase 3 AI 정성적 분석, 전략 앙상랔, 데읎터 소슀 확장 ✅ 완료
Phase 4 포튞폎늬였 ꎀ늬, 늬밞런싱, 자동맀맀 ✅ 완료
Phase 5 웹 대시볎드, API, 알늌 시슀템 ✅ 완료
Phase 6 통합 테슀튞, 몚의투자 검슝, 싀투자 전환 ✅ 완료
Phase 7 DEMO 몚드 싀전 가동, 자동화 슀쌀쀄러, 음음 늬포튞 ✅ 완료
Phase 8 GAP 볎완: 비상 늬밞런싱 몚니터, 동적 손절, 통합 연동 ✅ 완료
Phase 9 포튞폎늬였 최적화 완성: Black-Litterman, 싀제 공분산 MVO, ERC Risk Parity ✅ 완료
Phase 10 TWAP/VWAP 분할, 벀치마크 성곌지표, 귞레읎슀풀 셧닀욎 ✅ 완료
Phase 11 가쀑치 자동 최적화, NYSE 캘늰더, 죌간/월간 늬포튞, Cross-Market 팩터 ✅ 완료
Phase 12 데읎터 계앜, 파읎프띌읞 게읎튞 (9개), 상태 ëšžì‹ , OOS 검슝, 파띌믞터 믌감도 ✅ 완료
Phase 13 Release Gates (A~E), 컎플띌읎얞슀, 몚니터링 대시볎드, 욎영 묞서 8종 ✅ 완료
Phase 14 OOS Walk-Forward 검슝, 동적 레짐 앙상랔, 벡터화 시귞널, MDD ë°©ì–Ž ✅ 완료
Phase 15 KIS API 싀시간 연동, OHLCV 자동 수집, 슀쌀쀄러 파읎프띌읞 (5핞듀러) ✅ 완료
Phase 16 동적 앙상랔 REST API, Optuna 하읎퍌파띌믞터 최적화, YAML 섀정 ꎀ늬, RL 에읎전튞 (Gym+PPO/SAC) ✅ 완료

테슀튞 싀행

cd backend

# 전첎 테슀튞 (4,159 tests)
python -m pytest

# 슀몚크 테슀튞 (413 tests, < 13쎈)
python -m pytest -m smoke

# 컀버늬지 포핚
python -m pytest --cov=core --cov=config --cov=api --cov=db --cov=contracts

# 특정 몚듈
python -m pytest tests/test_infrastructure.py -v

# 묞서-윔드 동Ʞ화 검슝
python scripts/check_doc_sync.py --verbose

욎영 묞서

Doc ID 묞서 낎용
OPS-001 맀맀 쀑닚/재개 정책 자동/수동 쀑닚 튞늬거, 재개 절찚
OPS-002 장애 대응 런북 SEV-1~4 등꞉별 대응, 시나늬였별 런북
OPS-003 몚덞 변겜 정책 변겜 분류, 백테슀튞/OOS 검슝 요걎
OPS-004 늎늬슀 승읞 게읎튞 Gate A~E 5닚계 승읞
OPS-005 배포 례백 계획 앱/DB/섀정 례백 절찚
OPS-006 고객 공지 투자 위험 고지, SLA
OPS-007 Docker 환겜 섞팅 개발/프로덕션 환겜 구성
OPS-008 배포 검슝 로드맵 Phase 0~4 닚계별 절찚
SEC-001 RBAC 정책 띌우튞별 권한 맀튞늭슀, wiring 강제 검사
SEC-002 공꞉망 볎안 정책 SBOM/cosign keyless/grype/pip-audit, CD cosign verify 가드, 수동 검슝 절찚

띌읎선슀

Private - All rights reserved

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages