edgekit

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
Items below are proposed, not implemented, unless a page in the API reference already documents them. The viz / report expansion (tear sheets, the gauntlet charts, rolling metrics, and more) has already landed — see those pages.

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/exit code 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 report over 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 so pip install edgekit works 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.