Filling long history for backtests: footprint drain or server bars

The automatic backtest panel reads the cache coverage for the chosen contract, granularity and period, then offers two downloads for the missing sessions: the footprint drain (every trade with its aggressor side, rebuilt into bid × ask) or the faster server bars without levels. Coverage is counted in trading sessions at five per seven days.

Senzoukria · Documentation · Updated September 2026


Where to find it

Where
Replay → Automatic backtest → coverage card under Period and Granularity
Periods
1 week, 1 month (default), 3 months, 6 months, 1 year, 2 years, 5 years; granularity 1 minute, 5 minutes, 15 minutes (default), 1 hour
Two buttons
"Download the footprint history ({dur})" (primary) and "Download the missing history ({dur})" (secondary, server bars)
Coverage text
"{n} sessions cached out of {n} requested — {n} are missing. The backtest can run right away on what exists, but the result will only cover that window."

What it does

Changing the contract, granularity or period re-reads the cache (cache_coverage) without any broker call. Requested days are converted to sessions at 5/7, covered nanoseconds become covered sessions, and the difference is the missing count. When nothing at all is cached the card says "Nothing cached for {symbol} at {tf}. Open this contract in the chart at that granularity: the history fills itself, and stays available afterwards."

The footprint drain calls rithmic_history_ensure over windows of 28 days, oldest window last, with the contract tick size. Its estimate is 107 seconds per missing session, shown in the button. Each window reports bars fetched, spans skipped as denied and spans failed; a busy backend skips the window without counting it as failed. This path carries the bid × ask per price and is the one a strategy reading per-level imbalances needs.

The server-bars path calls rithmic_fetch_history_batch with chunks planned at 9,000 bars each (23 hours per session, 5/7 sessions per day), sent 8 windows per batch and 2 batches in flight. It is faster but the bars carry OHLC, volume and delta only: "Server bars carry OHLC, volume and delta, but no footprint levels."

Settings and estimates

Parameters that shape the coverage card and the two downloads
SettingDefaultWhat it changes
Period1 month (30 days)Days requested: 7, 30, 90, 180, 365, 730 or 1,825
Granularity15 minutesTimeframe of the cached bars read for the backtest: 1m, 5m, 15m, 1h
Footprint drain window28 daysSize of each rithmic_history_ensure request
Footprint estimate107 s per missing sessionDuration shown in the primary button
Server-bars chunk9,000 barsSize of each history window; estimate 150 s per chunk
Truncation flag< 90 % of requested dayscoveredSpan marks the result as truncated when the bars span less than 90 % of the period

How to use it

  • Pick the contract, granularity and period, then read the coverage line before launching: a backtest can run on what exists, but its result only covers that window.
  • Prefer the footprint drain when the strategy reads imbalances or per-level volume; accept the hours it announces.
  • Use Cancel to stop either download; what already arrived is kept, and running it again fills the rest.
  • Watch the status line: "Draining tick by tick — window {done} of {total}, {bars} bars so far" or "Downloading — chunk {done} of {total}, {bars} bars so far".

Verdicts and pitfalls

  • denied: the broker answered rp_code 13 ("permission denied"). Historical bars are a broker entitlement, not an app setting; historical ticks may still work and that is what manual replay uses.
  • silent: login accepted, nothing sent on every window. Either the archive does not reach that far or the history plant is down; retry when the market is open.
  • empty: the broker answered but served no bars for this window; its archive may not go back that far for this contract.
  • Tick drain with codes: "The broker returned no ticks and answered: {codes}. Historical tick replay may not be enabled on this account."
  • Historical data is served and billed by your broker or data provider according to your account; the app cannot extend an entitlement.

This page in other languages

Frequently asked questions

Why are two downloads offered, and which should I choose?
They do not carry the same data. The footprint drain rebuilds bid × ask per price from every trade and is required for per-level strategies; server bars are quicker but have no levels. The footprint drain is the primary action for that reason.
Why does the estimate say hours?
It is 107 seconds per missing session on purpose; announcing too short a time made users cut downloads that were completing.
The download finished but the coverage did not change?
Coverage is re-read after every run. If it did not move, read the message under the buttons: partial chunks, a refusal code or an empty archive explain it.

Keep reading