EMH Agent
비용을 반영한 3년 검증 · TQC +183.9% vs. IVV +99.6%
Built with Python · TQC · Point-in-time data · Gymnasium · Stable-Baselines3
WHY
AI가 사람의 감정에 흔들리지 않고 더 일관된 투자 판단을 내릴 수 있을지 궁금했습니다. 이 질문을 제대로 확인하려면 미래 정보를 보지 않고, 각 시점까지 누적된 정보만으로 판단하며 거래비용과 slippage까지 반영해야 했습니다. 결과 숫자만 좋은 backtest가 아니라 같은 조건에서 다시 실행할 수 있는 투자 의사결정 과정을 만들고자 했습니다.
2019–2021 point-in-time 평가
같은 기간 IVV +99.6%
같은 기간 IVV −33.8%
HOW
당시의 정보에서 비용을 반영한 포트폴리오까지
미래 가격이 섞이지 않은 고정된 historical panel을 사용하고, 실제 거래 마찰을 차감한 뒤 정책을 평가했습니다.
- 01 Point-in-time panel
IVV, IEF, SHV의 과거 수익률과 위험, 시장 맥락을 미래 정보 없이 feature로 구성합니다.
- 02 TQC policy
현재 상태와 보유 비중, drawdown을 입력받아 자산별 비중을 제한된 범위에서 결정합니다.
- 03 Cost-aware simulation
거래비용, slippage와 financing cost를 차감하며 다음 21개 거래일의 포트폴리오를 전개합니다.
- 04 Deterministic ensemble
독립적으로 학습한 정책 세 개를 결합하고 동일한 날짜의 IVV와 일별 경로를 비교합니다.
RESULT
Held-out validation
| 기간 | TQC 수익률 | IVV 수익률 | TQC MDD | IVV MDD |
|---|---|---|---|---|
| 2019 | +32.1% | +31.1% | −5.3% | −6.6% |
| 2020 | +56.5% | +18.4% | −14.2% | −33.8% |
| 2021 | +37.2% | +28.7% | −5.9% | −5.1% |
| 전체 | +183.9% | +99.6% | −14.2% | −33.8% |
같은 검증 구간에서 재생성한 일별 수익률 경로를 기준으로 계산했습니다.
5개 window stress test
| Window | Sessions | TQC 연환산 | IVV 연환산 |
|---|---|---|---|
| Development | 1,995 | 34.7% | 11.9% |
| Validation | 756 | 41.6% | 25.9% |
| Continuity | 840 | 1.9% | 6.5% |
| Archival A | 147 | 13.4% | 28.9% |
| Archival B | 105 | 24.3% | 28.3% |
사전에 정한 모든 window에서 비용을 반영한 같은 TQC 후보를 비교했으며, 시장 구간에 따라 결과가 달랐습니다.
기여
- Point-in-time data contract, 비용을 반영한 portfolio environment, TQC 학습과 multi-seed 평가 경로를 구현했습니다.
- 연구 제안과 실제 실행 권한을 typed policy gate, receipt와 reconciliation 경계로 분리했습니다.