EngineMarket Data

Historical data

Check requested bounds, returned coverage, and the data preserved for an experiment.

A historical request specifies intended inputs. The returned rows and the frames actually processed establish what the strategy observed. Record both before comparing results.

Verify a selected window

Check the exact instrument, first and last returned timestamps, interval, ordering, missing periods, and duplicate timestamps. Compare the requested window with exchange sessions and known contract coverage.

An empty period can mean no coverage, a closed session, a wrong instrument, or a failed request. A nonempty response is not proof of complete coverage.

Query from the session

The session API is context.historicalData(instrument, startDate, endDate, interval?, backfill?). Concrete sessions delegate it to their data adapter. Availability, interval handling, and the meaning of backfill depend on that adapter.

For a historical strategy decision, anchor the end date to bar.date and validate the returned timestamps. Using the present wall clock can introduce evidence from after the decision you are replaying. Do not assume all adapters share the same inclusive-boundary convention.

A separate query may use a different cache or service from the observations supplied to the current run. Fetching the same window on every frame can also add substantial work. Prefer a bounded strategy window when it satisfies the calculation.

Reused Agent Lab data

Agent Lab identifies a dataset by instrument, interval, start date, end date, and timezone. After a successful run produces a dataset artifact, later runs with that identity in the same experiment reuse those bars.

Source edits alone do not refresh that artifact. The worker normalizes OHLCV, filters to the selected bounds, sorts timestamps, and rejects empty or non-finite input. These checks do not establish complete session coverage or guarantee unique timestamps.

The saved artifact covers supplied replay bars. Additional historical queries or external services used by strategy code are not automatically captured in that frozen input.

Data rows versus strategy frames

Session filtering and strategy cadence can reduce the observations that reach SJS. Compare stored coverage and probe output separately before labeling a gap as missing provider data.

Continue with live data for the differences between a fixed historical window and incoming observations.

On this page