diff options
Diffstat (limited to 'docs/TODO.md')
| -rw-r--r-- | docs/TODO.md | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/docs/TODO.md b/docs/TODO.md new file mode 100644 index 0000000..26ff44b --- /dev/null +++ b/docs/TODO.md @@ -0,0 +1,161 @@ +# 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 +``` |
