{
  "as_of": "2026-11-06",
  "generated_utc": "2026-11-07T02:14:04.693637+00:00",
  "folds": [
    {
      "test_from": "2015-04-14",
      "test_to": "2017-09-14",
      "n_train": 19374,
      "n_test": 4957,
      "accuracy": 0.5432721404075045,
      "sr_per_trade": 0.07718957075996465
    },
    {
      "test_from": "2017-09-14",
      "test_to": "2020-01-08",
      "n_train": 19240,
      "n_test": 4956,
      "accuracy": 0.5641646489104116,
      "sr_per_trade": 0.012109437675689531
    },
    {
      "test_from": "2020-01-08",
      "test_to": "2022-07-21",
      "n_train": 19466,
      "n_test": 4956,
      "accuracy": 0.5621468926553672,
      "sr_per_trade": 0.024584294087236988
    },
    {
      "test_from": "2022-07-21",
      "test_to": "2024-07-31",
      "n_train": 19517,
      "n_test": 4956,
      "accuracy": 0.5328894269572235,
      "sr_per_trade": -0.013273832736625496
    },
    {
      "test_from": "2024-08-01",
      "test_to": "2026-11-04",
      "n_train": 19742,
      "n_test": 4956,
      "accuracy": 0.5492332526230831,
      "sr_per_trade": 0.03180955266666139
    }
  ],
  "cpcv_path_sr": [
    0.03402932727700756,
    0.039149888132253535,
    0.026789111485170183,
    0.033057853912977185,
    0.025434222861892314
  ],
  "meta": {
    "n_trades": 2694,
    "years": 11.56,
    "win_rate": 0.505939123979213,
    "avg_win": 0.029188820214880142,
    "avg_loss": 0.0308471690872985,
    "expected_value": -0.0004726132525288331,
    "sr_per_trade": 0.024929623901612068,
    "sr_annualized": 0.380538931051775,
    "skew": 0.7382238774430138,
    "kurtosis": 20.765109123892625,
    "max_losing_streak": 12,
    "dsr": 0.7179676013604925,
    "expected_streak": 10.236106741186054,
    "streak_drawdown_1pct": 0.09776143605632148,
    "streak_drawdown_5pct": 0.4084704484508307,
    "min_trades_for_edge": 55627
  },
  "primary": {
    "n_trades": 5298,
    "years": 11.56,
    "win_rate": 0.4656474141185353,
    "avg_win": 0.02655420353271245,
    "avg_loss": 0.02695468541073789,
    "expected_value": -0.0020384096418643565,
    "sr_per_trade": -0.0536580882078308,
    "sr_annualized": -1.148618332737999,
    "skew": -0.0414546274453316,
    "kurtosis": 6.635315453817264,
    "max_losing_streak": 17
  },
  "n_events": 24781,
  "n_trials": 5,
  "var_sr_used": 0.00013584421770025258,
  "dsr_threshold": 0.95,
  "edge_is_significant": false,
  "trades_by_regime": {
    "calm": 1282,
    "normal": 1412
  },
  "regimes_undercovered": [],
  "feature_importance": {
    "strategy": 0.2172323763370514,
    "side": 0.18630005419254303,
    "regime": 0.05560032278299332,
    "hurst": 0.04308875650167465,
    "ffd_close": 0.04209047555923462,
    "zscore": 0.04040723294019699,
    "beta_spy": 0.04004060477018356,
    "p_stress": 0.03947806358337402,
    "rv_10": 0.038831572979688644,
    "half_life": 0.0379205197095871,
    "rv_20": 0.03692339360713959,
    "mkt_p_stress": 0.03642222657799721,
    "sigma_garch": 0.03632918745279312,
    "log_ret_20": 0.03514934703707695,
    "log_ret_5": 0.03209247812628746,
    "mkt_regime": 0.028671858832240105,
    "vol_z": 0.02723810262978077,
    "log_ret_1": 0.026183495298027992
  },
  "correlation": {
    "all_days": 0.31889171100586405,
    "market_stress_days": 0.5276392953289853,
    "market_calm_days": 0.15476426485217584,
    "n_stress_days": 318
  },
  "config": {
    "benchmark": "SPY",
    "cost_bps": 5,
    "cpcv_groups": 6,
    "cpcv_k": 2,
    "embargo_pct": 0.01,
    "hmm_restarts": 10,
    "hurst_window": 100,
    "k_sl": 1.5,
    "k_tp": 1.5,
    "kelly_fraction": 0.5,
    "max_half_life": 20,
    "mc_horizon": 20,
    "momentum_horizon": 10,
    "n_splits": 5,
    "ou_span": 20,
    "ou_window": 100,
    "regime_source": "market",
    "seed": 42,
    "t_max_cap": 20,
    "t_max_min": 3,
    "target_vol": 0.2,
    "z_entry": 1.5
  },
  "limitations": [
    "Survivorship bias: the universe only contains companies alive today (yfinance has no delisted tickers).",
    "GARCH and HMM parameters are fitted on the full history; the volatility and regime series themselves are filtered (past-only).",
    "The per-asset HMM can switch between two near-equally likely fits as data arrives; only the market (SPY) regime gates trading, and it is stable.",
    "Daily bars only: no volume bars, order book or intraday sessions.",
    "Barriers are checked on daily closes, not intraday highs/lows.",
    "With few trials the DSR is close to a Probabilistic Sharpe Ratio against zero."
  ]
}
