Roadmap
Where edgekit is headed. These are proposed directions grouped by theme — a place to see what the library could become and to steer it. Nothing here is a promise of a ship date.
→Status
Performance#
- Vectorised / JIT engine. The bar loop is a readable Python state machine. A Numba or Polars back end (behind the same engine interface) would make multi-year, multi-asset sweeps and large permutation runs an order of magnitude faster.
- Parallel gauntlet. Permutation, walk-forward re-optimisation, and parameter sweeps are embarrassingly parallel — a process-pool executor would cut wall-clock on the expensive validation steps.
- Incremental / streaming backtests. A bar-at-a-time API so the same strategy code drives both the backtest and a live loop.
Breadth — strategies & data#
- More reference strategies. Flesh out the vectorised sleeves (residual momentum, cross-sectional momentum) to first-class bar-loop citizens with tests.
- A regime layer. HMM / change-point (BOCPD) regime detection as reusable overlays that any strategy can gate on — surfaced through validation as a regime split.
- Unified data connectors. One data fetch interface across venues (beyond Binance klines), plus futures roll / continuous-contract stitching and corporate-action handling for equities.
- Alternative bar types. Volume, dollar, and imbalance bars (López de Prado) alongside time bars.
Live & deployment#
- Execution adapters. A thin bridge from a validated strategy to a live/paper venue (cTrader, CCXT), reusing the same
prepare/entry/exitcode that ran in the backtest. - Broaden the cloud export. The tree export already emits pure-Python and C# inference; add ONNX and a signed parity artifact so a live deployment can self-check against its backtest.
- Paper-trading harness. A scheduled loop that runs the live strategy against a feed and logs fills for reconciliation against the backtest.
Rigor#
- Campaign-level multiple-testing control. Track every trial across a research campaign and apply a family-wise / deflated-Sharpe correction automatically — the honest counter to p-hacking.
- More bootstraps. Stationary and circular block bootstraps alongside the fixed-block one, plus a path-dependent risk-of-ruin estimate.
- Property-test the whole engine. Extend the causality property tests to every strategy and every sizing overlay, and pin regression baselines for each.
Visualisation & reporting#
The chart vocabulary and the one-call tear_sheet shipped recently (viz, report). Proposed next:
- Interactive tear sheets. An optional Plotly/Bokeh back end for zoomable equity/drawdown, kept behind the same builder so the matplotlib path stays the dependency-light default.
- Comparison reports. Side-by-side tear sheets for A/B strategy or in-sample vs out-of-sample panels.
- Live dashboards. A small served view of an in-flight paper/live strategy reusing the report charts.
Developer experience#
- A CLI.
edgekit backtest,edgekit gauntlet,edgekit reportover a config file for reproducible, no-boilerplate runs. - Config-driven experiments. Declare a study in YAML (data, strategy, params, gauntlet) → a reproducible run with a hashed artifact.
- Typed & published. Ship
py.typed, auto-generate the API reference from docstrings, and publish to a private index sopip install edgekitworks without the editable checkout.
✦Want one of these?
The list is a menu, not a queue. If a particular item unblocks your work, it can jump the line — the ones that touch code you already use (reporting, execution, data connectors) are usually the highest-leverage.