aszerW
fe73c0f199
refactor(rotation): simplify crash filter and add min_hold_days support
Changes:
- Simplify is_crash(): remove con2 (consecutive decline) condition, keep only single-day drop > 5%
- Extract _compute_base_momentum() to eliminate factor dispatch duplication
- Add min_hold_days config for forced holding constraint (currently disabled, value=1)
Backtest comparison (2020-01-10 ~ 2026-06-09):
| Metric | Old (con1 OR con2) | New (con1 only) |
|-----------------|--------------------|-----------------|
| Total Return | 241.73% | 271.98% |
| Annual Return | 22.10% | 23.79% |
| Max Drawdown | -16.27% | -16.27% |
| Sharpe Ratio | 1.09 | 1.14 |
| Calmar Ratio | 1.36 | 1.46 |
| Win Rate | 53.71% | 53.78% |
| Rebalances | 393 | 362 |
Conclusion: Relaxing crash filter improves return (+1.69% annual) with
same drawdown and fewer rebalances.
2026-06-09 22:53:52 +08:00
..
2026-06-07 23:29:27 +08:00
2026-06-09 22:53:52 +08:00
2026-06-07 23:12:21 +08:00
2026-06-08 23:05:26 +08:00
2026-06-08 23:07:37 +08:00
2026-06-09 00:07:01 +08:00
2026-06-02 01:32:43 +08:00
2026-06-01 22:28:26 +08:00
2026-06-09 22:53:52 +08:00