Skip to content

v1.6.0 — Feat: benchmark suite with six baseline models

Choose a tag to compare

@rpycgo rpycgo released this 05 Apr 10:09
· 195 commits to main since this release

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