Update README: paper trading operations and Phase 6 reconciliation docs

- Add full paper trading CLI reference (create, list, run, positions, trades, close)
- Document reconciliation safety system (orphaned/ghost detection, stale orders, fill verify)
- Document kill switch (25% drawdown threshold, manual reset required)
- Expand paper backtest section with --overlay and --rank options

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
main
I Luk Kim 5 months ago
parent 98923e8620
commit f56b353c8b

@ -738,6 +738,9 @@ fithia2 paper backtest \
# 리더보드 top 5 전략 비교
fithia2 paper backtest --top 5 --year 2025
# 리더보드 rank 범위 지정 (20~40위)
fithia2 paper backtest --rank 20-40 --year 2025
# 날짜 범위 직접 지정 (YYYY-MM-DD 또는 YYYY)
fithia2 paper backtest --top 3 --start 2025-06-01 --end 2026-03-23
@ -747,19 +750,76 @@ fithia2 paper backtest \
--config configs/experiments/return_max_long_v6.92.json \
--capital 10000 --year 2025 \
--no-trades --output ./bt_results/
# Overlay 전략 backtest (명시적 지정 필요)
fithia2 paper backtest \
--overlay configs/overlays/return_book_overlay_v3.json \
--year 2025 --no-trades
```
| 옵션 | 설명 |
|------|------|
| `--config, -c` | 전략 config 경로 (반복 가능) |
| `--overlay` | Overlay config 경로 (반복 가능) |
| `--top, -t N` | 리더보드 SQS 상위 N개 자동 선택 |
| `--rank START-END` | 리더보드 rank 범위 선택 (예: `20-40`, `5`) |
| `--capital, -k` | 전략별 초기 자본 (기본: $10,000) |
| `--year, -y` | 연도 지정 (= --start YYYY --end YYYY) |
| `--start` | 시작일 (YYYY-MM-DD 또는 YYYY) |
| `--end` | 종료일 (YYYY-MM-DD 또는 YYYY, 올해면 어제까지) |
| `--start` | 시작일 (YYYY-MM-DD, YYYY-MM, YYYY) |
| `--end` | 종료일 (YYYY-MM-DD, YYYY-MM, YYYY; 올해면 어제까지) |
| `--no-trades` | Trade log 출력 생략 (Summary만) |
| `--output, -o` | CSV 저장 디렉토리 |
### Paper Trading (실시간 운영)
Alpaca Paper Trading 계좌를 통한 실시간 전략 실행. 환경변수 `ALPACA_API_KEY` / `ALPACA_SECRET_KEY` 필요.
```bash
# 세션 생성 (전략 config + 초기 자본 지정)
fithia2 paper create \
--name my_session \
--config configs/experiments/return_max_long_v6new.9.json \
--capital 10000
# 세션 목록 및 상태 확인
fithia2 paper list
fithia2 paper status # 전체 세션 요약
fithia2 paper status --session my_session
# 당일 처리 실행 (종일 단일 실행 방식)
fithia2 paper run --session my_session
# 분리 실행 방식 (3:40 PM, 9:30 AM 두 번 실행)
fithia2 paper run-close --session my_session # 장 마감 전: same-day MOC 진입
fithia2 paper run-open --session my_session # 장 시작 후: 전날 exit + after-close 진입
# 포지션 및 거래 내역 확인
fithia2 paper positions # 전체 세션 오픈 포지션
fithia2 paper trades # 최근 거래 내역
fithia2 paper equity # 세션별 수익 곡선
# 세션 종료
fithia2 paper close --session my_session
```
#### Reconciliation (자동 불일치 감지)
`run` / `run-open` 실행 시 매일 자동으로 Alpaca ↔ 로컬 DB 정합성 검증:
| 상황 | 감지 방식 | 처리 |
|------|-----------|------|
| **Orphaned position** | Alpaca에 있지만 로컬 DB에 없음 (주문 체결 후 DB 저장 실패 등) | WARNING 로그, 수동 확인 필요 |
| **Ghost position** | 로컬 DB에 있지만 Alpaca에 없음 (수동 청산, 주문 미체결 등) | 자동으로 로컬 상태 닫고 `RECONCILED` 거래 기록 |
| **Stale orders** | 전일 미체결 주문 | 자동 취소 |
| **Order fill verify** | 시장가 주문 체결 여부 확인 (2초 polling) | 미체결 시 로컬 상태 저장 skip |
#### Kill Switch
drawdown이 초기 자본 대비 **25% 이상** 떨어지면 자동 발동:
- 당일 부터 모든 신규 진입 차단
- `fithia2 paper status`에서 `Kill Switch: ON` 표시
- 수동으로만 해제 가능
### 실험 결과 기록
```bash

Loading…
Cancel
Save