diff --git a/crates/ml/src/cuda_pipeline/aux_horizon_update_kernel.cu b/crates/ml/src/cuda_pipeline/aux_horizon_update_kernel.cu index ee27492da..420735b82 100644 --- a/crates/ml/src/cuda_pipeline/aux_horizon_update_kernel.cu +++ b/crates/ml/src/cuda_pipeline/aux_horizon_update_kernel.cu @@ -74,6 +74,22 @@ void aux_horizon_update( * without branching on the host side. */ if (blockIdx.x != 0 || threadIdx.x != 0) return; + /* EXPERIMENT (sp20-aux-h-fixed, 2026-05-10): force H=30 to test the + * "bootstrap failure" hypothesis. Adaptive H gets pulled to ~2 bars + * because only Q-magnitude trades held briefly produce wins, so aux + * predicts at noise horizon → 53.5% accuracy → policy can't improve → + * H stays small. Forcing H=30 lets aux predict at a longer horizon + * (~15 minutes at 30-sec bars), where Kyle's Lambda / VPIN signals + * have demonstrated predictive power per research. If aux_dir_acc + * rises materially at fixed H=30, bootstrap failure confirmed and + * the proper fix is constraint-based (min hold time during + * exploration). If accuracy stays at 53.5%, the data really doesn't + * have signal at this horizon. */ + isv[isv_h_idx] = 30.0f; + return; + + /* Original adaptive logic preserved below — disabled by the early + * return above. Restore by deleting lines above this comment. */ float h_target = isv[isv_h_target_idx]; float h_current = isv[isv_h_idx]; diff --git a/docs/dqn-wire-up-audit.md b/docs/dqn-wire-up-audit.md index d1ae14d1d..5ef9d423a 100644 --- a/docs/dqn-wire-up-audit.md +++ b/docs/dqn-wire-up-audit.md @@ -2,6 +2,10 @@ **Status:** Populated during Plan 1 Task 6 (A.5 orphan audit). Updated on every commit per Invariant 7. +## 2026-05-10 — DIAGNOSTIC: aux_horizon_update_kernel forced H=30 (sp20-aux-h-fixed branch) + +Throwaway experimental edit. Short-circuits the kernel to always write `ISV[AUX_PRED_HORIZON_BARS_INDEX=450] = 30.0` instead of running adaptive logic. Tests the bootstrap-failure hypothesis: in production, the adaptive H gets pulled to ~2 bars (only brief Q-magnitude trades win → avg winning hold = ~2 bars → H = ~2 bars → aux predicts at noise horizon → 53.5% accuracy → loop closes). If forcing H=30 lifts aux_dir_acc materially, bootstrap failure is real. Diagnostic-only — DO NOT merge to mainline. Original adaptive logic preserved as unreachable code with restoration comment. + ## 2026-05-10 — SP20 Phase 5: aux→Q reward gate (close-out) **Branch:** `sp20-phase-5` (off `d1a8ec206`).