{
  "schema_version": "1.0",
  "report_type": "lsri_walk_forward_validation",
  "generated_at_utc": "2026-03-30T17:46:33.984708+00:00",
  "dataset": {
    "source_file": "G:/applications/crypto_site/data/btc_ohlcv.csv",
    "rows": 2281
  },
  "methodology": {
    "causal_rule": "signal(t) = f(data <= t), execution approx. open(t+1)",
    "validation_protocol": "walk-forward out-of-sample",
    "baseline": "buy_hold",
    "strategy_tested": "lsri_stress"
  },
  "window_config": {
    "train_size": 504,
    "test_size": 126,
    "step_size": 126
  },
  "detection_overrides": {
    "thr_vigilance": 2.3,
    "thr_stress": 7.2,
    "thr_critical": 12.0,
    "confirm_vigilance_days": 2,
    "confirm_stress_days": 2
  },
  "backtest_overrides": {
    "reentry_days": 18
  },
  "key_metrics": {
    "num_folds": 14,
    "avg_excess_return_vs_buy_hold": 5.3729,
    "avg_strategy_return": 12.5079,
    "avg_buy_hold_return": 7.135,
    "avg_strategy_max_drawdown": -19.5357,
    "avg_trading_cost": 95.4279,
    "total_alerts_oos": 474,
    "oos_volatility_lsri_annualized_pct": 35.117,
    "oos_volatility_buy_hold_annualized_pct": 46.016,
    "oos_volatility_reduction_pct_points": 10.899,
    "oos_volatility_reduction_vs_buy_hold_pct": 23.685,
    "oos_sharpe_lsri": 0.7826,
    "oos_sharpe_buy_hold": 0.3939,
    "oos_sharpe_delta_vs_buy_hold": 0.3887
  },
  "regime_breakdown": {
    "unknown": {
      "num_folds": 14,
      "avg_excess_return_vs_buy_hold": 5.3729,
      "avg_strategy_return": 12.5079,
      "avg_buy_hold_return": 7.135,
      "avg_strategy_max_drawdown": -19.5357,
      "avg_trading_cost": 95.4279
    }
  },
  "folds": [
    {
      "fold_id": 0,
      "train_start": 0,
      "train_end": 504,
      "test_start": 504,
      "test_end": 630,
      "regime": "unknown",
      "num_alerts_oos": 18,
      "strategy_total_return": 2.68,
      "buy_hold_total_return": -5.38,
      "excess_return_vs_buy_hold": 8.06,
      "strategy_max_drawdown": -24.79,
      "buy_hold_max_drawdown": -30.7,
      "strategy_total_trading_cost": 66.71
    },
    {
      "fold_id": 1,
      "train_start": 126,
      "train_end": 630,
      "test_start": 630,
      "test_end": 756,
      "regime": "unknown",
      "num_alerts_oos": 20,
      "strategy_total_return": 1.08,
      "buy_hold_total_return": -9.29,
      "excess_return_vs_buy_hold": 10.37,
      "strategy_max_drawdown": -39.05,
      "buy_hold_max_drawdown": -48.15,
      "strategy_total_trading_cost": 77.94
    },
    {
      "fold_id": 2,
      "train_start": 252,
      "train_end": 756,
      "test_start": 756,
      "test_end": 882,
      "regime": "unknown",
      "num_alerts_oos": 49,
      "strategy_total_return": 17.94,
      "buy_hold_total_return": -14.09,
      "excess_return_vs_buy_hold": 32.03,
      "strategy_max_drawdown": -25.38,
      "buy_hold_max_drawdown": -39.69,
      "strategy_total_trading_cost": 172.88
    },
    {
      "fold_id": 3,
      "train_start": 378,
      "train_end": 882,
      "test_start": 882,
      "test_end": 1008,
      "regime": "unknown",
      "num_alerts_oos": 59,
      "strategy_total_return": 3.45,
      "buy_hold_total_return": -36.13,
      "excess_return_vs_buy_hold": 39.58,
      "strategy_max_drawdown": -17.07,
      "buy_hold_max_drawdown": -41.75,
      "strategy_total_trading_cost": 154.9
    },
    {
      "fold_id": 4,
      "train_start": 504,
      "train_end": 1008,
      "test_start": 1008,
      "test_end": 1134,
      "regime": "unknown",
      "num_alerts_oos": 6,
      "strategy_total_return": 28.27,
      "buy_hold_total_return": 14.23,
      "excess_return_vs_buy_hold": 14.04,
      "strategy_max_drawdown": -14.43,
      "buy_hold_max_drawdown": -25.82,
      "strategy_total_trading_cost": 42.25
    },
    {
      "fold_id": 5,
      "train_start": 630,
      "train_end": 1134,
      "test_start": 1134,
      "test_end": 1260,
      "regime": "unknown",
      "num_alerts_oos": 25,
      "strategy_total_return": 10.92,
      "buy_hold_total_return": 11.25,
      "excess_return_vs_buy_hold": -0.33,
      "strategy_max_drawdown": -18.7,
      "buy_hold_max_drawdown": -18.7,
      "strategy_total_trading_cost": 51.03
    },
    {
      "fold_id": 6,
      "train_start": 756,
      "train_end": 1260,
      "test_start": 1260,
      "test_end": 1386,
      "regime": "unknown",
      "num_alerts_oos": 7,
      "strategy_total_return": 12.61,
      "buy_hold_total_return": 9.46,
      "excess_return_vs_buy_hold": 3.15,
      "strategy_max_drawdown": -17.76,
      "buy_hold_max_drawdown": -20.06,
      "strategy_total_trading_cost": 45.71
    },
    {
      "fold_id": 7,
      "train_start": 882,
      "train_end": 1386,
      "test_start": 1386,
      "test_end": 1512,
      "regime": "unknown",
      "num_alerts_oos": 64,
      "strategy_total_return": 67.34,
      "buy_hold_total_return": 83.74,
      "excess_return_vs_buy_hold": -16.4,
      "strategy_max_drawdown": -6.59,
      "buy_hold_max_drawdown": -15.89,
      "strategy_total_trading_cost": 155.77
    },
    {
      "fold_id": 8,
      "train_start": 1008,
      "train_end": 1512,
      "test_start": 1512,
      "test_end": 1638,
      "regime": "unknown",
      "num_alerts_oos": 40,
      "strategy_total_return": 23.16,
      "buy_hold_total_return": 18.06,
      "excess_return_vs_buy_hold": 5.1,
      "strategy_max_drawdown": -15.63,
      "buy_hold_max_drawdown": -20.29,
      "strategy_total_trading_cost": 91.5
    },
    {
      "fold_id": 9,
      "train_start": 1134,
      "train_end": 1638,
      "test_start": 1638,
      "test_end": 1764,
      "regime": "unknown",
      "num_alerts_oos": 8,
      "strategy_total_return": 2.31,
      "buy_hold_total_return": 17.51,
      "excess_return_vs_buy_hold": -15.2,
      "strategy_max_drawdown": -31.19,
      "buy_hold_max_drawdown": -20.96,
      "strategy_total_trading_cost": 42.1
    },
    {
      "fold_id": 10,
      "train_start": 1260,
      "train_end": 1764,
      "test_start": 1764,
      "test_end": 1890,
      "regime": "unknown",
      "num_alerts_oos": 70,
      "strategy_total_return": 18.58,
      "buy_hold_total_return": 19.77,
      "excess_return_vs_buy_hold": -1.19,
      "strategy_max_drawdown": -14.22,
      "buy_hold_max_drawdown": -20.54,
      "strategy_total_trading_cost": 162.6
    },
    {
      "fold_id": 11,
      "train_start": 1386,
      "train_end": 1890,
      "test_start": 1890,
      "test_end": 2016,
      "regime": "unknown",
      "num_alerts_oos": 15,
      "strategy_total_return": 4.22,
      "buy_hold_total_return": 24.72,
      "excess_return_vs_buy_hold": -20.5,
      "strategy_max_drawdown": -15.22,
      "buy_hold_max_drawdown": -15.22,
      "strategy_total_trading_cost": 73.43
    },
    {
      "fold_id": 12,
      "train_start": 1512,
      "train_end": 2016,
      "test_start": 2016,
      "test_end": 2142,
      "regime": "unknown",
      "num_alerts_oos": 16,
      "strategy_total_return": -6.21,
      "buy_hold_total_return": -5.61,
      "excess_return_vs_buy_hold": -0.6,
      "strategy_max_drawdown": -18.8,
      "buy_hold_max_drawdown": -18.8,
      "strategy_total_trading_cost": 47.22
    },
    {
      "fold_id": 13,
      "train_start": 1638,
      "train_end": 2142,
      "test_start": 2142,
      "test_end": 2268,
      "regime": "unknown",
      "num_alerts_oos": 77,
      "strategy_total_return": -11.24,
      "buy_hold_total_return": -28.35,
      "excess_return_vs_buy_hold": 17.11,
      "strategy_max_drawdown": -14.67,
      "buy_hold_max_drawdown": -39.22,
      "strategy_total_trading_cost": 151.95
    }
  ]
}