The boundary
An equity strategy receives a versioned context of completed observations, portfolio state, and the information cutoff. It returns hold, target, or unavailable, along with target weights, reason codes, and next strategy state. Plugins do not receive API keys and have no order-submission method.
The first release supports long-only US stocks and ETFs, daily decisions based on completed prior-session observations, and one strategy per dedicated paper account. Margin, short sales, options plugins, and cross-strategy netting are outside this interface. The existing V13.5 options wheel keeps its separate runtime.
Implement one
Start from examples/sma_trend_demo/. The demonstration targets 95% SPY exposure when the completed close is above its 200-session average, moves to cash below it, holds through equality, and returns unavailable until enough history exists. It does not use a same-close fill.
Run its fixtures in both the backtest and fake-broker paper adapters. Identical recorded contexts must produce the same target identity. Execution results will differ by design because historical fills and broker paper fills are separate models.
Try uv run python examples/sma_trend_demo/run_fixture_backtest.py for a
credential-free, synthetic wiring example. It is not a market-data study and
does not report evidence about expected returns. See the equity paper guide before configuring an account.
See the API design and paper-account guide.