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%
4.2 KB · 56 lines markdown
Rendered Raw Blame History
1---2project: anomaly-atlas3document: Phase 1 notes — microstructure noise & data artifacts4author: Simon-Pierre Boucher5contact: contact@spboucher.ai6data_source: hfmarketdata.io7created: 2026-08-128status: reviewed9---1011# Market microstructure & artifacts (§4.3 — feeds the taxonomy)1213*Phase 1 literature notes. Citations verified via OpenAlex, accessed142026-08-12. Cross-references: research/artifact_taxonomy.md (T1–T7), expB15measured magnitudes.*1617## 1. Bid-ask bounce (taxonomy T1)1819- Roll, R. (1984). A Simple Implicit Measure of the Effective Bid-Ask Spread in an Efficient Market. *Journal of Finance* 39(4), 1127–1139. https://doi.org/10.1111/j.1540-6261.1984.tb03897.x — spread = 2√(−autocov₁). Implemented in `validation/artifacts.py`; expB found it undefined (positive autocov) for mega-caps at 1min — a known Roll limitation, not an anomaly.20- Blume, M. E. & Stambaugh, R. F. (1983). Biases in computed returns: an application to the size effect. *Journal of Financial Economics* 12(3), 387–404. https://doi.org/10.1016/0304-405x(83)90056-9 — bounce in *closing prices* inflates equal-weighted portfolio returns; roughly **halved the size effect**. Warning: portfolio-level statistics inherit ticker-level bounce.2122## 2. Stale prices & non-synchronicity (T2, T3)2324- Fisher, L. (1966). Some New Stock-Market Indexes. *Journal of Business* 39(S1), 191–225. https://doi.org/10.1086/294848 — stale constituent prices induce spurious *index* autocorrelation ("Fisher effect"). Our SPX-lags-SPY measurement (+0.065 at 1min) is this, live.25- Scholes & Williams (1977), Epps (1979), Lo & MacKinlay (1990) — see mean-reversion/lead-lag notes; the artifact-vs-anomaly frontier for Q2.2627## 3. Microstructure noise & realized measures2829- Zhang, L., Mykland, P. A. & Aït-Sahalia, Y. (2005). A Tale of Two Time Scales. *JASA* 100(472), 1394–1411. https://doi.org/10.1198/016214505000000169 — realized variance from finest-scale returns is dominated by noise; two-scales estimator fixes it. For us: 1min realized-vol features must use subsampling or noise correction.30- Aït-Sahalia, Y., Mykland, P. A. & Zhang, L. (2005). How Often to Sample a Continuous-Time Process in the Presence of Market Microstructure Noise. *Review of Financial Studies* 18(2), 351–416. https://doi.org/10.1093/rfs/hhi016 — naive answer: sample sparsely (5min); better: model the noise.31- Hansen, P. R. & Lunde, A. (2006). Realized Variance and Market Microstructure Noise. *JBES* 24(2), 127–161. https://doi.org/10.1198/073500106000000071 — noise is time-varying and **correlated with the efficient price**; iid-noise corrections are themselves biased.32- Bandi, F. M. & Russell, J. R. (2006). Separating microstructure noise from volatility. *Journal of Financial Economics* 79(3), 655–692. https://doi.org/10.1016/j.jfineco.2005.01.005 — moment-based separation of noise vs integrated variance.33- Bandi, F. M. & Russell, J. R. (2008). Microstructure Noise, Realized Variance, and Optimal Sampling. *Review of Economic Studies* 75(2), 339–369. https://doi.org/10.1111/j.1467-937x.2008.00474.x — MSE-optimal sampling frequency.3435## 4. What our dataset adds/changes36371. We have **bars, not quotes/trades**: all noise corrections must work from38   1min OHLCV. Roll-type estimators (from closes) and high-low estimators39   (see transaction-costs notes) are the available instruments.402. expA's dataset-specific artifacts (auction-close mismatch T4, rolling41   adjustment anchor T5, volume-convention mismatch T6, session semantics42   T7) are NOT in this classic literature — they are vendor-layer artifacts43   and belong to our taxonomy as original documentation.443. Hansen–Lunde's endogenous-noise warning applies directly to expC:45   bounce-null subtraction assumes independence between noise and efficient46   price; report sensitivity.4748## 5. Implications4950- Realized-vol-based hypotheses (Q1/Q3 conditioning variables) must use51  5min-subsampled or two-scales estimators, never raw 1min RV.52- Any portfolio-level result needs the Blume–Stambaugh check: recompute with53  bounce-robust prices (e.g., mid-of-day anchors) before believing it.54- Index-based lead-lag (SPX family) is presumptively Fisher-effect until55  proven otherwise.56