Changelog¶
All notable changes to SignalFlow are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
Added¶
walk_forward()/WalkForwardResult- anchored walk-forward evaluation that stitches per-fold out-of-sample runs into one equity curve.build_pipe()- build aFeaturePipefrom a compact spec list.CachedSourceandsf.data(..., cache_dir=)- transparent on-disk caching of fetched market data.ForecastModel.operating_point- store the chosen probability threshold on the trained model.Flow.required_warmupandFlow.simulate(warmup=None)- warmup is derived from the feature pipe when not given.Flow.backtest(oos=...)andRun.oos- run and flag out-of-sample-only backtests.sf infoCLI command - print a registered component's schema (description, role, module, parameters).- Duration-string target horizons (e.g.
FixedHorizon(bars="6h")). TARGETregistry component type.
Changed¶
FlowConfigErrorandDegenerateTargetErrorraised for misconfigured flows and degenerate label distributions.
[0.8.4] - 2026-06-17¶
Added¶
- Per-fold WoE state and out-of-sample predictions are cached across runs, so a
repeated
ForecastModel.fit/ backtest on unchanged inputs skips refitting.
[0.8.3] - 2026-06-16¶
Added¶
- Declarative
to_config/from_configfor transforms andFeaturePipe, making the full feature stack reconstructable from a flow YAML.
Fixed¶
- WoE encoders rebuild deterministically from config instead of carrying pickled state.
[0.8.2] - 2026-06-15¶
Added¶
- Real-time live loop (
Flow.live) over a streaming feed and walk-forward simulation, sharing the single decision core with backtest and paper.
Fixed¶
- Backtest fills and equity accounting corrected so
backtest == simulate.
[0.8.0] - 2026-06-14¶
Full V5 architecture rewrite. The public surface collapses to six nouns - Dataset,
Transform, Models, Flow, Engine, Run - and the fluent sf.Backtest builder is
removed.
Added¶
Flow: the deployable forecasts -> detectors -> validator -> strategy -> risk stack that runsbacktest,paper, andlivefrom one object.ForecastModelwith embargoed out-of-fold training,predictvspredict_oos, and a leakage guard (LeakageError) enforced by Provenance stamps.- Weight-of-Evidence / Information-Value feature encoding (
WoE,IVSelector) as the default, fit out-of-fold. Dataset(sf.data(...)): one lazy, immutable market-data container feeding backtest, paper, and live.- Deploy-is-data serialization:
Flow.savewrites YAML plus a model directory,Flow.loadrestores a byte-identical backtest. Artifacts on filesystem, MLflow, or the Hugging Face Hub. - Seven-type component registry (SOURCE, TRANSFORM, MODEL, STRATEGY, SAMPLER, BROKER, METRIC) with entry-point plugin autodiscovery.
Removed¶
- The V4 fluent builder (
sf.Backtest,BacktestBuilder,BacktestResult),RawDataFactory/VirtualDataProvider, andsf.viz.
[0.5.0] - 2026-02-14¶
Added¶
- Fluent Builder API:
sf.Backtest()with method chaining for backtest configuration, multi-component support, and signal aggregation modes. - CLI Interface:
sf init,sf validate,sf run, andsf list. - YAML Configuration: full backtest configuration via YAML files.
- OHLCV Resampling:
signalflow.data.resampleacross 12 timeframes and 8 exchanges. - New exchange data sources: Deribit, Kraken, Hyperliquid, WhiteBIT, Bybit inverse.
- Custom Exception Hierarchy:
SignalFlowErrorbase with actionable messages.
[0.4.1] - Previous release¶
See GitHub releases for earlier versions.