132 lines
5.2 KiB
Markdown
132 lines
5.2 KiB
Markdown
# R2-H — HORIZON-BOUNDARY EXPERIMENT EXECUTION
| |||
| |||
**Experiment:** R2-H
| |||
**Protocol:** `r2-h-v0.1.0-frozen` (status: DESIGN-FROZEN, then EXECUTION-AUTHORIZED)
| |||
**Execution state:** repository HEAD = the freeze commit; working-tree clean; no commit after freeze
| |||
**Outcome:** **NULL** (acceptable, non-positive result)
| |||
| |||
> This document is the human-readable execution report. Exact hashes, counts,
| |||
> and identity metadata are recorded machine-readably in the canonical artifacts:
| |||
> `results/R2-H/R2_H_MANIFEST.json` (frozen, protocol + origin + dataset
| |||
> identities), `results/R2-H/R2_H_EXECUTION_MANIFEST.json` (execution), and
| |||
> `results/R2-H/R2_H_INFERENCE.json` (metrics/bootstrap/FWER). All are byte-
| |||
> verified against the attached evidence files. Results are **NOT committed**.
| |||
| |||
---
| |||
| |||
## 1. Pre-execution recheck
| |||
| |||
| check | result |
| |||
|---|---|
| |||
| HEAD == freeze commit (R2-H) | PASS |
| |||
| working tree CLEAN | PASS |
| |||
| protocol SHA-256 == manifest | PASS |
| |||
| manifest present | PASS |
| |||
| source dataset SHA-256 identity | PASS |
| |||
| frozen origin lists (hash == manifest) | PASS |
| |||
| no commit after freeze | PASS |
| |||
| no R1-R modification | PASS |
| |||
| no frozen artifact modification | PASS |
| |||
| |||
All checks PASS; the execution was started strictly under the frozen protocol.
| |||
| |||
---
| |||
| |||
## 2. Execution
| |||
| |||
Every **frozen origin** of the M1 base grid for horizons {15, 60, 240} was
| |||
evaluated at exactly the frozen origin & endpoint:
| |||
`tau_H(o) = (Close[target_end_index]−Close[o]) / ATR20(o)` (target_end_index is
| |||
the FROZEN first valid bar ≥ timestamp(o)+H). Cost per trade applied as the
| |||
frozen pre-registered constant `cost_atr(o) = (7.57/10000) × close(o)/ATR20(o)`.
| |||
| |||
Primary evaluated model: **Drift** (the only model that can carry the primary
| |||
decision). **Naive** provides the error reference. Origin lists were read, never
| |||
regenerated.
| |||
| |||
| horizon | role | origins | trade coverage | evidence rows |
| |||
|---|:--|--:|--:|--:|
| |||
| 15 min | control (outside FWER) | 13,193 | 100% | 26,386 |
| |||
| 60 min | primary (FWER family) | 3,169 | 100% | 6,338 |
| |||
| 240 min | primary (FWER family) | 863 | 100% | 1,726 |
| |||
| |||
No-lookahead mutation gates (perturb bars strictly after the frozen target
| |||
endpoint at ≥3 origins per primary horizon): **Drift predictions unchanged —
| |||
PASS** for all three horizons. DEFECT-001 SAX z-normalization regression:
| |||
**PASS** (3/3). Full details in `R2_H_EXECUTION_MANIFEST.json`.
| |||
| |||
---
| |||
| |||
## 3. Primary results (Drift; MBB B=60, 10,000 reps, seed=20260826, 95% CI)
| |||
| |||
Values are observed point estimates; CI = percentile interval. "Interval for
| |||
gross" can be wide because per-origin |tau| is heavy-tailed.
| |||
| |||
| horizon | dir-acc (obs) | dir-acc 95% CI | gross/trade (obs) | gross 95% CI | net/trade (obs) | net 95% CI | MASE | Q1 | Q2 |
| |||
|---|---|---|---|---|---|---|---|---|---|
| |||
| H15 | 0.494 | [0.485, 0.502] | +0.050 | [−0.052, 0.144] | −3.87 | [−4.08, −3.68] | 1.19 | FALSE | FALSE |
| |||
| H60 | 0.490 | [0.470, 0.507] | −0.067 | [−0.624, 0.389] | −3.90 | [−4.62, −3.33] | 1.57 | FALSE | FALSE |
| |||
| H240 | 0.479 | [0.440, 0.514] | −0.888 | [−2.92, 0.708] | −4.35 | [−6.54, −2.58] | 2.51 | FALSE | FALSE |
| |||
| |||
- Q1-A (>0.50): **FALSE** at every horizon (CIs include 0.50; point estimates ≤ 0.49).
| |||
- Q1-B (gross > 0): **FALSE** (CI lower bounds ≤ 0).
| |||
- Q1-C (Drift error < naive): **FALSE** (paired naive−Drift error CI is negative; MASE > 1).
| |||
- Q2 (net > 0 under 7.57 bps): **FALSE**; net is ~ −3.8 to −4.4 ATR/trade because 7.57 bps ≈ 3.5–3.9 ATR/trade on M1.
| |||
| |||
---
| |||
| |||
## 4. Global FWER gate (family {60,240}, α=0.05)
| |||
| |||
Joint cross-horizon block bootstrap (B=60 M1 blocks), max-statistic under a
| |||
re-centered global null on the direction-accuracy excess over 0.5.
| |||
| |||
| | value |
| |||
|---|---|
| |||
| observed max statistic | −0.0096 (negative: both horizons below 0.5) |
| |||
| null 95% critical value | +0.0305 |
| |||
| null p-value | 0.94 |
| |||
| **gate rejected** | **NO** |
| |||
| |||
---
| |||
| |||
## 5. Outcome (frozen matrix)
| |||
| |||
**OUTCOME = NULL.**
| |||
- Global gate not rejected;
| |||
- no family horizon passes Q1 (A, B, C);
| |||
- no economic survival (Q2).
| |||
| |||
---
| |||
| |||
## 6. Scientific interpretation
| |||
| |||
The ~15-minute R1-R directional null **persists** at 60- and 240-minute
| |||
horizons: Drift direction accuracy stays ≤ 0.49 (≤ chance), gross per-trade
| |||
return is ~0/negative-lit, error is not statistically better than the naive
| |||
baseline, and net economics under the frozen 7.57 bps cost are decisively
| |||
negative. No directional signal and no economically viable horizon exists in the
| |||
study family. The 240-min horizon is underpowered (n_eff = 14) as
| |||
pre-pre-registered, but its point accuracy is below chance, so the NULL
| |||
reading stands.
| |||
| |||
---
| |||
| |||
## 6bis. Diagnostics note
| |||
| |||
ARIMA/Sax/Hybrid are diagnostic-only models. They cannot establish the primary
| |||
claim, so they were deferred to avoid an impractical runtime on the H15
| |||
13k-origin set. Their absence does not change the decision; they can be added as
| |||
a later optional diagnostic-only follow-up.
| |||
| |||
---
| |||
| |||
## 7. Governance
| |||
| |||
- All execution artifacts are hash-linked to the frozen protocol; the freeze
| |||
manifest and origin hashes are unchanged.
| |||
- No frozen parameter, list, model, or criterion was changed.
| |||
- Results are **not** committed/pushed (awaiting separate owner authorization).
| |||
- Outcome NULL is an acceptable result; no positive result was assumed or
| |||
manufactured.
| |||
| |||
**End of R2-H execution report.**
|