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

Experiments / expG_cost_frontier

expG_cost_frontier

Cost frontier: transaction-cost sweep, where each surviving net effect crosses zero

View benchmark implementation (benchmark.py) →

Figures

Generated server-side from the latest committed results.json — never hand-typed.

0.001 0.01 0.1 1 patient execution full half-spreadbreakeven cost multiplier κ* (× half-spread paid per trade, log scale) — right of a line = survives that cost levelR:CKX:1day:2008-2015 R:CKX:1day:2008-2015 — κ* = 0.2799 · gross 39.101 bp/day · turnover 1.12/day · half-spread 124.379 bpR:HTD:5min:2000-2007 R:HTD:5min:2000-2007 — κ* = 0.1923 · gross 218.132 bp/day · turnover 59.83/day · half-spread 18.956 bpR:AXDX:30min:2000-2007 R:AXDX:30min:2000-2007 — κ* = 0.1392 · gross 55.091 bp/day · turnover 3.62/day · half-spread 109.435 bpR:ICUI:5min:2008-2015 R:ICUI:5min:2008-2015 — κ* = 0.041 · gross 79.286 bp/day · turnover 70.4/day · half-spread 27.475 bpR:ATRO:5min:2008-2015 R:ATRO:5min:2008-2015 — κ* = 0.0363 · gross 133.29 bp/day · turnover 52.95/day · half-spread 69.313 bpL:SPY->ATRO:+ L:SPY->ATRO:+ — κ* = 0.0354 · gross 158.647 bp/day · turnover 154.01/day · half-spread 29.117 bpL:SPY->HTD:+ L:SPY->HTD:+ — κ* = 0.0342 · gross 24.123 bp/day · turnover 76.5/day · half-spread 9.211 bpL:SPY->BKE:+ L:SPY->BKE:+ — κ* = 0.0329 · gross 147.618 bp/day · turnover 237.6/day · half-spread 18.869 bpL:SPY->CECO:+ L:SPY->CECO:+ — κ* = 0.0317 · gross 108.571 bp/day · turnover 104.98/day · half-spread 32.629 bpL:SPY->AXDX:+ L:SPY->AXDX:+ — κ* = 0.0272 · gross 192.889 bp/day · turnover 140.98/day · half-spread 50.247 bpR:SLF:5min:2000-2007 R:SLF:5min:2000-2007 — κ* = 0.0268 · gross 37.148 bp/day · turnover 71.63/day · half-spread 19.381 bpR:MSFT:5min:2000-2007 R:MSFT:5min:2000-2007 — κ* = 0.025 · gross 39.148 bp/day · turnover 78.87/day · half-spread 19.871 bpR:BKE:5min:2008-2015 R:BKE:5min:2008-2015 — κ* = 0.0222 · gross 61.794 bp/day · turnover 79.81/day · half-spread 34.805 bpR:XOM:5min:2000-2007 R:XOM:5min:2000-2007 — κ* = 0.0182 · gross 34.032 bp/day · turnover 77.74/day · half-spread 24.048 bpR:AAPL:5min:2000-2007 R:AAPL:5min:2000-2007 — κ* = 0.0179 · gross 68.121 bp/day · turnover 79.21/day · half-spread 48.128 bpR:NVDA:1min:2014-2015 R:NVDA:1min:2014-2015 — κ* = 0.0114 · gross 117.735 bp/day · turnover 378.76/day · half-spread 27.231 bpL:SPY->XLY:+ L:SPY->XLY:+ — κ* = 0.0094 · gross 22.837 bp/day · turnover 397.98/day · half-spread 6.098 bpL:SPY->GOOGL:+ L:SPY->GOOGL:+ — κ* = 0.0067 · gross 45.636 bp/day · turnover 393.02/day · half-spread 17.413 bpL:SPY->XLP:+ L:SPY->XLP:+ — κ* = 0.0066 · gross 30.825 bp/day · turnover 395.87/day · half-spread 11.817 bpL:SPY->XLF:+ L:SPY->XLF:+ — κ* = 0.0054 · gross 52.66 bp/day · turnover 399.91/day · half-spread 24.571 bpL:SPY->NVDA:+ L:SPY->NVDA:+ — κ* = 0.0043 · gross 46.829 bp/day · turnover 398.42/day · half-spread 27.231 bpL:SPY->XLK:+ L:SPY->XLK:+ — κ* = 0.0039 · gross 37.642 bp/day · turnover 397.88/day · half-spread 24.072 bpR:JPM:1min:2014-2015 R:JPM:1min:2014-2015 — κ* = 0.0038 · gross 39.337 bp/day · turnover 393.27/day · half-spread 26.034 bpL:SPY->META:- L:SPY->META:- — κ* = 0.0037 · gross 24.615 bp/day · turnover 400.35/day · half-spread 16.839 bpL:ES[contin_adj_ratio]->SPY:- L:ES[contin_adj_ratio]->SPY:- — κ* = 0.0028 · gross 11.34 bp/day · turnover 395.96/day · half-spread 10.376 bpL:ES[contin_adj_absolute]->SPY:- L:ES[contin_adj_absolute]->SPY:- — κ* = 0.0028 · gross 11.34 bp/day · turnover 395.96/day · half-spread 10.376 bpL:ES[contin_UNadj]->SPY:- L:ES[contin_UNadj]->SPY:- — κ* = 0.0028 · gross 11.34 bp/day · turnover 395.96/day · half-spread 10.376 bpL:SPY->MSFT:- L:SPY->MSFT:- — κ* = 0.0026 · gross 18.179 bp/day · turnover 400.11/day · half-spread 17.211 bpL:SPY->QQQ:- L:SPY->QQQ:- — κ* = 0.0025 · gross 16.081 bp/day · turnover 400.33/day · half-spread 16.063 bp
expG — the cost frontier: every rule that beat the artifact nulls AND the search correction dies when it must pay a fraction of its own half-spread (median κ* = 0.0114). Run 20260812T072128Z, regenerated from results.json.

Hypothesis

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

Hypothesis — expG_cost_frontier#

Pre-specified 2026-08-12 before the sweep ran.

Hypothesis
  Tests H-family question Q5 on the expF double-filtered pool (the only
  rules that beat BOTH the artifact nulls and the search correction,
  gross): 12 reversion cells + ES->SPY + the expD 2014-2015 FDR lead-lag
  set. Prior (Novy-Marx-Velikov; Chen-Velikov): high-turnover short-horizon
  rules die well below realistic costs. Expectation: every intraday rule
  has breakeven cost multiplier kappa* << 0.25 (a quarter of the half
  spread — the patient-execution floor of Frazzini et al.); at most the
  1day cells are ambiguous.

Falsification criterion
  The "costs kill short-horizon anomalies" story is falsified if ANY
  intraday rule from the pool survives kappa = 1 (paying the full
  half-spread per trade) with positive net mean.

Artifact null(s)
  None new — this experiment IS the cost layer. The spread input is the
  EDGE estimate from daily OHLC of the TRADED instrument over the rule's
  own period (independent granularity, as in expC).

Method (pre-declared)
  Pool: mechanical intersection recomputed from committed expC/expF/expD
  results (no hand-picking). Rule return streams rebuilt from the frozen
  cache exactly as in expF, now with per-day TURNOVER = sum |delta
  position| (entry included). Cost model: net_day = gross_day - kappa *
  half_spread * turnover_day, half_spread = EDGE/2 per (traded instrument,
  period). Sweep kappa in {0, 0.1, 0.25, 0.5, 1.0, 2.0}; for each rule
  report gross mean, turnover/day, half-spread (bp), net mean and its
  block-bootstrap t at each kappa, and the analytic breakeven
  kappa* = gross_mean / (half_spread * mean_turnover). Survivor counts at
  each kappa level; ES uses the same machinery with the futures caveat
  declared (cost structure differs; kappa* still reported).

Result
  Run 20260812T072128Z (cache-served). Pool: 31 rules (12 reversion cells,
  16 lead-lag incl. ES x3 splices, sparse-name pairs). kappa* median =
  0.0114, max = 0.28 (all 31 defined after invalid-day filtering): at the MEDIAN the double-filtered survivors capture
  0.7% of one half-spread per trade. Survivors: kappa=0.1 -> 3 rules (all
  sparse-name: AXDX 30min, CKX 1day, HTD 5min); kappa=0.25 -> CKX 1day
  alone (kappa*=0.28); kappa=0.5 -> NONE; kappa=1.0 -> NONE. Zero intraday
  rules survive kappa=1 — the pre-registered falsification did NOT trigger.
  ES->SPY: kappa*=0.0028, identical across splices.

Interpretation
  (Level 0.) The cost frontier does exactly what the literature priors
  said it would (Novy-Marx-Velikov; Chen-Velikov): everything that
  survived the artifact nulls AND the search correction dies at a fraction
  of realistic costs. The gross "profits" were spread capture one cannot
  buy. Q5's answer on this pool: the frontier sits at ~0.01-0.04 of a
  half-spread for intraday rules — an order of magnitude below even the
  most optimistic patient-execution assumptions. The single kappa=0.25
  survivor (CKX 1day, an ultra-sparse name with a wide, noisy EDGE
  estimate) is exactly the profile of a measurement artifact — it goes to
  expH's validation split with a strong skeptical prior rather than being
  discarded by hand.

Next experiment
  expH: validation-split evaluation of whatever survives kappa >= 0.25
  (if anything); otherwise expH validates the negative finding and the
  atlas receives its first confidence-labeled entries.

Analysis

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

Analysis — expG_cost_frontier#

Run: results/expG_cost_frontier/20260812T072128Z/results.json (pool rebuilt mechanically from committed expC/expD/expF outputs — no hand-picking; cost model and κ sweep pre-declared; cache-served).

The frontier#

κ (× half-spread paid per trade) survivors / 31
0 (gross) 31
0.1 3 (AXDX 30min, CKX 1day, HTD 5min — all sparse names)
0.25 1 (CKX 1day, κ* = 0.28)
0.5 0
1.0 0

Median breakeven κ* = 0.0114: the median double-filtered rule captures ~1 % of one half-spread per trade. The intraday reversion cells sit at κ* 0.004–0.04; the 2014-2015 lead-lag residuals at 0.003–0.03; ES→SPY at 0.0028 (identical across all three splices). Zero intraday rules survive κ = 1 — the pre-registered falsification clause did not trigger.

Reading#

  1. The three-layer doctrine closes. expF showed statistical correction cannot detect mechanism; expG shows the mechanism's price: the gross survivors were harvesting exactly the thing they would have to pay. Charter Q5 answered on this pool: the cost frontier sits an order of magnitude below the most optimistic execution assumptions (Frazzini-style κ ≈ 0.1–0.25).
  2. The lone κ=0.25 survivor is the skeptic's case study. CKX (ultra sparse; wide, noisy EDGE spread; daily contrarian) has the classic profile of estimation artifact rather than economics. It is NOT discarded by hand — it goes to expH's validation split carrying the skeptical prior, which is what the protocol is for.

Hand-off#

expH evaluates on the untouched validation split: (i) CKX 1day (the lone cost survivor), (ii) the daily 2008-2015 reversal family (gross, cost-marginal — evaluated for the decay/negative record), and (iii) the NEGATIVE finding itself ("nothing intraday survives costs") — which, if it replicates out-of-sample, becomes the atlas's first confidence-labeled entries (charter result-types C and E).

README

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

expG_cost_frontier#

Cost frontier: transaction-cost sweep, where each surviving net effect crosses zero

Status: completed 2026-08-12 — median breakeven kappa*=0.0067; 1 marginal survivor at 0.25x half-spread (CKX 1day, skeptical prior); zero intraday survivors at kappa=1. The three-layer doctrine closes.

Result runs