Lint rules

negative-shift

lookaheaderror

.shift({n}) moves a later bar's value onto an earlier bar. Use a number of bars back, 0 or more.

Repainting and look-ahead

centred-window

lookaheaderror

A centred window reads bars after the one it is placed on.

Repainting and look-ahead

unseeded-random

determinismerror

This random source is not seeded, so two runs differ. Use ctx.rng in hooks, or numpy.random.default_rng(seed) with a fixed seed.

Repainting and look-ahead

mode-branch

determinismwarning

This code depends on the run mode. If it changes trading, a backtest and a live run trade differently.

Repainting and look-ahead

last-row-in-compute

lookaheadwarning

{expr} reads the last bar of the whole history, which is later than most bars it decides on.

Repainting and look-ahead

whole-series-aggregate

lookaheadwarning

{expr} uses every bar, including later ones. Use a trailing window such as forge.series.rolling.

Repainting and look-ahead

fit-full-history

lookaheadwarning

A model is fitted on the whole history inside compute(), so early bars learn from later ones.

Repainting and look-ahead

reversed-series

lookaheadwarning

Reversing a series before a running calculation lets early bars read later ones.

Repainting and look-ahead

module-state

determinismwarning

A module-level {name} is changed by strategy code, so results depend on what ran before.

Repainting and look-ahead