Task #4 Progress Report
Status
- Data pull completed for v0 ETF/index proxies and macro factors.
- Baseline backtest completed for v0_vol_target and v0_plus_dd_gate.
- Outputs are under projects/mini-cypress/task4-all-weather/output/.
Data Pulled
- ETF proxies: 510300.XSHG, 510500.XSHG, 510880.XSHG, 511260.XSHG, 511020.XSHG, 511990.XSHG, 511220.XSHG, 518880.XSHG, 159980.XSHE, 159985.XSHE.
- Benchmarks: 000832.XSHG, 000300.XSHG.
- Macro factors: PMI, industrial value added YoY, TSF YoY, CPI YoY, PPI YoY, DR007, 10Y CGB yield.
- Canonical data root: ~/data/mini-cypress/rqdata/.
Key Results After RayDario Review
| Variant | Segment | Ann Return | Ann Vol | Sharpe | Max DD |
|---|---|---|---|---|---|
| v0_ex_ante_7pct | IS 2015-2023 | 5.36% | 4.68% | 1.15 | -10.70% |
| v0_ex_ante_7pct | OOS-A 2024 pre-9/24 | 6.07% | 2.29% | 2.65 | -1.44% |
| v0_ex_ante_7pct | OOS-B 9/24-2025H1 | 11.93% | 3.83% | 3.12 | -1.49% |
| v0_ex_ante_7pct | OOS-C 2025H2-now | 8.21% | 2.45% | 3.35 | -1.11% |
| v0_ex_ante_plus_dd_gate | IS 2015-2023 | 5.50% | 4.33% | 1.27 | -9.05% |
| v0_ex_ante_plus_dd_gate | OOS-A 2024 pre-9/24 | 6.07% | 2.29% | 2.65 | -1.44% |
| v0_ex_ante_plus_dd_gate | OOS-B 9/24-2025H1 | 11.93% | 3.83% | 3.12 | -1.49% |
| v0_ex_ante_plus_dd_gate | OOS-C 2025H2-now | 8.21% | 2.45% | 3.35 | -1.11% |
Locked Baselines
- v0_ex_ante_7pct is the conservative no-cash baseline accepted by RayDario: IS annualized 5.36%, vol 4.68%, Sharpe 1.15, max drawdown -10.70%.
- v0_plus_funded_6pct is the standard funded baseline selected by Kaite and locked by RayDario: IS annualized 6.01%, vol 5.77%, Sharpe 1.04, max drawdown -12.78%.
- Funded-vs-conservative risk-up ratios: return 1.12x, vol 1.23x, max drawdown 1.19x.
- The funded version is implemented as cash-inclusive two-stage risk parity, then zeroing 511360.XSHG / 511990.XSHG and redistributing their weights pro-rata to non-cash assets. Final funded gross is 100% NAV, with no real margin borrowing.
- RayDario chose to define the funded "leverage" comparison relative to the locked conservative no-cash v0, not relative to the artificial cash-inclusive baseline.
Failure Cases
- After fixing ETF adjusted-price handling and implementing two-stage risk parity, no original hard failure case is triggered.
- IS volatility is now below target rather than above target: 4.33-4.68% vs 6-8%. This is conservative but may underuse risk budget.
- OOS-A annualized return is 6.07%, slightly above RayDario's expected upper bound of 5%; it should be reviewed but is not obviously a data error after adjusted-price correction.
- OOS-A annualized return is not suspiciously high in either variant, so it does not trigger the OOS-A overfit check.
- IS annualized return is well below 15%, so it does not trigger the high-return overfit check.
Diagnostics
- Initial regime labels were polluted by very old macro dates; the script now restricts macro labels to 2015 onward.
- Post-fix regime month counts: R1 49, R2 24, R3 26, R4 38.
- Regime switches: 13 over 137 months, average regime run about 9.79 months.
- Monthly turnover: mean 9.49%, median 6.90%, max 59.60%.
- Root cause found: raw unadjusted 511220.XSHG prices contained a 10:1-style discontinuity on 2023-01-16, which created an artificial -17% portfolio month. ETF data now uses pre-adjusted prices; index data remains unadjusted.
- Two-stage risk parity regime weights average: R1 34.65%, R2 12.35%, R3 12.85%, R4 40.15%.
- Regime sleeve vol averages: R1 4.15%, R2 11.62%, R3 11.25%, R4 7.20%.
- Average scaled weights: 511220.XSHG 26.71%, 511260.XSHG 17.86%, 511020.XSHG 15.38%, 518880.XSHG 14.06%, 510300.XSHG 6.19%.
- Average realized risk contribution is now more balanced: 510300.XSHG 22.63%, 510500.XSHG 21.89%, 518880.XSHG 21.08%, 510880.XSHG 15.62%, 159985.XSHE 9.05%.
- Some proxies have late starts, especially 159980.XSHE and 159985.XSHE; early IS-period results effectively rely on the available subset.
Files
- Fetcher: projects/mini-cypress/task4-all-weather/scripts/fetch_task4_data.py
- Backtest: projects/mini-cypress/task4-all-weather/scripts/backtest_task4_baseline.py
- Report artifact generator: projects/mini-cypress/task4-all-weather/scripts/make_task4_report_artifacts.py
- Regime labels: task4_regime_labels.csv
- Monthly weights: task4_monthly_weights.csv
- Funded monthly weights: task4_monthly_weights_v0_plus_funded_6pct.csv
- Metrics: task4_baseline_metrics.csv
- Conservative daily returns: task4_daily_returns_v0_ex_ante_7pct.csv
- Funded daily returns: task4_daily_returns_v0_plus_funded_6pct.csv
- Conservative/funded comparison: task4_v0_vs_funded_comparison.csv and .md
- IC-review charts: output/charts/task4_v0_conservative_*.png and output/charts/task4_v0_plus_funded_*.png