- src/volatility.py: optional release-timing features (next release within
24h/6h, hours to next, hours since last), from the published calendar the
live price-range forecaster already uses. Off by default; serving computes
them so a model trained with --calendar can be deployed, while the live
model keeps selecting its own 33 columns.
- train_vae_transformer_artifacts.py: --calendar and --tag, so the experiment
never overwrites the live artifact, plus the persistence baseline on the
held-out rows in the metadata.
- Hybrid ablation of the price range (Transformer, VAE, self- vs
cross-attention news fusion) walk-forward against the live model.
- Jobs report and PCE added to the macro event study; the jobs report tested
as a calendar candidate for the price range (no gain, kept out).
- Trump Truth Social posts timed to the minute against 5-minute BTC bars.
- Side-by-side method diagram of the two live forecasts.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fix the price range three ways, validated walk-forward
Three fixes to the range forecast, each targeting one failure the plain
backtest found, scored on every hour of 2023 to September 2026:
fat tails empirical quantiles of standardised outcomes, replacing
the normal: 50/80/95% ranges now hold 49-50/79-80/95%
hour of week a variance factor per hour of the week, summed over the
hours a range actually covers
Fed/CPI hours a further factor for release hours and the two after;
the dates are published ahead, so this is not look-ahead
Walk-forward, not a single split: every quarter the fixes are refitted on
the previous two years, ending 72h before the quarter so no training
outcome overlaps it. The frozen 2019-2022 fit is kept for comparison, and
walk-forward wins where it matters. The weekend factor fell from 0.65 in
early 2023 to 0.42-0.44 through 2024-25: weekends got much quieter relative
to weekdays after the ETFs, which a frozen fit cannot follow. At 1h the
frozen fi…