Post-mortem NVIDIA 631181: un trade legacy de abril donde una única señal no corroborada de peso alto (Manifold 0.13, peso 0.6) invirtió un mercado de 0.845 a 0.431 y perdió. Con Manifold observational-only y macro gateado tras is_non_price, GNews (peso 1.5) es la única señal viva capaz de mover politics 20-30 pp contra el consenso del libro. Esto es un fusible catastrófico, no una calibración fina.
Cambios
apply_news_guardrail() (función pura): si |news_lo| >= 0.10 y todas las demás señales (fg, mom, btc_dom, mfld) están por debajo → clamp del posterior a prior ± 0.25. Cualquier señal material corrobora y desactiva el clamp. Config vía env: NEWS_GUARDRAIL_ENABLED=true, MAX_NEWS_ONLY_PROB_SHIFT=0.25, NEWS_MATERIAL_LOGODDS_THRESHOLD=0.10.
edge calculado con el posterior clampado; raw_final_prob persiste vía reasoning (sin migración de schema).
guardrail_changed_trade_decision: el edge raw cruzaba el gate de régimen pero el clampado ya no → el fusible evitó un trade. Nota: con la banda default 0.25 el edge_net clampado es 0.21 (> todos los mínimos de régimen); el flag solo puede dispararse con banda configurada más estrecha.
Observabilidad gateada por materialidad: línea NEWS_MATERIAL por mercado y NEWS SUMMARY compacto por ciclo, solo si with_news > 0 — sin flood de los ~145 mercados/ciclo sin noticias.
NEWS_LOGODDS_WEIGHT, flags de Manifold, thresholds de edge/régimen, exposure, sizing, payout, resolution detector, promotion_ready, trades históricos.
Hallazgo colateral (fuera de scope, no tocado)
Con macro gateado, politics tiene adjustments=[] → confidence = 0.4 + 0.10 (GNews) = 0.50 < MIN_CONFIDENCE 0.55 → el pipeline actual no puede ejecutar ningún trade de politics aunque el edge sea enorme. Confounder a tener en cuenta al evaluar en semanas si el fusible muerde.
## Contexto
Post-mortem NVIDIA 631181: un trade legacy de abril donde una única señal no corroborada de peso alto (Manifold 0.13, peso 0.6) invirtió un mercado de 0.845 a 0.431 y perdió. Con Manifold observational-only y macro gateado tras `is_non_price`, **GNews (peso 1.5) es la única señal viva capaz de mover politics 20-30 pp contra el consenso del libro**. Esto es un fusible catastrófico, no una calibración fina.
## Cambios
- **`apply_news_guardrail()`** (función pura): si `|news_lo| >= 0.10` y todas las demás señales (`fg`, `mom`, `btc_dom`, `mfld`) están por debajo → clamp del posterior a `prior ± 0.25`. Cualquier señal material corrobora y desactiva el clamp. Config vía env: `NEWS_GUARDRAIL_ENABLED=true`, `MAX_NEWS_ONLY_PROB_SHIFT=0.25`, `NEWS_MATERIAL_LOGODDS_THRESHOLD=0.10`.
- **edge calculado con el posterior clampado**; `raw_final_prob` persiste vía `reasoning` (sin migración de schema).
- **`guardrail_changed_trade_decision`**: el edge raw cruzaba el gate de régimen pero el clampado ya no → el fusible evitó un trade. Nota: con la banda default 0.25 el edge_net clampado es 0.21 (> todos los mínimos de régimen); el flag solo puede dispararse con banda configurada más estrecha.
- **Observabilidad gateada por materialidad**: línea `NEWS_MATERIAL` por mercado y `NEWS SUMMARY` compacto por ciclo, solo si `with_news > 0` — sin flood de los ~145 mercados/ciclo sin noticias.
- **9 tests deterministas** (75/75 pasan): clamp extremo (0.845→raw 0.431→final 0.595), passthrough en banda, corroboración, umbral inclusivo, disabled, changed_decision.
## Sin cambios
`NEWS_LOGODDS_WEIGHT`, flags de Manifold, thresholds de edge/régimen, exposure, sizing, payout, resolution detector, promotion_ready, trades históricos.
## Hallazgo colateral (fuera de scope, no tocado)
Con macro gateado, politics tiene `adjustments=[]` → confidence = 0.4 + 0.10 (GNews) = **0.50 < MIN_CONFIDENCE 0.55** → el pipeline actual no puede ejecutar ningún trade de politics aunque el edge sea enorme. Confounder a tener en cuenta al evaluar en semanas si el fusible muerde.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Post-mortem NVIDIA 631181: one uncorroborated high-weight signal (legacy
Manifold 0.13 at weight 0.6) flipped a 0.845 market to 0.431 and lost.
With Manifold observational-only and macro signals gated behind
is_non_price, GNews (weight 1.5) is the only live signal able to move
politics markets 20-30 pp against the order-book consensus. This adds a
catastrophic fuse, not a fine calibration:
- apply_news_guardrail(): when |news_lo| >= NEWS_MATERIAL_LOGODDS_THRESHOLD
(0.10) and every other signal (fg, mom, btc_dom, mfld) is below it,
clamp the posterior to prior ± MAX_NEWS_ONLY_PROB_SHIFT (0.25). Any
corroborating material signal disables the clamp. Config via env
(NEWS_GUARDRAIL_ENABLED=true by default).
- edge_gross/edge_net computed from the clamped posterior; raw_final_prob
preserved in reasoning (persisted via trades.reasoning — no schema
migration) and in the NEWS_MATERIAL log line.
- guardrail_changed_trade_decision: raw edge crossed the regime gate but
the clamped edge no longer does (fuse prevented a trade). Note: with
the default 0.25 band the clamped edge_net is 0.21, above every regime
minimum, so the flag only fires with a tighter configured band.
- Observability gated on materiality: NEWS_MATERIAL per-market line and a
compact NEWS SUMMARY cycle line, only when with_news > 0 — no flood
from the ~145 news-less markets per cycle.
- 9 deterministic tests (extreme clamp, in-band passthrough, corroboration,
inclusive threshold, disabled, changed_decision).
No changes to NEWS_LOGODDS_WEIGHT, Manifold flags, edge thresholds,
sizing, payout, resolution, or historical trades.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
chemavx
merged commit 117d2b33b2 into main2026-07-02 07:17:35 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Contexto
Post-mortem NVIDIA 631181: un trade legacy de abril donde una única señal no corroborada de peso alto (Manifold 0.13, peso 0.6) invirtió un mercado de 0.845 a 0.431 y perdió. Con Manifold observational-only y macro gateado tras
is_non_price, GNews (peso 1.5) es la única señal viva capaz de mover politics 20-30 pp contra el consenso del libro. Esto es un fusible catastrófico, no una calibración fina.Cambios
apply_news_guardrail()(función pura): si|news_lo| >= 0.10y todas las demás señales (fg,mom,btc_dom,mfld) están por debajo → clamp del posterior aprior ± 0.25. Cualquier señal material corrobora y desactiva el clamp. Config vía env:NEWS_GUARDRAIL_ENABLED=true,MAX_NEWS_ONLY_PROB_SHIFT=0.25,NEWS_MATERIAL_LOGODDS_THRESHOLD=0.10.raw_final_probpersiste víareasoning(sin migración de schema).guardrail_changed_trade_decision: el edge raw cruzaba el gate de régimen pero el clampado ya no → el fusible evitó un trade. Nota: con la banda default 0.25 el edge_net clampado es 0.21 (> todos los mínimos de régimen); el flag solo puede dispararse con banda configurada más estrecha.NEWS_MATERIALpor mercado yNEWS SUMMARYcompacto por ciclo, solo siwith_news > 0— sin flood de los ~145 mercados/ciclo sin noticias.Sin cambios
NEWS_LOGODDS_WEIGHT, flags de Manifold, thresholds de edge/régimen, exposure, sizing, payout, resolution detector, promotion_ready, trades históricos.Hallazgo colateral (fuera de scope, no tocado)
Con macro gateado, politics tiene
adjustments=[]→ confidence = 0.4 + 0.10 (GNews) = 0.50 < MIN_CONFIDENCE 0.55 → el pipeline actual no puede ejecutar ningún trade de politics aunque el edge sea enorme. Confounder a tener en cuenta al evaluar en semanas si el fusible muerde.🤖 Generated with Claude Code