Skip to content

v1.15.0 — simplify execution engine: remove SNR/EMA sigma, formula-based SL only

Choose a tag to compare

@rpycgo rpycgo released this 14 Apr 23:52
· 99 commits to main since this release

What's changed

Bug fixes

  • Fix immediate StopLoss triggered by dynamic_resistance/support within
    0.3% of entry.
    SL now uses formula-based price only (entry × sl ratio).
  • Fix ADX-based max_hold boost removed — was compounding position hold
    times unpredictably. max_hold fixed to 720h (30-day safety net).

Breaking changes

  • build_dynamic_params() removed from GenericBacktestEngine.
    All models now use get_fixed_params().
  • use_dynamic_params and use_ema_sigma flags removed from
    ModelRegistry and WalkForwardRunner.
  • --no-ema-sigma CLI flag removed from qr-backtest.
  • fit() in MdrsSdeCryptoAdapter now returns dict with keys
    trace, summary, estimates instead of a plain estimates dict.
    Params are saved as .pkl instead of .json.
  • [parameter_scaling] section removed from backtest_settings.toml.

Internal changes

  • SNR scaling (alpha/sigma_1) removed — clip ranges caused 41~48% of
    windows to hit boundaries, making SNR effectively constant.
  • EMA sigma reference infrastructure removed
    (_precompute_sigma_reference, _precompute_reference_sigma).
  • get_fixed_params() simplified — no vol_quality or max_hold scaling.
  • Events loaded before model type check in backtest.py.