What's changed
New features
- Six baseline models added for benchmark comparison:
- Simple Breakout (20-period → 288-period rolling high/low)
- MA Crossover (EMA 12/26)
- RSI mean-reversion (period 14, oversold 30 / overbought 70)
- 2-state Gaussian HMM regime-switching
- GARCH(1,1) for ETH, SOL, XRP
- MDRS-SDE for ETH, SOL, XRP
BuyAndHoldBenchmark ported from mdrs-sde with qr-buy-and-hold CLI
ModelRegistry refactored with ModelEntry dataclass
requires_event_tagging flag controls DatasetBuilder pipeline
- MDRS-SDE: event tagging on, all other models: event tagging off
backtest.py updated to skip event tagging for non-MDRS-SDE models
New model keys
mdrs_sde_sol, mdrs_sde_xrp
garch_sol, garch_xrp
simple_breakout_{btc,eth,sol,xrp}
ma_crossover_{btc,eth,sol,xrp}
rsi_{btc,eth,sol,xrp}
hmm_{btc,eth,sol,xrp}
Usage
# Run individual benchmarks
qr-backtest --model simple_breakout_btc --symbol BTCUSDT
qr-backtest --model ma_crossover_btc --symbol BTCUSDT
qr-backtest --model rsi_btc --symbol BTCUSDT
qr-backtest --model hmm_btc --symbol BTCUSDT
qr-backtest --model garch_btc --symbol BTCUSDT
# Buy-and-Hold
qr-buy-and-hold --symbol BTCUSDT --start 2020-04-01 --end 2026-01-31