SPB Git

spb/anomaly-atlas Public License

Systematic discovery & rigorous validation of statistical anomalies in open HF market data (hfmarketdata.io) — pre-registered, artifact-null-driven, fully reproducible. Live atlas: www.anomaly-atlas.io

Python 61.4% JavaScript 28.7% CSS 8.6% Shell 0.7% Makefile 0.5%

expH: validation ladder closes + first atlas entries + Publications tab

expH (validation 2016-2021, opened once; holdout stays sealed):
- negative finding REPLICATES: 0 net survivors at full half-spread OOS
- CKX fails pre-registered sub-period clause (kappa* 0.445->0.263)
- ES->SPY flips sign OOS (+0.003, p=0.68) — regime-fragile
- daily reversal family: VR30 excess -0.143 -> +0.023 (crisis-regime)
- figure: alphas collapse OOS, the SPX staleness artifact persists

Atlas (via new_finding.py, Level 2 each):
- F001 nothing in the searched universe survives the full ladder
- F002 SPX->SPY lead is index content staleness (Fisher), survives SPA

Publications: new tab + P001 'The Artifact Frontier, Part I' — formal
write-up of expA->expG with live {{figure:...}} tokens rendered from
committed results.json

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed 2 h ago (Aug 12, 2026) parent 881399d

Showing 18 changed files with +3,565 and −28

added atlas/F001-short-horizon-survival/v1/confidence.md +36 −0
@@ -0,0 +1,36 @@
1 +---
2 +project: anomaly-atlas
3 +document: F001 confidence
4 +author: Simon-Pierre Boucher
5 +contact: contact@spboucher.ai
6 +data_source: hfmarketdata.io
7 +created: 2026-08-12
8 +status: reviewed
9 +---
10 +
11 +Level: 2
12 +
13 +# Confidence — F001 (negative finding)
14 +
15 +**Level 2 — robust** (corrected & OOS & robust). Evidence per layer:
16 +
17 +* **Corrected**: the claim is made against the FULL searched universe (372
18 + signed rules), with BH-FDR + White RC + Hansen SPA (500 stationary
19 + bootstraps) + DSR; the 22-hypothesis budget was declared before scanning
20 + (research_gaps.md) and never expanded.
21 +* **Artifact-adjusted**: scans ran net of measured nulls (taxonomy T1-T7:
22 + bounce/EDGE variance-consistent MA(1) null, both-fresh synchronization,
23 + permuted calendar); detectors passed 29 synthetic gate tests first.
24 +* **Out-of-sample**: the 2016-2021 validation split, frozen before any scan
25 + and opened exactly once (expH), REPLICATES the negative: zero net
26 + survivors at full half-spread; the lone 0.25x survivor fails its
27 + pre-registered sub-period clause; ES->SPY flips sign; the daily reversal
28 + family collapses (-0.143 -> +0.023 VR30 excess).
29 +* **Robust**: holds across 4 timeframes, 2 train sub-periods, 2 validation
30 + sub-periods, liquidity buckets, futures splice variants, and both close
31 + conventions where applicable.
32 +
33 +**Why not Level 3**: Level 3 is reserved for confirmation on the sealed
34 +holdout (2022->), which this project deliberately did not spend on an
35 +already-settled negative. Costs are estimated (EDGE), not quoted — the
36 +cost-real qualifier is model-based.
added atlas/F001-short-horizon-survival/v1/finding.json +28 −0
@@ -0,0 +1,28 @@
1 +{
2 + "anomaly_id": "F001-short-horizon-survival",
3 + "title": "Nothing in the searched universe survives the full validation ladder",
4 + "summary": "Across 22 pre-registered hypotheses (372 searched rules: reversion, lead-lag, calendar; 2000-2016 train), every effect that beats the measured artifact nulls and Hansen-SPA search correction dies at a fraction of its own half-spread (median breakeven = 1.1% of one half-spread; zero intraday rules survive paying the full half-spread), and this negative result REPLICATES on the untouched 2016-2021 validation split (zero net survivors at full spread; the lone marginal 0.25x survivor fails its pre-registered sub-period clause; the splice-invariant ES-SPY train effect flips sign OOS; the daily 2008-2015 reversal family was crisis-regime).",
5 + "negative_result": true,
6 + "key_numbers": {
7 + "searched_rules": 372,
8 + "naive_significant": 232,
9 + "fdr_survivors": 226,
10 + "spa_step1_survivors": 68,
11 + "median_breakeven_kappa": 0.0114,
12 + "net_survivors_at_full_halfspread_train": 0,
13 + "net_survivors_at_full_halfspread_validation": 0
14 + },
15 + "evidence": [
16 + "results/expC_reversion_scan/",
17 + "results/expD_leadlag_scan/",
18 + "results/expE_calendar_scan/",
19 + "results/expF_multiple_testing/",
20 + "results/expG_cost_frontier/",
21 + "results/expH_oos_stability/"
22 + ],
23 + "reproduce": "make setup && python experiments/micro/expF_multiple_testing/benchmark.py (cache-served); full chain expA->expH per experiments/micro/*/hypothesis.md",
24 + "author": "Simon-Pierre Boucher",
25 + "contact": "contact@spboucher.ai",
26 + "data_source": "hfmarketdata.io",
27 + "confidence_level": 2
28 +}
added atlas/F001-short-horizon-survival/v1/provenance.json +11 −0
@@ -0,0 +1,11 @@
1 +{
2 + "commit": "881399dca21ef0ca7e30b858a85fc54a3e1fafa1",
3 + "config": "pre-registered protocol: charter CLAUDE.md; splits frozen in src/anomaly_atlas/data/universe.py (train 2000-2016, validation 2016-2021, holdout 2022-> sealed); seeds 42 throughout",
4 + "data_manifest_hash": "f94a641cda2c8e9eb4ea0fded4ac80f3d0505a20fd73be0d33b6a1aff1109e1c",
5 + "hardware_manifest": "embedded in each cited results.json (Apple Silicon, macOS; see manifest field)",
6 + "generated_utc": "2026-08-12T08:20:00Z",
7 + "n_hypotheses_tested": 22,
8 + "correction_method": "BH-FDR (scans) + Hansen SPA/White RC over the 372-rule searched universe + DSR; artifact nulls per taxonomy T1-T7; EDGE cost model",
9 + "oos_status": "validation split (2016-2021) opened once by expH and confirms; holdout (2022->) sealed",
10 + "experiments": "expA-expH"
11 +}
added atlas/F002-spx-spy-staleness-artifact/v1/confidence.md +33 −0
@@ -0,0 +1,33 @@
1 +---
2 +project: anomaly-atlas
3 +document: F002 confidence
4 +author: Simon-Pierre Boucher
5 +contact: contact@spboucher.ai
6 +data_source: hfmarketdata.io
7 +created: 2026-08-12
8 +status: reviewed
9 +---
10 +
11 +Level: 2
12 +
13 +# Confidence — F002 (artifact demonstration)
14 +
15 +**Level 2 — robust.** This is a finding-type C/D entry (artifact
16 +demonstration / methodological), published as a negative result about a
17 +would-be anomaly.
18 +
19 +* **Corrected**: the effect itself survives Hansen SPA — which is the
20 + demonstration: statistical correction cannot detect mechanism.
21 +* **Artifact mechanism established**: measured in expB (+0.065) and expD
22 + (+0.132) with print-synchronization applied — the lead persists at
23 + fresh_fraction 0.996 with artifact-share-from-print-gaps ~0, isolating
24 + CONTENT staleness (Fisher 1966) as the mechanism; the synthetic gate
25 + demonstrates the same signature on planted staleness.
26 +* **Out-of-sample**: replicates on the validation split (+0.080) — the
27 + artifact is structural, unlike every "alpha" in the same pipeline.
28 +* **Robust**: present in two independent windows plus validation, at both
29 + raw and synchronized treatments.
30 +
31 +**Why not Level 3**: holdout untouched (sealed); magnitude varies with
32 +index-constituent liquidity regime, so the number (not the mechanism)
33 +should be re-measured per period.
added atlas/F002-spx-spy-staleness-artifact/v1/finding.json +22 −0
@@ -0,0 +1,22 @@
1 +{
2 + "anomaly_id": "F002-spx-spy-staleness-artifact",
3 + "title": "The SPX->SPY minute-scale 'lead' is index content staleness, not price discovery",
4 + "summary": "SPY leads the SPX index print by one minute (+0.132 cross-correlation in train 2014-2015, +0.080 on the 2016-2021 validation split) at ~0.95 contemporaneous correlation, and the lead SURVIVES both-fresh print synchronization because the staleness lives inside the index computation (Fisher 1966, measured live). It also survives Hansen SPA - demonstrating that statistical correction cannot detect mechanism. Any 'ETF leads the index' claim on bar data is presumptively this artifact.",
5 + "negative_result": true,
6 + "key_numbers": {
7 + "train_lead_plus1min": 0.132,
8 + "validation_lead_plus1min": 0.08,
9 + "contemporaneous_corr": 0.965,
10 + "artifact_share_from_print_gaps": 0.0
11 + },
12 + "evidence": [
13 + "results/expB_artifact_baselines/",
14 + "results/expD_leadlag_scan/",
15 + "results/expH_oos_stability/"
16 + ],
17 + "reproduce": "python experiments/micro/expD_leadlag_scan/benchmark.py; expH xcorr section",
18 + "author": "Simon-Pierre Boucher",
19 + "contact": "contact@spboucher.ai",
20 + "data_source": "hfmarketdata.io",
21 + "confidence_level": 2
22 +}
added atlas/F002-spx-spy-staleness-artifact/v1/provenance.json +11 −0
@@ -0,0 +1,11 @@
1 +{
2 + "commit": "881399dca21ef0ca7e30b858a85fc54a3e1fafa1",
3 + "config": "pre-registered protocol: charter CLAUDE.md; splits frozen in src/anomaly_atlas/data/universe.py (train 2000-2016, validation 2016-2021, holdout 2022-> sealed); seeds 42 throughout",
4 + "data_manifest_hash": "f94a641cda2c8e9eb4ea0fded4ac80f3d0505a20fd73be0d33b6a1aff1109e1c",
5 + "hardware_manifest": "embedded in each cited results.json (Apple Silicon, macOS; see manifest field)",
6 + "generated_utc": "2026-08-12T08:20:00Z",
7 + "n_hypotheses_tested": 22,
8 + "correction_method": "BH-FDR (scans) + Hansen SPA/White RC over the 372-rule searched universe + DSR; artifact nulls per taxonomy T1-T7; EDGE cost model",
9 + "oos_status": "validation split (2016-2021) opened once by expH and confirms; holdout (2022->) sealed",
10 + "experiments": "expB, expD, expH"
11 +}
modified data_manifest/index.jsonl +418 −0
@@ -662,3 +662,421 @@
662 662 {"author": "Simon-Pierre Boucher", "cache_key": "33bc1609cb0d547073f6a8a8af704cee", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:18:21Z", "first": "2014-01-02", "last": "2015-12-31", "params": {"adjustment": "adj_split", "end": "2016-01-01", "limit": 50000, "order": "asc", "start": "2014-01-01", "timeframe": "1day"}, "rows": 504, "sha256": "133061fbf9bf3ed8982d6aeb512b3484c99855841fa16c032c8e536633b74ccd"}
663 663 {"author": "Simon-Pierre Boucher", "cache_key": "cc85adf012e46f078629243629794fb9", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/CECO", "fetched_utc": "2026-08-12T07:18:21Z", "first": "2014-01-02", "last": "2015-12-31", "params": {"adjustment": "adj_split", "end": "2016-01-01", "limit": 50000, "order": "asc", "start": "2014-01-01", "timeframe": "1day"}, "rows": 504, "sha256": "0ff453a2aa5390f2719a4074fb8b96f16fbc259b91ad1b76d7bfc200a73a51ec"}
664 664 {"author": "Simon-Pierre Boucher", "cache_key": "4a2ab63bed307cd5d102465cdf120670", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/HTD", "fetched_utc": "2026-08-12T07:18:21Z", "first": "2014-01-02", "last": "2015-12-31", "params": {"adjustment": "adj_split", "end": "2016-01-01", "limit": 50000, "order": "asc", "start": "2014-01-01", "timeframe": "1day"}, "rows": 504, "sha256": "eccd85ed2e143ac5e51ad6faecb87b186e818a33919677f6adc3b0bc6d66908c"}
665 +{"author": "Simon-Pierre Boucher", "cache_key": "54eafce77bee57baa7b68b42ba85cb42", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AAPL", "fetched_utc": "2026-08-12T07:25:20Z", "first": "2016-01-04 04:00:00", "last": "2017-04-10 08:20:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "5min"}, "rows": 50000, "sha256": "b1111e61377f0e7290b6a81b4992bf61be0763b981f0c4cbbd0aa024e78dd381"}
666 +{"author": "Simon-Pierre Boucher", "cache_key": "16c7fd354700fa3942937fdfd4a0b22b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AAPL", "fetched_utc": "2026-08-12T07:25:22Z", "first": "2017-04-10 08:20:00", "last": "2018-07-05 12:30:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-04-10 08:20:00", "timeframe": "5min"}, "rows": 50000, "sha256": "73e73eed139149d82caafb7f5dee1c2ed46c817b05570f11908065953bc5a025"}
667 +{"author": "Simon-Pierre Boucher", "cache_key": "9cd65ef4b54386652c1d8bf102973198", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AAPL", "fetched_utc": "2026-08-12T07:25:24Z", "first": "2018-07-05 12:30:00", "last": "2019-09-09 11:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-07-05 12:30:00", "timeframe": "5min"}, "rows": 50000, "sha256": "4bb72a3896ab23eb0761ddb038f0da6249572d8c50e18ba3e1ef8a9862bcdb41"}
668 +{"author": "Simon-Pierre Boucher", "cache_key": "a7cb00f52e6a7495ceb3dc075a8d7adb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AAPL", "fetched_utc": "2026-08-12T07:25:25Z", "first": "2019-09-09 11:00:00", "last": "2020-10-15 05:25:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-09-09 11:00:00", "timeframe": "5min"}, "rows": 50000, "sha256": "9eb99abcbeb459af47188b385945ef29614c76c272fb4eae3b5f3cce62250b86"}
669 +{"author": "Simon-Pierre Boucher", "cache_key": "ccd26245c8eca9e108b1539d53e37987", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AAPL", "fetched_utc": "2026-08-12T07:25:27Z", "first": "2020-10-15 05:25:00", "last": "2021-11-04 13:40:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-10-15 05:25:00", "timeframe": "5min"}, "rows": 50000, "sha256": "e818e1d62a48e95651a8cae0b6f82a09b00bc24c6b71cb99df6ecb87ffa25c30"}
670 +{"author": "Simon-Pierre Boucher", "cache_key": "29d12e3b9e74b6e60af785ae2966810a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AAPL", "fetched_utc": "2026-08-12T07:25:27Z", "first": "2021-11-04 13:40:00", "last": "2021-12-31 19:55:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-11-04 13:40:00", "timeframe": "5min"}, "rows": 7373, "sha256": "1d4528886dd2f387e2a51a6d8149a09fca1432a1c20da52585a45e25ad5865df"}
671 +{"author": "Simon-Pierre Boucher", "cache_key": "b48ae6fb5903131d5421c54806762deb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AAPL", "fetched_utc": "2026-08-12T07:25:27Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "cc6446886dc18a484090ab5e9420dc9df025c1710303ad0c27ca2dc79227344d"}
672 +{"author": "Simon-Pierre Boucher", "cache_key": "fcc0d2a7b7a15a02c0ea1717d3ee41ac", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ATRO", "fetched_utc": "2026-08-12T07:25:29Z", "first": "2016-01-04 09:30:00", "last": "2018-11-27 14:45:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "5min"}, "rows": 50000, "sha256": "84f597011abf353a338a36a784a2e1564b7277d29a0b3c31d39c0dee27b831cf"}
673 +{"author": "Simon-Pierre Boucher", "cache_key": "5819aebdd43c6fc48e6361f733516019", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ATRO", "fetched_utc": "2026-08-12T07:25:31Z", "first": "2018-11-27 14:45:00", "last": "2021-07-28 10:40:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-11-27 14:45:00", "timeframe": "5min"}, "rows": 50000, "sha256": "b8e22c3fef45d961551069224e7fe569f774362859a157d19e72c7e794ba39c4"}
674 +{"author": "Simon-Pierre Boucher", "cache_key": "f89679eb93e1f96a67552565ead4b873", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ATRO", "fetched_utc": "2026-08-12T07:25:31Z", "first": "2021-07-28 10:40:00", "last": "2021-12-31 16:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-07-28 10:40:00", "timeframe": "5min"}, "rows": 7225, "sha256": "0ba041fa53075e922a3117e67c0c4b84adcefcc57b386c2234615424a9c9b46f"}
675 +{"author": "Simon-Pierre Boucher", "cache_key": "f67d43c48cdc5e6c8cf41a7dc71dfd6b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ATRO", "fetched_utc": "2026-08-12T07:25:31Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "7842d4af6f00912a2688b582cfb9b39a4f1583dd17ff8652ca06bea7fdc6d5ca"}
676 +{"author": "Simon-Pierre Boucher", "cache_key": "2ad3317e6030e6ff029946020ecd9ba3", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AXDX", "fetched_utc": "2026-08-12T07:25:32Z", "first": "2016-01-04 09:00:00", "last": "2021-12-31 16:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "30min"}, "rows": 21999, "sha256": "a2d481650ff527e9256d70f932f62b7c52ad32568f0da0718d8102806cafe556"}
677 +{"author": "Simon-Pierre Boucher", "cache_key": "2c189d97472b5775e5ad8d130f958806", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AXDX", "fetched_utc": "2026-08-12T07:25:32Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "b2c2ae0266b84ea50c3c57548cb94a37fe2a91161c06dec74005ef0ced7528c6"}
678 +{"author": "Simon-Pierre Boucher", "cache_key": "31fb1d87392d80d22c514c9ab3d8ce19", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:25:34Z", "first": "2016-01-04 09:30:00", "last": "2018-07-11 12:30:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "5min"}, "rows": 50000, "sha256": "992b57563b34619d6a78bb6c1c44317932530fe9169a1bf5925ec90bf05f98c1"}
679 +{"author": "Simon-Pierre Boucher", "cache_key": "455c385fa354246f2ef8eb08491c38c8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:25:35Z", "first": "2018-07-11 12:30:00", "last": "2021-01-07 15:40:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-07-11 12:30:00", "timeframe": "5min"}, "rows": 50000, "sha256": "7b158f3436bbbbdaac61ca9061d7ada81dc356bf9c6a44a538dc60fd40c77d10"}
680 +{"author": "Simon-Pierre Boucher", "cache_key": "b2bacb97c8e94cc1610abe7ddb6340c9", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:25:36Z", "first": "2021-01-07 15:40:00", "last": "2021-12-31 16:55:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-01-07 15:40:00", "timeframe": "5min"}, "rows": 19910, "sha256": "935e245cf67ffc9c377b3a49e90fbeb25e27d7e197ad242b2c31d393ef9136da"}
681 +{"author": "Simon-Pierre Boucher", "cache_key": "295d6c3608cea39c5d4cad4bbeadf918", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:25:36Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "dc86b9a34cf1ebe356543210b8fa0176f1cab86beef31ce89c62815f2a54ab2e"}
682 +{"author": "Simon-Pierre Boucher", "cache_key": "8b19b808e4adc9440373a26915de4abd", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/CKX", "fetched_utc": "2026-08-12T07:25:36Z", "first": "2016-01-05", "last": "2021-12-27", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 931, "sha256": "66e95713fa692396610baad39969326c419c9053e10eb375c589d6eb2a9bf386"}
683 +{"author": "Simon-Pierre Boucher", "cache_key": "2f0170ed91b5d7de20be9a5001d03c17", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/HTD", "fetched_utc": "2026-08-12T07:25:37Z", "first": "2016-01-04 09:30:00", "last": "2019-05-22 11:05:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "5min"}, "rows": 50000, "sha256": "d030762ec71edfd89f79023b64b9dcbbbd9eb93ca4f924ba6f3d735ce62ca5cb"}
684 +{"author": "Simon-Pierre Boucher", "cache_key": "4cb1dd4d1e303f13ec0add1500b49538", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/HTD", "fetched_utc": "2026-08-12T07:25:39Z", "first": "2019-05-22 11:05:00", "last": "2021-12-31 16:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-05-22 11:05:00", "timeframe": "5min"}, "rows": 37245, "sha256": "8facea29c2840c884c5b253fffd142fd39901518b74f835987b34b5365813741"}
685 +{"author": "Simon-Pierre Boucher", "cache_key": "ce31220d10c719b365b1e06809cd771c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/HTD", "fetched_utc": "2026-08-12T07:25:39Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "676e4cf6e4394d55961c4d001fc04e90122464576d12abe7766afdf8e2c40951"}
686 +{"author": "Simon-Pierre Boucher", "cache_key": "4cb40f7c2676480ea7ce8ce06279c73f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ICUI", "fetched_utc": "2026-08-12T07:25:40Z", "first": "2016-01-04 09:25:00", "last": "2018-11-12 09:40:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "5min"}, "rows": 50000, "sha256": "07666dbefa5cef99cb5ef9b4a0afe2859349ec32551212b09e6126d315a9bd71"}
687 +{"author": "Simon-Pierre Boucher", "cache_key": "fab111c8c98b8073ec4ee0b13e300ecd", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ICUI", "fetched_utc": "2026-08-12T07:25:42Z", "first": "2018-11-12 09:40:00", "last": "2021-10-08 11:10:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-11-12 09:40:00", "timeframe": "5min"}, "rows": 50000, "sha256": "8a46ae07b7c64910927fbbdfaf44d2c15c654805eb9044212dffc87b134a8b6c"}
688 +{"author": "Simon-Pierre Boucher", "cache_key": "1e72d480ee18f32556365131be07e2c6", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ICUI", "fetched_utc": "2026-08-12T07:25:42Z", "first": "2021-10-08 11:10:00", "last": "2021-12-31 16:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-10-08 11:10:00", "timeframe": "5min"}, "rows": 3547, "sha256": "cde4c025a2b44e39dccb38d8fc2cf70781aff2a60106ff0c69ad8986da8e1d9c"}
689 +{"author": "Simon-Pierre Boucher", "cache_key": "e5aa45de261b106354a0a2ddf2e83fa4", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ICUI", "fetched_utc": "2026-08-12T07:25:42Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "1c63b218d1b7cef19f592c580132aa1c6578d6fdea479feb5f93af5142ff3631"}
690 +{"author": "Simon-Pierre Boucher", "cache_key": "b31e5ad34cf99095158720aeea85fdb9", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:25:44Z", "first": "2016-01-04 05:37:00", "last": "2016-06-16 13:01:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "6c9bb82ad268adf924846d1770924ef9fa924e74b326df1838199570ecd9b240"}
691 +{"author": "Simon-Pierre Boucher", "cache_key": "66a3dd2fd881290d2265f400c29e7672", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:25:47Z", "first": "2016-06-16 13:01:00", "last": "2016-11-30 15:15:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-06-16 13:01:00", "timeframe": "1min"}, "rows": 50000, "sha256": "05758a658a7af83832cfeea22103a247a134f7f4cd56d2690cc84363f28d2ded"}
692 +{"author": "Simon-Pierre Boucher", "cache_key": "ab8d29c41fe9cc82bab2c38a91536254", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:25:49Z", "first": "2016-11-30 15:15:00", "last": "2017-05-11 10:31:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-11-30 15:15:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f2ff76199d196839ff04cfa11c20487a69cb083a006cad807440635b48bc5f08"}
693 +{"author": "Simon-Pierre Boucher", "cache_key": "3845987a0a2d37e45eddeb265f4175cc", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:25:51Z", "first": "2017-05-11 10:31:00", "last": "2017-10-23 15:08:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-05-11 10:31:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ae2c99415a4bb24a763ac8bab8f67c1a0fdb10448f9930efb114f873006dfc66"}
694 +{"author": "Simon-Pierre Boucher", "cache_key": "fde188485e650cafd4fa7666009afc52", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:25:53Z", "first": "2017-10-23 15:08:00", "last": "2018-04-04 14:17:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-10-23 15:08:00", "timeframe": "1min"}, "rows": 50000, "sha256": "7ee39fba8ccd1cd329d8a08e4c88fc4155032a6ec0489c69207b52e3b680e32a"}
695 +{"author": "Simon-Pierre Boucher", "cache_key": "1ca237183a7c39e1cd0c26f24a2d21c4", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:25:55Z", "first": "2018-04-04 14:17:00", "last": "2018-09-11 12:32:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-04-04 14:17:00", "timeframe": "1min"}, "rows": 50000, "sha256": "6f938a6f2644231cf0597919775879268090579945a05cf745c621c1fb501b62"}
696 +{"author": "Simon-Pierre Boucher", "cache_key": "8dcdc0721590b4344b440dae25a111ea", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:25:56Z", "first": "2018-09-11 12:32:00", "last": "2019-02-22 11:37:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-09-11 12:32:00", "timeframe": "1min"}, "rows": 50000, "sha256": "474d819ce9677eafbc23e6348dd4cea6dbd0f6611e832f9eb183bab07ce7f5e3"}
697 +{"author": "Simon-Pierre Boucher", "cache_key": "c24be960223fd3ff92dd5cb59347aeff", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:25:58Z", "first": "2019-02-22 11:37:00", "last": "2019-08-06 08:26:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-02-22 11:37:00", "timeframe": "1min"}, "rows": 50000, "sha256": "5c309f187d927a70aa8c3f8f619acf00adf793521ca6eb7a6d82beda9efac234"}
698 +{"author": "Simon-Pierre Boucher", "cache_key": "eddad2dafdbcf3e0813f0819c8ecbb09", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:26:00Z", "first": "2019-08-06 08:26:00", "last": "2020-01-17 09:48:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-08-06 08:26:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ad451093eaad65b40cb51f8bbf568bb78116dc3b1da94c964af4257bdb9cb2f9"}
699 +{"author": "Simon-Pierre Boucher", "cache_key": "f1b4e3576b425176ec71d526fa7928b5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:26:02Z", "first": "2020-01-17 09:48:00", "last": "2020-05-29 12:21:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-01-17 09:48:00", "timeframe": "1min"}, "rows": 50000, "sha256": "924cea30eb69ed8e7124d1d5d82a72a6c11addfa0342bf8929e8517937108565"}
700 +{"author": "Simon-Pierre Boucher", "cache_key": "5f6adfdbb6a65494a0a23dbc10e44b96", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:26:03Z", "first": "2020-05-29 12:21:00", "last": "2020-10-07 12:31:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-05-29 12:21:00", "timeframe": "1min"}, "rows": 50000, "sha256": "7d55c88e6a4641b8baf194a28af03d5bfa295cfbd126218f96dfb65747c5ace5"}
701 +{"author": "Simon-Pierre Boucher", "cache_key": "1dbf4010455a55bff3358af99968c660", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:26:05Z", "first": "2020-10-07 12:31:00", "last": "2021-03-03 18:46:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-10-07 12:31:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2f2c0ef3fb4bcf4b59f457a0f47982df442bf8b1ccf05eba9876575d4b9bcf75"}
702 +{"author": "Simon-Pierre Boucher", "cache_key": "74d7bbda72e235437a101f0c36edf6f8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:26:06Z", "first": "2021-03-03 18:46:00", "last": "2021-07-30 15:38:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-03 18:46:00", "timeframe": "1min"}, "rows": 50000, "sha256": "9feb2bb41dacb80e03f0302465f8947819e09235c6c967260b46d6184230173b"}
703 +{"author": "Simon-Pierre Boucher", "cache_key": "955bde2a84dab06d0e8bc46b3fd42a6a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:26:08Z", "first": "2021-07-30 15:38:00", "last": "2021-12-31 19:45:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-07-30 15:38:00", "timeframe": "1min"}, "rows": 49071, "sha256": "d396d2c1ceea61b55f352929096c7caf347a70c6bada2d378fde3ad9ea7e9cd3"}
704 +{"author": "Simon-Pierre Boucher", "cache_key": "2dfbff0ca2d2eaa3a1c7a5919b18d1eb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/JPM", "fetched_utc": "2026-08-12T07:26:08Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "048531009275542b48f6c70a4db8d308def94abe1687670eb3e1436bbe25e64e"}
705 +{"author": "Simon-Pierre Boucher", "cache_key": "545e7113074c8c4165a455ea343fff3c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:26:10Z", "first": "2016-01-04 04:00:00", "last": "2017-10-10 15:35:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "5min"}, "rows": 50000, "sha256": "859eafe31555a4fe691536143fed258442d39562f12ea8f9090fe41b24fdd845"}
706 +{"author": "Simon-Pierre Boucher", "cache_key": "4f0e0196e8fc4767f2174bd3edcd801d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:26:11Z", "first": "2017-10-10 15:35:00", "last": "2019-03-22 10:20:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-10-10 15:35:00", "timeframe": "5min"}, "rows": 50000, "sha256": "7a8bba56b8b3a86a82fd7652c79116f82aac8e75d0b32100775efb7af6e32a6c"}
707 +{"author": "Simon-Pierre Boucher", "cache_key": "9e6b4b4a10378d4e0ad941fdd6a76170", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:26:13Z", "first": "2019-03-22 10:20:00", "last": "2020-06-22 12:10:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-03-22 10:20:00", "timeframe": "5min"}, "rows": 50000, "sha256": "c58dd17629480905ae48fdbb6427e82435d49a1d6df6838eb7ac9f25533f25b3"}
708 +{"author": "Simon-Pierre Boucher", "cache_key": "2e027882814858d454561fdd767570cb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:26:14Z", "first": "2020-06-22 12:10:00", "last": "2021-09-02 14:30:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-06-22 12:10:00", "timeframe": "5min"}, "rows": 50000, "sha256": "af79019488b59d45983f03deb8e3e072f430240daf66e8c04d35f77f51d0326d"}
709 +{"author": "Simon-Pierre Boucher", "cache_key": "754df723c079c3d95f06f5d61c0d4455", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:26:15Z", "first": "2021-09-02 14:30:00", "last": "2021-12-31 19:55:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-09-02 14:30:00", "timeframe": "5min"}, "rows": 13527, "sha256": "d392d2c5c4883fe07d7754020734df0d7c871e60d0856e962fd70a86ed5480cd"}
710 +{"author": "Simon-Pierre Boucher", "cache_key": "5505f8d715b401b41937d700a619efec", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:26:15Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "0387ea374f979f0e57326d998e45549413e2b67c0d05a2474b810cc71303189f"}
711 +{"author": "Simon-Pierre Boucher", "cache_key": "32873c19c0c2fd08d5d4399b7d9721ac", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:17Z", "first": "2016-01-04 06:37:00", "last": "2016-06-24 10:15:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "c866e530a721254adac084eccb22d89b25242ffd923715cda3234561e15583a2"}
712 +{"author": "Simon-Pierre Boucher", "cache_key": "69d3b65a45ab18461f249ab774ffb230", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:20Z", "first": "2016-06-24 10:15:00", "last": "2016-12-01 15:43:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-06-24 10:15:00", "timeframe": "1min"}, "rows": 50000, "sha256": "fcdd9aacedb85ec17995f2db546982a84ad77e80ef1c8b178399d71932bf14b8"}
713 +{"author": "Simon-Pierre Boucher", "cache_key": "7f99d6275100cecb870b59035c71a903", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:22Z", "first": "2016-12-01 15:43:00", "last": "2017-04-18 11:49:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-12-01 15:43:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f4031e3e3f63bbc85ed4dae13da27c3b9cd8b12b5f286829b499e873da9e398a"}
714 +{"author": "Simon-Pierre Boucher", "cache_key": "fb3882f8c5f260d408b3e7b2743ec07a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:24Z", "first": "2017-04-18 11:49:00", "last": "2017-08-16 11:35:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-04-18 11:49:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2c028e304bfd3a895e00f3b69a8844cf380e406fb69f8adae6163045a71bea0f"}
715 +{"author": "Simon-Pierre Boucher", "cache_key": "35713cc3bcbbc589d80584a737a4f993", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:27Z", "first": "2017-08-16 11:35:00", "last": "2017-12-18 11:38:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-08-16 11:35:00", "timeframe": "1min"}, "rows": 50000, "sha256": "18cd5e7b200f19c4c0fd03d4cabf75f71d11cfca630d89cd123c1778992dd202"}
716 +{"author": "Simon-Pierre Boucher", "cache_key": "14f2f74f8cecf5d0f6f65ce5d95929e2", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:29Z", "first": "2017-12-18 11:38:00", "last": "2018-04-19 14:51:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-12-18 11:38:00", "timeframe": "1min"}, "rows": 50000, "sha256": "51f2f9009e78db4fb37e8887ca1d9c7a8421f6d123c737328b2ffade5d344bc8"}
717 +{"author": "Simon-Pierre Boucher", "cache_key": "517ca8d95af2ce58e43af98a7a0b9b08", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:31Z", "first": "2018-04-19 14:51:00", "last": "2018-08-29 11:57:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-04-19 14:51:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4e0ffe07907d88d0134ceb455293e0bed622ffb1f25affe11ccb0c08828a9a6e"}
718 +{"author": "Simon-Pierre Boucher", "cache_key": "16f6e84b18c4229e853b97b3dc31044a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:33Z", "first": "2018-08-29 11:57:00", "last": "2019-01-04 19:26:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-08-29 11:57:00", "timeframe": "1min"}, "rows": 50000, "sha256": "24cd604d09184d0f91a0d4e7ff6d933b0f11701302fabf56cb0a6a6e7298c538"}
719 +{"author": "Simon-Pierre Boucher", "cache_key": "2a7f7b74878a9344eeec73655e1a85e6", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:35Z", "first": "2019-01-04 19:26:00", "last": "2019-05-13 12:10:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-01-04 19:26:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4451f7783c57b1344ace66ff9beb508e858a9c1a08088cdd7a701813880ef2a3"}
720 +{"author": "Simon-Pierre Boucher", "cache_key": "ebf8f1afcd5ea1dc500d7ee465309e34", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:37Z", "first": "2019-05-13 12:10:00", "last": "2019-09-19 14:05:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-05-13 12:10:00", "timeframe": "1min"}, "rows": 50000, "sha256": "cc3b0f6d4073ef8f96ba74dcbf3c32ae24fb5a5a5e78f3095d64a3400c8b6663"}
721 +{"author": "Simon-Pierre Boucher", "cache_key": "0ab4d425f860c29d2c28a30d675b0ea3", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:38Z", "first": "2019-09-19 14:05:00", "last": "2020-02-04 14:12:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-09-19 14:05:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f9bc24a4f8ddd9a50bb4f5c60927374e8f21d3c8f183b11d99782841069d5ce7"}
722 +{"author": "Simon-Pierre Boucher", "cache_key": "497b19cc7877b0afcf2a3bf74bcd10c7", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:40Z", "first": "2020-02-04 14:12:00", "last": "2020-05-27 10:24:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-02-04 14:12:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c8dccf2d658533a659b477587f295768ab8dc2237edbff9701c8d499ba764f00"}
723 +{"author": "Simon-Pierre Boucher", "cache_key": "6195a8d01ffae46fba7e9745435d58d0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:42Z", "first": "2020-05-27 10:24:00", "last": "2020-09-25 10:28:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-05-27 10:24:00", "timeframe": "1min"}, "rows": 50000, "sha256": "29b91f41aaf685d05e4e3aa1a962f55bf7a78eb120e8061027fdcecaafc93840"}
724 +{"author": "Simon-Pierre Boucher", "cache_key": "7ad8eb7790e26ca8ced88335729cb599", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:44Z", "first": "2020-09-25 10:28:00", "last": "2021-02-09 11:49:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-09-25 10:28:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4c0ffc882e01275a99bef5dca7cca811316d5ba6a81152fae6806f54a22aea8a"}
725 +{"author": "Simon-Pierre Boucher", "cache_key": "446e69db5db61aec5989fce829d98f4b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:45Z", "first": "2021-02-09 11:49:00", "last": "2021-06-23 09:16:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-02-09 11:49:00", "timeframe": "1min"}, "rows": 50000, "sha256": "bc7c52b912725dca77268ce2e34803861b636761309d019e6a4a4d4493f3a9df"}
726 +{"author": "Simon-Pierre Boucher", "cache_key": "93266ae9fac52936c45d9f399a9a1f09", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:47Z", "first": "2021-06-23 09:16:00", "last": "2021-10-14 10:24:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-06-23 09:16:00", "timeframe": "1min"}, "rows": 50000, "sha256": "39d656acb432544e2560e1dde149afcec165e50d9068a9ef0854ef674f3c7b61"}
727 +{"author": "Simon-Pierre Boucher", "cache_key": "0f33294f015e0f448a6622d6f2cf85eb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:48Z", "first": "2021-10-14 10:24:00", "last": "2021-12-31 19:59:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-10-14 10:24:00", "timeframe": "1min"}, "rows": 41479, "sha256": "8bd81d3ffc00c7d6eb118ae9915a8fbaaa104e44e66872ef8df7f7fbd485ad21"}
728 +{"author": "Simon-Pierre Boucher", "cache_key": "fc63af1d22f69c92399abe65feea768f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/NVDA", "fetched_utc": "2026-08-12T07:26:48Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "8cd87db1253b2a9034137e1e1559f568d1c8758b568c0e9ce10b16e23258b287"}
729 +{"author": "Simon-Pierre Boucher", "cache_key": "c4b1540fcb9d3a296f2bf7bf0027c768", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/SLF", "fetched_utc": "2026-08-12T07:26:50Z", "first": "2016-01-04 09:30:00", "last": "2018-07-09 12:20:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "5min"}, "rows": 50000, "sha256": "d1a5433a0a3ce938485be444f90435d22f00405a478ee55698e2de73781c2004"}
730 +{"author": "Simon-Pierre Boucher", "cache_key": "c065c6ed57c2716390f01a68efb9527d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/SLF", "fetched_utc": "2026-08-12T07:26:51Z", "first": "2018-07-09 12:20:00", "last": "2021-01-13 10:20:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-07-09 12:20:00", "timeframe": "5min"}, "rows": 50000, "sha256": "6365fa80ffbab91dfb253ef373d7f519b8daf38432b6dd5cf32f39b46d2c73a2"}
731 +{"author": "Simon-Pierre Boucher", "cache_key": "6e06a53cdece2bb237b4953e78ded944", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/SLF", "fetched_utc": "2026-08-12T07:26:52Z", "first": "2021-01-13 10:20:00", "last": "2021-12-31 16:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-01-13 10:20:00", "timeframe": "5min"}, "rows": 19390, "sha256": "8ab5eda0f04d5bf2ab04596fe8c4f6605d60dfe2b60b03358ce0a2e7933c2b94"}
732 +{"author": "Simon-Pierre Boucher", "cache_key": "fb292e3df113f94b47db6cf064215189", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/SLF", "fetched_utc": "2026-08-12T07:26:52Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "79fcf6456fc97499f1276f2625d3e02bd8eba014336028a89d4f6100af66cd3d"}
733 +{"author": "Simon-Pierre Boucher", "cache_key": "28df070da5546c793b4e7487005948bf", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/XOM", "fetched_utc": "2026-08-12T07:26:54Z", "first": "2016-01-04 04:00:00", "last": "2017-12-28 09:50:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "5min"}, "rows": 50000, "sha256": "cb525d8e9fbc3a39e48b98170d07128170b0021af3ee4496431035b9bf9bf23f"}
734 +{"author": "Simon-Pierre Boucher", "cache_key": "d6bfe5a0266ac93baa40bf4fcc8ced7c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/XOM", "fetched_utc": "2026-08-12T07:26:55Z", "first": "2017-12-28 09:50:00", "last": "2019-11-29 11:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-12-28 09:50:00", "timeframe": "5min"}, "rows": 50000, "sha256": "5bb15dfaa95db9a1595a8a184ce4b2089578b52d3fff7b9b253912b663acd842"}
735 +{"author": "Simon-Pierre Boucher", "cache_key": "f8abbe13246104c6a49654a906dfa863", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/XOM", "fetched_utc": "2026-08-12T07:26:57Z", "first": "2019-11-29 11:00:00", "last": "2021-03-23 19:45:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-11-29 11:00:00", "timeframe": "5min"}, "rows": 50000, "sha256": "f20805b986bef5d5ec47f27d4ea51a864a23adb6d45a920b7c40079a15cf5061"}
736 +{"author": "Simon-Pierre Boucher", "cache_key": "e2454f993749713d591aa1903572906e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/XOM", "fetched_utc": "2026-08-12T07:26:57Z", "first": "2021-03-23 19:45:00", "last": "2021-12-31 19:55:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-23 19:45:00", "timeframe": "5min"}, "rows": 28577, "sha256": "163618c0b39089b03b412fad6797496d4887dcf045b1225068dceadcc9237472"}
737 +{"author": "Simon-Pierre Boucher", "cache_key": "fecd327cfa4553e1de8538f9492032bd", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/XOM", "fetched_utc": "2026-08-12T07:26:58Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "eac6a00ff29d0a5d50d553f2323695d360bd6454761500c1acc142f901206220"}
738 +{"author": "Simon-Pierre Boucher", "cache_key": "f3d8d3de6d38bd133448fd2c1669709f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ATRO", "fetched_utc": "2026-08-12T07:26:59Z", "first": "2016-01-04 09:30:00", "last": "2017-03-06 12:17:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "1c638d1e36df867429316ade08bfd7d9398830455eacb52b4b8f83adfad9da1f"}
739 +{"author": "Simon-Pierre Boucher", "cache_key": "ab305e2912971b5c2a122b0875709396", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ATRO", "fetched_utc": "2026-08-12T07:27:01Z", "first": "2017-03-06 12:17:00", "last": "2018-04-20 19:54:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-03-06 12:17:00", "timeframe": "1min"}, "rows": 50000, "sha256": "73dcd0eae68eb43e422f3d0b99f9d39d01f25423d65ff6de8a22d6d07643e9ea"}
740 +{"author": "Simon-Pierre Boucher", "cache_key": "47c0c7a0bf7065248693c03816720505", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ATRO", "fetched_utc": "2026-08-12T07:27:03Z", "first": "2018-04-20 19:54:00", "last": "2019-07-25 15:33:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-04-20 19:54:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a02159dc5ebfd4e4c65e3ea4d7d14d2f144bfe90545b58fd0685ecff850feaf3"}
741 +{"author": "Simon-Pierre Boucher", "cache_key": "4890dd60a64cbefe34e4fa8cf3223460", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ATRO", "fetched_utc": "2026-08-12T07:27:04Z", "first": "2019-07-25 15:33:00", "last": "2020-05-22 15:45:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-07-25 15:33:00", "timeframe": "1min"}, "rows": 50000, "sha256": "bcf7426eb423c6717816baa79dc82380f72119675aa40a8cd08d4dffdc71d21b"}
742 +{"author": "Simon-Pierre Boucher", "cache_key": "54a7ce69d3566db36845964bd41ad972", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ATRO", "fetched_utc": "2026-08-12T07:27:06Z", "first": "2020-05-22 15:45:00", "last": "2021-03-24 10:11:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-05-22 15:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "109b7ca3b691a26d09efa5ee65bd6cdb0c8a88e63f4d58ee71591a2024d68def"}
743 +{"author": "Simon-Pierre Boucher", "cache_key": "077b9b16dca3fd5919da0181e0905530", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/ATRO", "fetched_utc": "2026-08-12T07:27:07Z", "first": "2021-03-24 10:11:00", "last": "2021-12-31 16:02:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-24 10:11:00", "timeframe": "1min"}, "rows": 32068, "sha256": "d1edc1e1560bdea17bd919b806336d99c49642271bb6629f7420a9f5b6bb8ca4"}
744 +{"author": "Simon-Pierre Boucher", "cache_key": "699597cb9f7579ec48e97f27c3e92d93", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AXDX", "fetched_utc": "2026-08-12T07:27:09Z", "first": "2016-01-04 09:15:00", "last": "2016-10-19 13:02:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "d787767ba16c753b53eda0944f5b7fdcba78ecc3349a3dd2e18bcfd42962e67e"}
745 +{"author": "Simon-Pierre Boucher", "cache_key": "243e1d6f3cfa4a7a02f8803a0b08103c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AXDX", "fetched_utc": "2026-08-12T07:27:10Z", "first": "2016-10-19 13:02:00", "last": "2017-08-21 09:55:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-10-19 13:02:00", "timeframe": "1min"}, "rows": 50000, "sha256": "3a077e91dca04108221f9f6088db6d9a9dbc5eac4336514be2bc18c1aedc7fd5"}
746 +{"author": "Simon-Pierre Boucher", "cache_key": "4b96f03d987e1f9e56b624f9e211c76c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AXDX", "fetched_utc": "2026-08-12T07:27:12Z", "first": "2017-08-21 09:55:00", "last": "2018-06-28 12:38:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-08-21 09:55:00", "timeframe": "1min"}, "rows": 50000, "sha256": "5381ad8e4544ce2a61b5a71acc8fd4d1345c045961e663c03b8521da21a61ca4"}
747 +{"author": "Simon-Pierre Boucher", "cache_key": "ae6b1da67b44b4a7233d2fa9ad7483c4", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AXDX", "fetched_utc": "2026-08-12T07:27:14Z", "first": "2018-06-28 12:38:00", "last": "2019-05-21 15:50:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-06-28 12:38:00", "timeframe": "1min"}, "rows": 50000, "sha256": "af380779670d6fd223713a1c47214a4d8a8de462168b03a2808f7a0f3a91a110"}
748 +{"author": "Simon-Pierre Boucher", "cache_key": "8330ed39a9b37845331d08f5d6926c01", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AXDX", "fetched_utc": "2026-08-12T07:27:15Z", "first": "2019-05-21 15:50:00", "last": "2020-05-11 14:25:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-05-21 15:50:00", "timeframe": "1min"}, "rows": 50000, "sha256": "62f00a175d8ab84642020745d42394f124fd6189afa52ac4533849d9e5ee4cf8"}
749 +{"author": "Simon-Pierre Boucher", "cache_key": "39e81c3f4a011a3a1cc70b67ffc0aedb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AXDX", "fetched_utc": "2026-08-12T07:27:16Z", "first": "2020-05-11 14:25:00", "last": "2021-03-18 11:34:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-05-11 14:25:00", "timeframe": "1min"}, "rows": 50000, "sha256": "078829145f03ad1b507cf786e1bcf17455b94c64abe4e4e5663399f66371a818"}
750 +{"author": "Simon-Pierre Boucher", "cache_key": "5718ae34ac79ca2db6051ed974351a8a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AXDX", "fetched_utc": "2026-08-12T07:27:18Z", "first": "2021-03-18 11:34:00", "last": "2021-12-31 16:02:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-18 11:34:00", "timeframe": "1min"}, "rows": 36554, "sha256": "811429047f817c86dc19822b146eda0ffeb137fda2ce4b80d44ef05d4a04a246"}
751 +{"author": "Simon-Pierre Boucher", "cache_key": "52ccebd2ff05be81aaecc4b7fd668a0c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:27:20Z", "first": "2016-01-04 09:30:00", "last": "2016-08-23 10:40:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "f8797df23f85301cbfdee4dc2ec4c6f571eb88798871b3aacc27b043ae25af4d"}
752 +{"author": "Simon-Pierre Boucher", "cache_key": "551a38152e26c17adaed23ba6c16d114", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:27:22Z", "first": "2016-08-23 10:40:00", "last": "2017-04-27 15:46:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-08-23 10:40:00", "timeframe": "1min"}, "rows": 50000, "sha256": "88c8fa4d608a19f8795b3183b4c4467a1b0d5a2c49801e8e653c74e84d00dc64"}
753 +{"author": "Simon-Pierre Boucher", "cache_key": "4a4743df917dcff0ffd3e4c9ef954555", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:27:23Z", "first": "2017-04-27 15:46:00", "last": "2018-01-10 13:12:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-04-27 15:46:00", "timeframe": "1min"}, "rows": 50000, "sha256": "3c36bff3ed6665c29fb2a67dbf4f5155e0d3c4df3bf70f1885bfdfeb217fab79"}
754 +{"author": "Simon-Pierre Boucher", "cache_key": "302dfcb0fe0553088cc5e5ba47317311", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:27:25Z", "first": "2018-01-10 13:12:00", "last": "2018-09-25 11:49:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-01-10 13:12:00", "timeframe": "1min"}, "rows": 50000, "sha256": "734bd6bb8119ee4ea4cc5a313fc696f2ad2b58316ee3d7b60454a7132d370aac"}
755 +{"author": "Simon-Pierre Boucher", "cache_key": "50ec13238b835210b884bd3965c77afb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:27:27Z", "first": "2018-09-25 11:49:00", "last": "2019-05-10 09:44:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-09-25 11:49:00", "timeframe": "1min"}, "rows": 50000, "sha256": "442ff354b4a37f5dac5d282c99568d07261468a4114c56db3903aa2cf7c248b4"}
756 +{"author": "Simon-Pierre Boucher", "cache_key": "d4780f7a4b1a9fafda78f28a8e5e6e16", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:27:28Z", "first": "2019-05-10 09:44:00", "last": "2019-12-11 15:33:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-05-10 09:44:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f51d86e2054e9f0327c0bbcc23bd520be7799b56a403440c39df7d377e74121f"}
757 +{"author": "Simon-Pierre Boucher", "cache_key": "0026cdc70891ec764ffae87fec45b822", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:27:30Z", "first": "2019-12-11 15:33:00", "last": "2020-07-21 09:37:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-12-11 15:33:00", "timeframe": "1min"}, "rows": 50000, "sha256": "cf9e0a020b0dd27815abdf6ffed1f3cc80e0f8fe36bfa6ec2bd442463bee59a0"}
758 +{"author": "Simon-Pierre Boucher", "cache_key": "6ee82de9bf11fb259cc7c55ca70b1fe8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:27:31Z", "first": "2020-07-21 09:37:00", "last": "2021-03-12 13:44:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-07-21 09:37:00", "timeframe": "1min"}, "rows": 50000, "sha256": "dac2a2033848ea968b5a3c88769027499fbd3c075ade4fc9517560ccddfe641d"}
759 +{"author": "Simon-Pierre Boucher", "cache_key": "dcffbb71b9ce0ee712f383239b44133d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:27:33Z", "first": "2021-03-12 13:44:00", "last": "2021-11-10 13:52:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-12 13:44:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c3784489158ee0fcc0cdb86e1131545129836dc19b98040728abebcdb7a2a777"}
760 +{"author": "Simon-Pierre Boucher", "cache_key": "3fefdb2e0690e3ea6343ee4529e4b1a7", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/BKE", "fetched_utc": "2026-08-12T07:27:33Z", "first": "2021-11-10 13:52:00", "last": "2021-12-31 16:59:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-11-10 13:52:00", "timeframe": "1min"}, "rows": 11459, "sha256": "ce9a9d186e76612601443ad6ed7d7516a0b7586a64c37f8a5777418e54e2b7e8"}
761 +{"author": "Simon-Pierre Boucher", "cache_key": "0fb1e224423322edbc2e9bdcbe10fc43", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/CECO", "fetched_utc": "2026-08-12T07:27:35Z", "first": "2016-01-04 09:05:00", "last": "2017-01-27 11:01:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "8dfea9e058456a0cdbed5272ade518b2716a8182e207f0467f8d78abcf1fa300"}
762 +{"author": "Simon-Pierre Boucher", "cache_key": "80c078001ebad640fda956ad4a100d78", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/CECO", "fetched_utc": "2026-08-12T07:27:36Z", "first": "2017-01-27 11:01:00", "last": "2018-02-15 10:53:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-01-27 11:01:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b7d56ce862f9ab98edc28b5bcc24de7605a6269acbf4ee609f9627860d32ac8f"}
763 +{"author": "Simon-Pierre Boucher", "cache_key": "7744de05ec3b1cc2c42760135311cd34", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/CECO", "fetched_utc": "2026-08-12T07:27:38Z", "first": "2018-02-15 10:53:00", "last": "2019-09-17 09:51:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-02-15 10:53:00", "timeframe": "1min"}, "rows": 50000, "sha256": "80ff1bb1f59dd5f52e62ae30cb18488051046351eb8d690a735c3df49fe75a51"}
764 +{"author": "Simon-Pierre Boucher", "cache_key": "966a16392042ad021f86201f29e59c06", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/CECO", "fetched_utc": "2026-08-12T07:27:39Z", "first": "2019-09-17 09:51:00", "last": "2021-08-20 12:48:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-09-17 09:51:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d3a9b96eb64fe2e77cc86778310fcdbf277dfec81e2c6219e0fb269c05a8f1b8"}
765 +{"author": "Simon-Pierre Boucher", "cache_key": "233fceb750253966f6f452c70d3c48d5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/CECO", "fetched_utc": "2026-08-12T07:27:40Z", "first": "2021-08-20 12:48:00", "last": "2021-12-31 16:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-08-20 12:48:00", "timeframe": "1min"}, "rows": 6937, "sha256": "28ac215f18551c272cec936c77ec5507bc9d02d19c4e178186acddd78d978bb0"}
766 +{"author": "Simon-Pierre Boucher", "cache_key": "42c12efcc20fce57d53c88b2a7a7a72e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:27:44Z", "first": "2016-01-03 18:00:00", "last": "2016-02-23 15:55:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "f3ec8940ee628c5796b2207ab524abc4f52d5a6010bf8708791071c67a6206be"}
767 +{"author": "Simon-Pierre Boucher", "cache_key": "e39ea9d6c46b145a7bc76778683f52df", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:27:48Z", "first": "2016-02-23 15:55:00", "last": "2016-04-15 08:59:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-02-23 15:55:00", "timeframe": "1min"}, "rows": 50000, "sha256": "7c7b12e2ee7e4e06d44ac74e3d9184daeb1432be55145b1f013877e3e9229db8"}
768 +{"author": "Simon-Pierre Boucher", "cache_key": "00a848b0ce3d0cca4baff73a3edf159d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:27:52Z", "first": "2016-04-15 08:59:00", "last": "2016-06-07 06:37:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-04-15 08:59:00", "timeframe": "1min"}, "rows": 50000, "sha256": "6a0e22754a500c1bcbe8428d37de07e7bb8ca54d795f39c27be3761956b30b84"}
769 +{"author": "Simon-Pierre Boucher", "cache_key": "cdaf9be937101314db4626687a1f4a55", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:27:56Z", "first": "2016-06-07 06:37:00", "last": "2016-07-28 05:24:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-06-07 06:37:00", "timeframe": "1min"}, "rows": 50000, "sha256": "07cad73afec3058f335a49f12532491b4d8cbf18c33803a6201c3943337d6f56"}
770 +{"author": "Simon-Pierre Boucher", "cache_key": "d5edcab6f198d0b68b7e0040da83843c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:00Z", "first": "2016-07-28 05:24:00", "last": "2016-09-19 10:19:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-07-28 05:24:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2912faaab7ea54952c0819f411bd6d9d8efea0eb8dc31849794688b66b56a00d"}
771 +{"author": "Simon-Pierre Boucher", "cache_key": "673f83356f7a3a9ecffb901a9aa96b1f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:04Z", "first": "2016-09-19 10:19:00", "last": "2016-11-09 05:11:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-09-19 10:19:00", "timeframe": "1min"}, "rows": 50000, "sha256": "99c02f9ca258e50ea8c125129de7a219b70b00834f6a06723f2bb688100d7c7d"}
772 +{"author": "Simon-Pierre Boucher", "cache_key": "e3582db941c1d318e7738848dfb06849", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:08Z", "first": "2016-11-09 05:11:00", "last": "2017-01-03 13:45:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-11-09 05:11:00", "timeframe": "1min"}, "rows": 50000, "sha256": "659a85d2268ac6eafa966f18f31396078970d20affad4aa6f1a1ca055812e0cf"}
773 +{"author": "Simon-Pierre Boucher", "cache_key": "2e2d1d9b0f3760adc1be874ac0cb9996", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:12Z", "first": "2017-01-03 13:45:00", "last": "2017-02-23 22:36:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-01-03 13:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "8fe9c4b91150eaaaed0817de450790232404d1390cbdc50144463c2d02231396"}
774 +{"author": "Simon-Pierre Boucher", "cache_key": "587ea781525f86512eeca20e6aebe22d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:16Z", "first": "2017-02-23 22:36:00", "last": "2017-04-18 22:45:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-02-23 22:36:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0dd4845112aea21198eed687bff5691c9631379afb53230187ec14d64a423865"}
775 +{"author": "Simon-Pierre Boucher", "cache_key": "26a7eed4c9bb58b06168e0edac3e1e3c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:19Z", "first": "2017-04-18 22:45:00", "last": "2017-06-09 05:18:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-04-18 22:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a21a6c64c9e2370f4a50c8d0fce15c798316b0e1f6675d71a12993447233bb61"}
776 +{"author": "Simon-Pierre Boucher", "cache_key": "19aa93d15494aa1bec547a49f79290be", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:23Z", "first": "2017-06-09 05:18:00", "last": "2017-08-01 20:23:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-06-09 05:18:00", "timeframe": "1min"}, "rows": 50000, "sha256": "3e20c7fac7bac6408a9160b7f7a5fb9a0094dd33696ce5f664a9ea48d94c7f92"}
777 +{"author": "Simon-Pierre Boucher", "cache_key": "3594fa0635d0344d113a87a578119f81", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:26Z", "first": "2017-08-01 20:23:00", "last": "2017-09-22 04:13:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-08-01 20:23:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0d1c0429ae80d9f24cfbe9071245567901b4fadd484bd06bd1217815a1e8f892"}
778 +{"author": "Simon-Pierre Boucher", "cache_key": "dd4f70316d07892754e0d400ff03f46c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:30Z", "first": "2017-09-22 04:13:00", "last": "2017-11-14 07:27:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-09-22 04:13:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2b6f4edbba5feee70edfe537d7eb13994a8a3be609a91dcfd9c43091a6624d14"}
779 +{"author": "Simon-Pierre Boucher", "cache_key": "278e80d3e60be115e4f89d0e3e1522b0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:33Z", "first": "2017-11-14 07:27:00", "last": "2018-01-08 22:03:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-11-14 07:27:00", "timeframe": "1min"}, "rows": 50000, "sha256": "fe19e3b46f7d43aff4f14e24cc9cacb936707b5a6d20233e81621128e1a60a31"}
780 +{"author": "Simon-Pierre Boucher", "cache_key": "04c09012bfada4c4ffb6aee9b3885010", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:36Z", "first": "2018-01-08 22:03:00", "last": "2018-02-28 22:38:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-01-08 22:03:00", "timeframe": "1min"}, "rows": 50000, "sha256": "919715d73dccc41e83326a17bc969f5a4669728efdf89855a9927684eda282d9"}
781 +{"author": "Simon-Pierre Boucher", "cache_key": "9bedb81ae776e236246a9cdda7a7eedb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:39Z", "first": "2018-02-28 22:38:00", "last": "2018-04-23 14:24:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-02-28 22:38:00", "timeframe": "1min"}, "rows": 50000, "sha256": "fde68798f4bd3599d978b56c961bd7465eea572d2a8a5c0c5f1275afee95f808"}
782 +{"author": "Simon-Pierre Boucher", "cache_key": "12a8a83217749a77a44d9a2bc6f62afb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:42Z", "first": "2018-04-23 14:24:00", "last": "2018-06-13 13:59:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-04-23 14:24:00", "timeframe": "1min"}, "rows": 50000, "sha256": "8fa3cdfd8a9464765694789c20963bb5931f9b1ec6415dc80acfa63bd817ea45"}
783 +{"author": "Simon-Pierre Boucher", "cache_key": "3966111d7e88675e31bed3fe532296f4", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:45Z", "first": "2018-06-13 13:59:00", "last": "2018-08-03 15:17:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-06-13 13:59:00", "timeframe": "1min"}, "rows": 50000, "sha256": "3cfeb2cd93f0f4c1cad119852fc589abbb35aa68a799465106610b68fd6d9fb3"}
784 +{"author": "Simon-Pierre Boucher", "cache_key": "43270a94c2918aa927d2bec95032b564", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:48Z", "first": "2018-08-03 15:17:00", "last": "2018-09-25 14:57:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-08-03 15:17:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b6b29c0400d8ba3481e065d7a30c73711e89ca464c1a58210ae6e58ce035fec5"}
785 +{"author": "Simon-Pierre Boucher", "cache_key": "9581ae2fecfe653ee58a2181b3283e65", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:51Z", "first": "2018-09-25 14:57:00", "last": "2018-11-15 07:20:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-09-25 14:57:00", "timeframe": "1min"}, "rows": 50000, "sha256": "bc659e1768f614d258d196bced542d05cc3dff8f9afca44eb9bec927afbec67b"}
786 +{"author": "Simon-Pierre Boucher", "cache_key": "7234dc87c95f3edd4c0e5a571edf4a29", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:54Z", "first": "2018-11-15 07:20:00", "last": "2019-01-09 18:19:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-11-15 07:20:00", "timeframe": "1min"}, "rows": 50000, "sha256": "cde5951ddc177d65a4a6d2e08c176858eb0b02e512e5aa70d1a607ad4ce8ef3d"}
787 +{"author": "Simon-Pierre Boucher", "cache_key": "0b9da6c2bcb658d50cb970387d206c8c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:56Z", "first": "2019-01-09 18:19:00", "last": "2019-03-03 21:01:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-01-09 18:19:00", "timeframe": "1min"}, "rows": 50000, "sha256": "655f480462dfa0ddd2a3f17b7343bda4e8d02368b29986275433f2f285bc1f8c"}
788 +{"author": "Simon-Pierre Boucher", "cache_key": "162187415fff257baeadb465979cb6c0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:28:59Z", "first": "2019-03-03 21:01:00", "last": "2019-04-24 13:18:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-03-03 21:01:00", "timeframe": "1min"}, "rows": 50000, "sha256": "68e4474873bb870867ae365d3c701f57aae37ba76b5acbaf18e19df3cc122e1e"}
789 +{"author": "Simon-Pierre Boucher", "cache_key": "f20b9ff062baebdd8e021e9c8cf24ed9", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:02Z", "first": "2019-04-24 13:18:00", "last": "2019-06-14 09:32:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-04-24 13:18:00", "timeframe": "1min"}, "rows": 50000, "sha256": "46df47bfb1d97d88bb0887b5ea531f8b9615f0704ea66aa3420b09bb0102e843"}
790 +{"author": "Simon-Pierre Boucher", "cache_key": "78321d5fc1f2f671bb015ffd18ad952e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:04Z", "first": "2019-06-14 09:32:00", "last": "2019-08-06 10:05:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-06-14 09:32:00", "timeframe": "1min"}, "rows": 50000, "sha256": "55d3e11d2ca1aef2d0779d6ee7644c5f3d667b875366a4295dbbd12467c149bf"}
791 +{"author": "Simon-Pierre Boucher", "cache_key": "b393087fa64153774a0abeaccb63505c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:07Z", "first": "2019-08-06 10:05:00", "last": "2019-09-26 05:57:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-08-06 10:05:00", "timeframe": "1min"}, "rows": 50000, "sha256": "def3d1f0b9ebbfdd1df87bf1dd27a056d9cc09353191ccf380ac8205875903d0"}
792 +{"author": "Simon-Pierre Boucher", "cache_key": "2d4738c1853ccf0b6091d8848a0b5027", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:09Z", "first": "2019-09-26 05:57:00", "last": "2019-11-17 22:11:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-09-26 05:57:00", "timeframe": "1min"}, "rows": 50000, "sha256": "80732260e86ef58d1aa48bd8c1a4217d09c31badc1b50d4a37d47d900fc727b3"}
793 +{"author": "Simon-Pierre Boucher", "cache_key": "4cccf72e59813b706a5f982f7129d663", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:11Z", "first": "2019-11-17 22:11:00", "last": "2020-01-10 02:30:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-11-17 22:11:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e94783e6f3c7062c761d7109bcb9c80800f45f72f590c3a3a703f56fb940a8f9"}
794 +{"author": "Simon-Pierre Boucher", "cache_key": "851b3a3860400197563ac289c605ed28", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:14Z", "first": "2020-01-10 02:30:00", "last": "2020-03-03 02:04:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-01-10 02:30:00", "timeframe": "1min"}, "rows": 50000, "sha256": "bdd7892e6513a106340c841fc1924f1241c1f250766bbc1c6156c80152112caf"}
795 +{"author": "Simon-Pierre Boucher", "cache_key": "21dfcd9b087cbdeaf14a303bf35aff2c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:16Z", "first": "2020-03-03 02:04:00", "last": "2020-04-24 15:23:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-03-03 02:04:00", "timeframe": "1min"}, "rows": 50000, "sha256": "86f942209cde28104325187eca0867b56e47956659faa1c04dbee04bf815c2aa"}
796 +{"author": "Simon-Pierre Boucher", "cache_key": "c4b14c2170f29522407c2da7493eca34", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:18Z", "first": "2020-04-24 15:23:00", "last": "2020-06-16 10:45:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-04-24 15:23:00", "timeframe": "1min"}, "rows": 50000, "sha256": "eb61ed7a687771fcc6cf5d1e06c5667d5e8647cab535e094a1dd27fc8266f9c2"}
797 +{"author": "Simon-Pierre Boucher", "cache_key": "c756b47b25999989d94dbf62b406447d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:20Z", "first": "2020-06-16 10:45:00", "last": "2020-08-06 06:06:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-06-16 10:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "42c10c94e534d44fa57f2bcb0d0bce9b41f872c8a33c36282375494700a05621"}
798 +{"author": "Simon-Pierre Boucher", "cache_key": "34025cd91e6ba13619000edb263a4060", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:22Z", "first": "2020-08-06 06:06:00", "last": "2020-09-28 01:28:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-08-06 06:06:00", "timeframe": "1min"}, "rows": 50000, "sha256": "8026ba14933d192aa58de688def2fd50545129f08879f0f58290e316b04d4a6e"}
799 +{"author": "Simon-Pierre Boucher", "cache_key": "4c8dcece2f96aec088dd0d8fe7adfde1", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:24Z", "first": "2020-09-28 01:28:00", "last": "2020-11-17 15:50:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-09-28 01:28:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f21a68cd92c557bfdbaf6f22cfafc830ee6e30deea39688d178963325c4607b5"}
800 +{"author": "Simon-Pierre Boucher", "cache_key": "1a1a3a70d3eac7871adeef4bbe9037a5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:26Z", "first": "2020-11-17 15:50:00", "last": "2021-01-11 19:37:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-11-17 15:50:00", "timeframe": "1min"}, "rows": 50000, "sha256": "8302497abd397802f856a178cac6b441fa05c34a88439374a419e2a2fa2f97c6"}
801 +{"author": "Simon-Pierre Boucher", "cache_key": "98ef8c05e12702d4bb82ad32ca1b510c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:28Z", "first": "2021-01-11 19:37:00", "last": "2021-03-03 18:45:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-01-11 19:37:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ac61e2d525427dd18914274dfbdd3b3ac8098fdf86efc0eb3ccbc844f9b64a16"}
802 +{"author": "Simon-Pierre Boucher", "cache_key": "c94b9097a42e45d823d708471b34def9", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:29Z", "first": "2021-03-03 18:45:00", "last": "2021-04-25 18:25:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-03 18:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "81625cb9e8c169091c175e644e70639c4707217db58a0dea0fd3bba9f08a6733"}
803 +{"author": "Simon-Pierre Boucher", "cache_key": "4421c1e95e0bb8427076789a70c04de8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:31Z", "first": "2021-04-25 18:25:00", "last": "2021-06-15 12:55:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-04-25 18:25:00", "timeframe": "1min"}, "rows": 50000, "sha256": "64b1db62bfeec0229ce20310d99fc6b7bbaa3baac9ff06c6d4670af7f2b54d6d"}
804 +{"author": "Simon-Pierre Boucher", "cache_key": "a1eec56742bc4da9a4f893c2b0465952", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:33Z", "first": "2021-06-15 12:55:00", "last": "2021-08-05 01:40:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-06-15 12:55:00", "timeframe": "1min"}, "rows": 50000, "sha256": "028d18b58707723c6761e787e20c5052db62756083a7a1c9660621f0362e36c2"}
805 +{"author": "Simon-Pierre Boucher", "cache_key": "a77d2b91747b71a8542c79ebef59c7c2", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:34Z", "first": "2021-08-05 01:40:00", "last": "2021-09-24 11:20:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-08-05 01:40:00", "timeframe": "1min"}, "rows": 50000, "sha256": "bc1ce8efadaf6bb43ba12ba491f27b7da027f8a610229300cf6b85cacc44c1b9"}
806 +{"author": "Simon-Pierre Boucher", "cache_key": "d29cf85ff9d0f7fec4d77f98fa800786", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:36Z", "first": "2021-09-24 11:20:00", "last": "2021-11-15 16:49:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-09-24 11:20:00", "timeframe": "1min"}, "rows": 50000, "sha256": "26b88f225f5190b2f4634b33087939236732f9aa1410dafbda35afef561a34ae"}
807 +{"author": "Simon-Pierre Boucher", "cache_key": "d31667fcc6bef0bcb94cc7fe8bd27898", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:29:37Z", "first": "2021-11-15 16:49:00", "last": "2021-12-31 16:59:00", "params": {"adjustment": "contin_adj_ratio", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-11-15 16:49:00", "timeframe": "1min"}, "rows": 45070, "sha256": "94c52ee62b8e0f6fc6252d5d0f1713e9c2aac0f8498743cac304ad23bd1fc0df"}
808 +{"author": "Simon-Pierre Boucher", "cache_key": "cdabe6cf12007665ac54d8a562fbad8c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:29:40Z", "first": "2016-01-04 04:00:00", "last": "2016-06-23 13:39:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "6fd234de56e43b280b58baa1d2c34b28bf6d2ee42d4e4324d8ecf40b70bf9d55"}
809 +{"author": "Simon-Pierre Boucher", "cache_key": "8b13b58f82ebff245cba43b468082a1e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:29:42Z", "first": "2016-06-23 13:39:00", "last": "2016-12-19 11:12:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-06-23 13:39:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ce6500fea3a4abf95d9bd7218c95ee1e1ba7d5c99b430d44f7cf156e7ef8d78a"}
810 +{"author": "Simon-Pierre Boucher", "cache_key": "de95e869810b058f2d30c9c92f65a07e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:29:44Z", "first": "2016-12-19 11:12:00", "last": "2017-06-20 11:45:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-12-19 11:12:00", "timeframe": "1min"}, "rows": 50000, "sha256": "70b717f50b65bd837bce95a51936ee9294631d9a906c50d44cfc928caa6f4d88"}
811 +{"author": "Simon-Pierre Boucher", "cache_key": "7166ffafbb41d2be5b533c3abc4caa87", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:29:46Z", "first": "2017-06-20 11:45:00", "last": "2017-12-15 16:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-06-20 11:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4502919cd3f821a95e771ad60cfd1e92f25b0ef1704cce1d7315c388dac31609"}
812 +{"author": "Simon-Pierre Boucher", "cache_key": "92a0a2099cf9230728f4641f2010c5a7", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:29:48Z", "first": "2017-12-15 16:00:00", "last": "2018-06-11 15:35:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-12-15 16:00:00", "timeframe": "1min"}, "rows": 50000, "sha256": "260c4efc02ae3e51a87b794a619ca0d9b051a29ec5498c5084d8fa0832e94fae"}
813 +{"author": "Simon-Pierre Boucher", "cache_key": "8fbfe9639050b27525d3a3bfa0f8f215", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:29:50Z", "first": "2018-06-11 15:35:00", "last": "2018-12-04 10:54:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-06-11 15:35:00", "timeframe": "1min"}, "rows": 50000, "sha256": "55e1342fab449a68bebb0b8eb690ea28a2a4c35cf2b1252cff94de21520fa635"}
814 +{"author": "Simon-Pierre Boucher", "cache_key": "647702e3ca62dca44387492489f4c343", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:29:52Z", "first": "2018-12-04 10:54:00", "last": "2019-06-04 09:32:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-12-04 10:54:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2b52553493d272ee80d8f0cb54c3b7de96d1f98a50bdd8da7eabede4c4643dcd"}
815 +{"author": "Simon-Pierre Boucher", "cache_key": "0a255574c5b9ab165cb6789ff7865dfa", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:29:53Z", "first": "2019-06-04 09:32:00", "last": "2019-12-03 14:10:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-06-04 09:32:00", "timeframe": "1min"}, "rows": 50000, "sha256": "128e1edefc67ef173cba1bec37dd758e0d7cd44072b4457b7aa1aabc1349f5b5"}
816 +{"author": "Simon-Pierre Boucher", "cache_key": "2bf621a87b029da511dcb839b75efa73", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:29:55Z", "first": "2019-12-03 14:10:00", "last": "2020-05-27 15:07:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-12-03 14:10:00", "timeframe": "1min"}, "rows": 50000, "sha256": "249ac05b050270f4de877574ad803d6a69b402598c96ffa36ada60140763042e"}
817 +{"author": "Simon-Pierre Boucher", "cache_key": "3aab494a9253c75b16d1c6d07560e9e6", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:29:57Z", "first": "2020-05-27 15:07:00", "last": "2020-11-19 09:39:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-05-27 15:07:00", "timeframe": "1min"}, "rows": 50000, "sha256": "287e7d55c9d359947b7ef6ca7a8992a9a7d7262e3fed394f291d2397f4bbe716"}
818 +{"author": "Simon-Pierre Boucher", "cache_key": "5326c2462cee773b2815236734614ad0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:29:58Z", "first": "2020-11-19 09:39:00", "last": "2021-05-24 15:11:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-11-19 09:39:00", "timeframe": "1min"}, "rows": 50000, "sha256": "90829a6d5b41fd5d2b9aff26856d40b7e92db65493a6ec4f091b74b6ba795def"}
819 +{"author": "Simon-Pierre Boucher", "cache_key": "c32cc19b755e20c7c145d71dfcb927a0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:30:00Z", "first": "2021-05-24 15:11:00", "last": "2021-11-30 12:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-05-24 15:11:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c14bb26bcc33a669af4cb1b0788266f1f8cfe5419548086da3a0e6a7a0f3c76f"}
820 +{"author": "Simon-Pierre Boucher", "cache_key": "158eaefdbeffd6077ddf6c3dea03980f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:30:00Z", "first": "2021-11-30 12:00:00", "last": "2021-12-31 16:47:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-11-30 12:00:00", "timeframe": "1min"}, "rows": 8475, "sha256": "6decdf29debd4c9abaaa23e11cbb76a0cc7895a7b1425809b597b72dc3b97992"}
821 +{"author": "Simon-Pierre Boucher", "cache_key": "e68efc042ee37946bee1611569407e98", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/HTD", "fetched_utc": "2026-08-12T07:30:02Z", "first": "2016-01-04 09:30:00", "last": "2017-08-08 10:55:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "1977d4a2824aa92ee0074aa123a4a2967058291c2baf8b39467ba71a147d9c6e"}
822 +{"author": "Simon-Pierre Boucher", "cache_key": "34f4a8e383c9d8e31ee461c95835a953", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/HTD", "fetched_utc": "2026-08-12T07:30:04Z", "first": "2017-08-08 10:55:00", "last": "2019-06-17 13:29:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-08-08 10:55:00", "timeframe": "1min"}, "rows": 50000, "sha256": "651e6fd25dc1e3bb3ea90ff71cc284ff6a5fdb346ccfa0c57e2eed625cc7bf86"}
823 +{"author": "Simon-Pierre Boucher", "cache_key": "273839bd66ff85b8a9833153c9af0a49", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/HTD", "fetched_utc": "2026-08-12T07:30:05Z", "first": "2019-06-17 13:29:00", "last": "2021-03-29 13:58:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-06-17 13:29:00", "timeframe": "1min"}, "rows": 50000, "sha256": "8defcc92b67a832af20703775cdb8b39486b12556ab9aff3ef1c72100e44d7ea"}
824 +{"author": "Simon-Pierre Boucher", "cache_key": "514398c943b38611c94a02d199d57eab", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/HTD", "fetched_utc": "2026-08-12T07:30:06Z", "first": "2021-03-29 13:58:00", "last": "2021-12-31 16:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-29 13:58:00", "timeframe": "1min"}, "rows": 16942, "sha256": "dd12ceb43424b53c0d5e62148b592e07d7758e8a3021751014675ad371097f2b"}
825 +{"author": "Simon-Pierre Boucher", "cache_key": "62a279d7bd66bb976ade46a385a643d8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:09Z", "first": "2016-01-04 04:00:00", "last": "2016-04-28 12:44:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "2136a0cb401547a3463a4016f446a85c4cac66030ad80edde2ab1f8aa0a1d4b6"}
826 +{"author": "Simon-Pierre Boucher", "cache_key": "e83d92b0823c2aea114f03807d045b24", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:11Z", "first": "2016-04-28 12:44:00", "last": "2016-09-06 15:37:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-04-28 12:44:00", "timeframe": "1min"}, "rows": 50000, "sha256": "cab9a02e67e59c222d68473bf71e8e2c2d462644d86a3828a55e176833107b44"}
827 +{"author": "Simon-Pierre Boucher", "cache_key": "2ea30c74cbfdb06ec8b4e123b6799329", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:14Z", "first": "2016-09-06 15:37:00", "last": "2017-01-18 10:46:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-09-06 15:37:00", "timeframe": "1min"}, "rows": 50000, "sha256": "6dffe10d6f2c43c325efb97c8a6b87db822739f29bcdbd64e1d09d280c22da03"}
828 +{"author": "Simon-Pierre Boucher", "cache_key": "90c23c846adb8a8c8b5e334f48cf414b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:16Z", "first": "2017-01-18 10:46:00", "last": "2017-06-01 15:20:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-01-18 10:46:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c9e482ca4a81478581f391239f2764a4438b83defcf05715cb792822f9ebc8d1"}
829 +{"author": "Simon-Pierre Boucher", "cache_key": "37442fe81598b0659eb1209c096b21f0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:18Z", "first": "2017-06-01 15:20:00", "last": "2017-10-13 13:14:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-06-01 15:20:00", "timeframe": "1min"}, "rows": 50000, "sha256": "99c5b1943d8b94948544dbc8afd929cf07f3f754afe3679fe32be8547de984d7"}
830 +{"author": "Simon-Pierre Boucher", "cache_key": "b9b78182f07798d9758210c14176c013", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:21Z", "first": "2017-10-13 13:14:00", "last": "2018-02-16 13:57:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-10-13 13:14:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b6f2060b10f093c2b1248afb828437b66aab26404e5a275eb172c28343b3fa96"}
831 +{"author": "Simon-Pierre Boucher", "cache_key": "7895a696af1caabd555deaae8d1fab98", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:23Z", "first": "2018-02-16 13:57:00", "last": "2018-06-15 15:11:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-02-16 13:57:00", "timeframe": "1min"}, "rows": 50000, "sha256": "162c1bc74aa6b6e0c6aa52106fc49795443a22a1e979f4c2494dec06a2f97754"}
832 +{"author": "Simon-Pierre Boucher", "cache_key": "c770f91e32e937062d1981eb2b9a3461", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:25Z", "first": "2018-06-15 15:11:00", "last": "2018-10-11 12:12:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-06-15 15:11:00", "timeframe": "1min"}, "rows": 50000, "sha256": "6a0bba9cca982fc332f630bda5dfac4e65d2af0334b08b3235fe0502c540aa19"}
833 +{"author": "Simon-Pierre Boucher", "cache_key": "0184121dce6ac13b5cdc839ef1d5ee84", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:27Z", "first": "2018-10-11 12:12:00", "last": "2019-02-11 13:17:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-10-11 12:12:00", "timeframe": "1min"}, "rows": 50000, "sha256": "6068603e9c76e4f3661316584baecfd623a617ed25806fe2637b4e73e4fc51af"}
834 +{"author": "Simon-Pierre Boucher", "cache_key": "96d87a3c9e09c839549e5a8a9560283c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:29Z", "first": "2019-02-11 13:17:00", "last": "2019-06-18 10:30:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-02-11 13:17:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ad4f3d17e0cd4b692fc26622a5583dcc95f8e4786c1d74439ab9835bff70887a"}
835 +{"author": "Simon-Pierre Boucher", "cache_key": "441c0a1839688e55f9f30653b332d191", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:30Z", "first": "2019-06-18 10:30:00", "last": "2019-10-25 13:33:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-06-18 10:30:00", "timeframe": "1min"}, "rows": 50000, "sha256": "21c0a09d56a167877a7304392b1e6fd6f686fd9cd42aa58028a625dc9327f36d"}
836 +{"author": "Simon-Pierre Boucher", "cache_key": "c3a6c46796bcc84e12754d77680f1176", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:32Z", "first": "2019-10-25 13:33:00", "last": "2020-03-04 14:50:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-10-25 13:33:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b1280c29e2c4d421c02d2c0c436f488871134f294e41f1f62420c56d478ba25c"}
837 +{"author": "Simon-Pierre Boucher", "cache_key": "34558f01011158c3d41ff1cb26f9acfc", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:34Z", "first": "2020-03-04 14:50:00", "last": "2020-06-25 15:28:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-03-04 14:50:00", "timeframe": "1min"}, "rows": 50000, "sha256": "eafbda83721ec31349bcd4fdae663d7053b5f1afdec7767b1eee35e93efad738"}
838 +{"author": "Simon-Pierre Boucher", "cache_key": "3603167d17349f984a9b5a491aaef997", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:36Z", "first": "2020-06-25 15:28:00", "last": "2020-10-20 17:29:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-06-25 15:28:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f6ebc73da8ad5e9c66759b1ac3b944662df5ca4582940d9aa26ba083eb52aacd"}
839 +{"author": "Simon-Pierre Boucher", "cache_key": "bacc68050f2d31361b5a718d7d1e2f13", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:37Z", "first": "2020-10-20 17:29:00", "last": "2021-02-22 15:20:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-10-20 17:29:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0b3953fd45f662cf9b2b4395920d6fcba99ebd16005cf82feee90ce052e0ddb6"}
840 +{"author": "Simon-Pierre Boucher", "cache_key": "c9ca0ee9f5614b5a805d3a56830e07c2", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:39Z", "first": "2021-02-22 15:20:00", "last": "2021-06-30 17:38:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-02-22 15:20:00", "timeframe": "1min"}, "rows": 50000, "sha256": "10ff07107a41f7c83825f1beb3cecb5cc184f3045061f438e94003a4f4ef553a"}
841 +{"author": "Simon-Pierre Boucher", "cache_key": "4a8b1b52716e1c9cf2f293a6d83c434a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:40Z", "first": "2021-06-30 17:38:00", "last": "2021-11-05 07:15:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-06-30 17:38:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0c8fdd7153b53481d9568d582ea4653f0224356704465dc4f2d81fbe0c37d593"}
842 +{"author": "Simon-Pierre Boucher", "cache_key": "0281748fc2d0891dc169c0fb26027715", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:30:41Z", "first": "2021-11-05 07:15:00", "last": "2021-12-31 19:59:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-11-05 07:15:00", "timeframe": "1min"}, "rows": 22539, "sha256": "e52f99ea1c5f33e1b9291fd6992360dce2ebbbb3d5cb51f5197c56e5e65f8901"}
843 +{"author": "Simon-Pierre Boucher", "cache_key": "126d8757044c38bc47a30b74fd6ec284", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:30:44Z", "first": "2016-01-04 04:00:00", "last": "2016-06-06 13:20:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "6acb010bba757d867ab50cedb5c1cc0a6dce9383ef0e5a2aa12fd410eb2b1eb3"}
844 +{"author": "Simon-Pierre Boucher", "cache_key": "2bbdac4144dce4ef809e2a0c5154e12d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:30:46Z", "first": "2016-06-06 13:20:00", "last": "2016-11-11 13:54:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-06-06 13:20:00", "timeframe": "1min"}, "rows": 50000, "sha256": "7cbb3da753f9194bb1481cab19cc8a0519c04dc7d8ed8b263dfcecb04fd49913"}
845 +{"author": "Simon-Pierre Boucher", "cache_key": "cf066f8bd2dab33da7c7a12d5f101bed", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:30:49Z", "first": "2016-11-11 13:54:00", "last": "2017-04-28 11:48:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-11-11 13:54:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b9d222db32821f2e4948cf2b2553467cad3ec963eb59b988c48524eabdf5a3cd"}
846 +{"author": "Simon-Pierre Boucher", "cache_key": "d34002a4d7743f5829744f415b499df5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:30:51Z", "first": "2017-04-28 11:48:00", "last": "2017-10-06 09:10:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-04-28 11:48:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e6fb2d7915c03174e367b28fb270a21d97f78d99e9d49133351c53f29c8c1611"}
847 +{"author": "Simon-Pierre Boucher", "cache_key": "8dc4e1b6ef8103595be8280887c3b9bd", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:30:53Z", "first": "2017-10-06 09:10:00", "last": "2018-03-06 14:16:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-10-06 09:10:00", "timeframe": "1min"}, "rows": 50000, "sha256": "bf2cb06c07216a7b9051645147cebe42ee2b3dd3b1c160ac3da210c1aa10a752"}
848 +{"author": "Simon-Pierre Boucher", "cache_key": "483ba31cbe6dddeaba67f66c5178c6a7", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:30:55Z", "first": "2018-03-06 14:16:00", "last": "2018-07-23 16:44:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-03-06 14:16:00", "timeframe": "1min"}, "rows": 50000, "sha256": "578d82a3cf890a3130064bcb63d15203405308f6a0b07f64ed1eda02b8b8a504"}
849 +{"author": "Simon-Pierre Boucher", "cache_key": "ef1434477c0742a4da972cd3297bc8d6", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:30:57Z", "first": "2018-07-23 16:44:00", "last": "2018-12-04 10:02:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-07-23 16:44:00", "timeframe": "1min"}, "rows": 50000, "sha256": "67b79ef60da15c1dd503cc7e9042475c627b69520a04b2975cda3841c366d025"}
850 +{"author": "Simon-Pierre Boucher", "cache_key": "e0467b1a103df40c21e7cda9b899ac7d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:30:59Z", "first": "2018-12-04 10:02:00", "last": "2019-04-22 11:05:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-12-04 10:02:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ced7e7bd15eb8c5a154d18c0a0fa0796371cbc46c65eee4241cb9a786acef994"}
851 +{"author": "Simon-Pierre Boucher", "cache_key": "5f1dc7b63a84841c9f551c6b419b40fd", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:31:01Z", "first": "2019-04-22 11:05:00", "last": "2019-08-28 09:16:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-04-22 11:05:00", "timeframe": "1min"}, "rows": 50000, "sha256": "db99ea87d08a49f75ff4af7ab3e772e0cd610ec83f9f93a1c3020ba649e8f977"}
852 +{"author": "Simon-Pierre Boucher", "cache_key": "33a5fa0e75488c14b46e89cd835443cb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:31:03Z", "first": "2019-08-28 09:16:00", "last": "2020-01-08 09:28:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-08-28 09:16:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d10d4b9a91cd2e55bb889a97643829e8bdeaa70e0b29e5a5a0e60902839fafbc"}
853 +{"author": "Simon-Pierre Boucher", "cache_key": "0592736c15ac1e28f257f855de087589", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:31:05Z", "first": "2020-01-08 09:28:00", "last": "2020-04-15 19:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-01-08 09:28:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ad17f62089568f3f19562c203ef6d0517a202fb628f32da43d625dd4094a60f9"}
854 +{"author": "Simon-Pierre Boucher", "cache_key": "f66e5e10a5a37b4d6a566556ec04991d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:31:07Z", "first": "2020-04-15 19:00:00", "last": "2020-07-29 15:21:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-04-15 19:00:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d28799c0c82e6bbada2150c349923918f9e650892f2923748d626a133b37ab94"}
855 +{"author": "Simon-Pierre Boucher", "cache_key": "391354540d1984224c21ec3c5f20638a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:31:08Z", "first": "2020-07-29 15:21:00", "last": "2020-11-10 14:06:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-07-29 15:21:00", "timeframe": "1min"}, "rows": 50000, "sha256": "349dc62f891617912e741f9d90639a460478f6ebbaf0ae2edb0405ce4ee4c553"}
856 +{"author": "Simon-Pierre Boucher", "cache_key": "eff31ea3c7cc7124a32fe9d7b1e85182", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:31:10Z", "first": "2020-11-10 14:06:00", "last": "2021-03-10 13:25:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-11-10 14:06:00", "timeframe": "1min"}, "rows": 50000, "sha256": "126824271b0b7141bd3f1137724710788da941cd41520cefcf280f5936dae917"}
857 +{"author": "Simon-Pierre Boucher", "cache_key": "28330eda1e4e997071bbdf07934dcd6b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:31:11Z", "first": "2021-03-10 13:25:00", "last": "2021-07-13 09:08:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-10 13:25:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0a318a8e0d61468051379f4f48727d95ba328f82662d491c043cb3d0e47d926f"}
858 +{"author": "Simon-Pierre Boucher", "cache_key": "a636679ebf01868b9f23e0f8b72db4fc", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:31:13Z", "first": "2021-07-13 09:08:00", "last": "2021-11-10 13:25:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-07-13 09:08:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b186fa318daa30dd8ea6b823785f45bbce08d88b54b73768757dcd270988ab98"}
859 +{"author": "Simon-Pierre Boucher", "cache_key": "17605270d7c24a4764eae4c608479a69", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/MSFT", "fetched_utc": "2026-08-12T07:31:14Z", "first": "2021-11-10 13:25:00", "last": "2021-12-31 19:59:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-11-10 13:25:00", "timeframe": "1min"}, "rows": 21323, "sha256": "3e0c34584aee7e11a4baa630685e833d0c6eaad2d781fda9fc9cb315a639dedf"}
860 +{"author": "Simon-Pierre Boucher", "cache_key": "0ecdfea06c1603407783654231f820e8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:18Z", "first": "2016-01-04 04:00:00", "last": "2016-05-03 05:39:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "7ee7bdd3893ebbb114f10943c084a1cd200863a0ba6714ffacb96505aceeed78"}
861 +{"author": "Simon-Pierre Boucher", "cache_key": "c3b432df09035a94414f783fc6b4af96", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:20Z", "first": "2016-05-03 05:39:00", "last": "2016-09-13 12:02:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-05-03 05:39:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4de35752d4fa396e42617fd206bcffedd52726841042e94bf8f4a798d8f31fad"}
862 +{"author": "Simon-Pierre Boucher", "cache_key": "a2ee6a40707e57d8ab067f23aa55f689", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:23Z", "first": "2016-09-13 12:02:00", "last": "2017-01-26 13:07:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-09-13 12:02:00", "timeframe": "1min"}, "rows": 50000, "sha256": "783b2405dad7e8f362cd4036279ba681611d9fccf068ebd35fb6ed067c5f101a"}
863 +{"author": "Simon-Pierre Boucher", "cache_key": "71443122caf4cba65f5281dbc171fc27", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:25Z", "first": "2017-01-26 13:07:00", "last": "2017-06-09 07:22:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-01-26 13:07:00", "timeframe": "1min"}, "rows": 50000, "sha256": "11ce9abcbe142d30a65314bdc8c423e4ecfcb88203112f25cb2be12af97fdcbf"}
864 +{"author": "Simon-Pierre Boucher", "cache_key": "5b90f861434a2572264659dd5c52d1c7", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:28Z", "first": "2017-06-09 07:22:00", "last": "2017-10-09 11:49:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-06-09 07:22:00", "timeframe": "1min"}, "rows": 50000, "sha256": "9a0fc9d9c88ab9db82733b49ca2d95f31ed3b39c58d005de29d21fbf9dc4e7d0"}
865 +{"author": "Simon-Pierre Boucher", "cache_key": "4fca6b2cc65c346464f616349b97404c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:30Z", "first": "2017-10-09 11:49:00", "last": "2018-02-07 05:30:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-10-09 11:49:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d719fbbf0be4c069a6b03bb9f12ce9683a28bf3e3396802d16882f33faa54e41"}
866 +{"author": "Simon-Pierre Boucher", "cache_key": "052dff444181cba746850c96d5b62b6e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:33Z", "first": "2018-02-07 05:30:00", "last": "2018-05-17 08:54:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-02-07 05:30:00", "timeframe": "1min"}, "rows": 50000, "sha256": "3f7e647efde761fbb4f1d60cabeb7d74fb1706012ce92937dba94d693a9f5e02"}
867 +{"author": "Simon-Pierre Boucher", "cache_key": "1865be1c89dcaba8320bb17357840a18", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:35Z", "first": "2018-05-17 08:54:00", "last": "2018-08-31 10:35:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-05-17 08:54:00", "timeframe": "1min"}, "rows": 50000, "sha256": "59d7f427f404fdb7c555df140387c40c055d928ee884f09d253b02d2148237d1"}
868 +{"author": "Simon-Pierre Boucher", "cache_key": "0b68e074522e7c5526fb8e175e642221", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:37Z", "first": "2018-08-31 10:35:00", "last": "2018-12-06 18:17:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-08-31 10:35:00", "timeframe": "1min"}, "rows": 50000, "sha256": "22d4d436ecef469abde86ce946fd44089270ec7ba610405e0b7fd047e3b4409b"}
869 +{"author": "Simon-Pierre Boucher", "cache_key": "a94594608408e0a2d8bd32cc7ca3b42f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:39Z", "first": "2018-12-06 18:17:00", "last": "2019-03-15 09:21:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-12-06 18:17:00", "timeframe": "1min"}, "rows": 50000, "sha256": "5e75d0a83bd75b20f2ecc2e2f51104df5703d3edb0ed8e1b65435bd439a463ba"}
870 +{"author": "Simon-Pierre Boucher", "cache_key": "7fb43cfc6abb60590a8612e006c54b39", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:41Z", "first": "2019-03-15 09:21:00", "last": "2019-06-21 13:59:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-03-15 09:21:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b1173f32080d0c6bba1fb31a85d24cf9389887229c7e2c749b885d2012aab798"}
871 +{"author": "Simon-Pierre Boucher", "cache_key": "f3bf1b68c10c4f3690ce9114563e177c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:43Z", "first": "2019-06-21 13:59:00", "last": "2019-09-27 16:09:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-06-21 13:59:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ecbdd6e0b8c778ebcc117d84c08f8de22a5e661f764df864a8bc887b0a1f58ca"}
872 +{"author": "Simon-Pierre Boucher", "cache_key": "afecea72a2942cc16392523366232b6b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:45Z", "first": "2019-09-27 16:09:00", "last": "2020-01-09 14:15:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-09-27 16:09:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ec464d3c799e36c67872ab8b548d2c09670919ffb7ca3c7e1768a6cd7e0253eb"}
873 +{"author": "Simon-Pierre Boucher", "cache_key": "94e2bdbfdf48d650e67971a6a8c4e6f8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:47Z", "first": "2020-01-09 14:15:00", "last": "2020-04-03 16:19:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-01-09 14:15:00", "timeframe": "1min"}, "rows": 50000, "sha256": "73b6cb36e78abfe5c753f98722070337500b2f789da9bd055693a524920434d7"}
874 +{"author": "Simon-Pierre Boucher", "cache_key": "63688f0aa2ce7db23147f123b4ed18de", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:49Z", "first": "2020-04-03 16:19:00", "last": "2020-07-01 05:11:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-04-03 16:19:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0a3f7f31400aa2e88949b97dc90631887ace83fde59d2d598287380eca1b443d"}
875 +{"author": "Simon-Pierre Boucher", "cache_key": "98ae157db623b3d129fcd523d82e173a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:51Z", "first": "2020-07-01 05:11:00", "last": "2020-09-25 13:28:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-07-01 05:11:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e41dd7cd8ec55d9b35bf7cfc6f94ad8975868cd6231ca8d26081a6957cb893df"}
876 +{"author": "Simon-Pierre Boucher", "cache_key": "50e7522240d75f6d94620794343c0467", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:53Z", "first": "2020-09-25 13:28:00", "last": "2020-12-21 16:34:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-09-25 13:28:00", "timeframe": "1min"}, "rows": 50000, "sha256": "fac6f2be4e67c50cc80e526e664a5eafaf5c63c7dbf166208394905d5abd0767"}
877 +{"author": "Simon-Pierre Boucher", "cache_key": "9cdf8c2c121784b25ef70c4c605bef4d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:54Z", "first": "2020-12-21 16:34:00", "last": "2021-03-22 04:50:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-12-21 16:34:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d8c062b123b17aee3112b6d07c84b5c653bd4d1ea9b443b02e3e01b9d9273af6"}
878 +{"author": "Simon-Pierre Boucher", "cache_key": "6a3a65e4ad661a14ec85f4bf8cdb56dc", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:56Z", "first": "2021-03-22 04:50:00", "last": "2021-06-17 08:07:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-22 04:50:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c6edc09752f738372f3e94aebdaeeb6890ea5d87d908c556c509984fbb5af3d5"}
879 +{"author": "Simon-Pierre Boucher", "cache_key": "6489023a93ca9c86d7d3dc89c9e91f81", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:57Z", "first": "2021-06-17 08:07:00", "last": "2021-09-17 15:20:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-06-17 08:07:00", "timeframe": "1min"}, "rows": 50000, "sha256": "16263fcff721d0c513ff500ba007010b75c2f01d5785bbdde88a5995ad54f171"}
880 +{"author": "Simon-Pierre Boucher", "cache_key": "e8f1136ae9ca661400d1bd9e2dafb3e3", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:59Z", "first": "2021-09-17 15:20:00", "last": "2021-12-13 16:35:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-09-17 15:20:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4e88ccb63f4036dc2a2dfa84d683a319bbed93e7a39368f2af6fb80d2b8dd69d"}
881 +{"author": "Simon-Pierre Boucher", "cache_key": "902c876a910c322fadedee03ed53913f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:31:59Z", "first": "2021-12-13 16:35:00", "last": "2021-12-31 19:59:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-12-13 16:35:00", "timeframe": "1min"}, "rows": 10548, "sha256": "40a46ceac47034c6bb13c35d88ac1135eeb3f3aba36c938f80b06b5892f22227"}
882 +{"author": "Simon-Pierre Boucher", "cache_key": "72aa52314e53d792189e1da4d58004e3", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:02Z", "first": "2016-01-04 04:00:00", "last": "2016-03-30 15:10:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "8348831b5c19eb35717f24039c7b299321ee3443059cb3df357d404cb59523e0"}
883 +{"author": "Simon-Pierre Boucher", "cache_key": "406600861526144fd65c01b818fed0fe", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:05Z", "first": "2016-03-30 15:10:00", "last": "2016-06-30 09:38:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-03-30 15:10:00", "timeframe": "1min"}, "rows": 50000, "sha256": "170800ec3fb8283e23682eb37bdf718f9e2b80cb8eb75b298cbb856b1d033ea4"}
884 +{"author": "Simon-Pierre Boucher", "cache_key": "c215849b2d97cea5b0a242ecabc9bc08", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:08Z", "first": "2016-06-30 09:38:00", "last": "2016-10-06 13:10:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-06-30 09:38:00", "timeframe": "1min"}, "rows": 50000, "sha256": "1113c425b7a9cbd9e905ac450db3bfa3cae46dc0799e871a224224e97788076b"}
885 +{"author": "Simon-Pierre Boucher", "cache_key": "a8f8fe2d51294fecc5d6a009e2961d69", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:11Z", "first": "2016-10-06 13:10:00", "last": "2017-01-17 14:36:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-10-06 13:10:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4694eb977e4d2dadd21b35cb9c05c1c0d66e40e246dd5e398ae87fe3a2f32ef2"}
886 +{"author": "Simon-Pierre Boucher", "cache_key": "605b6e8f046a80a3a2b762c2f216fabc", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:13Z", "first": "2017-01-17 14:36:00", "last": "2017-04-28 12:49:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-01-17 14:36:00", "timeframe": "1min"}, "rows": 50000, "sha256": "781d827ac1df391134db865794f7b66a35ae3ae07b5922e9b3bf533cb21054b2"}
887 +{"author": "Simon-Pierre Boucher", "cache_key": "f067f6eb581c79b24d33e9d7c079e62f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:16Z", "first": "2017-04-28 12:49:00", "last": "2017-08-10 18:45:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-04-28 12:49:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a91f7706a982f22ef5a95437c8dc4b3bedf2a7bc5f66d1c43aadffdb535f6a00"}
888 +{"author": "Simon-Pierre Boucher", "cache_key": "e274e020787d4830ae19ec6afd00defc", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:18Z", "first": "2017-08-10 18:45:00", "last": "2017-11-22 11:50:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-08-10 18:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "28444462c393ed59da14bcb2911c963e8b33e3cdaec9c6da000b8ab0e1e53ef2"}
889 +{"author": "Simon-Pierre Boucher", "cache_key": "a1618c369246c5792a1a762f898b9a38", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:21Z", "first": "2017-11-22 11:50:00", "last": "2018-03-02 08:56:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-11-22 11:50:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ce07a23712ecba70dc52fa79c11d22d573812eaba6f5e6229bff3aac11e6bae3"}
890 +{"author": "Simon-Pierre Boucher", "cache_key": "1b09ff5afd3284a664c65c608dfb6081", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:23Z", "first": "2018-03-02 08:56:00", "last": "2018-06-04 12:59:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-03-02 08:56:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4e4712b495718b65b85342a39ebf577b4b9cfedcf0dfcbc84333188a3a40ad05"}
891 +{"author": "Simon-Pierre Boucher", "cache_key": "185c338e23be7d5c5e70e1b0a236664b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:26Z", "first": "2018-06-04 12:59:00", "last": "2018-09-10 12:09:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-06-04 12:59:00", "timeframe": "1min"}, "rows": 50000, "sha256": "3081b5281cb5b040a31882a0b803319f957f8b0a29be8337eda85d1bcd202bcb"}
892 +{"author": "Simon-Pierre Boucher", "cache_key": "be15756be8f7d1f544a47eadf55dfb1c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:28Z", "first": "2018-09-10 12:09:00", "last": "2018-12-07 17:27:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-09-10 12:09:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c7c361a328b044ba0b3011d2b5214316e5fb8220bc2051c97803e330f1a8abb9"}
893 +{"author": "Simon-Pierre Boucher", "cache_key": "78d7f6aaca72c6026e0b8240f8f4698a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:30Z", "first": "2018-12-07 17:27:00", "last": "2019-03-11 08:18:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-12-07 17:27:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4dccc45e0b96f3c191a1104735e0c7c7b4fe092ab2fd345b70f50a4129325b2b"}
894 +{"author": "Simon-Pierre Boucher", "cache_key": "9f3811ac6ef76050136d8a68952dbdf5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:32Z", "first": "2019-03-11 08:18:00", "last": "2019-06-12 05:16:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-03-11 08:18:00", "timeframe": "1min"}, "rows": 50000, "sha256": "5cc3c90232fb4296fb0f3321646d0ec805587a3c3a15b907a4b65dcfacfc4fed"}
895 +{"author": "Simon-Pierre Boucher", "cache_key": "44c178af66f0d8bad93aa9b7ad723535", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:34Z", "first": "2019-06-12 05:16:00", "last": "2019-09-12 16:18:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-06-12 05:16:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d9225a417c6eed8b6c3a855fd939c24fcdf7435760c2f96b4777ec5d00eb0b33"}
896 +{"author": "Simon-Pierre Boucher", "cache_key": "41f58f3c7e646077d2d8c7cf7dce1cf0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:36Z", "first": "2019-09-12 16:18:00", "last": "2019-12-16 16:40:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-09-12 16:18:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e71b53709cfaf3ffc08bfc11f5024aca2b9b5bf7d53b2800352c92babacd854d"}
897 +{"author": "Simon-Pierre Boucher", "cache_key": "7b26b16120c8e89fe082f2c757211ec5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:38Z", "first": "2019-12-16 16:40:00", "last": "2020-03-17 08:50:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-12-16 16:40:00", "timeframe": "1min"}, "rows": 50000, "sha256": "1bd1cb5b591ff621fc0fbc12cb3a8fac83148af908d233d60d33f9dfa0c9e1a5"}
898 +{"author": "Simon-Pierre Boucher", "cache_key": "ce4961e2430c543d64d4f77a1df6ce12", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:40Z", "first": "2020-03-17 08:50:00", "last": "2020-06-03 13:10:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-03-17 08:50:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2950d494697cd17d7d0f5df7a0be60339fda357835da005a7fac6cb8f2d967f4"}
899 +{"author": "Simon-Pierre Boucher", "cache_key": "a1ef02cf567dbd4f63bbe60bb2b2a9fc", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:42Z", "first": "2020-06-03 13:10:00", "last": "2020-08-26 05:31:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-06-03 13:10:00", "timeframe": "1min"}, "rows": 50000, "sha256": "14ee74891a7d977a259746e564ed3d0eaa2a694fba8eb4ffb751a9d34f17b521"}
900 +{"author": "Simon-Pierre Boucher", "cache_key": "1a026a0f76f755e19d14e94420b8a611", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:44Z", "first": "2020-08-26 05:31:00", "last": "2020-11-16 19:47:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-08-26 05:31:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e789f26f1f84d925ff7c3709398afce871576cad5936896d4a5ad13447275a6c"}
901 +{"author": "Simon-Pierre Boucher", "cache_key": "d51a4384df393aa606ab724b883ddf98", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:45Z", "first": "2020-11-16 19:47:00", "last": "2021-02-17 04:22:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-11-16 19:47:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d5e9b03ff247c83433dc93e22e360d33d5a9d435e7f9b844ec876b33aa5f2b7a"}
902 +{"author": "Simon-Pierre Boucher", "cache_key": "8d9e0721aaebdbe6674f87ef64621da9", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:47Z", "first": "2021-02-17 04:22:00", "last": "2021-05-13 17:10:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-02-17 04:22:00", "timeframe": "1min"}, "rows": 50000, "sha256": "8c7b90ee99047bd0b3d6312235af69af6334ab414e5ef12622a9a861cb983d52"}
903 +{"author": "Simon-Pierre Boucher", "cache_key": "eccb6c8e9d3f99e2beeb5903e05a6afd", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:49Z", "first": "2021-05-13 17:10:00", "last": "2021-08-16 07:38:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-05-13 17:10:00", "timeframe": "1min"}, "rows": 50000, "sha256": "89b58f231be5b346c171142ba34f070e78c17e7a4dca256be2cc3741c680fdad"}
904 +{"author": "Simon-Pierre Boucher", "cache_key": "68d71ab82e137a604c7170242e3bd74a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:50Z", "first": "2021-08-16 07:38:00", "last": "2021-11-10 15:25:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-08-16 07:38:00", "timeframe": "1min"}, "rows": 50000, "sha256": "979732e49aa213ac0a92b7a89d1f43eecf29633e65e0bf2d1940aa2b1a34b0ed"}
905 +{"author": "Simon-Pierre Boucher", "cache_key": "de92f4d83c9c976d506761a72159f4b7", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:32:51Z", "first": "2021-11-10 15:25:00", "last": "2021-12-31 19:59:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-11-10 15:25:00", "timeframe": "1min"}, "rows": 29355, "sha256": "89d72c28802ae157cacb80dfedd294c29b511e9da7102988528c01e436890136"}
906 +{"author": "Simon-Pierre Boucher", "cache_key": "58fc961dd2f08c5d6b4fe1de1169c8aa", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:32:54Z", "first": "2016-01-04 04:00:00", "last": "2016-06-20 13:20:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "91cf9ba472e5e9444fc2fde777af69d96d4347f1698e861e062b9a842d078993"}
907 +{"author": "Simon-Pierre Boucher", "cache_key": "9b129159c08f9cd4eebf6bb0705a1c8f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:32:56Z", "first": "2016-06-20 13:20:00", "last": "2016-12-01 14:23:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-06-20 13:20:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d6a48d959c2a689c58023d05b63ff83625e1942bad9e1ff1bf8c2bf602f1e6e8"}
908 +{"author": "Simon-Pierre Boucher", "cache_key": "12de54a0307c161c63a4132e4a8ccce2", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:32:58Z", "first": "2016-12-01 14:23:00", "last": "2017-05-11 13:48:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-12-01 14:23:00", "timeframe": "1min"}, "rows": 50000, "sha256": "cfa51eb250835aef13e3d01a7316a2191461a1fb5f0abc60c50114652e30e738"}
909 +{"author": "Simon-Pierre Boucher", "cache_key": "b6b9cb26bd7ed42ca6cce9eb3ba4e91b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:00Z", "first": "2017-05-11 13:48:00", "last": "2017-10-23 11:29:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-05-11 13:48:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4e0df33f430f7b00e58c800c59ee85bbdba3e1b3a4c7280ac16cdca024b840e6"}
910 +{"author": "Simon-Pierre Boucher", "cache_key": "b6f8310f52e56d0c7aabf4abba43d43c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:02Z", "first": "2017-10-23 11:29:00", "last": "2018-04-04 12:02:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-10-23 11:29:00", "timeframe": "1min"}, "rows": 50000, "sha256": "db181dce05a97c1627e59f551c59997bad1171754d7457e621cdcd4ee199996c"}
911 +{"author": "Simon-Pierre Boucher", "cache_key": "2c915afaab65abd86da0629e51d541b5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:04Z", "first": "2018-04-04 12:02:00", "last": "2018-09-13 10:11:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-04-04 12:02:00", "timeframe": "1min"}, "rows": 50000, "sha256": "edc18fedc2769dc4158f9746477bae8ea216b1c29243f014caa4dd48d77b4ad7"}
912 +{"author": "Simon-Pierre Boucher", "cache_key": "9ac7a8939c02c5e0720b77c23cb4ce12", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:06Z", "first": "2018-09-13 10:11:00", "last": "2019-02-28 10:29:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-09-13 10:11:00", "timeframe": "1min"}, "rows": 50000, "sha256": "29f6d67050c37675486f0df98646f6bd832e814a7f0c4c2156da7ed6f35e0756"}
913 +{"author": "Simon-Pierre Boucher", "cache_key": "c60416b8a1f9a182d9d830170e1d672c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:08Z", "first": "2019-02-28 10:29:00", "last": "2019-08-12 12:52:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-02-28 10:29:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ed291857de4232b1fc5e30be8ffb71eb5de0584fb3eb3f1a4890ae1d85b7134d"}
914 +{"author": "Simon-Pierre Boucher", "cache_key": "e8f9118f634f29f64fa4ef538361bf81", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:10Z", "first": "2019-08-12 12:52:00", "last": "2020-01-27 14:50:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-08-12 12:52:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2fef4fffb801bb76d337e65f110da3bc9d645ef1c440a89f111e8de3fd4c1279"}
915 +{"author": "Simon-Pierre Boucher", "cache_key": "a998b1844462df99f519a47a4edfd70c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:12Z", "first": "2020-01-27 14:50:00", "last": "2020-06-15 13:02:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-01-27 14:50:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d9592c1a3317fb196cc00b15ef35faa4c42e781ad737ff136e2a9f25dfb708b6"}
916 +{"author": "Simon-Pierre Boucher", "cache_key": "09198c990113c7f6b4176ffe8fc58741", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:13Z", "first": "2020-06-15 13:02:00", "last": "2020-11-02 14:48:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-06-15 13:02:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2471734827beef9e79a620b1e41141eacc01c6ed58951e108993ee0f3f05c10c"}
917 +{"author": "Simon-Pierre Boucher", "cache_key": "b1e6201cb38281dd20603aa9e9975637", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:15Z", "first": "2020-11-02 14:48:00", "last": "2021-03-19 13:16:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-11-02 14:48:00", "timeframe": "1min"}, "rows": 50000, "sha256": "746eea0dcf6bf2f7bd1a6f52356f2dbe11b5a50fd8e4cd7860c4fe6286e3b8cf"}
918 +{"author": "Simon-Pierre Boucher", "cache_key": "1fb2216932f99a7545b4d83ec050d5da", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:16Z", "first": "2021-03-19 13:16:00", "last": "2021-07-30 14:05:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-19 13:16:00", "timeframe": "1min"}, "rows": 50000, "sha256": "9ba783e35029270827932855eefad46ba13587b366c2502bc2573c876df0ddc7"}
919 +{"author": "Simon-Pierre Boucher", "cache_key": "b53fa77999942e6cdd090fe2d544bc49", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:18Z", "first": "2021-07-30 14:05:00", "last": "2021-12-08 09:41:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-07-30 14:05:00", "timeframe": "1min"}, "rows": 50000, "sha256": "54ff9af648bae9cf2d07f461950098bf6428ec58d405c99e483d0c0c9dc646f0"}
920 +{"author": "Simon-Pierre Boucher", "cache_key": "7cfc0e82b8d6ff4bb9d3bcac708aaf3d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:33:18Z", "first": "2021-12-08 09:41:00", "last": "2021-12-31 19:36:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-12-08 09:41:00", "timeframe": "1min"}, "rows": 8933, "sha256": "d59f0f40814251f1b9fe8a7eb6c9c4831c65ecc2f77a4fe0e78a787dcd36bc61"}
921 +{"author": "Simon-Pierre Boucher", "cache_key": "e9a7fa719eee1b10568d60b35f87c49f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:21Z", "first": "2016-01-04 04:00:00", "last": "2016-07-05 11:03:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "54d83824cd9fbdc15353db214a125fe66e63ace1a777d835e3275bc1f706aec8"}
922 +{"author": "Simon-Pierre Boucher", "cache_key": "6891a6322aaa1e3e449a1b445d735d25", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:23Z", "first": "2016-07-05 11:03:00", "last": "2017-01-03 13:26:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-07-05 11:03:00", "timeframe": "1min"}, "rows": 50000, "sha256": "fdf1f6aab69ef086a946996a19a743c9c047bf8e554c72efbc6d553d1d65d1d8"}
923 +{"author": "Simon-Pierre Boucher", "cache_key": "29e181b48a289693d71089c5ef8092a5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:25Z", "first": "2017-01-03 13:26:00", "last": "2017-07-05 16:14:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-01-03 13:26:00", "timeframe": "1min"}, "rows": 50000, "sha256": "538275c66ed2a2c37724c2637ca41e0d612724507105ecd174a6415d6aa4d4d4"}
924 +{"author": "Simon-Pierre Boucher", "cache_key": "f4ae88276e9932193c04f22249018d81", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:27Z", "first": "2017-07-05 16:14:00", "last": "2018-01-04 15:47:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-07-05 16:14:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f5adc56a9ec419552cefbb4a917625416c9ada150776a97f1af0e98e828a4bf6"}
925 +{"author": "Simon-Pierre Boucher", "cache_key": "43e1559821db92df9abb7bc76c639b61", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:29Z", "first": "2018-01-04 15:47:00", "last": "2018-07-06 15:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-01-04 15:47:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0ddc655e2b1fc1025d38d8856fd54effc0fca8ef1f94314f51622c903e7797d1"}
926 +{"author": "Simon-Pierre Boucher", "cache_key": "497361cbca988de7ff7e2de644bdd51e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:31Z", "first": "2018-07-06 15:00:00", "last": "2019-01-08 12:37:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-07-06 15:00:00", "timeframe": "1min"}, "rows": 50000, "sha256": "bd2a561e9a6fcf699a9e84baf1084fdd69e62819145d9bf2a743ddb265aa97cc"}
927 +{"author": "Simon-Pierre Boucher", "cache_key": "20f21b26cedc04a9353bc72354c4c58b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:32Z", "first": "2019-01-08 12:37:00", "last": "2019-07-10 15:45:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-01-08 12:37:00", "timeframe": "1min"}, "rows": 50000, "sha256": "acf6364414af26e80d783942a9150d828a57f417826edd3d04c67b6f912864e7"}
928 +{"author": "Simon-Pierre Boucher", "cache_key": "a539c771a3a62f90854ef201001bd248", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:34Z", "first": "2019-07-10 15:45:00", "last": "2020-01-09 13:18:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-07-10 15:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b2ca24da56bd6ae75aeca015e5fb3ef32fa8d8eb9f004b99b8ac4b2b34e1dc7e"}
929 +{"author": "Simon-Pierre Boucher", "cache_key": "807bff503cf093797463db44870a9423", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:36Z", "first": "2020-01-09 13:18:00", "last": "2020-07-07 14:35:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-01-09 13:18:00", "timeframe": "1min"}, "rows": 50000, "sha256": "9702c2c3250b34fea6a369ceaa0e2012bdb2918e44fcd7980e383585c1a8e8f0"}
930 +{"author": "Simon-Pierre Boucher", "cache_key": "72de959b4742af434e497b0f0640b16f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:37Z", "first": "2020-07-07 14:35:00", "last": "2020-12-30 14:35:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-07-07 14:35:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b72ab5eb53e26360d7eb6c727cb9225da3758cd95a2d38315f7488405c619481"}
931 +{"author": "Simon-Pierre Boucher", "cache_key": "32874ca6ae52593eb63fa3036e65b6d2", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:39Z", "first": "2020-12-30 14:35:00", "last": "2021-06-23 15:14:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-12-30 14:35:00", "timeframe": "1min"}, "rows": 50000, "sha256": "743ba95b0b4a21fa303eabaa7733e3744813c2075cbe14f2f5f913a6698c6500"}
932 +{"author": "Simon-Pierre Boucher", "cache_key": "ca7656cdc1609fc6493eb115024da934", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:40Z", "first": "2021-06-23 15:14:00", "last": "2021-12-15 11:14:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-06-23 15:14:00", "timeframe": "1min"}, "rows": 50000, "sha256": "7a9573ab24c6d6ef42629fb42279a21680781cb9a9e289048e764929334b4829"}
933 +{"author": "Simon-Pierre Boucher", "cache_key": "46022aaf64ae28d5be2b9745ae95fb18", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:33:41Z", "first": "2021-12-15 11:14:00", "last": "2021-12-31 18:53:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-12-15 11:14:00", "timeframe": "1min"}, "rows": 4744, "sha256": "a55712cc97fbd7ed324c5f6ae4c9e4c631f2b5c60b33244bbf364e676f3b16c4"}
934 +{"author": "Simon-Pierre Boucher", "cache_key": "8438b511c0f2617ea37745ef3d5d1220", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:33:43Z", "first": "2016-01-04 06:57:00", "last": "2016-07-01 13:21:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "fbb4fcec852013c7fe24079406ddf24ef9b558b816e11aa6ad0217bfe448dc7d"}
935 +{"author": "Simon-Pierre Boucher", "cache_key": "aebcb05ae3e409cb3113c83a8fccacdb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:33:45Z", "first": "2016-07-01 13:21:00", "last": "2016-12-30 15:15:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-07-01 13:21:00", "timeframe": "1min"}, "rows": 50000, "sha256": "fec0a90dde0f01b57b2385d4e3d27ab012800aa3c0079a0563bf8bab491327a1"}
936 +{"author": "Simon-Pierre Boucher", "cache_key": "42a45b9ba0a36e3eefef68f2df81fce3", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:33:47Z", "first": "2016-12-30 15:15:00", "last": "2017-07-03 10:02:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-12-30 15:15:00", "timeframe": "1min"}, "rows": 50000, "sha256": "684da435c4ec39186010ad76b487c6af91dd4efcd50918231a2b3f6b4ec9b2a6"}
937 +{"author": "Simon-Pierre Boucher", "cache_key": "6b64a33f1c658b310fdbf94f1ecb7c75", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:33:49Z", "first": "2017-07-03 10:02:00", "last": "2017-12-29 13:46:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-07-03 10:02:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f1e22bf4fa747d6b7de213a5d5ae7799a2b629732cd978b0383a13a1161dbdb5"}
938 +{"author": "Simon-Pierre Boucher", "cache_key": "3b372326011ab13be552acf0d600638d", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:33:51Z", "first": "2017-12-29 13:46:00", "last": "2018-06-27 11:05:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-12-29 13:46:00", "timeframe": "1min"}, "rows": 50000, "sha256": "24f886c21f207e9f76787d26062fbe960da24177347a151de4b32383c090ca03"}
939 +{"author": "Simon-Pierre Boucher", "cache_key": "d678f156b2c82aa7f8e88331caa5c65e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:33:53Z", "first": "2018-06-27 11:05:00", "last": "2018-12-21 13:56:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-06-27 11:05:00", "timeframe": "1min"}, "rows": 50000, "sha256": "31710bec4aee311b7c496e48724eacbf602127e4309a167deb6974f47afc91f9"}
940 +{"author": "Simon-Pierre Boucher", "cache_key": "a02280b5658e9b282f29bab249aa76f6", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:33:55Z", "first": "2018-12-21 13:56:00", "last": "2019-06-21 10:33:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-12-21 13:56:00", "timeframe": "1min"}, "rows": 50000, "sha256": "9e14c0c89e1b545715f0978448d4c6493bcaa49d043c57d9677442c1bb63f773"}
941 +{"author": "Simon-Pierre Boucher", "cache_key": "80dca28d2f315d65c2f96abbe6c71d2b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:33:57Z", "first": "2019-06-21 10:33:00", "last": "2019-12-16 13:44:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-06-21 10:33:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b9032896fd8a8038108b4d82d1261104d115e18058bb970c10c640d4b54c38f3"}
942 +{"author": "Simon-Pierre Boucher", "cache_key": "49d2aec6582a59f3702e5b8e5d9ac741", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:33:58Z", "first": "2019-12-16 13:44:00", "last": "2020-05-27 13:43:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-12-16 13:44:00", "timeframe": "1min"}, "rows": 50000, "sha256": "00ba68b5f65a4edbc50f90316483a55bf5aed42d1eb0d88bffa31ebcd928f514"}
943 +{"author": "Simon-Pierre Boucher", "cache_key": "ed3dd2f427d6d3148cc414a1abbacc6b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:34:00Z", "first": "2020-05-27 13:43:00", "last": "2020-11-04 11:48:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-05-27 13:43:00", "timeframe": "1min"}, "rows": 50000, "sha256": "58704de5b0905cae75fe986e7238f8b455ddafd1fb82dae87df585e857bbc26e"}
944 +{"author": "Simon-Pierre Boucher", "cache_key": "af0b5e9f872e89c559193e433aeac987", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:34:02Z", "first": "2020-11-04 11:48:00", "last": "2021-04-22 13:25:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-11-04 11:48:00", "timeframe": "1min"}, "rows": 50000, "sha256": "bf8cc90be00132a8294925f2c08b7a2236ad46ce305936c89379588cad60e474"}
945 +{"author": "Simon-Pierre Boucher", "cache_key": "4e326e0fd729906b5f9f2da45686f20f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:34:03Z", "first": "2021-04-22 13:25:00", "last": "2021-10-06 11:48:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-04-22 13:25:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e2370f7da9e35fd305b60ed9a0ab6a84d0505476fe460238da6bd7ddea2e07f1"}
946 +{"author": "Simon-Pierre Boucher", "cache_key": "1c0e85eb89d68bf7a3260429ac837d81", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:34:04Z", "first": "2021-10-06 11:48:00", "last": "2021-12-31 17:52:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-10-06 11:48:00", "timeframe": "1min"}, "rows": 26990, "sha256": "71626d06af8641fa14a6fe81eeb802480f762e5f089181100dca720a55ec5c70"}
947 +{"author": "Simon-Pierre Boucher", "cache_key": "cb4f6bbde0d75026f400e89d22ce9efa", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:06Z", "first": "2016-01-04 04:00:00", "last": "2016-07-01 14:51:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "c94d8f8ec0e500173f6d142e1b2d9c821f95eafc16239bbd999bf55a89c76688"}
948 +{"author": "Simon-Pierre Boucher", "cache_key": "b6d8113ac591657c0f3f67cbba0f9731", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:09Z", "first": "2016-07-01 14:51:00", "last": "2017-01-03 10:26:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-07-01 14:51:00", "timeframe": "1min"}, "rows": 50000, "sha256": "7a8c83938121508eb0aa24c6b1533c60df0b415aaa1dbcdd7b343c88827e8585"}
949 +{"author": "Simon-Pierre Boucher", "cache_key": "3f29dbee61fa82d94363570f76d1c6c8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:10Z", "first": "2017-01-03 10:26:00", "last": "2017-07-05 13:02:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-01-03 10:26:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e6a254ef6c752ad2ede87acf4d6a2022f94bec03e830b37c67079e350ec02c63"}
950 +{"author": "Simon-Pierre Boucher", "cache_key": "edf89b3c7adbf97cc8bea4ec3e537056", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:12Z", "first": "2017-07-05 13:02:00", "last": "2018-01-04 10:01:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-07-05 13:02:00", "timeframe": "1min"}, "rows": 50000, "sha256": "dba8fb0e2050c920d6d197130d6d91f3e0ec0708eef2765a8568ed37f86c15ff"}
951 +{"author": "Simon-Pierre Boucher", "cache_key": "8962aa48da4ed8dc945900946853020f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:14Z", "first": "2018-01-04 10:01:00", "last": "2018-07-05 14:11:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-01-04 10:01:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c947c698c1a9f13b5352a4b9de9cedc70f8ee2ea0902032d8abbbda2f126e9af"}
952 +{"author": "Simon-Pierre Boucher", "cache_key": "d0aa8d96955553921625aed50d41f0e0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:16Z", "first": "2018-07-05 14:11:00", "last": "2019-01-07 10:49:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-07-05 14:11:00", "timeframe": "1min"}, "rows": 50000, "sha256": "1837cef36aacccca221cefbf4800692ad9c8ba18e4766e2fbc67de0d3933f3f3"}
953 +{"author": "Simon-Pierre Boucher", "cache_key": "c0f452661f5aafe24d0fa092673030c7", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:18Z", "first": "2019-01-07 10:49:00", "last": "2019-07-09 11:51:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-01-07 10:49:00", "timeframe": "1min"}, "rows": 50000, "sha256": "497afb25a7796fcac939603b5c6cdf09f63854a05acf095ace52fa612690629f"}
954 +{"author": "Simon-Pierre Boucher", "cache_key": "c477d937c06fcf937598c3a1d69149d5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:19Z", "first": "2019-07-09 11:51:00", "last": "2020-01-07 14:00:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-07-09 11:51:00", "timeframe": "1min"}, "rows": 50000, "sha256": "32fbbaa9d0a026ebfa9b3ff8e083f717b9ed74d3fa9893c7eea6431b1b4ddc76"}
955 +{"author": "Simon-Pierre Boucher", "cache_key": "1c7b10be418e984aceaa51e77f58b471", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:21Z", "first": "2020-01-07 14:00:00", "last": "2020-07-06 15:04:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-01-07 14:00:00", "timeframe": "1min"}, "rows": 50000, "sha256": "72eddad9d15f21de88b00cdaa0a52b53d95477d71c8cb31f28d38e55da411351"}
956 +{"author": "Simon-Pierre Boucher", "cache_key": "8bde13c95a480ee604c823d3ee7c5d96", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:23Z", "first": "2020-07-06 15:04:00", "last": "2020-12-31 15:53:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-07-06 15:04:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a80fd3f07b86d8c612069cab98256d7a61ed66c5c76588c3db80f6dd57c900d5"}
957 +{"author": "Simon-Pierre Boucher", "cache_key": "d7289b36c0d830ba769ff7768d582e76", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:24Z", "first": "2020-12-31 15:53:00", "last": "2021-06-28 12:39:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-12-31 15:53:00", "timeframe": "1min"}, "rows": 50000, "sha256": "fe9a4cddfeffdc06e6d31cb708e92e6b89d3ec00922fbbaeee96753273de492e"}
958 +{"author": "Simon-Pierre Boucher", "cache_key": "1b872094f127edf235b7ab951b615432", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:25Z", "first": "2021-06-28 12:39:00", "last": "2021-12-21 13:28:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-06-28 12:39:00", "timeframe": "1min"}, "rows": 50000, "sha256": "3e6b08646ad7210960d5491f7fca71e12831f7290963000e8913886e0b33ce8a"}
959 +{"author": "Simon-Pierre Boucher", "cache_key": "f16ab990e93bbfa1a98839b25f32d382", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:26Z", "first": "2021-12-21 13:28:00", "last": "2021-12-31 16:09:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-12-21 13:28:00", "timeframe": "1min"}, "rows": 2947, "sha256": "6e36d80ad33582580b519290d6388c5c54644e68f9cf2aa7d180580c05ff9404"}
960 +{"author": "Simon-Pierre Boucher", "cache_key": "03bdbee81e672d1ea487e8b877ba1734", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:28Z", "first": "2016-01-04 08:44:00", "last": "2016-07-05 11:12:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "aae360139dec869d763ac88ec0ff42d2ef9008de8d3e2ea825eb9cf072ecf279"}
961 +{"author": "Simon-Pierre Boucher", "cache_key": "4d66053f2e9cbf48aaa5710106e7e859", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:30Z", "first": "2016-07-05 11:12:00", "last": "2017-01-04 12:53:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-07-05 11:12:00", "timeframe": "1min"}, "rows": 50000, "sha256": "60abc0e3c26feeabc86e457961fbb1ed4d4d37f99ecf0195bbcaddaec7f538c4"}
962 +{"author": "Simon-Pierre Boucher", "cache_key": "12768704f04868b52223376545e4f152", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:32Z", "first": "2017-01-04 12:53:00", "last": "2017-07-10 10:03:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-01-04 12:53:00", "timeframe": "1min"}, "rows": 50000, "sha256": "812e089603c513f01b6d9903b8e75c7b0dce73c643e3b2baadca61e7006972e2"}
963 +{"author": "Simon-Pierre Boucher", "cache_key": "39be54ca09ff163a2968f48311ae070b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:34Z", "first": "2017-07-10 10:03:00", "last": "2018-01-09 13:38:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-07-10 10:03:00", "timeframe": "1min"}, "rows": 50000, "sha256": "5dd699ef553b6a905636dd838a32248c7bbe5333c024e2bef02b8829aef1e651"}
964 +{"author": "Simon-Pierre Boucher", "cache_key": "17465e4b3c6ea35b7ad2a5f5915129af", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:36Z", "first": "2018-01-09 13:38:00", "last": "2018-07-12 11:01:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-01-09 13:38:00", "timeframe": "1min"}, "rows": 50000, "sha256": "3f8a038547b9f12818ff0dfe91437c6121415f6d3fcb44fb301e31d615cb7768"}
965 +{"author": "Simon-Pierre Boucher", "cache_key": "1bebd0c323b18dc8608fa014d1097c94", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:38Z", "first": "2018-07-12 11:01:00", "last": "2019-01-14 12:26:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-07-12 11:01:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b9e22da8308143058b64f3c374b26d90cfe37fa6b19d188cf17a92d372b3537b"}
966 +{"author": "Simon-Pierre Boucher", "cache_key": "49812b78864922eb6243769954b8f91c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:39Z", "first": "2019-01-14 12:26:00", "last": "2019-07-17 13:47:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-01-14 12:26:00", "timeframe": "1min"}, "rows": 50000, "sha256": "7518553e69d1fc77b219d05ef12ecca8724ee0db556b5e4eed68e60c7c483b90"}
967 +{"author": "Simon-Pierre Boucher", "cache_key": "364300c9dd55ca01812bd7e4e969457a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:41Z", "first": "2019-07-17 13:47:00", "last": "2020-01-17 10:41:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-07-17 13:47:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0591afbfe17ca8c850cda8becb214db7981cde8ca60b2e71796c3123fb81789c"}
968 +{"author": "Simon-Pierre Boucher", "cache_key": "c014fd8abecab823ad8e4cc733594770", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:43Z", "first": "2020-01-17 10:41:00", "last": "2020-07-17 11:08:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-01-17 10:41:00", "timeframe": "1min"}, "rows": 50000, "sha256": "74c22a2ed7bc16fdbe897798c22a4e108696acb3873e944c2ee6975116a2bbd5"}
969 +{"author": "Simon-Pierre Boucher", "cache_key": "0e635c0d843c19c85b07ff1be5bf082b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:44Z", "first": "2020-07-17 11:08:00", "last": "2021-01-14 13:51:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-07-17 11:08:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b4021ff956aa90f64100b93416810375f3e684bb722abc05e1ed0975395fd5b9"}
970 +{"author": "Simon-Pierre Boucher", "cache_key": "23a1d9c1f8dce72bbee56eba07dc03cc", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:46Z", "first": "2021-01-14 13:51:00", "last": "2021-07-15 12:09:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-01-14 13:51:00", "timeframe": "1min"}, "rows": 50000, "sha256": "66eb0ffd504b7b51dc243bbe48171d8748ac2d3805b212745abfb4132066c1d4"}
971 +{"author": "Simon-Pierre Boucher", "cache_key": "e327c0e1880fed3d34f763c338dad0db", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:47Z", "first": "2021-07-15 12:09:00", "last": "2021-12-31 19:22:00", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-07-15 12:09:00", "timeframe": "1min"}, "rows": 47270, "sha256": "7f435c3cc3eb555f24e442d9cb1bb960f415ffe513e07aa30f8b50ad24e1824e"}
972 +{"author": "Simon-Pierre Boucher", "cache_key": "fff03949f671d9042196446085936313", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/GOOGL", "fetched_utc": "2026-08-12T07:34:48Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "4902384dc18d50a69c43f5913bd0ba94316e8d41a81160594a6d8804489f8168"}
973 +{"author": "Simon-Pierre Boucher", "cache_key": "7971db6dffd7193444207b96eed938db", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/META", "fetched_utc": "2026-08-12T07:34:48Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "e066feb38f48d03d5f8f37bc82b19537f3014f811d4b2cbfe59a33f47fac3449"}
974 +{"author": "Simon-Pierre Boucher", "cache_key": "fffbc6213a344bb5236791dce0609185", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/QQQ", "fetched_utc": "2026-08-12T07:34:48Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "eb58c869b35b15d38afb36223b3a00238a195b170e0ca6b3975ed2c6d33ddd3d"}
975 +{"author": "Simon-Pierre Boucher", "cache_key": "e65df3279b9d5aab849280a4403b68d9", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLF", "fetched_utc": "2026-08-12T07:34:48Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "6625f5a205925f11cdbcc3e2bede575e8983ec6abc409edab783fcbe31f78815"}
976 +{"author": "Simon-Pierre Boucher", "cache_key": "eecd6b49878459783bd977b5b3255f55", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLK", "fetched_utc": "2026-08-12T07:34:49Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "5b9b5b9d0a37eb0b5c50e823edfb007d514295ea0717812c1ca74f84858de8c3"}
977 +{"author": "Simon-Pierre Boucher", "cache_key": "0e346e84c7320a35c722796f1dedeeba", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLI", "fetched_utc": "2026-08-12T07:34:49Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "edb0a98bfd1dddf53e14b36f0601a45eac53ef913b1262339e789ca565ab5f25"}
978 +{"author": "Simon-Pierre Boucher", "cache_key": "fa8ff1137c42e4692b2705d5c4d7e58c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLY", "fetched_utc": "2026-08-12T07:34:49Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "655255da2794695c67da33b77be77f3681306cc776da5ec41d8cefa82133eace"}
979 +{"author": "Simon-Pierre Boucher", "cache_key": "9909d4602d5ec95837f6e1b08b7bee5b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/XLP", "fetched_utc": "2026-08-12T07:34:49Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "02ea4e35772cd5b879f1ea9571ac1e63af8d4c27ac86d9f73a36427eeeec2f5f"}
980 +{"author": "Simon-Pierre Boucher", "cache_key": "e38b04d499976641933252996db235e8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/CECO", "fetched_utc": "2026-08-12T07:34:50Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "a5e2d64b833054c0af70e82d5662779177829bfe8699ce72b8ff1f3de65ecb74"}
981 +{"author": "Simon-Pierre Boucher", "cache_key": "2e53bb82356ce24a562481744d71796b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/etf/SPY", "fetched_utc": "2026-08-12T07:34:50Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "1dfbc2174441283d26671747bceeed8041d1dc55b518a2d8a07848dac7d5fca1"}
982 +{"author": "Simon-Pierre Boucher", "cache_key": "ecbb7a636517bd0cff63c0bf9d4c15b8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/CKX", "fetched_utc": "2026-08-12T07:34:50Z", "first": "2016-01-05", "last": "2018-12-31", "params": {"adjustment": "adj_split", "end": "2019-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 424, "sha256": "d888e597b8f0ca9816fcdb0ba051620fd4c441ce80808ee249221109f7ba69bb"}
983 +{"author": "Simon-Pierre Boucher", "cache_key": "1f60ca6d740ae29b759ce54eb971cfb6", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/CKX", "fetched_utc": "2026-08-12T07:34:51Z", "first": "2019-01-02", "last": "2021-12-27", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-01-01", "timeframe": "1day"}, "rows": 507, "sha256": "54a826abf3b8bb877291b0ad52a6d3d7c7004851205774ef5bcfb804212646f6"}
984 +{"author": "Simon-Pierre Boucher", "cache_key": "243fb091553611836dd369f518525450", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:34:56Z", "first": "2016-01-04 09:30:00", "last": "2016-07-05 10:49:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "177e77514e90e1f7797637a7f6cae6eaa84c9048078470679c24a5b72faa1931"}
985 +{"author": "Simon-Pierre Boucher", "cache_key": "1361481ea8edb8834a2af015226c7a16", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:34:58Z", "first": "2016-07-05 10:49:00", "last": "2017-01-03 15:06:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-07-05 10:49:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a15dc2f017e9bc2b3e53e24fe8a6be349dfc30708134bf5d8cb98face69b75c6"}
986 +{"author": "Simon-Pierre Boucher", "cache_key": "327f5ad6138cdb5db8be11e40f94872a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:35:00Z", "first": "2017-01-03 15:06:00", "last": "2017-07-06 12:42:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-01-03 15:06:00", "timeframe": "1min"}, "rows": 50000, "sha256": "902da81cd397d8626613cf825a69a96ed77ef7695fd45a80e1bbec0023e04cef"}
987 +{"author": "Simon-Pierre Boucher", "cache_key": "a39211007c7ea070dc124a32d2fd0a6e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:35:02Z", "first": "2017-07-06 12:42:00", "last": "2018-01-05 10:17:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-07-06 12:42:00", "timeframe": "1min"}, "rows": 50000, "sha256": "bd80487c7b80aea18ee97c98d9687a460984c8d5f199945224ff65b9e34109f9"}
988 +{"author": "Simon-Pierre Boucher", "cache_key": "90440d7e1e7d28583b53dd848e4341d5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:35:03Z", "first": "2018-01-05 10:17:00", "last": "2018-07-09 14:21:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-01-05 10:17:00", "timeframe": "1min"}, "rows": 50000, "sha256": "41add1f5138c68efe99b51f387b2576bc5b680bb7ef43b0bde11f8093fd2e5b6"}
989 +{"author": "Simon-Pierre Boucher", "cache_key": "4e814cd551a14e0556df5b360c37b050", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:35:05Z", "first": "2018-07-09 14:21:00", "last": "2019-01-09 14:29:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-07-09 14:21:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b7bf7a980375dc6a26944c34eca62852de397295f716442efc6f8c681b73723a"}
990 +{"author": "Simon-Pierre Boucher", "cache_key": "a7851b2dff190a58538724b27190187f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:35:07Z", "first": "2019-01-09 14:29:00", "last": "2019-07-12 12:05:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-01-09 14:29:00", "timeframe": "1min"}, "rows": 50000, "sha256": "02d35ee10941e48fb9567161295241ce753b4e3b3fb21359c39baf97e9b861fd"}
991 +{"author": "Simon-Pierre Boucher", "cache_key": "13dff9f4660266eccf7687577a47e2eb", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:35:08Z", "first": "2019-07-12 12:05:00", "last": "2020-01-13 11:55:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-07-12 12:05:00", "timeframe": "1min"}, "rows": 50000, "sha256": "24359ec55ec024fe4f3f9ae3121fc2da10ef874b16f9ab4442b4f7095881ab0c"}
992 +{"author": "Simon-Pierre Boucher", "cache_key": "1c8e83d3f830e6433f1c73dbb76c1033", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:35:09Z", "first": "2020-01-13 11:55:00", "last": "2020-07-14 12:51:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-01-13 11:55:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f9dcc8901bdf5b1caecdab2ea483f1c0066c29286ddbf5a5f833c66c93ad2a5d"}
993 +{"author": "Simon-Pierre Boucher", "cache_key": "ac3e44fd0db2819ba0c89640940b4e80", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:35:11Z", "first": "2020-07-14 12:51:00", "last": "2021-01-13 13:10:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-07-14 12:51:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f195b03a2da0a1bdf79ffdf765f40533b30292540c06a9f4a91748e2bf7e6658"}
994 +{"author": "Simon-Pierre Boucher", "cache_key": "17a5b5357f189e1092eda9bc9b1dbadd", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:35:12Z", "first": "2021-01-13 13:10:00", "last": "2021-07-15 14:34:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-01-13 13:10:00", "timeframe": "1min"}, "rows": 50000, "sha256": "88b7942263caf973d240d37b78eb0800160537b89b12c4350c09ba50b1d3d921"}
995 +{"author": "Simon-Pierre Boucher", "cache_key": "3d3a68aca715d8e94070e3f2ab20641e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/index/SPX", "fetched_utc": "2026-08-12T07:35:13Z", "first": "2021-07-15 14:34:00", "last": "2021-12-31 16:05:00", "params": {"end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-07-15 14:34:00", "timeframe": "1min"}, "rows": 46668, "sha256": "d678c4d6b99612e0dda2a5220d02c8b9d81be270d246ed8c1e2151f2cdba0851"}
996 +{"author": "Simon-Pierre Boucher", "cache_key": "d0046985c8156078a1677457d5c7dff2", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:35:22Z", "first": "2016-01-03 18:00:00", "last": "2016-02-23 15:55:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "d7b63b1e356cddf32d6a5eb779ad6179c090ca8e9563aa20d358c827122ba47e"}
997 +{"author": "Simon-Pierre Boucher", "cache_key": "c671127f0b98481d15cea35e7a8a869b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:35:26Z", "first": "2016-02-23 15:55:00", "last": "2016-04-15 08:59:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-02-23 15:55:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a0f16ce5e7e6b0b693aad228761a9da15e46fa5baaf9d2e87129fe888b3f0b18"}
998 +{"author": "Simon-Pierre Boucher", "cache_key": "b17a62b748b9691e410184713e44f857", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:35:30Z", "first": "2016-04-15 08:59:00", "last": "2016-06-07 06:37:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-04-15 08:59:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e0dd0c74c53f0350f5f90097db855a244cfef59322863332e04d43f9ad1571f1"}
999 +{"author": "Simon-Pierre Boucher", "cache_key": "b0c29b1f6d0312ce44a9385ec8e38324", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:35:33Z", "first": "2016-06-07 06:37:00", "last": "2016-07-28 05:24:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-06-07 06:37:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e7f4b81a05acfa691f2d195c36a859167aa39ecbf6901c0c80aaf0e735fc9e04"}
1000 +{"author": "Simon-Pierre Boucher", "cache_key": "90b352b5527e1822289a72552ce194b0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:35:37Z", "first": "2016-07-28 05:24:00", "last": "2016-09-19 10:19:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-07-28 05:24:00", "timeframe": "1min"}, "rows": 50000, "sha256": "7bbcb512fb9f2489e65e2cc90d29db8c3ba395041cd05ece214b76ece772dfb8"}
1001 +{"author": "Simon-Pierre Boucher", "cache_key": "2c752863b09e4fbfaa03d9877f0ded96", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:35:41Z", "first": "2016-09-19 10:19:00", "last": "2016-11-09 05:11:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-09-19 10:19:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c50d91f10831f830025330832187c0d8249c02051dd5d4258b8845262cfca84e"}
1002 +{"author": "Simon-Pierre Boucher", "cache_key": "e6eef0e80994d3dc3b38b80e9db04098", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:35:45Z", "first": "2016-11-09 05:11:00", "last": "2017-01-03 13:45:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-11-09 05:11:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a4aa5dcb684beeafa0f4999b0733eafbb3eb8995162da0a1ddca4f29ba7234b6"}
1003 +{"author": "Simon-Pierre Boucher", "cache_key": "b28ec5ebc6b75bfbc8829e1086e430c4", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:35:48Z", "first": "2017-01-03 13:45:00", "last": "2017-02-23 22:36:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-01-03 13:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "44a7d707d7136fc47dc6d8004ef861d795a8b023c6413f95a72bf8742c09e6f9"}
1004 +{"author": "Simon-Pierre Boucher", "cache_key": "dc96e9be7a4c25b12c40f5bf222fdf25", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:35:52Z", "first": "2017-02-23 22:36:00", "last": "2017-04-18 22:45:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-02-23 22:36:00", "timeframe": "1min"}, "rows": 50000, "sha256": "50f4f9608d5bf589483d17f4173fce38ceae9d15308fb4c8be104d0741cd2754"}
1005 +{"author": "Simon-Pierre Boucher", "cache_key": "f9d9d0c05da0f20938c5f72569bd4ced", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:35:55Z", "first": "2017-04-18 22:45:00", "last": "2017-06-09 05:18:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-04-18 22:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0be837f153243fa97cc7a5920e546fd5aa76ddd8dcc1ba64ea27a76c9cd8eee6"}
1006 +{"author": "Simon-Pierre Boucher", "cache_key": "70feb07a305e3454c5c0bbbccbc4fae7", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:35:59Z", "first": "2017-06-09 05:18:00", "last": "2017-08-01 20:23:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-06-09 05:18:00", "timeframe": "1min"}, "rows": 50000, "sha256": "9453dd11cf62e330d13e4072099e04a65fb351ba3b3ed4a251df36b1ddfe1751"}
1007 +{"author": "Simon-Pierre Boucher", "cache_key": "b9f77d11928732307673472c25fd10ec", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:02Z", "first": "2017-08-01 20:23:00", "last": "2017-09-22 04:13:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-08-01 20:23:00", "timeframe": "1min"}, "rows": 50000, "sha256": "02e43f02247deb32521e7cd304f4415ca2484c9775a5d7409e780258a1e645f1"}
1008 +{"author": "Simon-Pierre Boucher", "cache_key": "275836f1b3373d8487dc77c5adb5b9a0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:05Z", "first": "2017-09-22 04:13:00", "last": "2017-11-14 07:27:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-09-22 04:13:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2a337af403e10b7e566ede14274a027a049d946eee88a9e4c03322e5345a8f05"}
1009 +{"author": "Simon-Pierre Boucher", "cache_key": "97eb00b16c8d4e8639f5375d5f2785e9", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:09Z", "first": "2017-11-14 07:27:00", "last": "2018-01-08 22:03:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-11-14 07:27:00", "timeframe": "1min"}, "rows": 50000, "sha256": "adecc36c47a211f68a4f28c0359622a8bfb44118e12a9ad71f3d24f59199a70f"}
1010 +{"author": "Simon-Pierre Boucher", "cache_key": "3dc66bb9ff03ee671b72886afca710cf", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:12Z", "first": "2018-01-08 22:03:00", "last": "2018-02-28 22:38:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-01-08 22:03:00", "timeframe": "1min"}, "rows": 50000, "sha256": "8783319489335218b5196c23c7c68b0020956ad21ae1e19698e207cd73985c7b"}
1011 +{"author": "Simon-Pierre Boucher", "cache_key": "2b00585d948443c7f224e805f367bc62", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:15Z", "first": "2018-02-28 22:38:00", "last": "2018-04-23 14:24:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-02-28 22:38:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2747958b00b2c345cec63f810d8bc125984b0cbe11ae27b9ed308bc06b492c96"}
1012 +{"author": "Simon-Pierre Boucher", "cache_key": "6a42afbae0a1b187a3cc2dc848228960", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:18Z", "first": "2018-04-23 14:24:00", "last": "2018-06-13 13:59:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-04-23 14:24:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a1fd27f4f491d902f4e69ac13f7f700632822d05020ad0c37c3ce6c102f48230"}
1013 +{"author": "Simon-Pierre Boucher", "cache_key": "94e42da2f56bc937a0d5055bc6639194", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:21Z", "first": "2018-06-13 13:59:00", "last": "2018-08-03 15:17:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-06-13 13:59:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e9e7e1ff8006bd297ac6936f2243654696e2020f2464c7444cb25c09dc35aaff"}
1014 +{"author": "Simon-Pierre Boucher", "cache_key": "9d5f8dcc28ff9d8b80e04eabb0a3d351", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:24Z", "first": "2018-08-03 15:17:00", "last": "2018-09-25 14:57:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-08-03 15:17:00", "timeframe": "1min"}, "rows": 50000, "sha256": "5acf448f449db28413f05d98cb0c15803feb648cf3dc811a18d0be772a897188"}
1015 +{"author": "Simon-Pierre Boucher", "cache_key": "502596c123b30ea25305fa9ad1a9ff5e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:27Z", "first": "2018-09-25 14:57:00", "last": "2018-11-15 07:20:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-09-25 14:57:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0d800a2156f741b41641b31fe42e90bf62fb2a9db59bf9fdc7ea0483633ef04e"}
1016 +{"author": "Simon-Pierre Boucher", "cache_key": "e5bb0ec65f662e02bd480f510cad5e4f", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:30Z", "first": "2018-11-15 07:20:00", "last": "2019-01-09 18:19:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-11-15 07:20:00", "timeframe": "1min"}, "rows": 50000, "sha256": "92ee70cdf5a2b7d6197dcd1ab818fc20871fdd7cf514da72e7fb68d1d5a7789b"}
1017 +{"author": "Simon-Pierre Boucher", "cache_key": "ca8be496eba307f66e097fdd340c32ae", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:32Z", "first": "2019-01-09 18:19:00", "last": "2019-03-03 21:01:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-01-09 18:19:00", "timeframe": "1min"}, "rows": 50000, "sha256": "6a4890c3b97530f4196737418b616692a601d4d4a69e9ab2c6fa6d1c9a28fbe1"}
1018 +{"author": "Simon-Pierre Boucher", "cache_key": "d6606ed8e5f3c749b02f9e1d6abaf63a", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:35Z", "first": "2019-03-03 21:01:00", "last": "2019-04-24 13:18:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-03-03 21:01:00", "timeframe": "1min"}, "rows": 50000, "sha256": "b8835393447fe979437af7201199425aba6ceadb6057dd2e377b1f48abd53032"}
1019 +{"author": "Simon-Pierre Boucher", "cache_key": "bccff0d69c711be812ced771cbf82c23", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:37Z", "first": "2019-04-24 13:18:00", "last": "2019-06-14 09:32:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-04-24 13:18:00", "timeframe": "1min"}, "rows": 50000, "sha256": "9e441dc765c211bb40a2fdf0902204688acf766bbee7713fe44b9e921862b2ca"}
1020 +{"author": "Simon-Pierre Boucher", "cache_key": "70f7ca822ac97ca64b2aba67e5280b4e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:40Z", "first": "2019-06-14 09:32:00", "last": "2019-08-06 10:05:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-06-14 09:32:00", "timeframe": "1min"}, "rows": 50000, "sha256": "033c4124b645f8c33d2e26adcd74509356cd2c5a17e2282fe33d7a6cc0b11f33"}
1021 +{"author": "Simon-Pierre Boucher", "cache_key": "c15068b61645bccda33070f50e257720", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:42Z", "first": "2019-08-06 10:05:00", "last": "2019-09-26 05:57:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-08-06 10:05:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0afe074baaaaa8d0fda6e2875f6e3dec490c8bc12a9a6d3f8d6b6cd184826a9e"}
1022 +{"author": "Simon-Pierre Boucher", "cache_key": "e6ba278e767398bc8cf8b9169c1dc473", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:45Z", "first": "2019-09-26 05:57:00", "last": "2019-11-17 22:11:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-09-26 05:57:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e14bcb68748cbac1f754cdae50fecc6f2fead1239d0d971737e7474e6bfe22ef"}
1023 +{"author": "Simon-Pierre Boucher", "cache_key": "f6582b1b02a32de1f2922dec7521ca58", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:47Z", "first": "2019-11-17 22:11:00", "last": "2020-01-10 02:30:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-11-17 22:11:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d427f9915c98add0da1cef0039ee4c001f2cabba86af5c23ae1bb049b4c1d766"}
1024 +{"author": "Simon-Pierre Boucher", "cache_key": "ec0cc766870b0c4bb3683d61c0b2db37", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:50Z", "first": "2020-01-10 02:30:00", "last": "2020-03-03 02:04:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-01-10 02:30:00", "timeframe": "1min"}, "rows": 50000, "sha256": "1c1f00636a68d14c7c2712f5765d07cf9b43d2f8262da3123a66f4bc3473c4fb"}
1025 +{"author": "Simon-Pierre Boucher", "cache_key": "19c67d70c6fa5cbaddafc7c0e8d7ca1e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:52Z", "first": "2020-03-03 02:04:00", "last": "2020-04-24 15:23:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-03-03 02:04:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d14b6df1a93c106ef1248514075350d47d32f38e0e70c589414e0bb32727d222"}
1026 +{"author": "Simon-Pierre Boucher", "cache_key": "d0ccaf97c7d86feadc7b9c6b151c5260", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:54Z", "first": "2020-04-24 15:23:00", "last": "2020-06-16 10:45:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-04-24 15:23:00", "timeframe": "1min"}, "rows": 50000, "sha256": "573e133c2fbe06438b6fad45bbda0d06dcf7d5cc120f305e172c72fb40f9bed1"}
1027 +{"author": "Simon-Pierre Boucher", "cache_key": "544b9840c8513778f11cc2996e365e54", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:56Z", "first": "2020-06-16 10:45:00", "last": "2020-08-06 06:06:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-06-16 10:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "43a098d96879444cb63b27bfe4e99889b89a1b82ad9ad3be1ee25104b16e6ddb"}
1028 +{"author": "Simon-Pierre Boucher", "cache_key": "86a96c9074e2aaa3aa4d32db1ea50c19", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:36:58Z", "first": "2020-08-06 06:06:00", "last": "2020-09-28 01:28:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-08-06 06:06:00", "timeframe": "1min"}, "rows": 50000, "sha256": "608befb6ab7e742f63177155d4791404a46c7792d6681acf7dc4f3ed43d86a69"}
1029 +{"author": "Simon-Pierre Boucher", "cache_key": "9c870a2f67ff300a413b7f2073d07487", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:00Z", "first": "2020-09-28 01:28:00", "last": "2020-11-17 15:50:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-09-28 01:28:00", "timeframe": "1min"}, "rows": 50000, "sha256": "90d65e8145b85b69c9bda66decc04f0cffc60086be652660810e3ea11cea83ea"}
1030 +{"author": "Simon-Pierre Boucher", "cache_key": "a78a9a29c2ad59d3f1e3cf19d3e3df20", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:02Z", "first": "2020-11-17 15:50:00", "last": "2021-01-11 19:37:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-11-17 15:50:00", "timeframe": "1min"}, "rows": 50000, "sha256": "cfff267238372e230203b61f3ecfad485ad710a23c0617a8a9f20599dc68f7ae"}
1031 +{"author": "Simon-Pierre Boucher", "cache_key": "04a59f6a09791a8a68a0266b186747a9", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:04Z", "first": "2021-01-11 19:37:00", "last": "2021-03-03 18:45:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-01-11 19:37:00", "timeframe": "1min"}, "rows": 50000, "sha256": "598cb63826e245a790e482a572af16e5fc3d0da7b0542b7d47270f25f034cbbe"}
1032 +{"author": "Simon-Pierre Boucher", "cache_key": "e710417299969e3bdae36e2138a580ca", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:06Z", "first": "2021-03-03 18:45:00", "last": "2021-04-25 18:25:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-03 18:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4f837ce84346d685edff026e78a99cdabab2fb7c05efbfa578bc70e846c44889"}
1033 +{"author": "Simon-Pierre Boucher", "cache_key": "12a842255002a7eddbaf3712b55cf050", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:07Z", "first": "2021-04-25 18:25:00", "last": "2021-06-15 12:55:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-04-25 18:25:00", "timeframe": "1min"}, "rows": 50000, "sha256": "6951f3313bd12538e697eb5f358b9da1acd64c5ea148fdfaa895f5307d592a0c"}
1034 +{"author": "Simon-Pierre Boucher", "cache_key": "b034dfe562882a967e7fb7480612d23c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:09Z", "first": "2021-06-15 12:55:00", "last": "2021-08-05 01:40:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-06-15 12:55:00", "timeframe": "1min"}, "rows": 50000, "sha256": "85e17094bcb9cda6e2f28c7e750f87eabcbb1f484c6e65585e82b23b73335c07"}
1035 +{"author": "Simon-Pierre Boucher", "cache_key": "429b63387d56410c86de91d57c41b7cd", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:10Z", "first": "2021-08-05 01:40:00", "last": "2021-09-24 11:20:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-08-05 01:40:00", "timeframe": "1min"}, "rows": 50000, "sha256": "223dc8d00d57eaea97ea5fa822d38a63770727325bcd174ed69dec5071ad6db7"}
1036 +{"author": "Simon-Pierre Boucher", "cache_key": "7bfd22e4dc294dff29d686b6b0aa4b52", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:12Z", "first": "2021-09-24 11:20:00", "last": "2021-11-15 16:49:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-09-24 11:20:00", "timeframe": "1min"}, "rows": 50000, "sha256": "afc7f77b3bb6b0c8f42b30055cfa7fe95c269f0446ef47ef32b4f733652edd16"}
1037 +{"author": "Simon-Pierre Boucher", "cache_key": "5a9a55fb056d7ad66be5eba7161687cc", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:13Z", "first": "2021-11-15 16:49:00", "last": "2021-12-31 16:59:00", "params": {"adjustment": "contin_adj_absolute", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-11-15 16:49:00", "timeframe": "1min"}, "rows": 45070, "sha256": "8df33d9337da424e4e39c0a3bd80e626475a79ab379e729b3d4dc7ae026687a1"}
1038 +{"author": "Simon-Pierre Boucher", "cache_key": "6ce4538235ef97570d8ead9c52e113fc", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:22Z", "first": "2016-01-03 18:00:00", "last": "2016-02-23 15:55:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1min"}, "rows": 50000, "sha256": "5ad920c5350ba60b52131d45d4c5bab5a159defd125523b8eddd7a8fc4f4f67e"}
1039 +{"author": "Simon-Pierre Boucher", "cache_key": "1006de25fff7e041345d94d983c3fde0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:26Z", "first": "2016-02-23 15:55:00", "last": "2016-04-15 08:59:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-02-23 15:55:00", "timeframe": "1min"}, "rows": 50000, "sha256": "23cf3340112aeffe28188ccd1b809f0c9b9f2a33016b325f8cb068cdc9679068"}
1040 +{"author": "Simon-Pierre Boucher", "cache_key": "397181a93efd10e98f7d552ebd12a0d9", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:30Z", "first": "2016-04-15 08:59:00", "last": "2016-06-07 06:37:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-04-15 08:59:00", "timeframe": "1min"}, "rows": 50000, "sha256": "64a8f8f687397b0e1c9d16565170d42147c6a3038e974978dc672a54b93722b8"}
1041 +{"author": "Simon-Pierre Boucher", "cache_key": "4a13ec9bef58066fb94b6468ff68ba18", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:33Z", "first": "2016-06-07 06:37:00", "last": "2016-07-28 05:24:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-06-07 06:37:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a13e67f8edab15a6c5ab91ef96f0f06f799d85a409aee035b16c1392cf6b7f82"}
1042 +{"author": "Simon-Pierre Boucher", "cache_key": "541d734b7c44c0e3c18425d5b5e712b8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:37Z", "first": "2016-07-28 05:24:00", "last": "2016-09-19 10:19:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-07-28 05:24:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ee8b3957768bab57fd77e82d401c9a766dafba572561b88015a85b6c521afeba"}
1043 +{"author": "Simon-Pierre Boucher", "cache_key": "99b227d9b824d77004deaff985c7ed39", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:41Z", "first": "2016-09-19 10:19:00", "last": "2016-11-09 05:11:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-09-19 10:19:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2dfdfa3e3ab53749b5846843aa18892eb43d4f37556763b2519a7c35fc56f20f"}
1044 +{"author": "Simon-Pierre Boucher", "cache_key": "25766831769cef15787c0398e6df2fff", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:44Z", "first": "2016-11-09 05:11:00", "last": "2017-01-03 13:45:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-11-09 05:11:00", "timeframe": "1min"}, "rows": 50000, "sha256": "83fdc0fa9c330dcfa0e4df83fcfee59d4f08bc4fcc2828f53ea8bc4da9ee73cf"}
1045 +{"author": "Simon-Pierre Boucher", "cache_key": "1fc3e7ce1a2bcd1a12c703142a8f2e2e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:48Z", "first": "2017-01-03 13:45:00", "last": "2017-02-23 22:36:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-01-03 13:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "1f64cf8030eba46afe011a66d3290d4143b7f37387406b31900c2e762d6f1f8a"}
1046 +{"author": "Simon-Pierre Boucher", "cache_key": "cfe58cecb01a4585015eb6c399e3b5c5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:52Z", "first": "2017-02-23 22:36:00", "last": "2017-04-18 22:45:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-02-23 22:36:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c12e4708a79eb4349c6a377afe9317145aa8cd9a96d10f9d9368cf648482a3d0"}
1047 +{"author": "Simon-Pierre Boucher", "cache_key": "c5c6d38bf352c641113c82ec0982d451", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:55Z", "first": "2017-04-18 22:45:00", "last": "2017-06-09 05:18:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-04-18 22:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a69e2627730e4d4e57129b25b5ecf0c47a724727cb6a6b505e5616cf7e216465"}
1048 +{"author": "Simon-Pierre Boucher", "cache_key": "4a9ca87917d09355a777c6ca1da66fe8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:37:58Z", "first": "2017-06-09 05:18:00", "last": "2017-08-01 20:23:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-06-09 05:18:00", "timeframe": "1min"}, "rows": 50000, "sha256": "aec6940e60d65baaf22c9f2ffc450b8b288e006bbd01670872c4558592d81695"}
1049 +{"author": "Simon-Pierre Boucher", "cache_key": "8e2bbc4b909e659da1eaf28d02b4f93b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:02Z", "first": "2017-08-01 20:23:00", "last": "2017-09-22 04:13:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-08-01 20:23:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ef526df373693669fec46aa4eef5febdaa8c7cb86d0dba0aaccdef7f1aa1b5d5"}
1050 +{"author": "Simon-Pierre Boucher", "cache_key": "6019b3622fc2910bb79e8e9ca39269b8", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:05Z", "first": "2017-09-22 04:13:00", "last": "2017-11-14 07:27:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-09-22 04:13:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f0c77ea29d8a72537e3ce99b98a06924da3131a77e31e17ab1e241bca053999c"}
1051 +{"author": "Simon-Pierre Boucher", "cache_key": "cd6eea8779c7a2a97b0723406ef9a664", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:08Z", "first": "2017-11-14 07:27:00", "last": "2018-01-08 22:03:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2017-11-14 07:27:00", "timeframe": "1min"}, "rows": 50000, "sha256": "1df1ee21f06cdc5a3e1627a3403261e6207170e2cffc389fcb24d3ac10932d54"}
1052 +{"author": "Simon-Pierre Boucher", "cache_key": "e0d95c4d949b414fd0c666dc751b5a79", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:12Z", "first": "2018-01-08 22:03:00", "last": "2018-02-28 22:38:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-01-08 22:03:00", "timeframe": "1min"}, "rows": 50000, "sha256": "789760445f547637136a02f4ce6f7fb47bc2a0c0067490e26051c085a5522f8e"}
1053 +{"author": "Simon-Pierre Boucher", "cache_key": "4340b2edf6379c4ccf2b48311a540b48", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:15Z", "first": "2018-02-28 22:38:00", "last": "2018-04-23 14:24:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-02-28 22:38:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a05b658e9ab75f004762df41788884810f722c5d432fc52eb4c2651608cc89cd"}
1054 +{"author": "Simon-Pierre Boucher", "cache_key": "c68c4c7c13a43aad99473021b0554e04", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:18Z", "first": "2018-04-23 14:24:00", "last": "2018-06-13 13:59:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-04-23 14:24:00", "timeframe": "1min"}, "rows": 50000, "sha256": "150c48a6de3da5fa194fd27632ae2c36c328a8d2c2d6501c6e3a0a81360ad20a"}
1055 +{"author": "Simon-Pierre Boucher", "cache_key": "be1ba4533d6999cfba87085616c90872", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:21Z", "first": "2018-06-13 13:59:00", "last": "2018-08-03 15:17:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-06-13 13:59:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c7afcb367015e4661141a182d53d90e217cd1ee48b9a75b35cc119caf422aaed"}
1056 +{"author": "Simon-Pierre Boucher", "cache_key": "00683a9c2d4586185f6fb830914467ee", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:24Z", "first": "2018-08-03 15:17:00", "last": "2018-09-25 14:57:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-08-03 15:17:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f9552411e4ffe4c70535bfa1a1ed02687dbafdbb48081a16ea7b259df7acb977"}
1057 +{"author": "Simon-Pierre Boucher", "cache_key": "0d327f8eb35bf0eeb4863b92086d1b10", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:26Z", "first": "2018-09-25 14:57:00", "last": "2018-11-15 07:20:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-09-25 14:57:00", "timeframe": "1min"}, "rows": 50000, "sha256": "f5932ff08d2e4fc37ca10c40f9312ae50657018b74f932b48ea70f7766dc3bd4"}
1058 +{"author": "Simon-Pierre Boucher", "cache_key": "0d28955de5344fe14dddb07ecb718731", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:29Z", "first": "2018-11-15 07:20:00", "last": "2019-01-09 18:19:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2018-11-15 07:20:00", "timeframe": "1min"}, "rows": 50000, "sha256": "455b1207ad372506f12a1103334bf25474b91e3623c50340b3b4cdb31bc2296a"}
1059 +{"author": "Simon-Pierre Boucher", "cache_key": "2de77685cd948b3c2f0e7b8d487da802", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:32Z", "first": "2019-01-09 18:19:00", "last": "2019-03-03 21:01:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-01-09 18:19:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c5c1209fc0f91ad19a26f607aa363a12e6d268f4f7d827cd1a2f497320144196"}
1060 +{"author": "Simon-Pierre Boucher", "cache_key": "54712f31a636f24f37624f59491790e6", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:35Z", "first": "2019-03-03 21:01:00", "last": "2019-04-24 13:18:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-03-03 21:01:00", "timeframe": "1min"}, "rows": 50000, "sha256": "a385d782a2f21b73eae557299312e215492f6ff41f42ac1cc4d6141c0fea04c4"}
1061 +{"author": "Simon-Pierre Boucher", "cache_key": "4feb8e66e04c76bb68c23faaf091db98", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:37Z", "first": "2019-04-24 13:18:00", "last": "2019-06-14 09:32:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-04-24 13:18:00", "timeframe": "1min"}, "rows": 50000, "sha256": "4e9b0536aa36e55a1e522313eeac0c87e289d55cad0f58c72ed5740cb2d50241"}
1062 +{"author": "Simon-Pierre Boucher", "cache_key": "d410c756ea8f4d17ea1974c57b1f1370", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:40Z", "first": "2019-06-14 09:32:00", "last": "2019-08-06 10:05:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-06-14 09:32:00", "timeframe": "1min"}, "rows": 50000, "sha256": "9763c9dc41029d26c7fd40e879e3214ea85e126f8fcc5f0bfa88335e4eeff34c"}
1063 +{"author": "Simon-Pierre Boucher", "cache_key": "420ee0f2e78c11b1f479ac144ff6cb59", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:42Z", "first": "2019-08-06 10:05:00", "last": "2019-09-26 05:57:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-08-06 10:05:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ee7a9c97f4c5c16aa229c870bea1217533b942ce9c6fd93c3ffa34a0c14cb3b0"}
1064 +{"author": "Simon-Pierre Boucher", "cache_key": "e7841ff4952288b81972e4044db91ee1", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:45Z", "first": "2019-09-26 05:57:00", "last": "2019-11-17 22:11:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-09-26 05:57:00", "timeframe": "1min"}, "rows": 50000, "sha256": "25cbdb05bfbb1faa5a5ded4804d50b7b74aefce5a6c3a0c5ea61650be0ee9999"}
1065 +{"author": "Simon-Pierre Boucher", "cache_key": "82b557f3ea023a3495f6ab76b357682e", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:47Z", "first": "2019-11-17 22:11:00", "last": "2020-01-10 02:30:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2019-11-17 22:11:00", "timeframe": "1min"}, "rows": 50000, "sha256": "2b1c8c3b79e7ecf0650334309a85e4ac7e900439f6849be091605e3a4663c1f9"}
1066 +{"author": "Simon-Pierre Boucher", "cache_key": "9c4d23e34923768c9fb7af2fff8e4ba7", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:49Z", "first": "2020-01-10 02:30:00", "last": "2020-03-03 02:04:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-01-10 02:30:00", "timeframe": "1min"}, "rows": 50000, "sha256": "ef7a8d7000dabcb9e449bf16aa960f41a19eba66ee65eeb3f4e1e00d0c2a1d46"}
1067 +{"author": "Simon-Pierre Boucher", "cache_key": "e1526cec33c754ffd1eb82e38c33cafc", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:51Z", "first": "2020-03-03 02:04:00", "last": "2020-04-24 15:23:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-03-03 02:04:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d15ecb01ed80fc014ba7062e5aece9d5d90d51f40a9e02f352d53aa5b60fede9"}
1068 +{"author": "Simon-Pierre Boucher", "cache_key": "318d5622c59ab3c864caeedbdcf98d9b", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:53Z", "first": "2020-04-24 15:23:00", "last": "2020-06-16 10:45:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-04-24 15:23:00", "timeframe": "1min"}, "rows": 50000, "sha256": "c35cca05f0752d6adcb8cf33ef905ddabecbf8d92bd264a8de020f2c614899ff"}
1069 +{"author": "Simon-Pierre Boucher", "cache_key": "2daf700d1fa5dd62386fc07976ac60c3", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:56Z", "first": "2020-06-16 10:45:00", "last": "2020-08-06 06:06:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-06-16 10:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "e2b7f92e40218e3892232f32a6c50d1c7fc5c7b68ddf7c6f796065342a3291c6"}
1070 +{"author": "Simon-Pierre Boucher", "cache_key": "14b7795663e23f1c95f911113fe7ea9c", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:58Z", "first": "2020-08-06 06:06:00", "last": "2020-09-28 01:28:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-08-06 06:06:00", "timeframe": "1min"}, "rows": 50000, "sha256": "17fea15717801a7f4839e00a9b4513cf48c5295be19d214d0f8eb1aa441c392a"}
1071 +{"author": "Simon-Pierre Boucher", "cache_key": "4a12f073ad246100dc37e5eb91708efe", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:38:59Z", "first": "2020-09-28 01:28:00", "last": "2020-11-17 15:50:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-09-28 01:28:00", "timeframe": "1min"}, "rows": 50000, "sha256": "d9141a36d4474e58e3de43a6d4b1c54220a20accc6795c386ad8ea1ddfe9379c"}
1072 +{"author": "Simon-Pierre Boucher", "cache_key": "2db2d47484b950ebe5ce6a0b0e533075", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:39:01Z", "first": "2020-11-17 15:50:00", "last": "2021-01-11 19:37:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2020-11-17 15:50:00", "timeframe": "1min"}, "rows": 50000, "sha256": "bfed09f6d96f3bc1018b50ff63ae0e9e7edf3d227636dfec0cc11669cca7c87f"}
1073 +{"author": "Simon-Pierre Boucher", "cache_key": "7669fd31ab23be61555e3dc334fb3f06", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:39:03Z", "first": "2021-01-11 19:37:00", "last": "2021-03-03 18:45:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-01-11 19:37:00", "timeframe": "1min"}, "rows": 50000, "sha256": "6668b5bfbf77e37a73e6ab82da9a524c7d898fa593d4e6336b093f9947d0afc3"}
1074 +{"author": "Simon-Pierre Boucher", "cache_key": "b4e17e0c33dd1c0d7c45820ef3a9bbd4", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:39:05Z", "first": "2021-03-03 18:45:00", "last": "2021-04-25 18:25:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-03-03 18:45:00", "timeframe": "1min"}, "rows": 50000, "sha256": "5d6ab2a52e924f696aa208de25d4b8ed3a38310eb66d502ee440a2b0067131b8"}
1075 +{"author": "Simon-Pierre Boucher", "cache_key": "855ab15ab64409f50017f825518fa3e1", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:39:06Z", "first": "2021-04-25 18:25:00", "last": "2021-06-15 12:55:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-04-25 18:25:00", "timeframe": "1min"}, "rows": 50000, "sha256": "3fceb1753f1a8fc754cbf4d190028a9089c17fc672616fac49363657a2cef4d8"}
1076 +{"author": "Simon-Pierre Boucher", "cache_key": "5d77b39c590c9be1e2204090baf5c123", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:39:08Z", "first": "2021-06-15 12:55:00", "last": "2021-08-05 01:40:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-06-15 12:55:00", "timeframe": "1min"}, "rows": 50000, "sha256": "0ea0bfe9e6ad92c813766a12652dbfd4fd802d8fb54d8a9175a22f1b0094dc10"}
1077 +{"author": "Simon-Pierre Boucher", "cache_key": "f5532ed75d1da0a0bc8dbf28296ce4f9", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:39:10Z", "first": "2021-08-05 01:40:00", "last": "2021-09-24 11:20:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-08-05 01:40:00", "timeframe": "1min"}, "rows": 50000, "sha256": "fd45b7299cfa666c5a79ec23eb8c2fa03a76983792885e8f97c0db8e39c779b8"}
1078 +{"author": "Simon-Pierre Boucher", "cache_key": "4f9156c0016ecf957872112594ba4a48", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:39:11Z", "first": "2021-09-24 11:20:00", "last": "2021-11-15 16:49:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-09-24 11:20:00", "timeframe": "1min"}, "rows": 50000, "sha256": "1b2cc7dd15135d63e60d93825ccb75961326c56a68cf4da85036eca2a3443e2d"}
1079 +{"author": "Simon-Pierre Boucher", "cache_key": "2790249eca1f7a8b942d7359bc238be5", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/futures/ES", "fetched_utc": "2026-08-12T07:39:12Z", "first": "2021-11-15 16:49:00", "last": "2021-12-31 16:59:00", "params": {"adjustment": "contin_UNadj", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2021-11-15 16:49:00", "timeframe": "1min"}, "rows": 45070, "sha256": "8c2cd0db128c7b0972ca4f38b633ca557f7cd1c5f1d1ef46d5a16d67411715ed"}
1080 +{"author": "Simon-Pierre Boucher", "cache_key": "917562ce90b1cc2e13aebee179d43eaf", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/AMZN", "fetched_utc": "2026-08-12T07:39:17Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "1a2647c0b7f91dae0fdc056561a4bc10913c139eef0cea3eb3f8e3fd514d2e86"}
1081 +{"author": "Simon-Pierre Boucher", "cache_key": "c8709e8f00ec1594a5f52851fd9a13c3", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/TSLA", "fetched_utc": "2026-08-12T07:39:17Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "c5c0e96dff34ae7c0e1142f3b024ea82af36a94468fd8266889a709533b508e1"}
1082 +{"author": "Simon-Pierre Boucher", "cache_key": "268bb4b91d18b6bf7751bd835b3935a0", "data_source": "hfmarketdata.io", "endpoint": "/v1/bars/stock/UNH", "fetched_utc": "2026-08-12T07:39:18Z", "first": "2016-01-04", "last": "2021-12-31", "params": {"adjustment": "adj_split", "end": "2022-01-01", "limit": 50000, "order": "asc", "start": "2016-01-01", "timeframe": "1day"}, "rows": 1511, "sha256": "5258c53b9da5fed51f516fb8950dc45d20023c492dd1c1a00324a6930825b11d"}
modified experiments/micro/expH_oos_stability/README.md +1 −1
@@ -12,4 +12,4 @@ status: draft
12 12
13 13 Out-of-sample stability: once-touched holdout and sub-period evaluation of survivors
14 14
15 Status: scaffolded 2026-08-12, not yet run.
15 +Status: **completed 2026-08-12** — validation split opened once: negative finding replicates (0 net survivors at kappa=1), CKX fails robustness, ES->SPY does not replicate, daily reversal was crisis-regime. First atlas entries issued.
modified experiments/micro/expH_oos_stability/analysis.md +39 −2
@@ -5,9 +5,46 @@ author: Simon-Pierre Boucher
5 5 contact: contact@spboucher.ai
6 6 data_source: hfmarketdata.io
7 7 created: 2026-08-12
8 status: draft
8 +modified: 2026-08-12
9 +status: reviewed
9 10 ---
10 11
11 12 # Analysis — expH_oos_stability
12 13
13 *To be written after results exist. Must include the seven-field block and the evidence standard of CLAUDE.md §10 (never report an in-sample number as a finding).*
14 +Run: `results/expH_oos_stability/20260812T072518Z/results.json`. The
15 +validation split (2016-2021), frozen before the first scan, was opened here
16 +for the first time (418 requests, 18.8M rows). The holdout (2022→) remains
17 +sealed. All four pre-registered questions resolved:
18 +
19 +| Question | Train | Validation | Verdict |
20 +|---|---|---|---|
21 +| Q-b nothing survives κ=1 | 0 survivors | **0 survivors** | negative finding **replicates** |
22 +| Q-a CKX 1day net@0.25 | κ*=0.28 | +16.3 bp/d CI [1.4, 26.5], but 2019-21 CI [−19.5, +22.0] | **fails robustness clause** — not confirmed |
23 +| Q-c ES→SPY fresh corr | −0.032 (FDR, splice-invariant) | **+0.003** (p=0.68) | **does not replicate** |
24 +| Q-d daily reversal family | VR30 excess −0.143 | **+0.023** | crisis-regime story **confirmed** |
25 +
26 +## Reading
27 +
28 +1. **The ladder closes on the honest outcome.** Artifact nulls → search
29 + correction → costs → OOS: nothing survives all four. This is the
30 + charter's anticipated result ("a well-documented 'it's all artifacts'
31 + is a success"), now demonstrated rather than assumed — and it becomes
32 + the atlas's first Level-2 entry.
33 +2. **CKX was exactly what it looked like.** The lone cost survivor decays
34 + within validation (κ* 0.445 → 0.263), fails its pre-registered
35 + two-sub-period clause, and lives in a name whose capacity rounds to
36 + zero. Not escalated; the sealed holdout is not spent on it.
37 +3. **ES→SPY is a lesson in regime-fragility**: a splice-invariant,
38 + FDR-significant train effect that flips sign OOS. Splice-invariance
39 + guards against one artifact — it says nothing about stationarity.
40 +4. **The artifact replicates even though the anomalies do not.** SPY still
41 + leads SPX on validation (+0.080 vs +0.132 in train) — content staleness
42 + is structural. That contrast (artifacts stable, "alphas" not) is the
43 + project's cleanest single sentence.
44 +
45 +## Hand-off
46 +
47 +Two atlas entries created via `tools/new_finding.py` (F001 negative
48 +finding, Level 2; F002 SPX artifact demonstration, Level 2). Candidate 02
49 +(turn-of-month) and candidate 01 (intraday momentum) keep their protocols
50 +for future work; the holdout stays sealed until a claim earns it.
modified experiments/micro/expH_oos_stability/benchmark.py +198 −10
@@ -1,7 +1,7 @@
1 1 # =============================================================================
2 2 # Project : anomaly-atlas
3 3 # File : experiments/micro/expH_oos_stability/benchmark.py
4 # Purpose : Benchmark runner: Out-of-sample stability: once-touched holdout and sub-period eva…
4 +# Purpose : Out-of-sample stability on the untouched validation split
5 5 # Author : Simon-Pierre Boucher
6 6 # Contact : contact@spboucher.ai
7 7 # Data src : hfmarketdata.io (sole data source)
@@ -10,25 +10,213 @@
10 10 # Platform : macOS / Apple Silicon (arm64)
11 11 # License : All rights reserved (research code)
12 12 # =============================================================================
13 +"""Experiment H — the validation split (2016-2021), opened for the first time.
13 14
14 """Benchmark entry point for expH_oos_stability.
15
16 Must embed the hardware manifest in all result output
17 (see benchmarks/hardware_manifest.py) and write results to
18 results/expH_oos_stability/<timestamp>/. Uses hfmarketdata.io data ONLY, exclusively
19 through src/anomaly_atlas/data/hf_client.py.
15 +Re-evaluates, with machinery identical to expC/expD/expG (imported from
16 +their committed benchmarks, not re-implemented): the expG pool net of
17 +costs, the ES->SPY basis effect, and the daily reversal family. The sealed
18 +HOLDOUT (2022->) is not touched.
20 19 """
21 20
21 +from __future__ import annotations
22 +
23 +import importlib.util
24 +import json
22 25 import sys
26 +from datetime import UTC, datetime
23 27 from pathlib import Path
24 28
25 sys.path.insert(0, str(Path(__file__).resolve().parents[3] / "benchmarks"))
29 +import numpy as np
30 +
31 +REPO_ROOT = Path(__file__).resolve().parents[3]
32 +sys.path.insert(0, str(REPO_ROOT / "benchmarks"))
33 +sys.path.insert(0, str(REPO_ROOT / "src"))
34 +
26 35 from hardware_manifest import collect_manifest # noqa: E402
27 36
37 +from anomaly_atlas.data.cleaning import rth_day_grids # noqa: E402
38 +from anomaly_atlas.data.hf_client import HFMarketDataClient # noqa: E402
39 +from anomaly_atlas.data.universe import LIQUID_ETF, LIQUID_STOCK, VALIDATION # noqa: E402
40 +from anomaly_atlas.stats.bootstrap import moving_block_bootstrap, percentile_ci # noqa: E402
41 +from anomaly_atlas.stats.multiple_testing import bootstrap_pvalue # noqa: E402
42 +from anomaly_atlas.stats.reversion import ac1, variance_ratio # noqa: E402
43 +from anomaly_atlas.validation.artifacts import edge_spread # noqa: E402
44 +
45 +
46 +def load_module(name: str, rel: str):
47 + spec = importlib.util.spec_from_file_location(name, REPO_ROOT / rel)
48 + mod = importlib.util.module_from_spec(spec)
49 + spec.loader.exec_module(mod)
50 + return mod
51 +
52 +
53 +expg = load_module("expg_bench", "experiments/micro/expG_cost_frontier/benchmark.py")
54 +expd = load_module("expd_bench", "experiments/micro/expD_leadlag_scan/benchmark.py")
55 +
56 +ADJ = "adj_split"
57 +VAL_SUBS = {"2016-2018": ("2016-01-01", "2019-01-01"),
58 + "2019-2021": ("2019-01-01", "2022-01-01")}
59 +KAPPA_CHECK = ("0.25", "1.0")
60 +
61 +
62 +def eval_pool_on(client, rev_pool, ll_pool, start, end, label) -> list[dict]:
63 + items = []
64 + for r in rev_pool:
65 + bars = client.get_bars(r["asset"], r["ticker"], r["timeframe"], ADJ, start, end)
66 + stream = expg.contrarian_stream(bars, r["timeframe"])
67 + hs = expg.half_spread(client, r["asset"], r["ticker"], ADJ, start, end)
68 + if len(stream) < 150:
69 + continue
70 + item = {"rule": f"R:{r['ticker']}:{r['timeframe']}", "family": "reversion",
71 + "window": label} | expg.sweep(stream, hs)
72 + items.append(item)
73 + needed = {"SPY"} | {p["leader"] for p in ll_pool} | {p["follower"] for p in ll_pool}
74 + grids = {}
75 + for name in sorted(needed):
76 + if name == "ES":
77 + g = rth_day_grids(client.get_bars("futures", "ES", "1min",
78 + "contin_adj_ratio", start, end))
79 + else:
80 + asset = ("etf" if name in ("SPY", "QQQ") or name.startswith("XL") else "stock")
81 + g = rth_day_grids(client.get_bars(asset, name, "1min", ADJ, start, end))
82 + grids[name] = g
83 + day_list = sorted(grids["SPY"].keys())
84 + for p in ll_pool:
85 + if p["leader"] not in grids or p["follower"] not in grids:
86 + continue
87 + stream = expg.leadlag_stream(grids[p["leader"]], grids[p["follower"]],
88 + day_list, p["sign"])
89 + if len(stream) < 150:
90 + continue
91 + traded = p["follower"]
92 + asset = ("futures" if traded == "ES" else
93 + "etf" if traded in ("SPY", "QQQ") or traded.startswith("XL") else "stock")
94 + adj = "contin_adj_ratio" if traded == "ES" else ADJ
95 + hs = expg.half_spread(client, asset, traded, adj, start, end)
96 + item = {"rule": f"L:{p['pair']}:{'+' if p['sign'] > 0 else '-'}",
97 + "family": "leadlag", "window": label} | expg.sweep(stream, hs)
98 + items.append(item)
99 + return items, grids, day_list
100 +
28 101
29 102 def main() -> None:
30 collect_manifest() # embedded in results once implemented
31 raise NotImplementedError("experiment not yet implemented")
103 + run_utc = datetime.now(UTC)
104 + client = HFMarketDataClient()
105 + rev_pool, ll_pool = expg.pool_from_committed_results()
106 + s, e = VALIDATION
107 +
108 + # (a,b) pool on validation
109 + items, grids, day_list = eval_pool_on(client, rev_pool, ll_pool, s, e, "validation")
110 + for it in items:
111 + print(it["rule"], "kappa* =", it.get("kappa_star"))
112 +
113 + # CKX sub-period check (Q-a robustness clause)
114 + ckx_subs = {}
115 + for sub, (ss, ee) in VAL_SUBS.items():
116 + bars = client.get_bars("stock", "CKX", "1day", ADJ, ss, ee)
117 + stream = expg.contrarian_stream(bars, "1day")
118 + hs = expg.half_spread(client, "stock", "CKX", ADJ, ss, ee)
119 + ckx_subs[sub] = expg.sweep(stream, hs) if len(stream) >= 100 else {"n_days": len(stream)}
120 +
121 + # (c) ES->SPY and SPX->SPY fresh xcorr on validation
122 + xcorr_out = {}
123 + spy_mat = expd.day_matrix(grids["SPY"], day_list)
124 + for name in ("ES", "SPX"):
125 + if name == "SPX":
126 + g = rth_day_grids(client.get_bars("index", "SPX", "1min", None, s, e))
127 + else:
128 + g = grids.get("ES") or rth_day_grids(
129 + client.get_bars("futures", "ES", "1min", "contin_adj_ratio", s, e))
130 + mat = expd.day_matrix(g, day_list)
131 + m = expd.analyze_pair(mat[0], mat[1], spy_mat[0], spy_mat[1])
132 + if m:
133 + xcorr_out[f"{name}->SPY"] = {k: m[k] for k in
134 + ("fresh_xcorr", "raw_xcorr", "p_fresh_+1",
135 + "p_fresh_-1", "n_fresh_pairs")}
136 + # ES splice invariance
137 + for adj in ("contin_adj_absolute", "contin_UNadj"):
138 + g = rth_day_grids(client.get_bars("futures", "ES", "1min", adj, s, e))
139 + mat = expd.day_matrix(g, day_list)
140 + m = expd.analyze_pair(mat[0], mat[1], spy_mat[0], spy_mat[1])
141 + if m:
142 + xcorr_out[f"ES[{adj}]->SPY"] = {"fresh_-1": m["fresh_xcorr"]["-1"],
143 + "fresh_+1": m["fresh_xcorr"]["1"]}
144 +
145 + # (d) daily reversal family on validation vs train values
146 + rc = expg.latest(str(REPO_ROOT / "results/expC_reversion_scan/*/results.json"))
147 + train_daily = {c["ticker"]: c for c in rc["cells"]
148 + if c["timeframe"] == "1day" and c["period"] == "2008-2015"}
149 + family = []
150 + for asset, ticker in [("stock", t) for t in LIQUID_STOCK] + \
151 + [("etf", t) for t in LIQUID_ETF]:
152 + bars = client.get_bars(asset, ticker, "1day", ADJ, s, e)
153 + if len(bars) < 500:
154 + continue
155 + closes = np.array([b["close"] for b in bars])
156 + r = np.diff(np.log(closes))
157 + a = ac1(r)
158 + vr30 = variance_ratio(r, 30)
159 + o = np.array([b["open"] for b in bars])
160 + h = np.array([b["high"] for b in bars])
161 + lo = np.array([b["low"] for b in bars])
162 + c = closes
163 + sp = edge_spread(o, h, lo, c)
164 + var = r.var()
165 + bounce = -(sp**2) / 4 / var if np.isfinite(sp) and var > 0 else 0.0
166 + boot = moving_block_bootstrap(r, ac1, block=21, n_boot=300, seed=42)
167 + lo_ci, hi_ci = percentile_ci(boot - bounce)
168 + tr = train_daily.get(ticker, {})
169 + family.append({
170 + "ticker": ticker,
171 + "val_ac1": round(a, 5), "val_excess_ac1": round(a - bounce, 5),
172 + "val_excess_ci95": [round(lo_ci, 5), round(hi_ci, 5)],
173 + "val_p_excess": bootstrap_pvalue(boot - bounce, 0.0),
174 + "val_vr30_excess": round(vr30 - (1 + 2 * a * (1 - 1 / 30)), 4),
175 + "train_excess_ac1": tr.get("excess_ac1"),
176 + "train_vr30_excess": round(tr["vr30"] - (1 + 2 * tr["ac1"] * (1 - 1 / 30)), 4)
177 + if tr else None,
178 + })
179 +
180 + ck = {str(k): [i["rule"] for i in items if i["net"].get(str(k), {}).get("positive")
181 + and i["net"].get(str(k), {}).get("ci95_bp", [1])[0] > 0]
182 + for k in (0.25, 1.0)}
183 + med_val = float(np.median([f["val_vr30_excess"] for f in family]))
184 + med_train = float(np.median([f["train_vr30_excess"] for f in family
185 + if f["train_vr30_excess"] is not None]))
186 + summary = {
187 + "pool_evaluated": len(items),
188 + "net_pos_ci_at": ck,
189 + "ckx_validation": next((i for i in items if i["rule"].startswith("R:CKX")), None),
190 + "ckx_subperiods": ckx_subs,
191 + "es_spy_val_fresh_-1": xcorr_out.get("ES->SPY", {}).get("fresh_xcorr", {}).get("-1"),
192 + "es_spy_val_p_-1": xcorr_out.get("ES->SPY", {}).get("p_fresh_-1"),
193 + "spx_spy_val_fresh_-1": xcorr_out.get("SPX->SPY", {}).get("fresh_xcorr", {}).get("-1"),
194 + "daily_family_median_vr30_excess": {"train_2008_2015": round(med_train, 4),
195 + "validation": round(med_val, 4)},
196 + }
197 +
198 + results = {
199 + "experiment": "expH_oos_stability",
200 + "run_utc": run_utc.isoformat(),
201 + "author": "Simon-Pierre Boucher",
202 + "contact": "contact@spboucher.ai",
203 + "data_source": "hfmarketdata.io",
204 + "confidence_level": "evaluates Level-1/2 claims on the validation split",
205 + "protocol": {"validation": VALIDATION, "subs": VAL_SUBS,
206 + "holdout_untouched": True},
207 + "pool_items": items,
208 + "xcorr": xcorr_out,
209 + "daily_family": family,
210 + "summary": summary,
211 + "client_stats": vars(client.stats) | {"refreshes": list(client.stats.refreshes)},
212 + "manifest": collect_manifest(),
213 + }
214 + out_dir = REPO_ROOT / "results" / "expH_oos_stability" / run_utc.strftime("%Y%m%dT%H%M%SZ")
215 + out_dir.mkdir(parents=True)
216 + (out_dir / "results.json").write_text(
217 + json.dumps(expg.sanitize(results), indent=2, allow_nan=False) + "\n")
218 + print(f"\nwrote {out_dir.relative_to(REPO_ROOT)}/results.json")
219 + print(json.dumps(expg.sanitize(summary), indent=1))
32 220
33 221
34 222 if __name__ == "__main__":
modified experiments/micro/expH_oos_stability/hypothesis.md +60 −13
@@ -5,34 +5,81 @@ author: Simon-Pierre Boucher
5 5 contact: contact@spboucher.ai
6 6 data_source: hfmarketdata.io
7 7 created: 2026-08-12
8 status: draft
8 +modified: 2026-08-12
9 +status: final
9 10 ---
10 11
11 12 # Hypothesis — expH_oos_stability
12 13
14 +*Pre-specified 2026-08-12 before any validation data was touched. The
15 +VALIDATION split (2016-01-01 → 2022-01-01, frozen in `data/universe.py`
16 +before the first scan) is opened HERE for the first time. The HOLDOUT
17 +(2022→) stays sealed — it is touched once, only to confirm whatever
18 +survives this experiment.*
19 +
13 20 ```text
14 21 Hypothesis
15 <what we believe and why — pre-specified BEFORE looking at results>
22 + Four pre-registered questions on the untouched validation split:
23 + (Q-a) CKX 1day — the lone kappa=0.25 cost survivor — does NOT replicate
24 + (skeptical prior: sparse-name estimation artifact).
25 + (Q-b) The NEGATIVE finding replicates: zero intraday rules from the
26 + expG pool have positive net mean at kappa=0.25 on validation.
27 + (Q-c) ES->SPY basis effect (fresh corr(SPY_{t-1}, ES_t) = -0.032 in
28 + train) replicates in sign with a small day-block bootstrap p,
29 + and remains splice-invariant.
30 + (Q-d) The daily 2008-2015 mega-cap reversal family was crisis-regime:
31 + its VR30 excess and excess AC1 SHRINK toward zero on validation.
16 32
17 33 Falsification criterion
18 <the concrete measurable outcome that would prove this wrong>
34 + (Q-a) falsified (CKX real) if net@0.25 > 0 with bootstrap CI excluding
35 + 0 on validation AND in both validation sub-periods. (Q-b) falsified if
36 + ANY intraday rule has net@0.25 CI above 0. (Q-c) falsified if the sign
37 + flips or splices disagree. (Q-d) falsified if the family's median VR30
38 + excess is as negative or more negative than 2008-2015 (regime story
39 + wrong -> persistent structure, escalate to holdout).
19 40
20 41 Artifact null(s)
21 <the fake-signal baseline(s) this must beat: bounce / staleness /
22 non-synchronous timestamps / permuted calendar / random walk>
42 + Inherited from the scans: EDGE-based costs (expG model), MA(1)-consistent
43 + VR null (expC), both-fresh synchronization (expD). No new nulls.
23 44
24 Method
25 <exact procedure, universe, split (train/validation/holdout), seeds,
26 number of hypotheses tested, correction applied>
45 +Method (pre-declared)
46 + Window: VALIDATION 2016-2021; sub-periods 2016-2018 / 2019-2021.
47 + (a,b) The expG pool (31 rules, rebuilt mechanically) re-evaluated with
48 + identical machinery: gross, kappa*, net@{0.25, 1.0} with 21-day-block
49 + bootstrap CIs (n=300, seed 42).
50 + (c) expD machinery on 2016-2021: ES(3 splices)->SPY and SPX->SPY fresh
51 + xcorr +/-3, day-block bootstrap p (n=200, seed 42).
52 + (d) Liquid-12 daily cells on validation: AC1, VR30, MA(1) excess, EDGE
53 + excess AC1 — side by side with their 2008-2015 train values.
54 + Everything through the cached client; results sanitized JSON.
27 55
28 56 Result
29 <filled after the run: effect size, bootstrap CIs, corrected p-values,
30 OOS status, cost-adjusted effect, credits used>
57 + Run 20260812T072518Z (418 requests, 18.8M rows — the validation window's
58 + first and only download). (Q-b) REPLICATES: zero rules net-positive with
59 + CI>0 at kappa=1.0; at kappa=0.25 only CKX. (Q-a) CKX fails its
60 + pre-registered robustness clause: validation overall net@0.25 = +16.3
61 + bp/day CI [1.4, 26.5], BUT 2019-2021 sub-period CI covers zero
62 + ([-19.5, +22.0]) and kappa* decays 0.445 -> 0.263 within validation —
63 + NOT confirmed, NOT escalated to the holdout. (Q-c) ES->SPY FAILS to
64 + replicate: fresh corr = +0.003 (p=0.68), sign flipped, all three splices
65 + agree. (Q-d) regime story CONFIRMED: the daily family's median VR30
66 + excess goes -0.143 (train 2008-15) -> +0.023 (validation); the crisis
67 + reversal vanished OOS (a few single names retain small negative excess
68 + AC1: MSFT, NVDA, QQQ — noted for the record, not promoted).
31 69
32 70 Interpretation
33 <what the numbers mean, WITH confidence level (0-3); alternative
34 explanations considered — artifact first>
71 + The full ladder closes with the charter's anticipated honest outcome:
72 + NOTHING in the searched universe survives artifact nulls + search
73 + correction + costs + out-of-sample validation. The negative finding
74 + ("short-horizon anomalies in open bar data do not survive costs, and the
75 + gross survivors do not replicate") is itself corrected, OOS-confirmed
76 + and robust -> Level 2; it becomes the atlas's first entry, together with
77 + the SPX->SPY artifact demonstration (present in train +0.132 AND
78 + validation +0.080 — the artifact replicates even though the "anomalies"
79 + do not, which is exactly the point). The sealed holdout (2022->) is NOT
80 + spent on a dead pool; it remains sealed for any future Level-2 claim.
35 81
36 82 Next experiment
37 <the most informative follow-up given this result>
83 + Atlas entries (via tools/new_finding.py) for whatever this settles;
84 + anything that PASSES here goes to the sealed holdout exactly once.
38 85 ```
modified research/LOG.md +21 −0
@@ -247,3 +247,24 @@ correction (expF) + costs (expG), none substitutable.
247 247 2008-15 reversal family (for the record), and the negative finding itself
248 248 ("nothing intraday survives costs") — candidate for the atlas's first
249 249 entries.
250 +
251 +## 2026-08-12 10:05 ET — expH complete: the ladder closes; first atlas entries
252 +
253 +**Question.** Do the train-split survivors and the negative finding hold on
254 +the untouched validation split (2016-2021)?
255 +
256 +**Experiment.** expH — validation opened for the first time (418 requests,
257 +18.8M rows). Machinery imported from committed expC/expD/expG benchmarks.
258 +
259 +**Result.** Negative finding REPLICATES (0 net survivors at kappa=1; only
260 +CKX at 0.25). CKX fails its pre-registered two-sub-period clause (2019-21
261 +CI covers 0; kappa* decays 0.445->0.263) — not confirmed, holdout NOT
262 +spent. ES->SPY flips sign (+0.003, p=0.68). Daily reversal family:
263 +VR30 excess -0.143 -> +0.023 — crisis-regime confirmed. SPX->SPY artifact
264 +persists (+0.080): artifacts replicate, "alphas" do not.
265 +
266 +**Decision.** Atlas receives its first entries: F001 (Level 2 negative
267 +finding: nothing in the searched universe survives the full ladder) and
268 +F002 (Level 2 artifact demonstration: the SPX->SPY lead is content
269 +staleness). Holdout stays sealed. Publications tab launched with P001
270 +(Part I, train results); Part II will carry these OOS verdicts.
added research/publications/P001_artifact_frontier_part1.md +204 −0
@@ -0,0 +1,204 @@
1 +---
2 +project: anomaly-atlas
3 +document: P001 — The Artifact Frontier, Part I
4 +author: Simon-Pierre Boucher
5 +contact: contact@spboucher.ai
6 +data_source: hfmarketdata.io
7 +created: 2026-08-12
8 +status: published
9 +pub_id: P001
10 +version: 1
11 +title: "The Artifact Frontier: What Survives Honest Testing in Open High-Frequency Market Data?"
12 +subtitle: "Part I — Methods, artifact taxonomy, and train-period results (2000–2016)"
13 +abstract: "We systematically scan open 1-minute-to-daily market data (hfmarketdata.io, sole source) for short-horizon mean-reversion, lead-lag, and calendar anomalies, under a pre-registered protocol: every detector must first pass a synthetic-data gate; every scan runs against measured artifact nulls; hypothesis budgets are declared before testing; and validation layers (multiple-testing correction, transaction costs) are applied in sequence. On the 2000–2016 train split, 62% of the 372 searched rules are naively 'significant' and 18% survive Hansen's SPA — yet the survivors carry physically implausible paper Sharpes, and a deliberately included known artifact (the SPX→SPY 'lead') survives statistical correction unharmed. The cost layer then eliminates essentially everything: the median surviving rule breaks even at 1.1% of one half-spread per trade, and zero intraday rules survive paying the full half-spread. The calendar family — including turn-of-month, the last published survivor — dies against a permuted-calendar null with an 8-test budget. Our principal positive contributions are a measured artifact taxonomy for this dataset and a demonstrated three-layer validation doctrine: artifact nulls, search correction, and costs are independent filters, and no one of them substitutes for another. Out-of-sample confirmation on the untouched validation split is reported in Part II."
14 +---
15 +
16 +# The Artifact Frontier — Part I
17 +
18 +*Every number in this document regenerates from committed `results.json`
19 +files, and every figure below is rendered live from them by the site. The
20 +[research log](/doc/research/LOG.md) is the audit trail; the
21 +[charter](/doc/CLAUDE.md) is the pre-registered protocol.*
22 +
23 +## 1. Question and doctrine
24 +
25 +Given only open high-frequency market data — 1-minute to daily bars, no
26 +quotes — which statistical regularities are *real* (reproducible
27 +out-of-sample, robust to artifacts, economically nonzero after costs), and
28 +which are plumbing? The project's doctrine, stated before any data was
29 +touched: **every candidate anomaly is an artifact until proven otherwise;
30 +in-sample results are never findings; negative results are first-class.**
31 +
32 +Three design rules operationalize this:
33 +
34 +1. **Test the tests.** No detector touches real data before passing a
35 + synthetic gate: it must find *nothing* in a pure random walk, recover
36 + planted effects, and flag a pure bid-ask-bounce series as artifact.
37 + The gate is not ceremonial — it caught two real bugs before they could
38 + contaminate results (a variance-ratio estimator reading ~1/q on random
39 + walks, and an end-freshness-only synchronization mask that silently
40 + attenuated correlations via the Epps mechanism).
41 +2. **Pre-registration.** Universes, time splits (train 2000–2016 /
42 + validation 2016–2021 / sealed holdout 2022→), hypothesis budgets (22,
43 + declared in [research_gaps](/doc/research/research_gaps.md)), and every
44 + experiment's falsification criterion were frozen in writing before the
45 + corresponding run.
46 +3. **A frozen cache as the reproducibility anchor.** All data flows through
47 + one client that never silently refetches; every response is indexed in a
48 + committed data manifest. Two of the seven experiments below ran with
49 + **zero network requests**, entirely from the frozen cache.
50 +
51 +## 2. The data, measured
52 +
53 +Experiment A established empirically what the source actually provides:
54 +true 1-minute bars for ~7,700 stocks and ~5,200 ETFs from January 2000
55 +(futures and indices from 2008, FX from 2010, crypto from 2013), plus daily
56 +options chains with quotes and Greeks over 67 quarters. Load-bearing facts
57 +that the documentation does not state: timestamps are US-Eastern wall-clock,
58 +bar-start labeled; **bars exist only where trades occurred** (no zero-volume
59 +placeholders — an illiquid name printed 38 bars in a full session); daily
60 +bars carry the official auction close and consolidated volume, both absent
61 +from the 1-minute series; and dividend-adjusted prices are re-based to the
62 +vendor's build date, so adjusted series are not point-in-time stable.
63 +Responses are hard-capped at 50,000 rows. Full profile:
64 +[data_source_profile](/doc/research/data_source_profile.md).
65 +
66 +## 3. The artifact taxonomy, with magnitudes
67 +
68 +The project's first deliverable is a catalogue of the mechanisms in *this
69 +dataset* that manufacture fake anomalies — each with detection code and a
70 +measured magnitude ([artifact_taxonomy](/doc/research/artifact_taxonomy.md)).
71 +Experiment B measured the key ones on a pre-specified 42-ticker universe
72 +(Q1 2024, RTH 1-minute):
73 +
74 +{{figure:expB_artifact_baselines}}
75 +
76 +Highlights: bid-ask bounce alone produces AC1 of −0.23 and VR(30) of 0.55
77 +in the stalest liquidity tercile with zero planted economics; LOCF joins
78 +make SPY spuriously "lead" mid-staleness names (+0.047 at +1 min, Spearman
79 +vs staleness +0.43) while *diluting* the lead of ultra-stale names — the
80 +artifact is non-monotone; and the SPX index print lags SPY by one minute
81 +(+0.065 at 0.965 contemporaneous correlation) — a Fisher (1966) effect,
82 +measured live. The intraday profile (Experiment E) adds the time-of-day
83 +dimension: volatility is U-shaped (6.6 bp at the open, 2.4 midday, 2.9 at
84 +the close) while the effective spread declines monotonically (2.8 → 1.2 bp)
85 +— any "first-30-minutes" return claim fights 2–3× the midday artifact
86 +level.
87 +
88 +## 4. The scans (train split only, Level 0 by construction)
89 +
90 +**Mean-reversion (Experiment C).** 127 cells (ticker × timeframe ×
91 +sub-period), each tested against a bounce null and FDR-corrected. The
92 +scan's most valuable output was about the null itself: a daily effective
93 +spread combined with pure Roll alternation predicts *impossible* intraday
94 +autocorrelations (−3 to −27), because consecutive intraday closes rarely
95 +flip sides. The corrected, variance-consistent triage — an MA(1) null that
96 +absorbs *all* lag-1 effects — leaves 14 cells of genuine multi-lag
97 +reversion, concentrated in a daily 2008–2015 mega-cap/index family
98 +(XOM excess AC1 −0.13, SPY −0.055, both FDR) and a few 1-minute cells
99 +(JPM −0.24 VR-excess at the 30-minute horizon).
100 +
101 +{{figure:expC_reversion_scan}}
102 +
103 +**Lead-lag (Experiment D).** 49 pairs, two windows, with the raw-LOCF
104 +versus both-fresh comparison built in — so the non-synchronicity artifact
105 +is *measured*, not consumed. In 2006–2007, minute-scale market→component
106 +diffusion was real on synchronized samples (SPY led every sector ETF by
107 ++0.07..+0.15). By 2014–2015 it had collapsed to ±0.05 — the cleanest decay
108 +measurement of the project. Two structural facts survive synchronization:
109 +a splice-invariant ES↔SPY cross-serial effect (−0.032, identical across
110 +all three futures adjustments), and the SPX→SPY "lead" (+0.132) — which
111 +survives *because synchronizing print times cannot fix a computed index*.
112 +
113 +{{figure:expD_leadlag_scan}}
114 +
115 +**Calendar (Experiment E).** Eight pre-declared tests (day-of-week ×5,
116 +turn-of-month, pre/post-holiday) on SPY against a within-year
117 +permuted-calendar null with a family-wise max-statistic. **Nothing
118 +survives** (best marginal p = 0.24; family-wise p ≥ 0.93 everywhere).
119 +Turn-of-month — the last survivor in the published literature as of 2006 —
120 +fails and decays inside the train period (+7.9 bp in 2000–2007 → +1.6 bp
121 +in 2008–2015). Both pipeline controls behaved: the Monday effect stayed
122 +dead, and the volatility U-shape was strongly present.
123 +
124 +{{figure:expE_calendar_scan}}
125 +
126 +## 5. The survival curve: statistical correction is not artifact correction
127 +
128 +Experiment F pushed *everything the scans searched* — 372 signed rules —
129 +through the correction battery: naive t-tests, Benjamini–Hochberg FDR,
130 +White's Reality Check and Hansen's SPA over stationary bootstraps, and the
131 +Deflated Sharpe Ratio.
132 +
133 +{{figure:expF_multiple_testing}}
134 +
135 +The result that matters is not the 18% SPA survival rate — it is *what*
136 +survives: rules with paper Sharpes of 10–31 annualized, physically
137 +implausible, dominated by bounce harvesting (a contrarian rule mechanically
138 +earns −autocov₁ on paper, which is precisely the spread it would pay in
139 +reality). The canary proves the point: the SPX→SPY rule — an artifact we
140 +had already measured twice — **passes SPA comfortably**. Statistical
141 +correction corrects for *search*; it is structurally blind to *mechanism*.
142 +
143 +## 6. The cost frontier closes the loop
144 +
145 +Experiment G re-priced the double-filtered pool (rules that beat both the
146 +artifact nulls and the search correction; 31 rules) under a declared cost
147 +model: net = gross − κ · (EDGE half-spread) · turnover, κ swept from 0 to 2.
148 +
149 +{{figure:expG_cost_frontier}}
150 +
151 +The median rule breaks even at **κ\* = 0.011** — it captures about 1% of
152 +one half-spread per trade. Three rules survive κ = 0.1 (all in sparse
153 +names), one survives κ = 0.25 (CKX, an ultra-sparse name with a wide, noisy
154 +spread estimate — the classic profile of an estimation artifact, forwarded
155 +to the validation split with a skeptical prior rather than discarded by
156 +hand), and **zero rules — none — survive paying the full half-spread.**
157 +The pre-registered falsification clause ("the costs-kill story fails if any
158 +intraday rule survives κ = 1") did not trigger.
159 +
160 +## 7. What Part I establishes
161 +
162 +1. **A three-layer validation doctrine, demonstrated rather than asserted.**
163 + Artifact nulls, search correction, and transaction costs filter
164 + *different* failure modes; each layer passed things the next one killed.
165 +2. **A measured artifact taxonomy (T1–T7)** for open bar data, with the
166 + magnitudes above and neutralization rules, validated on synthetic ground
167 + truth.
168 +3. **Negative results with teeth**: the calendar family is empty under an
169 + honest budget; minute-scale lead-lag decayed an order of magnitude
170 + between 2006 and 2015; and nothing in the searched universe pays for its
171 + own spread on the train split.
172 +4. **Methodological findings**: spread-based bounce nulls must be
173 + variance-consistent with the target series; synchronization on print
174 + times cannot de-artifact computed indices; LOCF distortion of lead-lag
175 + is non-monotone in staleness.
176 +
177 +## 8. Limitations
178 +
179 +All Part-I numbers are train-split, in-sample by design — their
180 +out-of-sample fate on the untouched 2016–2021 validation split is Part II.
181 +Bar data carries no quotes: costs are estimated (EDGE), not observed.
182 +Holiday-class calendar tests are low-powered (n = 144). The universe is
183 +U.S.-equity-centric; crypto and FX hypotheses await volume-semantics
184 +verification. Capacity is out of scope.
185 +
186 +## 9. Reproducibility
187 +
188 +Everything regenerates from the repository: commit `f59e891` (data profile,
189 +client), `9b6beea` (artifact baselines), `c4977f2` (reversion scan),
190 +`a7f66cb` (lead-lag scan), `b228862` (calendar scan), `7a82cc1` (survival
191 +battery), `881399d` (cost frontier). Each experiment's `results.json`
192 +embeds the hardware manifest and the client's instrumentation; the data
193 +manifest (`data_manifest/index.jsonl`) indexes every API response consumed.
194 +Detector gates: `benchmarks/synthetic/` (29 tests at the time of writing).
195 +
196 +## References
197 +
198 +Key sources (full annotated list with DOIs:
199 +[bibliography](/doc/research/bibliography.md)): Roll (1984); Fisher (1966);
200 +Scholes & Williams (1977); Epps (1979); Lo & MacKinlay (1988, 1990);
201 +Sullivan, Timmermann & White (2001); White (2000); Hansen (2005); Bailey &
202 +López de Prado (2014); Harvey, Liu & Zhu (2016); McLean & Pontiff (2016);
203 +Novy-Marx & Velikov (2016); Chordia, Roll & Subrahmanyam (2005); Ardia,
204 +Guidotti & Kroencke (2024); Chen & Velikov (2022).
added results/expH_oos_stability/20260812T072518Z/results.json +2345 −0
@@ -0,0 +1,2345 @@
1 +{
2 + "experiment": "expH_oos_stability",
3 + "run_utc": "2026-08-12T07:25:18.882297+00:00",
4 + "author": "Simon-Pierre Boucher",
5 + "contact": "contact@spboucher.ai",
6 + "data_source": "hfmarketdata.io",
7 + "confidence_level": "evaluates Level-1/2 claims on the validation split",
8 + "protocol": {
9 + "validation": [
10 + "2016-01-01",
11 + "2022-01-01"
12 + ],
13 + "subs": {
14 + "2016-2018": [
15 + "2016-01-01",
16 + "2019-01-01"
17 + ],
18 + "2019-2021": [
19 + "2019-01-01",
20 + "2022-01-01"
21 + ]
22 + },
23 + "holdout_untouched": true
24 + },
25 + "pool_items": [
26 + {
27 + "rule": "R:AAPL:5min",
28 + "family": "reversion",
29 + "window": "validation",
30 + "n_days": 1511,
31 + "gross_mean_daily_bp": 16.887,
32 + "turnover_per_day": 79.03,
33 + "half_spread_bp": 30.075,
34 + "net": {
35 + "0.0": {
36 + "mean_daily_bp": 16.887,
37 + "ci95_bp": [
38 + 10.779,
39 + 24.33
40 + ],
41 + "positive": true
42 + },
43 + "0.1": {
44 + "mean_daily_bp": -220.789,
45 + "ci95_bp": [
46 + -226.672,
47 + -214.368
48 + ],
49 + "positive": false
50 + },
51 + "0.25": {
52 + "mean_daily_bp": -577.302,
53 + "ci95_bp": [
54 + -583.052,
55 + -571.74
56 + ],
57 + "positive": false
58 + },
59 + "0.5": {
60 + "mean_daily_bp": -1171.49,
61 + "ci95_bp": [
62 + -1177.714,
63 + -1165.659
64 + ],
65 + "positive": false
66 + },
67 + "1.0": {
68 + "mean_daily_bp": -2359.867,
69 + "ci95_bp": [
70 + -2371.474,
71 + -2349.379
72 + ],
73 + "positive": false
74 + },
75 + "2.0": {
76 + "mean_daily_bp": -4736.62,
77 + "ci95_bp": [
78 + -4761.76,
79 + -4713.312
80 + ],
81 + "positive": false
82 + }
83 + },
84 + "kappa_star": 0.0071
85 + },
86 + {
87 + "rule": "R:ATRO:5min",
88 + "family": "reversion",
89 + "window": "validation",
90 + "n_days": 1511,
91 + "gross_mean_daily_bp": 99.152,
92 + "turnover_per_day": 71.36,
93 + "half_spread_bp": 87.644,
94 + "net": {
95 + "0.0": {
96 + "mean_daily_bp": 99.152,
97 + "ci95_bp": [
98 + 75.295,
99 + 122.63
100 + ],
101 + "positive": true
102 + },
103 + "0.1": {
104 + "mean_daily_bp": -526.235,
105 + "ci95_bp": [
106 + -552.061,
107 + -499.892
108 + ],
109 + "positive": false
110 + },
111 + "0.25": {
112 + "mean_daily_bp": -1464.315,
113 + "ci95_bp": [
114 + -1498.913,
115 + -1426.63
116 + ],
117 + "positive": false
118 + },
119 + "0.5": {
120 + "mean_daily_bp": -3027.782,
121 + "ci95_bp": [
122 + -3083.373,
123 + -2959.237
124 + ],
125 + "positive": false
126 + },
127 + "1.0": {
128 + "mean_daily_bp": -6154.716,
129 + "ci95_bp": [
130 + -6255.672,
131 + -6019.502
132 + ],
133 + "positive": false
134 + },
135 + "2.0": {
136 + "mean_daily_bp": -12408.584,
137 + "ci95_bp": [
138 + -12602.257,
139 + -12136.676
140 + ],
141 + "positive": false
142 + }
143 + },
144 + "kappa_star": 0.0159
145 + },
146 + {
147 + "rule": "R:AXDX:30min",
148 + "family": "reversion",
149 + "window": "validation",
150 + "n_days": 1511,
151 + "gross_mean_daily_bp": 8.417,
152 + "turnover_per_day": 12.15,
153 + "half_spread_bp": 84.537,
154 + "net": {
155 + "0.0": {
156 + "mean_daily_bp": 8.417,
157 + "ci95_bp": [
158 + -9.67,
159 + 22.565
160 + ],
161 + "positive": true
162 + },
163 + "0.1": {
164 + "mean_daily_bp": -94.303,
165 + "ci95_bp": [
166 + -111.33,
167 + -81.058
168 + ],
169 + "positive": false
170 + },
171 + "0.25": {
172 + "mean_daily_bp": -248.384,
173 + "ci95_bp": [
174 + -263.413,
175 + -236.143
176 + ],
177 + "positive": false
178 + },
179 + "0.5": {
180 + "mean_daily_bp": -505.185,
181 + "ci95_bp": [
182 + -517.431,
183 + -493.252
184 + ],
185 + "positive": false
186 + },
187 + "1.0": {
188 + "mean_daily_bp": -1018.787,
189 + "ci95_bp": [
190 + -1030.449,
191 + -1007.217
192 + ],
193 + "positive": false
194 + },
195 + "2.0": {
196 + "mean_daily_bp": -2045.992,
197 + "ci95_bp": [
198 + -2064.653,
199 + -2027.568
200 + ],
201 + "positive": false
202 + }
203 + },
204 + "kappa_star": 0.0082
205 + },
206 + {
207 + "rule": "R:BKE:5min",
208 + "family": "reversion",
209 + "window": "validation",
210 + "n_days": 1511,
211 + "gross_mean_daily_bp": 127.725,
212 + "turnover_per_day": 78.64,
213 + "half_spread_bp": 17.524,
214 + "net": {
215 + "0.0": {
216 + "mean_daily_bp": 127.725,
217 + "ci95_bp": [
218 + 102.465,
219 + 149.816
220 + ],
221 + "positive": true
222 + },
223 + "0.1": {
224 + "mean_daily_bp": -10.085,
225 + "ci95_bp": [
226 + -34.743,
227 + 11.874
228 + ],
229 + "positive": false
230 + },
231 + "0.25": {
232 + "mean_daily_bp": -216.801,
233 + "ci95_bp": [
234 + -240.454,
235 + -194.426
236 + ],
237 + "positive": false
238 + },
239 + "0.5": {
240 + "mean_daily_bp": -561.326,
241 + "ci95_bp": [
242 + -585.517,
243 + -539.141
244 + ],
245 + "positive": false
246 + },
247 + "1.0": {
248 + "mean_daily_bp": -1250.378,
249 + "ci95_bp": [
250 + -1275.029,
251 + -1227.162
252 + ],
253 + "positive": false
254 + },
255 + "2.0": {
256 + "mean_daily_bp": -2628.481,
257 + "ci95_bp": [
258 + -2653.983,
259 + -2599.22
260 + ],
261 + "positive": false
262 + }
263 + },
264 + "kappa_star": 0.0927
265 + },
266 + {
267 + "rule": "R:CKX:1day",
268 + "family": "reversion",
269 + "window": "validation",
270 + "n_days": 929,
271 + "gross_mean_daily_bp": 62.436,
272 + "turnover_per_day": 1.16,
273 + "half_spread_bp": 159.573,
274 + "net": {
275 + "0.0": {
276 + "mean_daily_bp": 62.436,
277 + "ci95_bp": [
278 + 45.394,
279 + 73.29
280 + ],
281 + "positive": true
282 + },
283 + "0.1": {
284 + "mean_daily_bp": 43.988,
285 + "ci95_bp": [
286 + 27.68,
287 + 54.408
288 + ],
289 + "positive": true
290 + },
291 + "0.25": {
292 + "mean_daily_bp": 16.316,
293 + "ci95_bp": [
294 + 1.377,
295 + 26.537
296 + ],
297 + "positive": true
298 + },
299 + "0.5": {
300 + "mean_daily_bp": -29.804,
301 + "ci95_bp": [
302 + -43.857,
303 + -19.41
304 + ],
305 + "positive": false
306 + },
307 + "1.0": {
308 + "mean_daily_bp": -122.043,
309 + "ci95_bp": [
310 + -133.968,
311 + -112.259
312 + ],
313 + "positive": false
314 + },
315 + "2.0": {
316 + "mean_daily_bp": -306.523,
317 + "ci95_bp": [
318 + -319.438,
319 + -293.928
320 + ],
321 + "positive": false
322 + }
323 + },
324 + "kappa_star": 0.3384
325 + },
326 + {
327 + "rule": "R:HTD:5min",
328 + "family": "reversion",
329 + "window": "validation",
330 + "n_days": 1511,
331 + "gross_mean_daily_bp": 120.923,
332 + "turnover_per_day": 61.62,
333 + "half_spread_bp": 37.295,
334 + "net": {
335 + "0.0": {
336 + "mean_daily_bp": 120.923,
337 + "ci95_bp": [
338 + 108.91,
339 + 134.305
340 + ],
341 + "positive": true
342 + },
343 + "0.1": {
344 + "mean_daily_bp": -108.902,
345 + "ci95_bp": [
346 + -120.173,
347 + -96.595
348 + ],
349 + "positive": false
350 + },
351 + "0.25": {
352 + "mean_daily_bp": -453.64,
353 + "ci95_bp": [
354 + -467.109,
355 + -440.772
356 + ],
357 + "positive": false
358 + },
359 + "0.5": {
360 + "mean_daily_bp": -1028.202,
361 + "ci95_bp": [
362 + -1052.041,
363 + -1005.521
364 + ],
365 + "positive": false
366 + },
367 + "1.0": {
368 + "mean_daily_bp": -2177.328,
369 + "ci95_bp": [
370 + -2225.636,
371 + -2132.282
372 + ],
373 + "positive": false
374 + },
375 + "2.0": {
376 + "mean_daily_bp": -4475.578,
377 + "ci95_bp": [
378 + -4576.018,
379 + -4385.321
380 + ],
381 + "positive": false
382 + }
383 + },
384 + "kappa_star": 0.0526
385 + },
386 + {
387 + "rule": "R:ICUI:5min",
388 + "family": "reversion",
389 + "window": "validation",
390 + "n_days": 1511,
391 + "gross_mean_daily_bp": 98.149,
392 + "turnover_per_day": 69.98,
393 + "half_spread_bp": 30.365,
394 + "net": {
395 + "0.0": {
396 + "mean_daily_bp": 98.149,
397 + "ci95_bp": [
398 + 78.406,
399 + 118.702
400 + ],
401 + "positive": true
402 + },
403 + "0.1": {
404 + "mean_daily_bp": -114.342,
405 + "ci95_bp": [
406 + -133.512,
407 + -95.042
408 + ],
409 + "positive": false
410 + },
411 + "0.25": {
412 + "mean_daily_bp": -433.079,
413 + "ci95_bp": [
414 + -453.637,
415 + -413.52
416 + ],
417 + "positive": false
418 + },
419 + "0.5": {
420 + "mean_daily_bp": -964.307,
421 + "ci95_bp": [
422 + -988.661,
423 + -942.556
424 + ],
425 + "positive": false
426 + },
427 + "1.0": {
428 + "mean_daily_bp": -2026.763,
429 + "ci95_bp": [
430 + -2067.952,
431 + -1993.847
432 + ],
433 + "positive": false
434 + },
435 + "2.0": {
436 + "mean_daily_bp": -4151.675,
437 + "ci95_bp": [
438 + -4233.811,
439 + -4091.305
440 + ],
441 + "positive": false
442 + }
443 + },
444 + "kappa_star": 0.0462
445 + },
446 + {
447 + "rule": "R:JPM:1min",
448 + "family": "reversion",
449 + "window": "validation",
450 + "n_days": 1511,
451 + "gross_mean_daily_bp": 16.858,
452 + "turnover_per_day": 390.31,
453 + "half_spread_bp": 29.302,
454 + "net": {
455 + "0.0": {
456 + "mean_daily_bp": 16.858,
457 + "ci95_bp": [
458 + 4.797,
459 + 30.418
460 + ],
461 + "positive": true
462 + },
463 + "0.1": {
464 + "mean_daily_bp": -1126.816,
465 + "ci95_bp": [
466 + -1136.973,
467 + -1117.659
468 + ],
469 + "positive": false
470 + },
471 + "0.25": {
472 + "mean_daily_bp": -2842.326,
473 + "ci95_bp": [
474 + -2851.822,
475 + -2833.858
476 + ],
477 + "positive": false
478 + },
479 + "0.5": {
480 + "mean_daily_bp": -5701.51,
481 + "ci95_bp": [
482 + -5718.926,
483 + -5684.177
484 + ],
485 + "positive": false
486 + },
487 + "1.0": {
488 + "mean_daily_bp": -11419.878,
489 + "ci95_bp": [
490 + -11458.005,
491 + -11379.344
492 + ],
493 + "positive": false
494 + },
495 + "2.0": {
496 + "mean_daily_bp": -22856.614,
497 + "ci95_bp": [
498 + -22944.699,
499 + -22769.311
500 + ],
501 + "positive": false
502 + }
503 + },
504 + "kappa_star": 0.0015
505 + },
506 + {
507 + "rule": "R:MSFT:5min",
508 + "family": "reversion",
509 + "window": "validation",
510 + "n_days": 1511,
511 + "gross_mean_daily_bp": 14.113,
512 + "turnover_per_day": 78.22,
513 + "half_spread_bp": 33.064,
514 + "net": {
515 + "0.0": {
516 + "mean_daily_bp": 14.113,
517 + "ci95_bp": [
518 + 9.293,
519 + 20.053
520 + ],
521 + "positive": true
522 + },
523 + "0.1": {
524 + "mean_daily_bp": -244.512,
525 + "ci95_bp": [
526 + -249.289,
527 + -239.382
528 + ],
529 + "positive": false
530 + },
531 + "0.25": {
532 + "mean_daily_bp": -632.45,
533 + "ci95_bp": [
534 + -637.525,
535 + -628.007
536 + ],
537 + "positive": false
538 + },
539 + "0.5": {
540 + "mean_daily_bp": -1279.012,
541 + "ci95_bp": [
542 + -1285.136,
543 + -1272.384
544 + ],
545 + "positive": false
546 + },
547 + "1.0": {
548 + "mean_daily_bp": -2572.137,
549 + "ci95_bp": [
550 + -2584.598,
551 + -2560.1
552 + ],
553 + "positive": false
554 + },
555 + "2.0": {
556 + "mean_daily_bp": -5158.386,
557 + "ci95_bp": [
558 + -5184.338,
559 + -5133.554
560 + ],
561 + "positive": false
562 + }
563 + },
564 + "kappa_star": 0.0055
565 + },
566 + {
567 + "rule": "R:NVDA:1min",
568 + "family": "reversion",
569 + "window": "validation",
570 + "n_days": 1511,
571 + "gross_mean_daily_bp": 9.252,
572 + "turnover_per_day": 393.33,
573 + "half_spread_bp": 36.475,
574 + "net": {
575 + "0.0": {
576 + "mean_daily_bp": 9.252,
577 + "ci95_bp": [
578 + -8.75,
579 + 26.121
580 + ],
581 + "positive": true
582 + },
583 + "0.1": {
584 + "mean_daily_bp": -1425.416,
585 + "ci95_bp": [
586 + -1439.309,
587 + -1412.155
588 + ],
589 + "positive": false
590 + },
591 + "0.25": {
592 + "mean_daily_bp": -3577.417,
593 + "ci95_bp": [
594 + -3588.885,
595 + -3566.732
596 + ],
597 + "positive": false
598 + },
599 + "0.5": {
600 + "mean_daily_bp": -7164.085,
601 + "ci95_bp": [
602 + -7187.488,
603 + -7138.019
604 + ],
605 + "positive": false
606 + },
607 + "1.0": {
608 + "mean_daily_bp": -14337.422,
609 + "ci95_bp": [
610 + -14396.917,
611 + -14273.467
612 + ],
613 + "positive": false
614 + },
615 + "2.0": {
616 + "mean_daily_bp": -28684.095,
617 + "ci95_bp": [
618 + -28811.032,
619 + -28546.169
620 + ],
621 + "positive": false
622 + }
623 + },
624 + "kappa_star": 0.0006
625 + },
626 + {
627 + "rule": "R:SLF:5min",
628 + "family": "reversion",
629 + "window": "validation",
630 + "n_days": 1511,
631 + "gross_mean_daily_bp": 3.935,
632 + "turnover_per_day": 76.31,
633 + "half_spread_bp": 13.435,
634 + "net": {
635 + "0.0": {
636 + "mean_daily_bp": 3.935,
637 + "ci95_bp": [
638 + -1.626,
639 + 9.481
640 + ],
641 + "positive": true
642 + },
643 + "0.1": {
644 + "mean_daily_bp": -98.588,
645 + "ci95_bp": [
646 + -103.628,
647 + -93.382
648 + ],
649 + "positive": false
650 + },
651 + "0.25": {
652 + "mean_daily_bp": -252.373,
653 + "ci95_bp": [
654 + -256.959,
655 + -247.619
656 + ],
657 + "positive": false
658 + },
659 + "0.5": {
660 + "mean_daily_bp": -508.681,
661 + "ci95_bp": [
662 + -512.409,
663 + -504.682
664 + ],
665 + "positive": false
666 + },
667 + "1.0": {
668 + "mean_daily_bp": -1021.297,
669 + "ci95_bp": [
670 + -1025.055,
671 + -1016.638
672 + ],
673 + "positive": false
674 + },
675 + "2.0": {
676 + "mean_daily_bp": -2046.528,
677 + "ci95_bp": [
678 + -2054.618,
679 + -2036.507
680 + ],
681 + "positive": false
682 + }
683 + },
684 + "kappa_star": 0.0038
685 + },
686 + {
687 + "rule": "R:XOM:5min",
688 + "family": "reversion",
689 + "window": "validation",
690 + "n_days": 1511,
691 + "gross_mean_daily_bp": 9.662,
692 + "turnover_per_day": 77.8,
693 + "half_spread_bp": 24.553,
694 + "net": {
695 + "0.0": {
696 + "mean_daily_bp": 9.662,
697 + "ci95_bp": [
698 + 2.07,
699 + 16.364
700 + ],
701 + "positive": true
702 + },
703 + "0.1": {
704 + "mean_daily_bp": -181.366,
705 + "ci95_bp": [
706 + -188.765,
707 + -175.228
708 + ],
709 + "positive": false
710 + },
711 + "0.25": {
712 + "mean_daily_bp": -467.908,
713 + "ci95_bp": [
714 + -475.103,
715 + -462.418
716 + ],
717 + "positive": false
718 + },
719 + "0.5": {
720 + "mean_daily_bp": -945.478,
721 + "ci95_bp": [
722 + -952.818,
723 + -939.41
724 + ],
725 + "positive": false
726 + },
727 + "1.0": {
728 + "mean_daily_bp": -1900.617,
729 + "ci95_bp": [
730 + -1910.294,
731 + -1890.522
732 + ],
733 + "positive": false
734 + },
735 + "2.0": {
736 + "mean_daily_bp": -3810.895,
737 + "ci95_bp": [
738 + -3829.068,
739 + -3790.707
740 + ],
741 + "positive": false
742 + }
743 + },
744 + "kappa_star": 0.0051
745 + },
746 + {
747 + "rule": "L:SPY->MSFT:-",
748 + "family": "leadlag",
749 + "window": "validation",
750 + "n_days": 1511,
751 + "gross_mean_daily_bp": -16.239,
752 + "turnover_per_day": 391.63,
753 + "half_spread_bp": 33.064,
754 + "net": {
755 + "0.0": {
756 + "mean_daily_bp": -16.239,
757 + "ci95_bp": [
758 + -27.6,
759 + -3.509
760 + ],
761 + "positive": false
762 + },
763 + "0.1": {
764 + "mean_daily_bp": -1311.11,
765 + "ci95_bp": [
766 + -1321.341,
767 + -1301.524
768 + ],
769 + "positive": false
770 + },
771 + "0.25": {
772 + "mean_daily_bp": -3253.416,
773 + "ci95_bp": [
774 + -3268.489,
775 + -3238.441
776 + ],
777 + "positive": false
778 + },
779 + "0.5": {
780 + "mean_daily_bp": -6490.593,
781 + "ci95_bp": [
782 + -6522.088,
783 + -6458.847
784 + ],
785 + "positive": false
786 + },
787 + "1.0": {
788 + "mean_daily_bp": -12964.947,
789 + "ci95_bp": [
790 + -13036.354,
791 + -12896.285
792 + ],
793 + "positive": false
794 + },
795 + "2.0": {
796 + "mean_daily_bp": -25913.654,
797 + "ci95_bp": [
798 + -26064.064,
799 + -25770.789
800 + ],
801 + "positive": false
802 + }
803 + },
804 + "kappa_star": -0.0013
805 + },
806 + {
807 + "rule": "L:SPY->NVDA:+",
808 + "family": "leadlag",
809 + "window": "validation",
810 + "n_days": 1511,
811 + "gross_mean_daily_bp": 48.89,
812 + "turnover_per_day": 391.66,
813 + "half_spread_bp": 36.475,
814 + "net": {
815 + "0.0": {
816 + "mean_daily_bp": 48.89,
817 + "ci95_bp": [
818 + 30.031,
819 + 66.175
820 + ],
821 + "positive": true
822 + },
823 + "0.1": {
824 + "mean_daily_bp": -1379.684,
825 + "ci95_bp": [
826 + -1404.844,
827 + -1356.04
828 + ],
829 + "positive": false
830 + },
831 + "0.25": {
832 + "mean_daily_bp": -3522.546,
833 + "ci95_bp": [
834 + -3559.594,
835 + -3486.727
836 + ],
837 + "positive": false
838 + },
839 + "0.5": {
840 + "mean_daily_bp": -7093.982,
841 + "ci95_bp": [
842 + -7151.822,
843 + -7039.631
844 + ],
845 + "positive": false
846 + },
847 + "1.0": {
848 + "mean_daily_bp": -14236.855,
849 + "ci95_bp": [
850 + -14336.068,
851 + -14140.185
852 + ],
853 + "positive": false
854 + },
855 + "2.0": {
856 + "mean_daily_bp": -28522.601,
857 + "ci95_bp": [
858 + -28708.323,
859 + -28344.91
860 + ],
861 + "positive": false
862 + }
863 + },
864 + "kappa_star": 0.0034
865 + },
866 + {
867 + "rule": "L:SPY->GOOGL:+",
868 + "family": "leadlag",
869 + "window": "validation",
870 + "n_days": 1511,
871 + "gross_mean_daily_bp": 124.47,
872 + "turnover_per_day": 375.4,
873 + "half_spread_bp": 27.974,
874 + "net": {
875 + "0.0": {
876 + "mean_daily_bp": 124.47,
877 + "ci95_bp": [
878 + 105.226,
879 + 143.146
880 + ],
881 + "positive": true
882 + },
883 + "0.1": {
884 + "mean_daily_bp": -925.672,
885 + "ci95_bp": [
886 + -951.231,
887 + -903.109
888 + ],
889 + "positive": false
890 + },
891 + "0.25": {
892 + "mean_daily_bp": -2500.884,
893 + "ci95_bp": [
894 + -2540.651,
895 + -2464.547
896 + ],
897 + "positive": false
898 + },
899 + "0.5": {
900 + "mean_daily_bp": -5126.239,
901 + "ci95_bp": [
902 + -5189.704,
903 + -5064.587
904 + ],
905 + "positive": false
906 + },
907 + "1.0": {
908 + "mean_daily_bp": -10376.948,
909 + "ci95_bp": [
910 + -10489.273,
911 + -10268.67
912 + ],
913 + "positive": false
914 + },
915 + "2.0": {
916 + "mean_daily_bp": -20878.367,
917 + "ci95_bp": [
918 + -21091.109,
919 + -20678.743
920 + ],
921 + "positive": false
922 + }
923 + },
924 + "kappa_star": 0.0119
925 + },
926 + {
927 + "rule": "L:SPY->META:-",
928 + "family": "leadlag",
929 + "window": "validation",
930 + "n_days": 1511,
931 + "gross_mean_daily_bp": -24.576,
932 + "turnover_per_day": 391.68,
933 + "half_spread_bp": 30.092,
934 + "net": {
935 + "0.0": {
936 + "mean_daily_bp": -24.576,
937 + "ci95_bp": [
938 + -35.921,
939 + -11.904
940 + ],
941 + "positive": false
942 + },
943 + "0.1": {
944 + "mean_daily_bp": -1203.232,
945 + "ci95_bp": [
946 + -1212.583,
947 + -1193.485
948 + ],
949 + "positive": false
950 + },
951 + "0.25": {
952 + "mean_daily_bp": -2971.216,
953 + "ci95_bp": [
954 + -2985.03,
955 + -2957.658
956 + ],
957 + "positive": false
958 + },
959 + "0.5": {
960 + "mean_daily_bp": -5917.856,
961 + "ci95_bp": [
962 + -5947.293,
963 + -5891.868
964 + ],
965 + "positive": false
966 + },
967 + "1.0": {
968 + "mean_daily_bp": -11811.137,
969 + "ci95_bp": [
970 + -11874.422,
971 + -11753.436
972 + ],
973 + "positive": false
974 + },
975 + "2.0": {
976 + "mean_daily_bp": -23597.697,
977 + "ci95_bp": [
978 + -23732.991,
979 + -23470.34
980 + ],
981 + "positive": false
982 + }
983 + },
984 + "kappa_star": -0.0021
985 + },
986 + {
987 + "rule": "L:SPY->JPM:-",
988 + "family": "leadlag",
989 + "window": "validation",
990 + "n_days": 1511,
991 + "gross_mean_daily_bp": -13.004,
992 + "turnover_per_day": 391.54,
993 + "half_spread_bp": 29.302,
994 + "net": {
995 + "0.0": {
996 + "mean_daily_bp": -13.004,
997 + "ci95_bp": [
998 + -23.203,
999 + -2.605
1000 + ],
1001 + "positive": false
1002 + },
1003 + "0.1": {
1004 + "mean_daily_bp": -1160.293,
1005 + "ci95_bp": [
1006 + -1168.946,
1007 + -1151.921
1008 + ],
1009 + "positive": false
1010 + },
1011 + "0.25": {
1012 + "mean_daily_bp": -2881.225,
1013 + "ci95_bp": [
1014 + -2895.577,
1015 + -2868.292
1016 + ],
1017 + "positive": false
1018 + },
1019 + "0.5": {
1020 + "mean_daily_bp": -5749.446,
1021 + "ci95_bp": [
1022 + -5778.844,
1023 + -5721.772
1024 + ],
1025 + "positive": false
1026 + },
1027 + "1.0": {
1028 + "mean_daily_bp": -11485.888,
1029 + "ci95_bp": [
1030 + -11547.559,
1031 + -11423.023
1032 + ],
1033 + "positive": false
1034 + },
1035 + "2.0": {
1036 + "mean_daily_bp": -22958.771,
1037 + "ci95_bp": [
1038 + -23088.955,
1039 + -22826.59
1040 + ],
1041 + "positive": false
1042 + }
1043 + },
1044 + "kappa_star": -0.0011
1045 + },
1046 + {
1047 + "rule": "L:SPY->QQQ:-",
1048 + "family": "leadlag",
1049 + "window": "validation",
1050 + "n_days": 1511,
1051 + "gross_mean_daily_bp": -18.061,
1052 + "turnover_per_day": 391.89,
1053 + "half_spread_bp": 27.321,
1054 + "net": {
1055 + "0.0": {
1056 + "mean_daily_bp": -18.061,
1057 + "ci95_bp": [
1058 + -26.896,
1059 + -8.206
1060 + ],
1061 + "positive": false
1062 + },
1063 + "0.1": {
1064 + "mean_daily_bp": -1088.752,
1065 + "ci95_bp": [
1066 + -1095.7,
1067 + -1082.122
1068 + ],
1069 + "positive": false
1070 + },
1071 + "0.25": {
1072 + "mean_daily_bp": -2694.789,
1073 + "ci95_bp": [
1074 + -2705.78,
1075 + -2684.685
1076 + ],
1077 + "positive": false
1078 + },
1079 + "0.5": {
1080 + "mean_daily_bp": -5371.517,
1081 + "ci95_bp": [
1082 + -5396.69,
1083 + -5347.569
1084 + ],
1085 + "positive": false
1086 + },
1087 + "1.0": {
1088 + "mean_daily_bp": -10724.973,
1089 + "ci95_bp": [
1090 + -10781.323,
1091 + -10671.156
1092 + ],
1093 + "positive": false
1094 + },
1095 + "2.0": {
1096 + "mean_daily_bp": -21431.886,
1097 + "ci95_bp": [
1098 + -21553.764,
1099 + -21317.205
1100 + ],
1101 + "positive": false
1102 + }
1103 + },
1104 + "kappa_star": -0.0017
1105 + },
1106 + {
1107 + "rule": "L:SPY->XLF:+",
1108 + "family": "leadlag",
1109 + "window": "validation",
1110 + "n_days": 1511,
1111 + "gross_mean_daily_bp": 30.287,
1112 + "turnover_per_day": 391.59,
1113 + "half_spread_bp": 29.205,
1114 + "net": {
1115 + "0.0": {
1116 + "mean_daily_bp": 30.287,
1117 + "ci95_bp": [
1118 + 21.599,
1119 + 40.102
1120 + ],
1121 + "positive": true
1122 + },
1123 + "0.1": {
1124 + "mean_daily_bp": -1113.358,
1125 + "ci95_bp": [
1126 + -1127.748,
1127 + -1099.278
1128 + ],
1129 + "positive": false
1130 + },
1131 + "0.25": {
1132 + "mean_daily_bp": -2828.827,
1133 + "ci95_bp": [
1134 + -2854.653,
1135 + -2807.22
1136 + ],
1137 + "positive": false
1138 + },
1139 + "0.5": {
1140 + "mean_daily_bp": -5687.941,
1141 + "ci95_bp": [
1142 + -5731.004,
1143 + -5652.903
1144 + ],
1145 + "positive": false
1146 + },
1147 + "1.0": {
1148 + "mean_daily_bp": -11406.169,
1149 + "ci95_bp": [
1150 + -11481.865,
1151 + -11336.688
1152 + ],
1153 + "positive": false
1154 + },
1155 + "2.0": {
1156 + "mean_daily_bp": -22842.625,
1157 + "ci95_bp": [
1158 + -22988.106,
1159 + -22707.646
1160 + ],
1161 + "positive": false
1162 + }
1163 + },
1164 + "kappa_star": 0.0026
1165 + },
1166 + {
1167 + "rule": "L:SPY->XLK:+",
1168 + "family": "leadlag",
1169 + "window": "validation",
1170 + "n_days": 1511,
1171 + "gross_mean_daily_bp": 34.523,
1172 + "turnover_per_day": 391.39,
1173 + "half_spread_bp": 34.138,
1174 + "net": {
1175 + "0.0": {
1176 + "mean_daily_bp": 34.523,
1177 + "ci95_bp": [
1178 + 25.02,
1179 + 43.835
1180 + ],
1181 + "positive": true
1182 + },
1183 + "0.1": {
1184 + "mean_daily_bp": -1301.594,
1185 + "ci95_bp": [
1186 + -1318.578,
1187 + -1287.856
1188 + ],
1189 + "positive": false
1190 + },
1191 + "0.25": {
1192 + "mean_daily_bp": -3305.769,
1193 + "ci95_bp": [
1194 + -3334.588,
1195 + -3281.645
1196 + ],
1197 + "positive": false
1198 + },
1199 + "0.5": {
1200 + "mean_daily_bp": -6646.061,
1201 + "ci95_bp": [
1202 + -6695.334,
1203 + -6602.605
1204 + ],
1205 + "positive": false
1206 + },
1207 + "1.0": {
1208 + "mean_daily_bp": -13326.646,
1209 + "ci95_bp": [
1210 + -13414.278,
1211 + -13243.635
1212 + ],
1213 + "positive": false
1214 + },
1215 + "2.0": {
1216 + "mean_daily_bp": -26687.814,
1217 + "ci95_bp": [
1218 + -26855.414,
1219 + -26527.76
1220 + ],
1221 + "positive": false
1222 + }
1223 + },
1224 + "kappa_star": 0.0026
1225 + },
1226 + {
1227 + "rule": "L:SPY->XLI:-",
1228 + "family": "leadlag",
1229 + "window": "validation",
1230 + "n_days": 1511,
1231 + "gross_mean_daily_bp": -25.855,
1232 + "turnover_per_day": 391.35,
1233 + "half_spread_bp": 9.429,
1234 + "net": {
1235 + "0.0": {
1236 + "mean_daily_bp": -25.855,
1237 + "ci95_bp": [
1238 + -37.034,
1239 + -16.949
1240 + ],
1241 + "positive": false
1242 + },
1243 + "0.1": {
1244 + "mean_daily_bp": -394.855,
1245 + "ci95_bp": [
1246 + -405.47,
1247 + -386.496
1248 + ],
1249 + "positive": false
1250 + },
1251 + "0.25": {
1252 + "mean_daily_bp": -948.355,
1253 + "ci95_bp": [
1254 + -959.002,
1255 + -940.209
1256 + ],
1257 + "positive": false
1258 + },
1259 + "0.5": {
1260 + "mean_daily_bp": -1870.854,
1261 + "ci95_bp": [
1262 + -1882.91,
1263 + -1860.781
1264 + ],
1265 + "positive": false
1266 + },
1267 + "1.0": {
1268 + "mean_daily_bp": -3715.853,
1269 + "ci95_bp": [
1270 + -3735.1,
1271 + -3698.871
1272 + ],
1273 + "positive": false
1274 + },
1275 + "2.0": {
1276 + "mean_daily_bp": -7405.851,
1277 + "ci95_bp": [
1278 + -7445.301,
1279 + -7367.307
1280 + ],
1281 + "positive": false
1282 + }
1283 + },
1284 + "kappa_star": -0.007
1285 + },
1286 + {
1287 + "rule": "L:SPY->XLY:+",
1288 + "family": "leadlag",
1289 + "window": "validation",
1290 + "n_days": 1511,
1291 + "gross_mean_daily_bp": 40.913,
1292 + "turnover_per_day": 391.09,
1293 + "half_spread_bp": 17.629,
1294 + "net": {
1295 + "0.0": {
1296 + "mean_daily_bp": 40.913,
1297 + "ci95_bp": [
1298 + 29.892,
1299 + 53.505
1300 + ],
1301 + "positive": true
1302 + },
1303 + "0.1": {
1304 + "mean_daily_bp": -648.525,
1305 + "ci95_bp": [
1306 + -663.001,
1307 + -634.321
1308 + ],
1309 + "positive": false
1310 + },
1311 + "0.25": {
1312 + "mean_daily_bp": -1682.684,
1313 + "ci95_bp": [
1314 + -1703.087,
1315 + -1666.254
1316 + ],
1317 + "positive": false
1318 + },
1319 + "0.5": {
1320 + "mean_daily_bp": -3406.281,
1321 + "ci95_bp": [
1322 + -3437.708,
1323 + -3380.957
1324 + ],
1325 + "positive": false
1326 + },
1327 + "1.0": {
1328 + "mean_daily_bp": -6853.475,
1329 + "ci95_bp": [
1330 + -6906.042,
1331 + -6810.66
1332 + ],
1333 + "positive": false
1334 + },
1335 + "2.0": {
1336 + "mean_daily_bp": -13747.864,
1337 + "ci95_bp": [
1338 + -13841.232,
1339 + -13665.993
1340 + ],
1341 + "positive": false
1342 + }
1343 + },
1344 + "kappa_star": 0.0059
1345 + },
1346 + {
1347 + "rule": "L:SPY->XLP:+",
1348 + "family": "leadlag",
1349 + "window": "validation",
1350 + "n_days": 1511,
1351 + "gross_mean_daily_bp": 20.941,
1352 + "turnover_per_day": 391.2,
1353 + "half_spread_bp": 18.481,
1354 + "net": {
1355 + "0.0": {
1356 + "mean_daily_bp": 20.941,
1357 + "ci95_bp": [
1358 + 15.244,
1359 + 27.064
1360 + ],
1361 + "positive": true
1362 + },
1363 + "0.1": {
1364 + "mean_daily_bp": -702.036,
1365 + "ci95_bp": [
1366 + -711.888,
1367 + -693.37
1368 + ],
1369 + "positive": false
1370 + },
1371 + "0.25": {
1372 + "mean_daily_bp": -1786.5,
1373 + "ci95_bp": [
1374 + -1801.736,
1375 + -1771.869
1376 + ],
1377 + "positive": false
1378 + },
1379 + "0.5": {
1380 + "mean_daily_bp": -3593.942,
1381 + "ci95_bp": [
1382 + -3619.342,
1383 + -3569.139
1384 + ],
1385 + "positive": false
1386 + },
1387 + "1.0": {
1388 + "mean_daily_bp": -7208.824,
1389 + "ci95_bp": [
1390 + -7254.623,
1391 + -7163.819
1392 + ],
1393 + "positive": false
1394 + },
1395 + "2.0": {
1396 + "mean_daily_bp": -14438.589,
1397 + "ci95_bp": [
1398 + -14527.645,
1399 + -14352.397
1400 + ],
1401 + "positive": false
1402 + }
1403 + },
1404 + "kappa_star": 0.0029
1405 + },
1406 + {
1407 + "rule": "L:SPY->ATRO:+",
1408 + "family": "leadlag",
1409 + "window": "validation",
1410 + "n_days": 1438,
1411 + "gross_mean_daily_bp": 194.5,
1412 + "turnover_per_day": 145.77,
1413 + "half_spread_bp": 87.644,
1414 + "net": {
1415 + "0.0": {
1416 + "mean_daily_bp": 194.5,
1417 + "ci95_bp": [
1418 + 144.492,
1419 + 270.921
1420 + ],
1421 + "positive": true
1422 + },
1423 + "0.1": {
1424 + "mean_daily_bp": -1083.127,
1425 + "ci95_bp": [
1426 + -1149.26,
1427 + -1010.433
1428 + ],
1429 + "positive": false
1430 + },
1431 + "0.25": {
1432 + "mean_daily_bp": -2999.567,
1433 + "ci95_bp": [
1434 + -3221.995,
1435 + -2768.771
1436 + ],
1437 + "positive": false
1438 + },
1439 + "0.5": {
1440 + "mean_daily_bp": -6193.634,
1441 + "ci95_bp": [
1442 + -6688.147,
1443 + -5695.264
1444 + ],
1445 + "positive": false
1446 + },
1447 + "1.0": {
1448 + "mean_daily_bp": -12581.768,
1449 + "ci95_bp": [
1450 + -13646.532,
1451 + -11546.814
1452 + ],
1453 + "positive": false
1454 + },
1455 + "2.0": {
1456 + "mean_daily_bp": -25358.036,
1457 + "ci95_bp": [
1458 + -27533.741,
1459 + -23267.567
1460 + ],
1461 + "positive": false
1462 + }
1463 + },
1464 + "kappa_star": 0.0152
1465 + },
1466 + {
1467 + "rule": "L:SPY->AXDX:+",
1468 + "family": "leadlag",
1469 + "window": "validation",
1470 + "n_days": 1498,
1471 + "gross_mean_daily_bp": 237.258,
1472 + "turnover_per_day": 181.79,
1473 + "half_spread_bp": 84.537,
1474 + "net": {
1475 + "0.0": {
1476 + "mean_daily_bp": 237.258,
1477 + "ci95_bp": [
1478 + 187.335,
1479 + 292.557
1480 + ],
1481 + "positive": true
1482 + },
1483 + "0.1": {
1484 + "mean_daily_bp": -1299.528,
1485 + "ci95_bp": [
1486 + -1377.885,
1487 + -1232.035
1488 + ],
1489 + "positive": false
1490 + },
1491 + "0.25": {
1492 + "mean_daily_bp": -3604.706,
1493 + "ci95_bp": [
1494 + -3823.768,
1495 + -3410.709
1496 + ],
1497 + "positive": false
1498 + },
1499 + "0.5": {
1500 + "mean_daily_bp": -7446.669,
1501 + "ci95_bp": [
1502 + -7927.449,
1503 + -7038.086
1504 + ],
1505 + "positive": false
1506 + },
1507 + "1.0": {
1508 + "mean_daily_bp": -15130.597,
1509 + "ci95_bp": [
1510 + -16127.058,
1511 + -14278.316
1512 + ],
1513 + "positive": false
1514 + },
1515 + "2.0": {
1516 + "mean_daily_bp": -30498.451,
1517 + "ci95_bp": [
1518 + -32526.277,
1519 + -28758.776
1520 + ],
1521 + "positive": false
1522 + }
1523 + },
1524 + "kappa_star": 0.0154
1525 + },
1526 + {
1527 + "rule": "L:SPY->BKE:+",
1528 + "family": "leadlag",
1529 + "window": "validation",
1530 + "n_days": 1497,
1531 + "gross_mean_daily_bp": 171.856,
1532 + "turnover_per_day": 282.07,
1533 + "half_spread_bp": 17.524,
1534 + "net": {
1535 + "0.0": {
1536 + "mean_daily_bp": 171.856,
1537 + "ci95_bp": [
1538 + 134.179,
1539 + 217.969
1540 + ],
1541 + "positive": true
1542 + },
1543 + "0.1": {
1544 + "mean_daily_bp": -322.449,
1545 + "ci95_bp": [
1546 + -356.701,
1547 + -278.8
1548 + ],
1549 + "positive": false
1550 + },
1551 + "0.25": {
1552 + "mean_daily_bp": -1063.907,
1553 + "ci95_bp": [
1554 + -1103.658,
1555 + -1013.286
1556 + ],
1557 + "positive": false
1558 + },
1559 + "0.5": {
1560 + "mean_daily_bp": -2299.669,
1561 + "ci95_bp": [
1562 + -2359.221,
1563 + -2229.609
1564 + ],
1565 + "positive": false
1566 + },
1567 + "1.0": {
1568 + "mean_daily_bp": -4771.194,
1569 + "ci95_bp": [
1570 + -4876.622,
1571 + -4636.202
1572 + ],
1573 + "positive": false
1574 + },
1575 + "2.0": {
1576 + "mean_daily_bp": -9714.243,
1577 + "ci95_bp": [
1578 + -9920.293,
1579 + -9442.176
1580 + ],
1581 + "positive": false
1582 + }
1583 + },
1584 + "kappa_star": 0.0348
1585 + },
1586 + {
1587 + "rule": "L:SPY->CECO:+",
1588 + "family": "leadlag",
1589 + "window": "validation",
1590 + "n_days": 1115,
1591 + "gross_mean_daily_bp": 111.464,
1592 + "turnover_per_day": 111.91,
1593 + "half_spread_bp": 15.346,
1594 + "net": {
1595 + "0.0": {
1596 + "mean_daily_bp": 111.464,
1597 + "ci95_bp": [
1598 + 90.649,
1599 + 129.555
1600 + ],
1601 + "positive": true
1602 + },
1603 + "0.1": {
1604 + "mean_daily_bp": -60.279,
1605 + "ci95_bp": [
1606 + -82.842,
1607 + -38.259
1608 + ],
1609 + "positive": false
1610 + },
1611 + "0.25": {
1612 + "mean_daily_bp": -317.892,
1613 + "ci95_bp": [
1614 + -360.564,
1615 + -279.672
1616 + ],
1617 + "positive": false
1618 + },
1619 + "0.5": {
1620 + "mean_daily_bp": -747.248,
1621 + "ci95_bp": [
1622 + -828.308,
1623 + -677.759
1624 + ],
1625 + "positive": false
1626 + },
1627 + "1.0": {
1628 + "mean_daily_bp": -1605.96,
1629 + "ci95_bp": [
1630 + -1765.877,
1631 + -1461.573
1632 + ],
1633 + "positive": false
1634 + },
1635 + "2.0": {
1636 + "mean_daily_bp": -3323.384,
1637 + "ci95_bp": [
1638 + -3645.344,
1639 + -3026.451
1640 + ],
1641 + "positive": false
1642 + }
1643 + },
1644 + "kappa_star": 0.0649
1645 + },
1646 + {
1647 + "rule": "L:SPY->HTD:+",
1648 + "family": "leadlag",
1649 + "window": "validation",
1650 + "n_days": 785,
1651 + "gross_mean_daily_bp": 29.673,
1652 + "turnover_per_day": 86.44,
1653 + "half_spread_bp": 37.295,
1654 + "net": {
1655 + "0.0": {
1656 + "mean_daily_bp": 29.673,
1657 + "ci95_bp": [
1658 + 15.453,
1659 + 53.343
1660 + ],
1661 + "positive": true
1662 + },
1663 + "0.1": {
1664 + "mean_daily_bp": -292.715,
1665 + "ci95_bp": [
1666 + -313.398,
1667 + -271.593
1668 + ],
1669 + "positive": false
1670 + },
1671 + "0.25": {
1672 + "mean_daily_bp": -776.296,
1673 + "ci95_bp": [
1674 + -821.147,
1675 + -733.512
1676 + ],
1677 + "positive": false
1678 + },
1679 + "0.5": {
1680 + "mean_daily_bp": -1582.265,
1681 + "ci95_bp": [
1682 + -1677.054,
1683 + -1491.172
1684 + ],
1685 + "positive": false
1686 + },
1687 + "1.0": {
1688 + "mean_daily_bp": -3194.203,
1689 + "ci95_bp": [
1690 + -3393.647,
1691 + -3012.47
1692 + ],
1693 + "positive": false
1694 + },
1695 + "2.0": {
1696 + "mean_daily_bp": -6418.078,
1697 + "ci95_bp": [
1698 + -6819.761,
1699 + -6050.575
1700 + ],
1701 + "positive": false
1702 + }
1703 + },
1704 + "kappa_star": 0.0092
1705 + },
1706 + {
1707 + "rule": "L:ES[contin_adj_ratio]->SPY:-",
1708 + "family": "leadlag",
1709 + "window": "validation",
1710 + "n_days": 1511,
1711 + "gross_mean_daily_bp": -9.073,
1712 + "turnover_per_day": 389.71,
1713 + "half_spread_bp": 24.535,
1714 + "net": {
1715 + "0.0": {
1716 + "mean_daily_bp": -9.073,
1717 + "ci95_bp": [
1718 + -15.665,
1719 + -1.932
1720 + ],
1721 + "positive": false
1722 + },
1723 + "0.1": {
1724 + "mean_daily_bp": -965.232,
1725 + "ci95_bp": [
1726 + -970.355,
1727 + -960.487
1728 + ],
1729 + "positive": false
1730 + },
1731 + "0.25": {
1732 + "mean_daily_bp": -2399.471,
1733 + "ci95_bp": [
1734 + -2407.466,
1735 + -2391.916
1736 + ],
1737 + "positive": false
1738 + },
1739 + "0.5": {
1740 + "mean_daily_bp": -4789.869,
1741 + "ci95_bp": [
1742 + -4809.45,
1743 + -4773.457
1744 + ],
1745 + "positive": false
1746 + },
1747 + "1.0": {
1748 + "mean_daily_bp": -9570.664,
1749 + "ci95_bp": [
1750 + -9614.148,
1751 + -9532.417
1752 + ],
1753 + "positive": false
1754 + },
1755 + "2.0": {
1756 + "mean_daily_bp": -19132.255,
1757 + "ci95_bp": [
1758 + -19225.242,
1759 + -19051.028
1760 + ],
1761 + "positive": false
1762 + }
1763 + },
1764 + "kappa_star": -0.0009
1765 + },
1766 + {
1767 + "rule": "L:ES[contin_adj_absolute]->SPY:-",
1768 + "family": "leadlag",
1769 + "window": "validation",
1770 + "n_days": 1511,
1771 + "gross_mean_daily_bp": -9.073,
1772 + "turnover_per_day": 389.71,
1773 + "half_spread_bp": 24.535,
1774 + "net": {
1775 + "0.0": {
1776 + "mean_daily_bp": -9.073,
1777 + "ci95_bp": [
1778 + -15.665,
1779 + -1.932
1780 + ],
1781 + "positive": false
1782 + },
1783 + "0.1": {
1784 + "mean_daily_bp": -965.232,
1785 + "ci95_bp": [
1786 + -970.355,
1787 + -960.487
1788 + ],
1789 + "positive": false
1790 + },
1791 + "0.25": {
1792 + "mean_daily_bp": -2399.471,
1793 + "ci95_bp": [
1794 + -2407.466,
1795 + -2391.916
1796 + ],
1797 + "positive": false
1798 + },
1799 + "0.5": {
1800 + "mean_daily_bp": -4789.869,
1801 + "ci95_bp": [
1802 + -4809.45,
1803 + -4773.457
1804 + ],
1805 + "positive": false
1806 + },
1807 + "1.0": {
1808 + "mean_daily_bp": -9570.664,
1809 + "ci95_bp": [
1810 + -9614.148,
1811 + -9532.417
1812 + ],
1813 + "positive": false
1814 + },
1815 + "2.0": {
1816 + "mean_daily_bp": -19132.255,
1817 + "ci95_bp": [
1818 + -19225.242,
1819 + -19051.028
1820 + ],
1821 + "positive": false
1822 + }
1823 + },
1824 + "kappa_star": -0.0009
1825 + },
1826 + {
1827 + "rule": "L:ES[contin_UNadj]->SPY:-",
1828 + "family": "leadlag",
1829 + "window": "validation",
1830 + "n_days": 1511,
1831 + "gross_mean_daily_bp": -9.073,
1832 + "turnover_per_day": 389.71,
1833 + "half_spread_bp": 24.535,
1834 + "net": {
1835 + "0.0": {
1836 + "mean_daily_bp": -9.073,
1837 + "ci95_bp": [
1838 + -15.665,
1839 + -1.932
1840 + ],
1841 + "positive": false
1842 + },
1843 + "0.1": {
1844 + "mean_daily_bp": -965.232,
1845 + "ci95_bp": [
1846 + -970.355,
1847 + -960.487
1848 + ],
1849 + "positive": false
1850 + },
1851 + "0.25": {
1852 + "mean_daily_bp": -2399.471,
1853 + "ci95_bp": [
1854 + -2407.466,
1855 + -2391.916
1856 + ],
1857 + "positive": false
1858 + },
1859 + "0.5": {
1860 + "mean_daily_bp": -4789.869,
1861 + "ci95_bp": [
1862 + -4809.45,
1863 + -4773.457
1864 + ],
1865 + "positive": false
1866 + },
1867 + "1.0": {
1868 + "mean_daily_bp": -9570.664,
1869 + "ci95_bp": [
1870 + -9614.148,
1871 + -9532.417
1872 + ],
1873 + "positive": false
1874 + },
1875 + "2.0": {
1876 + "mean_daily_bp": -19132.255,
1877 + "ci95_bp": [
1878 + -19225.242,
1879 + -19051.028
1880 + ],
1881 + "positive": false
1882 + }
1883 + },
1884 + "kappa_star": -0.0009
1885 + }
1886 + ],
1887 + "xcorr": {
1888 + "ES->SPY": {
1889 + "fresh_xcorr": {
1890 + "-3": -0.00524,
1891 + "-2": -0.01206,
1892 + "-1": 0.00289,
1893 + "0": 0.9868,
1894 + "1": 0.00911,
1895 + "2": -0.01155,
1896 + "3": -0.00435
1897 + },
1898 + "raw_xcorr": {
1899 + "-3": -0.00556,
1900 + "-2": -0.01202,
1901 + "-1": 0.00258,
1902 + "0": 0.97389,
1903 + "1": 0.01093,
1904 + "2": -0.01364,
1905 + "3": -0.0088
1906 + },
1907 + "p_fresh_+1": 0.19900497512437812,
1908 + "p_fresh_-1": 0.6766169154228856,
1909 + "n_fresh_pairs": 585704
1910 + },
1911 + "SPX->SPY": {
1912 + "fresh_xcorr": {
1913 + "-3": -0.00301,
1914 + "-2": -0.00447,
1915 + "-1": 0.08018,
1916 + "0": 0.964,
1917 + "1": 0.00445,
1918 + "2": -0.01099,
1919 + "3": -0.00586
1920 + },
1921 + "raw_xcorr": {
1922 + "-3": -0.00285,
1923 + "-2": -0.00399,
1924 + "-1": 0.08025,
1925 + "0": 0.96175,
1926 + "1": 0.00539,
1927 + "2": -0.01195,
1928 + "3": -0.00762
1929 + },
1930 + "p_fresh_+1": 0.4079601990049751,
1931 + "p_fresh_-1": 0.009950248756218905,
1932 + "n_fresh_pairs": 585775
1933 + },
1934 + "ES[contin_adj_absolute]->SPY": {
1935 + "fresh_-1": 0.0034,
1936 + "fresh_+1": 0.00954
1937 + },
1938 + "ES[contin_UNadj]->SPY": {
1939 + "fresh_-1": 0.00289,
1940 + "fresh_+1": 0.00911
1941 + }
1942 + },
1943 + "daily_family": [
1944 + {
1945 + "ticker": "AAPL",
1946 + "val_ac1": -0.10762,
1947 + "val_excess_ac1": -0.08128,
1948 + "val_excess_ci95": [
1949 + -0.19526,
1950 + 0.04864
1951 + ],
1952 + "val_p_excess": 0.3853820598006645,
1953 + "val_vr30_excess": 0.1788,
1954 + "train_excess_ac1": 0.01692,
1955 + "train_vr30_excess": 0.0788
1956 + },
1957 + {
1958 + "ticker": "MSFT",
1959 + "val_ac1": -0.24871,
1960 + "val_excess_ac1": -0.21026,
1961 + "val_excess_ci95": [
1962 + -0.33998,
1963 + -0.05956
1964 + ],
1965 + "val_p_excess": 0.006644518272425249,
1966 + "val_vr30_excess": -0.1073,
1967 + "train_excess_ac1": -0.04768,
1968 + "train_vr30_excess": -0.1922
1969 + },
1970 + {
1971 + "ticker": "NVDA",
1972 + "val_ac1": -0.10719,
1973 + "val_excess_ac1": -0.0919,
1974 + "val_excess_ci95": [
1975 + -0.19643,
1976 + -0.00589
1977 + ],
1978 + "val_p_excess": 0.046511627906976744,
1979 + "val_vr30_excess": 0.0654,
1980 + "train_excess_ac1": 0.01966,
1981 + "train_vr30_excess": -0.003
1982 + },
1983 + {
1984 + "ticker": "AMZN",
1985 + "val_ac1": -0.04439,
1986 + "val_excess_ac1": -0.02071,
1987 + "val_excess_ci95": [
1988 + -0.07638,
1989 + 0.04359
1990 + ],
1991 + "val_p_excess": 0.7441860465116279,
1992 + "val_vr30_excess": -0.2215,
1993 + "train_excess_ac1": -0.00372,
1994 + "train_vr30_excess": -0.1687
1995 + },
1996 + {
1997 + "ticker": "GOOGL",
1998 + "val_ac1": -0.11851,
1999 + "val_excess_ac1": -0.08943,
2000 + "val_excess_ci95": [
2001 + -0.20625,
2002 + 0.02948
2003 + ],
2004 + "val_p_excess": 0.2724252491694352,
2005 + "val_vr30_excess": -0.055,
2006 + "train_excess_ac1": 0.09606,
2007 + "train_vr30_excess": -0.3661
2008 + },
2009 + {
2010 + "ticker": "META",
2011 + "val_ac1": -0.08138,
2012 + "val_excess_ac1": -0.05983,
2013 + "val_excess_ci95": [
2014 + -0.15043,
2015 + 0.03413
2016 + ],
2017 + "val_p_excess": 0.3853820598006645,
2018 + "val_vr30_excess": -0.1194,
2019 + "train_excess_ac1": 0.01006,
2020 + "train_vr30_excess": 0.132
2021 + },
2022 + {
2023 + "ticker": "TSLA",
2024 + "val_ac1": -0.00067,
2025 + "val_excess_ac1": 0.00234,
2026 + "val_excess_ci95": [
2027 + -0.05109,
2028 + 0.05256
2029 + ],
2030 + "val_p_excess": 1.0,
2031 + "val_vr30_excess": 0.1028,
2032 + "train_excess_ac1": 0.02192,
2033 + "train_vr30_excess": -0.0259
2034 + },
2035 + {
2036 + "ticker": "JPM",
2037 + "val_ac1": -0.15313,
2038 + "val_excess_ac1": -0.12768,
2039 + "val_excess_ci95": [
2040 + -0.26873,
2041 + 0.04088
2042 + ],
2043 + "val_p_excess": 0.30564784053156147,
2044 + "val_vr30_excess": 0.0488,
2045 + "train_excess_ac1": -0.09261,
2046 + "train_vr30_excess": -0.297
2047 + },
2048 + {
2049 + "ticker": "XOM",
2050 + "val_ac1": -0.05372,
2051 + "val_excess_ac1": -0.03561,
2052 + "val_excess_ci95": [
2053 + -0.10714,
2054 + 0.04856
2055 + ],
2056 + "val_p_excess": 0.4717607973421927,
2057 + "val_vr30_excess": 0.2893,
2058 + "train_excess_ac1": -0.13261,
2059 + "train_vr30_excess": -0.2509
2060 + },
2061 + {
2062 + "ticker": "UNH",
2063 + "val_ac1": -0.11953,
2064 + "val_excess_ac1": -0.09824,
2065 + "val_excess_ci95": [
2066 + -0.24273,
2067 + 0.0532
2068 + ],
2069 + "val_p_excess": 0.5382059800664452,
2070 + "val_vr30_excess": -0.2085,
2071 + "train_excess_ac1": -0.02116,
2072 + "train_vr30_excess": -0.1221
2073 + },
2074 + {
2075 + "ticker": "SPY",
2076 + "val_ac1": -0.20026,
2077 + "val_excess_ac1": -0.15435,
2078 + "val_excess_ci95": [
2079 + -0.27047,
2080 + 0.00785
2081 + ],
2082 + "val_p_excess": 0.09966777408637874,
2083 + "val_vr30_excess": 0.1263,
2084 + "train_excess_ac1": -0.05527,
2085 + "train_vr30_excess": -0.164
2086 + },
2087 + {
2088 + "ticker": "QQQ",
2089 + "val_ac1": -0.19846,
2090 + "val_excess_ac1": -0.15783,
2091 + "val_excess_ci95": [
2092 + -0.28636,
2093 + -0.00267
2094 + ],
2095 + "val_p_excess": 0.03986710963455149,
2096 + "val_vr30_excess": -0.0032,
2097 + "train_excess_ac1": -0.03719,
2098 + "train_vr30_excess": -0.0838
2099 + }
2100 + ],
2101 + "summary": {
2102 + "pool_evaluated": 31,
2103 + "net_pos_ci_at": {
2104 + "0.25": [
2105 + "R:CKX:1day"
2106 + ],
2107 + "1.0": []
2108 + },
2109 + "ckx_validation": {
2110 + "rule": "R:CKX:1day",
2111 + "family": "reversion",
2112 + "window": "validation",
2113 + "n_days": 929,
2114 + "gross_mean_daily_bp": 62.436,
2115 + "turnover_per_day": 1.16,
2116 + "half_spread_bp": 159.573,
2117 + "net": {
2118 + "0.0": {
2119 + "mean_daily_bp": 62.436,
2120 + "ci95_bp": [
2121 + 45.394,
2122 + 73.29
2123 + ],
2124 + "positive": true
2125 + },
2126 + "0.1": {
2127 + "mean_daily_bp": 43.988,
2128 + "ci95_bp": [
2129 + 27.68,
2130 + 54.408
2131 + ],
2132 + "positive": true
2133 + },
2134 + "0.25": {
2135 + "mean_daily_bp": 16.316,
2136 + "ci95_bp": [
2137 + 1.377,
2138 + 26.537
2139 + ],
2140 + "positive": true
2141 + },
2142 + "0.5": {
2143 + "mean_daily_bp": -29.804,
2144 + "ci95_bp": [
2145 + -43.857,
2146 + -19.41
2147 + ],
2148 + "positive": false
2149 + },
2150 + "1.0": {
2151 + "mean_daily_bp": -122.043,
2152 + "ci95_bp": [
2153 + -133.968,
2154 + -112.259
2155 + ],
2156 + "positive": false
2157 + },
2158 + "2.0": {
2159 + "mean_daily_bp": -306.523,
2160 + "ci95_bp": [
2161 + -319.438,
2162 + -293.928
2163 + ],
2164 + "positive": false
2165 + }
2166 + },
2167 + "kappa_star": 0.3384
2168 + },
2169 + "ckx_subperiods": {
2170 + "2016-2018": {
2171 + "n_days": 422,
2172 + "gross_mean_daily_bp": 76.856,
2173 + "turnover_per_day": 1.21,
2174 + "half_spread_bp": 142.52,
2175 + "net": {
2176 + "0.0": {
2177 + "mean_daily_bp": 76.856,
2178 + "ci95_bp": [
2179 + 54.903,
2180 + 90.074
2181 + ],
2182 + "positive": true
2183 + },
2184 + "0.1": {
2185 + "mean_daily_bp": 59.599,
2186 + "ci95_bp": [
2187 + 38.677,
2188 + 72.303
2189 + ],
2190 + "positive": true
2191 + },
2192 + "0.25": {
2193 + "mean_daily_bp": 33.712,
2194 + "ci95_bp": [
2195 + 13.678,
2196 + 45.709
2197 + ],
2198 + "positive": true
2199 + },
2200 + "0.5": {
2201 + "mean_daily_bp": -9.432,
2202 + "ci95_bp": [
2203 + -28.004,
2204 + 1.938
2205 + ],
2206 + "positive": false
2207 + },
2208 + "1.0": {
2209 + "mean_daily_bp": -95.721,
2210 + "ci95_bp": [
2211 + -110.73,
2212 + -84.338
2213 + ],
2214 + "positive": false
2215 + },
2216 + "2.0": {
2217 + "mean_daily_bp": -268.298,
2218 + "ci95_bp": [
2219 + -283.765,
2220 + -251.974
2221 + ],
2222 + "positive": false
2223 + }
2224 + },
2225 + "kappa_star": 0.4453
2226 + },
2227 + "2019-2021": {
2228 + "n_days": 505,
2229 + "gross_mean_daily_bp": 50.633,
2230 + "turnover_per_day": 1.11,
2231 + "half_spread_bp": 173.69,
2232 + "net": {
2233 + "0.0": {
2234 + "mean_daily_bp": 50.633,
2235 + "ci95_bp": [
2236 + 26.12,
2237 + 71.658
2238 + ],
2239 + "positive": true
2240 + },
2241 + "0.1": {
2242 + "mean_daily_bp": 31.372,
2243 + "ci95_bp": [
2244 + 7.992,
2245 + 51.809
2246 + ],
2247 + "positive": true
2248 + },
2249 + "0.25": {
2250 + "mean_daily_bp": 2.481,
2251 + "ci95_bp": [
2252 + -19.478,
2253 + 22.036
2254 + ],
2255 + "positive": true
2256 + },
2257 + "0.5": {
2258 + "mean_daily_bp": -45.671,
2259 + "ci95_bp": [
2260 + -65.791,
2261 + -28.041
2262 + ],
2263 + "positive": false
2264 + },
2265 + "1.0": {
2266 + "mean_daily_bp": -141.974,
2267 + "ci95_bp": [
2268 + -159.788,
2269 + -127.202
2270 + ],
2271 + "positive": false
2272 + },
2273 + "2.0": {
2274 + "mean_daily_bp": -334.58,
2275 + "ci95_bp": [
2276 + -353.802,
2277 + -313.71
2278 + ],
2279 + "positive": false
2280 + }
2281 + },
2282 + "kappa_star": 0.2629
2283 + }
2284 + },
2285 + "es_spy_val_fresh_-1": 0.00289,
2286 + "es_spy_val_p_-1": 0.6766169154228856,
2287 + "spx_spy_val_fresh_-1": 0.08018,
2288 + "daily_family_median_vr30_excess": {
2289 + "train_2008_2015": -0.1431,
2290 + "validation": 0.0228
2291 + }
2292 + },
2293 + "client_stats": {
2294 + "network_requests": 418,
2295 + "cache_hits": 52,
2296 + "rows_fetched": 18806431,
2297 + "seconds_waiting": 0.038940999999249465,
2298 + "errors_retried": 0,
2299 + "refreshes": []
2300 + },
2301 + "manifest": {
2302 + "author": "Simon-Pierre Boucher",
2303 + "contact": "contact@spboucher.ai",
2304 + "project": "anomaly-atlas",
2305 + "data_source": "hfmarketdata.io",
2306 + "collected_utc": "2026-08-12T07:39:18.125579+00:00",
2307 + "chip": {
2308 + "brand": "Apple M5 Max",
2309 + "arch": "arm64",
2310 + "cores_total": 18,
2311 + "cores_performance": 6,
2312 + "cores_efficiency": 12,
2313 + "gpu_cores": 40
2314 + },
2315 + "memory": {
2316 + "unified_bytes": 51539607552,
2317 + "unified_gb": 48.0,
2318 + "pagesize": 16384
2319 + },
2320 + "ssd": {
2321 + "model": "APPLE SSD AP2048Z",
2322 + "size": "2 TB",
2323 + "smart_status": "Verified"
2324 + },
2325 + "os": {
2326 + "product": "macOS",
2327 + "version": "27.0",
2328 + "build": "26A5388g",
2329 + "kernel": "27.0.0"
2330 + },
2331 + "software": {
2332 + "python": "3.14.4",
2333 + "numpy": "2.5.2",
2334 + "pandas": "3.0.5",
2335 + "polars": "1.43.2",
2336 + "duckdb": "1.5.5",
2337 + "statsmodels": "0.14.6",
2338 + "arch": "8.0.0"
2339 + },
2340 + "git": {
2341 + "commit": "881399dca21ef0ca7e30b858a85fc54a3e1fafa1",
2342 + "dirty_tree": true
2343 + }
2344 + }
2345 +}
modified web/lib/charts.js +41 −2
@@ -348,6 +348,43 @@ function expGFigure(C) {
348 348 `Run ${esc(res.run)}, regenerated from results.json.`);
349 349 }
350 350
351 +// ------------------------------------------------------------------- expH
352 +function expHFigure(C) {
353 + const res = latestResults(C, "expH_oos_stability");
354 + if (!res) return "";
355 + const s = res.data.summary || {};
356 + const fam = s.daily_family_median_vr30_excess || {};
357 + const rows = [
358 + ["daily reversal family (median VR30 excess)", fam.train_2008_2015, fam.validation, "alpha"],
359 + ["ES→SPY cross-serial corr (fresh, −1 min)", -0.032, s["es_spy_val_fresh_-1"], "alpha"],
360 + ["SPX→SPY staleness lead (+1 min)", 0.132, s["spx_spy_val_fresh_-1"], "artifact"],
361 + ].filter((r) => Number.isFinite(r[1]) && Number.isFinite(r[2]));
362 + if (rows.length < 2) return "";
363 + const W = 760, ML = 300, MR = 30, MT = 40, RH = 52, MB = 20;
364 + const H = MT + rows.length * RH + MB;
365 + const iw = W - ML - MR;
366 + let g = `<g font-size="11" fill="${INK}">
367 +<circle cx="${ML}" cy="${MT - 22}" r="4.5" fill="${ORANGE}" stroke="${SURFACE}" stroke-width="2"/><text x="${ML + 9}" y="${MT - 18}">train (2008–2015)</text>
368 +<circle cx="${ML + 160}" cy="${MT - 22}" r="4.5" fill="${BLUE}" stroke="${SURFACE}" stroke-width="2"/><text x="${ML + 169}" y="${MT - 18}">validation (2016–2021)</text></g>`;
369 + rows.forEach(([label, tr, va, kind], i) => {
370 + const y = MT + i * RH + RH / 2;
371 + const lim = Math.max(Math.abs(tr), Math.abs(va)) * 1.25;
372 + const xp = (v) => ML + ((v + lim) / (2 * lim)) * iw;
373 + g += `<text x="${ML - 10}" y="${y - 4}" text-anchor="end" font-size="11.5" fill="${INK}" font-weight="600">${esc(label)}</text>
374 +<text x="${ML - 10}" y="${y + 12}" text-anchor="end" font-size="9.5" fill="${kind === "artifact" ? "#8a5a1e" : MUTED}">${kind === "artifact" ? "known artifact — persists OOS" : "candidate 'alpha' — collapses OOS"}</text>
375 +<line x1="${xp(0)}" y1="${y - 14}" x2="${xp(0)}" y2="${y + 14}" stroke="#c9c4b6" stroke-width="1"/>
376 +<line x1="${xp(tr)}" y1="${y}" x2="${xp(va)}" y2="${y}" stroke="${GRID}" stroke-width="2"/>
377 +<circle cx="${xp(tr).toFixed(1)}" cy="${y}" r="5" fill="${ORANGE}" stroke="${SURFACE}" stroke-width="2"><title>${esc(label)} — train: ${tr}</title></circle>
378 +<circle cx="${xp(va).toFixed(1)}" cy="${y}" r="5" fill="${BLUE}" stroke="${SURFACE}" stroke-width="2"><title>${esc(label)} — validation: ${va}</title></circle>
379 +<text x="${xp(tr) + (tr < va ? -8 : 8)}" y="${y - 9}" text-anchor="${tr < va ? "end" : "start"}" font-size="10" fill="${MUTED}">${tr}</text>
380 +<text x="${xp(va) + (tr < va ? 8 : -8)}" y="${y - 9}" text-anchor="${tr < va ? "start" : "end"}" font-size="10" fill="${MUTED}">${va}</text>`;
381 + });
382 + const svg = `<svg viewBox="0 0 ${W} ${H}" role="img" aria-label="expH: train versus validation — alphas collapse, the artifact persists">${g}</svg>`;
383 + return fig(svg, `expH — the validation split, opened once: every candidate "alpha" collapses toward zero ` +
384 + `out-of-sample while the known staleness artifact persists. Vertical tick = zero (each row has its own ` +
385 + `scale). Run ${esc(res.run)}, regenerated from results.json.`);
386 +}
387 +
351 388 const BUILDERS = {
352 389 expB_artifact_baselines: expBFigure,
353 390 expC_reversion_scan: expCFigure,
@@ -355,6 +392,7 @@ const BUILDERS = {
355 392 expE_calendar_scan: expEFigure,
356 393 expF_multiple_testing: expFFigure,
357 394 expG_cost_frontier: expGFigure,
395 + expH_oos_stability: expHFigure,
358 396 };
359 397
360 398 /** Figures for an experiment page ("" when none apply). */
@@ -369,8 +407,9 @@ function figuresFor(experiment, C) {
369 407
370 408 /** The most recent experiment figure, for the home page. */
371 409 function homeFigure(C) {
372 for (const exp of ["expG_cost_frontier", "expF_multiple_testing", "expE_calendar_scan",
373 "expD_leadlag_scan", "expC_reversion_scan", "expB_artifact_baselines"]) {
410 + for (const exp of ["expH_oos_stability", "expG_cost_frontier", "expF_multiple_testing",
411 + "expE_calendar_scan", "expD_leadlag_scan", "expC_reversion_scan",
412 + "expB_artifact_baselines"]) {
374 413 const html = figuresFor(exp, C);
375 414 if (html) return { experiment: exp, html: html.split("</figure>")[0] + "</figure>" };
376 415 }
modified web/lib/render.js +1 −0
@@ -139,6 +139,7 @@ function levelBadge(level) {
139 139 const NAV = [
140 140 ["/", "Home"],
141 141 ["/atlas", "Atlas"],
142 + ["/publications", "Publications"],
142 143 ["/research", "Research"],
143 144 ["/experiments", "Experiments"],
144 145 ["/results", "Results"],
modified web/public/style.css +38 −0
@@ -390,6 +390,44 @@ a:hover { text-decoration: underline; text-underline-offset: 3px; }
390 390 border-top: 1px solid var(--hairline); padding-top: 8px;
391 391 }
392 392
393 +/* ----------------------------------------------------------- publications */
394 +.pub-card { gap: 8px; }
395 +.pub-id {
396 + font-family: var(--font-mono); font-size: .7rem; letter-spacing: .08em;
397 + text-transform: uppercase; color: var(--faint);
398 +}
399 +.pub-sub { color: var(--accent-ink) !important; font-style: italic; }
400 +.pub-head { margin: 40px 0 10px; max-width: 56rem; }
401 +.pub-head h1 {
402 + font-family: var(--font-display); font-weight: 640; letter-spacing: -.02em;
403 + font-size: clamp(1.7rem, 4.5vw, 2.7rem); line-height: 1.12; margin: 10px 0 8px;
404 +}
405 +.pub-subtitle {
406 + font-family: var(--font-display); font-style: italic; font-weight: 460;
407 + font-size: 1.15rem; color: var(--muted); margin: 0 0 14px;
408 +}
409 +.pub-meta { font-size: .88rem; color: var(--muted); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
410 +.abstract {
411 + background: var(--card); border: 1px solid var(--hairline);
412 + border-left: 3px solid var(--accent); border-radius: 0 var(--radius) var(--radius) 0;
413 + box-shadow: var(--shadow); padding: 18px 22px; margin: 20px 0 6px;
414 +}
415 +.abstract-k {
416 + font-family: var(--font-mono); font-size: .68rem; font-weight: 700;
417 + letter-spacing: .12em; text-transform: uppercase; color: var(--accent-ink);
418 +}
419 +.abstract p { margin: 8px 0 0; font-size: .95rem; line-height: 1.65; }
420 +.pub-body { font-size: 1.01rem; line-height: 1.7; }
421 +.pub-body h2 { margin-top: 2em; padding-top: .8em; border-top: 1px solid var(--hairline); }
422 +.pub-body .chart-fig {
423 + background: var(--card); border: 1px solid var(--hairline);
424 + border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px 18px 12px;
425 +}
426 +.pub-footer {
427 + margin: 36px 0 20px; padding-top: 14px; border-top: 1px solid var(--hairline);
428 + font-size: .8rem; color: var(--faint); max-width: 56rem;
429 +}
430 +
393 431 /* -------------------------------------------------------------- comments */
394 432 .comment-form {
395 433 display: grid; gap: 12px; margin: 6px 0 10px;
modified web/server.js +58 −0
@@ -182,6 +182,64 @@ ${conf ? `<section class="card"><h2>Confidence evidence</h2><div class="md">${R.
182 182 page(res, { title: f.title, active: "Atlas", body });
183 183 });
184 184
185 +// ---------------------------------------------------------------- publications
186 +function listPublications() {
187 + return (C.listDir("research/publications") || [])
188 + .filter((f) => f.name.endsWith(".md") && f.name !== "README.md")
189 + .map((f) => {
190 + const md = C.readMarkdown(f.rel);
191 + return md ? { rel: f.rel, slug: f.name.replace(/\.md$/, ""), data: md.data,
192 + content: md.content } : null;
193 + })
194 + .filter(Boolean)
195 + .sort((a, b) => String(b.data.created).localeCompare(String(a.data.created)));
196 +}
197 +
198 +app.get("/publications", (req, res) => {
199 + const pubs = listPublications();
200 + const cards = pubs.map((p) => `<a class="doc-card pub-card" href="/publications/${p.slug}">
201 + <span class="pub-id">${R.esc(p.data.pub_id || "")} · ${R.esc(String(p.data.created || ""))} · v${R.esc(String(p.data.version || "1"))}</span>
202 + <h3>${R.esc(p.data.title || p.slug)}</h3>
203 + ${p.data.subtitle ? `<p class="pub-sub">${R.esc(p.data.subtitle)}</p>` : ""}
204 + <p>${R.esc(p.data.abstract ? String(p.data.abstract).slice(0, 260) + "…" : "")}</p>
205 + <span class="badge badge-${p.data.status === "published" ? "done" : "in-progress"}">${R.esc(p.data.status || "draft")}</span></a>`).join("");
206 + const body = `<h1 class="page-title">Publications</h1>
207 +<p class="lede-small">Formal write-ups of the project's results, versioned in the repository like everything
208 +else. Every number is regenerated from committed <code>results.json</code> files and every figure is rendered
209 +live from them — nothing is hand-typed. Each publication states its evidence level; negative results are
210 +published with the same care as positive ones.</p>
211 +<div class="doc-grid pub-grid">${cards || '<p class="lede-small">No publications yet.</p>'}</div>`;
212 + page(res, { title: "Publications", active: "Publications", body });
213 +});
214 +
215 +app.get("/publications/:slug", (req, res) => {
216 + const pub = listPublications().find((p) => p.slug === req.params.slug);
217 + if (!pub) return notFound(res);
218 + let { html, toc } = R.markdownToHtml(pub.content, pub.rel);
219 + // live figures: {{figure:experiment_id}} tokens -> server-rendered SVG
220 + html = html.replace(/<p>\s*\{\{figure:([\w-]+)\}\}\s*<\/p>|\{\{figure:([\w-]+)\}\}/g,
221 + (m, a, b) => charts.figuresFor(a || b, C) || "");
222 + const d = pub.data;
223 + const body = `<article class="pub">
224 +<header class="pub-head">
225 + <p class="pub-id">${R.esc(d.pub_id || "")} · version ${R.esc(String(d.version || "1"))} · ${R.esc(String(d.created || ""))}</p>
226 + <h1>${R.esc(d.title || pub.slug)}</h1>
227 + ${d.subtitle ? `<p class="pub-subtitle">${R.esc(d.subtitle)}</p>` : ""}
228 + <p class="pub-meta">${R.esc(d.author || "")} · <a href="mailto:${R.esc(d.contact || "")}">${R.esc(d.contact || "")}</a>
229 + · data: <a href="https://www.hfmarketdata.io">hfmarketdata.io</a>
230 + <span class="badge badge-${d.status === "published" ? "done" : "in-progress"}">${R.esc(d.status || "draft")}</span></p>
231 + ${d.abstract ? `<div class="abstract"><span class="abstract-k">Abstract</span><p>${R.esc(d.abstract)}</p></div>` : ""}
232 +</header>
233 +<div class="doc-layout ${toc.length >= 3 ? "has-toc" : ""}">
234 + ${R.tocHtml(toc)}
235 + <div class="doc"><div class="md pub-body">${html}</div></div>
236 +</div>
237 +<footer class="pub-footer">Not investment advice. Past statistical regularity does not imply future returns.
238 +Reproducible from the repository at the commits cited above; every figure regenerates from committed results.</footer>
239 +</article>`;
240 + page(res, { title: d.title || pub.slug, active: "Publications", body });
241 +});
242 +
185 243 // ---------------------------------------------------------------- research index
186 244 app.get("/research", (req, res) => {
187 245 const docs = [
188 246