Download, inspect and repair historical market data
Build a provider-correct local data library and distinguish coverage from file presence.
Reviewed 2026-10-24 · Windows & macOS
On this page
View full-size screenshot ↗Build the data library before research#
AMM backtests and optimizations use local historical archives. Open Data Download, choose the provider and exact account/profile, then select symbols, range and resolution in the Download builder. The item also contains Data library, Queue & history and Depth Recordings panels. Several Data Download items can keep independent drafts while showing shared server jobs/library state.
Start with one instrument and a short range. Confirm the output preview, server credentials and expected data basis before submitting a large universe. Downloading market data can consume provider quotas or paid entitlements. The initial accepted job is only the start: inspect its terminal status and each symbol/resolution's counts and errors.
Select the right observations#
| Source | Historical paths available in AMM | Key limit |
|---|---|---|
| cTrader | Daily/minute history and quote ticks; supported consolidation for other chart periods | Account-specific contracts; minute bid/ask may be synthetic |
| Massive | US-equity daily/minute aggregates and rich trade ticks | Data only; subscription/flat-file entitlements separate |
| Alpaca equities | Daily, Minute, trade Tick, SIP QuoteTick | QuoteTick needs explicit SIP entitlement |
| Alpaca Crypto | Daily, Minute, trade Tick, QuoteTick | No native Second download; separate crypto store |
| Binance | Daily/Minute candles; native Second on Global/Testnet | Binance.US Second unavailable; no historical raw trades or bid/ask download |
| IB Crypto | Minute/Daily trade bars | Logged-in gateway required; no ticks/second bars |
| IB general | Implemented minute/daily live-session backfill | Minute FX/CFD quote-bar contract is restricted; not a universal download provider |
| Rithmic | Minute, Second, trade Tick and session-aggregated Daily | Tick/Second startup needs stored history |
| CQG | Minute/Daily; direct time-and-sales ticks and derived Second | Relay download support is narrower |
A trade tick records an executed print. A quote tick records bid/ask observations. A bar aggregates a period. Current depth, recorded historical L2 and historical trade ticks are different datasets. Choose the source needed by the execution model; a higher-resolution display cannot recover observations that were never recorded.
Run a download and verify completion#
- Select provider, account/profile and exact symbol rows.
- Choose dates and resolution. Review provider-specific disabled choices and entitlement fields.
- Review security-master status and refresh it where the provider supports that action.
- Start and inspect Queue & history. Waiting means the accepted job has not begun its work yet.
- Open job details for per-symbol records, bytes, errors and first/last UTC timestamps.
- Open the resulting Data Library entry, inspect file details and coverage, then preview a chart.
- Start a small research run using that same provider/account, range and data basis.
Cancellation is provider-specific. The UI deliberately disables cTrader cancellation; do not assume every queued or running provider job can be cancelled. Some provider job lists are process-local and disappear after API restart while the downloaded files remain. Durable accepted-request details are available only where recorded; an older job can legitimately have no recoverable request.
Interpret coverage correctly#
File presence, first/last timestamps and a Completed status answer different questions. A file can cover the endpoints and still contain unexplained intraday gaps. Conversely, an exchange holiday or a successful empty provider query can explain an interval without records. AMM binds saved coverage evidence to source identity and archive revision; old evidence is not universal proof forever.
Review the calendar used by the source. Equities have regular/extended sessions and holidays; cTrader symbols use broker schedules; futures trade dates begin on the prior Chicago evening; crypto uses every UTC day. An overnight futures session split by UTC midnight is not automatically a missing day.
For sparse symbols, do not label every empty minute as corruption. Use provider-confirmed gaps and supported repair rather than inventing bars. When a required startup bridge cannot establish sufficient history, AMM fails instead of silently warming on a shortened range.
Preserve provenance and quantities#
AMM uses .ammbin for local bars/ticks and .ammdepth day files for supported recorded L2/prints. Those binary formats retain provider basis, scaling and exact supported quantities; they are not interchangeable CSV files. Exported trade CSVs, screeners and result reports serve other purposes and do not replace an executable market-data archive.
Keep provider/profile stores separate. Never rename an Alpaca file into a Massive or cTrader folder to satisfy a missing-history error. Corporate-action adjustment can change historical prices and quantities; record raw/split/dividend basis with a research run. For equity quote execution, require the appropriate quote source instead of interpreting trade prints as executable bid/ask.
Crypto fractional sizes can require scaled integers. External tools should retain decimal asset quantities and the declared scale instead of rounding to whole units. Source fields with unsupported precision fail explicitly to protect the existing archive.
Repair a missing or failed range#
Identify the exact provider, account, symbol, resolution and UTC interval. Inspect the job's specific error and existing coverage. Retry that bounded interval using the same provider path or a supported repair tool. An entitlement denial, missing contract, saturated tick page and closed session need different corrections.
AMM's writers normally merge and replace atomically; interrupted acquisition should preserve the previous archive, though a failed job can leave earlier completed chunks available. Recheck coverage after repair before reusing an old result. Retain a run's original source basis when comparing before/after repairs.
For recorded depth, use Market depth data to configure supported providers and inspect continuity/retention. For contract multipliers, schedules and groups, use Instruments and groups.