Skip to main content

runnerBacktestDateRange

Returns the intersection of cached OHLCV date ranges for the given pairs on (exchange, tradingMode, timeframe). Drives the backtest / hyperopt drawer's date-range picker clamps so the user cannot select a range where some selected pair has no data.

Semantics:

  • fromMs is the LATEST start across all pairs — the earliest instant where every pair has cached data.
  • toMs is the EARLIEST end across all pairs — the latest instant where every pair still has cached data.

Returns null when:

  • pairs is empty, or exchange / timeframe is empty
  • any pair has no cached file for the given (exchange, mode, timeframe, OHLCV) — the intersection is undefined
  • the intersection is empty (earliest end precedes latest start)

Callers should treat null as "no tight bound"; the client-side "no future dates" clamp still applies regardless.

runnerBacktestDateRange(
runnerID: ID!
exchange: String!
tradingMode: MarketDataTradingMode
pairs: [String!]!
timeframe: String!
): RunnerBacktestDateRange

Arguments

runnerBacktestDateRange.runnerID ● ID! non-null scalar

runnerBacktestDateRange.exchange ● String! non-null scalar

runnerBacktestDateRange.tradingMode ● MarketDataTradingMode enum

runnerBacktestDateRange.pairs ● [String!]! non-null scalar

runnerBacktestDateRange.timeframe ● String! non-null scalar

Type

RunnerBacktestDateRange object

Intersection of cached OHLCV date ranges across a set of (pair, timeframe) tuples on one (exchange, tradingMode). Produced by runnerBacktestDateRange. Times are Unix milliseconds (Float to avoid 32-bit Int overflow).