Skip to main content
verified results 15 arms synthetic FOMC shocks seed 7 · 200 bars

Does the event gate earn its cost?

15 cross-sectional momentum variants run against the same synthetic universe, same FOMC vol shocks, same 200-bar window. Every arm consumes the identical price stream — the only difference is the rule the strategy applies. Bars below sort Sharpe-descending; deltas anchor to the XsMomentumLiveStrategy baseline.

Synthetic data — no claim of an edge that transfers to real markets. The point is to show every arm under the same conditions so an operator can read the *relative* shape, not the absolute number.

sorted high → low

Sharpe domain -1.00 → 2.00. Pnl values in synthetic dollars (the universe starts at $100 base). Max drawdown is peak-to-trough over the 200-bar window.

seeds 7..11

The single-seed leaderboard above can be a fluke. This table re-runs the same 15 arms across 5 consecutive seeds and sorts by *mean* Sharpe — what's consistent across the sweep, not what happened to lead on one seed. The bar shows the mean; the numbers beside it show the 5-seed stdev and min/max range.

  • mean leader Time-series momentum · absolute-threshold
    stdev 0.78 · range 0.63 2.14
  • Vol-weighted momentum
    stdev 0.74 · range 0.26 2.15
  • FOMC blackout · flatten 24h pre-event
    stdev 0.48 · range 0.36 1.61
  • Spread filter · tuned threshold
    stdev 1.00 · range -0.26 2.10
  • Event damping · continuous risk-off near FOMC
    stdev 0.49 · range 0.34 1.62
  • baseline Baseline · long-short cross-sectional momentum
    stdev 0.58 · range 0.17 1.66
  • Spread filter · gate on cross-sectional dispersion
    stdev 0.58 · range 0.17 1.66
  • Long-only · top-quantile momentum
    stdev 1.49 · range -0.93 2.45
  • Equal-risk long-only
    stdev 1.49 · range -0.93 2.45
  • Post-FOMC reversal · sign-flipped drift
    stdev 0.77 · range -0.64 1.14
  • Four-factor · adds skew
    stdev 1.03 · range -1.29 1.51
  • Post-FOMC drift · capture 4h after release
    stdev 0.77 · range -1.14 0.64
  • Three-factor · momentum + z-score + vol
    stdev 0.57 · range -0.88 0.39
  • Two-factor · momentum + z-score
    stdev 0.68 · range -1.14 0.37
  • Four-factor · tuned weights
    stdev 0.39 · range -0.59 0.35

What this reading changes: an arm that led on seed 7 but has stdev >1.0 across the sweep is high-variance, not actually better — the wide min/max range tells you which seed got which luck. An arm near the top with stdev under 0.58 (baseline's noise floor on this sweep) is the consistent leader.

  • 1 arm
    • Baseline · long-short cross-sectional momentum sharpe 1.24
  • 4 arms
    • Two-factor · momentum + z-score sharpe -0.14
    • Four-factor · adds skew sharpe -0.23
    • Three-factor · momentum + z-score + vol sharpe -0.27
    • Four-factor · tuned weights sharpe -0.53
  • 1 arm
    • Vol-weighted momentum sharpe 0.58
  • 2 arms
    • Long-only · top-quantile momentum sharpe 1.88
    • Equal-risk long-only sharpe 1.88
  • 1 arm
    • Time-series momentum · absolute-threshold sharpe 0.63
  • 2 arms
    • FOMC blackout · flatten 24h pre-event sharpe 1.13
    • Event damping · continuous risk-off near FOMC sharpe 1.11
  • 2 arms
    • Post-FOMC drift · capture 4h after release sharpe 0.64
    • Post-FOMC reversal · sign-flipped drift sharpe -0.64
  • 2 arms
    • Spread filter · gate on cross-sectional dispersion sharpe 1.24
    • Spread filter · tuned threshold sharpe 0.83
$ uv run python scripts/build_compare_fixture.py
wrote examples/fomc_blackout_compare/results.json (15 arms)

The script holds the pinned config (seed = 7, days = 200, fomc_vol_multiplier = 3.0000, fomc_drift_bps = 50.0000) and rewrites results.json. Each arm's Sharpe / PnL / drawdown is a real backtest number — no fixture fudge-factor. Bumping a config value in the script is a deliberate rotation of these on-site numbers.

deskgd findgf strategiesgs featuresge promotionsgp apiga botgb writinggw

Shortcuts are no-ops while typing in an input or textarea.