Skip to main content

BacktestWindow

The window a backtest ACTUALLY ran, next to the one it was created with.

#2756: a 1h run approved and stored as 2026-06-23 → 2026-09-22 executed 2026-07-11 → 2026-09-22. Nineteen of the ninety-one days never ran, the metrics were computed over seventy-two days and every surface labelled them with the ninety-one-day range. The executed pair is the authoritative one wherever a window is displayed; the requested pair is shown as REQUESTED and never as the window the numbers describe.

type BacktestWindow {
requestedStartDate: Time
requestedEndDate: Time
executedStartDate: Time
executedEndDate: Time
executedDays: Int
truncated: Boolean!
missingDays: Int!
}

Fields​

BacktestWindow.requestedStartDate ● Time scalar​

The window the run was created with. Null when that edge was never pinned.

BacktestWindow.requestedEndDate ● Time scalar​

BacktestWindow.executedStartDate ● Time scalar​

The window the engine reported running (freqtrade backtest_start / backtest_end). Null until the run has a result — an unfinished run claims nothing.

BacktestWindow.executedEndDate ● Time scalar​

BacktestWindow.executedDays ● Int scalar​

Freqtrade's own day count for the executed window.

BacktestWindow.truncated ● Boolean! non-null scalar​

True when the executed window is materially inside the requested one — more than one day missing at either edge. One day of edge rounding (a day-granular timerange, an unclosed final candle) is not truncation.

BacktestWindow.missingDays ● Int! non-null scalar​

Whole days of the requested window that did not run. Zero unless truncated.

Member Of​

Backtest object