# Trading Platform — TODO > Last updated: 2026-04-01 ## Current State - 156 tests passing, lint clean - 5 microservices + CLI + shared library - 7 trading strategies (RSI, Grid, MACD, Bollinger, EMA Crossover, VWAP, Volume Profile) - Operations infra: SQLAlchemy ORM, Alembic, structlog, Telegram, resilience, Prometheus --- ## Critical (Deployment Blockers) ### 1. Alembic Initial Migration 생성 - `shared/alembic/versions/` 에 마이그레이션 파일이 없음 - DB 스키마 생성 불가 - **Fix:** `cd shared && alembic revision --autogenerate -m "Initial schema"` ### 2. Docker Compose 헬스체크 포트 노출 - 서비스들이 내부적으로 8080-8083 포트를 사용하지만 docker-compose.yml에 미노출 - Prometheus 스크래핑 불가, 헬스체크 실패 - **Fix:** 각 서비스에 `ports` + `healthcheck` 추가 ```yaml data-collector: ports: ["8080:8080"] healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/health"] ``` ### 3. numpy 의존성 누락 - `grid_strategy.py`, `volume_profile_strategy.py`가 numpy를 import하지만 `strategy-engine/pyproject.toml`에 미선언 - **Fix:** `services/strategy-engine/pyproject.toml`에 `numpy>=1.20` 추가 --- ## High Priority (Production 전) ### 4. CLI 명령어 구현 완성 - `trading backtest run` — placeholder 텍스트만 출력 - `trading service up/down/logs` — 미구현 - `trading portfolio show/history` — 미구현 - 실제 서비스 호출 로직 필요 ### 5. Backtester sys.path 해킹 제거 - `services/backtester/src/backtester/main.py`에서 `../../../../strategy-engine` 상대 경로 사용 - 디렉토리 구조 변경 시 깨짐 - **Fix:** 전략을 공유 패키지로 분리하거나 proper package import 사용 ### 6. Integration Tests - 현재 unit test만 존재 (mock 기반) - Redis/PostgreSQL 연동 테스트 없음 - Docker Compose 환경에서의 E2E 테스트 없음 - **필요:** `tests/integration/` 디렉토리에 서비스 간 통신 테스트 ### 7. Service별 pyproject.toml 의존성 정리 - 각 서비스가 shared를 사용하지만 structlog, aiohttp 등 새 의존성이 각 서비스 Dockerfile에 반영되는지 확인 필요 - Dockerfile에서 `pip install shared/` 시 transitive dependency로 해결되는지 검증 --- ## Medium Priority (Beta 전) ### 8. Edge Case 테스트 추가 - [ ] 0 볼륨 캔들 처리 - [ ] 0으로 나누기 (VWAP에서 vwap==0) - [ ] 빈 캔들 리스트로 백테스트 - [ ] 동시 시그널 처리 (같은 심볼, 같은 시간) - [ ] Redis/DB 연결 끊김 시 복구 - [ ] Telegram API 장시간 실패 ### 9. Database Transaction 관리 - 현재 각 DB 작업이 개별 commit - 에러 시 rollback 누락 가능 - **Fix:** context manager 패턴으로 트랜잭션 범위 명확화 ### 10. Portfolio Snapshots 구현 - `portfolio-manager`에서 주기적 스냅샷 저장 로직 미구현 - spec에 `snapshot_interval_hours` 설정은 있음 - **Fix:** asyncio 타이머로 주기적 DB 저장 + Telegram 일일 요약 연동 ### 11. Input Validation - CLI 입력값 검증 부족 - 전략 YAML 파라미터 검증 없음 (음수 period 등) - **Fix:** Pydantic validator 또는 Click 타입 검증 추가 --- ## Low Priority (향후 개선) ### 12. Grafana Dashboard Provisioning - Prometheus는 설정됨, Grafana는 빈 상태 - **TODO:** `monitoring/grafana/dashboards/` 에 JSON 대시보드 추가 ### 13. Multi-Exchange Support - 현재 Binance 전용 - ccxt 라이브러리로 다른 거래소 추가 가능 - 설정으로 거래소 선택 필요 ### 14. REST API / Web Dashboard - 현재 CLI만 제공 - FastAPI 기반 REST API 추가 가능 - 실시간 대시보드 (WebSocket) ### 15. 전략 조합 프레임워크 - 여러 전략 시그널에 가중치 부여 - 최종 시그널 생성 엔진 ### 16. Advanced Risk Management - 상관관계 기반 포지션 제한 - 변동성 기반 동적 포지션 사이징 - 트레일링 스탑로스 ### 17. 로그 집계 / 분산 추적 - ELK 스택 또는 Loki로 로그 집계 - OpenTelemetry 분산 추적 ### 18. CI/CD Pipeline - GitHub Actions / GitLab CI - 자동 테스트 + 린트 + Docker 빌드 - 자동 배포 --- ## Estimated Effort | 카테고리 | 예상 작업량 | |----------|------------| | Critical (배포 차단) | 1-2시간 | | High Priority | 8-12시간 | | Medium Priority | 1-2주 | | Low Priority | 지속적 개선 | --- ## Quick Start (개발 환경) ```bash # 1. 환경 설정 cp .env.example .env # .env에 BINANCE_API_KEY, BINANCE_API_SECRET 입력 # 2. 의존성 설치 pip install -e shared/ # 3. 인프라 실행 make infra # 4. DB 마이그레이션 (Critical #1 해결 후) make migrate # 5. 테스트 make test # 6. 서비스 실행 make up # 7. 모니터링 (선택) docker compose --profile monitoring up -d ```