diff --git a/src/cerbero_bite/config/schema.py b/src/cerbero_bite/config/schema.py index 1f34172..0b066e7 100644 --- a/src/cerbero_bite/config/schema.py +++ b/src/cerbero_bite/config/schema.py @@ -84,6 +84,24 @@ class EntryConfig(BaseModel): iv_minus_rv_min: Decimal = Field(default=Decimal("0")) iv_minus_rv_filter_enabled: bool = False + # IV richness gate adattivo (Phase 5+). Quando + # `iv_minus_rv_adaptive_enabled=True`, la soglia statica + # `iv_minus_rv_min` diventa il floor assoluto e la soglia + # effettiva è `max(P_q rolling, floor)` calcolata su + # `market_snapshots`. Vedi + # `docs/superpowers/specs/2026-05-08-iv-rv-adaptive-gate-design.md`. + iv_minus_rv_adaptive_enabled: bool = False + iv_minus_rv_percentile: Decimal = Field(default=Decimal("0.25")) + iv_minus_rv_window_target_days: int = 60 + iv_minus_rv_window_min_days: int = 30 + + # Vol-of-Vol guard (§4-quater roadmap punto 2): blocca entry se + # |DVOL_now - DVOL_24h_ago| supera la soglia. Cattura regime + # shift bruschi non riflessi nel percentile rolling. + vol_of_vol_guard_enabled: bool = False + vol_of_vol_threshold_pt: Decimal = Field(default=Decimal("5")) + vol_of_vol_lookback_hours: int = 24 + # --------------------------------------------------------------------------- # Structure