Honesty doctrine. Every candidate anomaly is an artifact until proven otherwise; in-sample results are never findings; past statistical regularity does not imply future returns. This is research on statistical properties of market data — not investment advice, not a trading system.

Experiments / expA_data_reality

expA_data_reality

Data reality check: what hfmarketdata.io actually returns (granularity, depth, timestamps, corporate actions, limits)

View benchmark implementation (benchmark.py) →

Hypothesis

documentexpA_data_reality/hypothesisauthorSimon-Pierre BouchercreatedTue Aug 11 2026 20:00:00 GMT-0400 (heure avancée de l’Est)modifiedTue Aug 11 2026 20:00:00 GMT-0400 (heure avancée de l’Est)statusfinal

Hypothesis — expA_data_reality#

Hypothesis
  hfmarketdata.io advertises 1min→1day bars across stock/etf/futures/index/
  fx/crypto plus daily options chains. We believe the advertised granularity
  is real, but that session semantics, timestamp conventions, adjustment
  behavior, missing-data patterns and response limits are NOT documented
  precisely enough to design honest experiments — they must be measured.

Falsification criterion
  Not a statistical hypothesis: this experiment FAILS if any downstream-
  critical property (granularity, timestamp basis, adjustment arithmetic,
  row caps, completeness) cannot be pinned down empirically, or if the
  advertised 1-minute granularity turns out to be resampled/absent.

Artifact null(s)
  None (no anomaly is claimed). This experiment EXISTS to seed the artifact
  taxonomy that later experiments must beat.

Method
  Eight probe families (A1–A8) through the single cached client:
  inventory; history bounds per class (representative tickers AAPL, SPY, ES,
  SPX, EURUSD, BTC); intraday session structure incl. a sparse ticker (AIZN);
  daily-vs-1min aggregate comparison; AAPL 2020 4:1 split across all three
  adjustment series; row-cap + pagination check on one year of SPY 1min;
  latency profile; options coverage. All responses cached; manifest indexed.

Result
  See analysis.md and results/expA_data_reality/20260812T054515Z/results.json.
  54 network requests, 274 571 rows, 0 retries; re-run = 55 cache hits,
  0 network requests.

Interpretation
  Confidence n/a (no anomaly claim). Dataset is fit for Q1–Q3 research with
  five load-bearing caveats (see data_source_profile.md §9).

Next experiment
  expB_artifact_baselines: build the measured null distributions for
  bid-ask bounce, stale prices, and non-synchronous lead-lag on THIS data.

Analysis

documentexpA_data_reality/analysisauthorSimon-Pierre BouchercreatedTue Aug 11 2026 20:00:00 GMT-0400 (heure avancée de l’Est)modifiedTue Aug 11 2026 20:00:00 GMT-0400 (heure avancée de l’Est)statusreviewed

Analysis — expA_data_reality#

Run: results/expA_data_reality/20260812T054515Z/results.json (hardware manifest embedded; 54 network requests on first pass, 100 % cache hits on re-run — the reproducibility anchor works).

What was established#

  1. Granularity is real. 1-minute bars are served for every advertised class; 1min is the floor. Options are daily chain snapshots (17 columns, with bid/ask/IV/Greeks/OI) over 67 quarters, 2010_q1 → 2026_q3_partial.
  2. Depth. stock/etf 1min from Jan 2000 (26+ years); futures & index from Jan 2008; fx from 2010; crypto from Apr 2013. Archive lags a few days (equities ended previous Friday on run date) — not a live feed.
  3. Timestamps are US/Eastern wall-clock, bar-start labeled, no TZ marker. Sessions: equities 04:00–19:59 ET, fx Sun 17:00 → Fri 16:59, futures ≈24 h, crypto 24/7, SPX prints until 16:20. Cross-asset closes are therefore non-synchronous by construction.
  4. Bars exist only where trades occurred — no zero-volume placeholders. Liquid RTH is complete (390/390); an illiquid name printed 38 bars/day.
  5. Daily ≠ aggregated 1min. Daily bars are RTH-only with the official auction close (312.41 vs 312.49) and include auction/consolidated volume missing from 1min bars (46.1 M vs 34.7 M extended / 25.7 M RTH).
  6. Adjustments verified on the AAPL 4:1 split (exact), and adj_splitdiv re-bases the whole history to the build date — adjusted series are not point-in-time stable.
  7. Limits. Hard 50 000-row JSON cap (pagination verified: 218 006 rows of SPY 1min/2020, 0 dupes, monotonic); no rate limiting observed; 0.08–0.22 s small-request latency.

Interpretation (confidence framing)#

No anomaly is claimed; Level n/a. The experiment succeeded by its own criterion: every downstream-critical property was pinned down. Items 3–6 are direct seeds for the artifact taxonomy — each is a mechanism that can manufacture a fake anomaly (spurious lead-lag from non-synchronous sessions; spurious autocorrelation from stale prints; phantom overnight returns from auction-vs-last-bar close mismatch; look-ahead from rolling adjustment).

Verdict#

Complete. Proceed to expB_artifact_baselines (measure the artifact nulls); in parallel, Phase 1 literature work can start. Everything downstream must join bars explicitly on time with declared staleness rules — never implicit LOCF — and must state which close (auction vs last-bar) it uses.

README

documentexpA_data_reality/READMEauthorSimon-Pierre BouchercreatedTue Aug 11 2026 20:00:00 GMT-0400 (heure avancée de l’Est)statusdraft

expA_data_reality#

Data reality check: what hfmarketdata.io actually returns (granularity, depth, timestamps, corporate actions, limits)

Status: completed 2026-08-12 — see analysis.md and results/expA_data_reality/. Output: research/data_source_profile.md.

Result runs