Schemas
Every column of the five tables, and the fields you construct a run from. Every numeric column is float64.
bars
engine.bars(grain="day" or "tick")OHLCV per instrument. This is the table a historical backtest would also give you.
| column | type | what it is |
|---|---|---|
| day | uint32 | Day index. |
| tick | uint32 | Tick index. A tick is a minute, and there are 390 in a day. Tick grain only. |
| bar | uint32 | Bar index within the day. Day grain only. |
| instrument_id | uint32 | Roster index. |
| open · high · low | float64 | Day grain only. |
| close | float64 | What the book actually settled. |
| volume | float64 | Shares. |
Day grain carries open, high, low and bar. Tick grain carries tick instead, and a tick is one minute of the 390 in a session.
Where a call refuses
Each of these raises rather than returning a number it can not support. The list is the shape of the library's judgment about its own limits.
envelope.intervals
Fewer than two panels. A spread over one observation is not a spread.
atlas.plan
Fewer than 8 samples.
Survey.sensitivity
Fewer than 8 usable rows, or an output no row measured.
Survey.profile
Fewer than three rows per bin.
Survey.attribution
A vector value outside the surveyed range, a parameter set on one side only, or a parameter that was not surveyed.
Survey.confirm
Any seed shared with the survey or between blocks, and a survey with no seed record at all. An empty list is the absence of a record wearing the key.
ModelParams.from_preset
An override of a compile-time constant, by name. Accepting one the engine would ignore would make the fingerprint a lie.
Scenario
Chaining a shape constructor onto a built scenario, or a compare() baseline that realises the same path as the scenario.
RunManifest.reproduce
A build whose arithmetic does not match the manifest's. It names the culprit rather than replaying a different market.
Checkpoint restore
A pre-split snapshot with three RNG numbers instead of nine, naming the era. It can not be continued bit-exactly.
Instrument
A short_interest between 0 and 1 on a real share count, and an unknown sector key.
loss.band_distance_loss
A missing or zero noise scale. An unweighted sum is a choice, and it will not happen by accident.