{
  "declared_before_this_round_returns": true,
  "all_history_already_seen": true,
  "no_untouched_holdout": true,
  "rules": [
    {
      "name": "monthly_buffer_cash",
      "vol": 0.25
    },
    {
      "name": "monthly_exit",
      "vol": 0.25
    },
    {
      "name": "daily_risk_reduce",
      "vol": 0.25
    },
    {
      "name": "soft_gate",
      "vol": 0.25
    },
    {
      "name": "top2_buffer",
      "vol": 0.25
    },
    {
      "name": "corr_top2_buffer",
      "vol": 0.25
    },
    {
      "name": "phase5_buffer",
      "vol": 0.25
    },
    {
      "name": "month_week_mix",
      "vol": 0.25
    },
    {
      "name": "ensemble_buffer",
      "vol": 0.25
    }
  ],
  "primary": "phase5_buffer",
  "why_primary": "Spread the old monthly retention signal across the whole month to address the observed dependence on one close; chosen before this new computation.",
  "trade_universe": "410 existing domestic sector/theme ETFs plus cash only",
  "no_gold_no_qdii_no_bonds_no_leverage": true,
  "cost_each_side": 0.002,
  "period": [
    "20190102",
    "20260811"
  ],
  "stresses": [
    [
      "cost50",
      0.005,
      0,
      0
    ],
    [
      "offset2",
      0.002,
      2,
      0
    ],
    [
      "offset5",
      0.002,
      5,
      0
    ],
    [
      "delay2",
      0.002,
      0,
      2
    ],
    [
      "joint_cost50_offset5",
      0.005,
      5,
      0
    ],
    [
      "joint_cost50_delay2",
      0.005,
      0,
      2
    ]
  ],
  "target_cagr": 20,
  "maximum_drawdown": 30,
  "timing_offsets_all_rules": [
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10
  ],
  "strong_validation_gate": "All six stresses >=20 CAGR and MDD>=-30. Separately report ALL 11 timing variants and whether all pass the same thresholds.",
  "followup_gate": "Normal and cost50 both meet target; worst six-stress CAGR/MDD and timing median/worst-DD at least as good as the frozen baseline. Historical shortlist only, not independent validation.",
  "parameters": {
    "retain_first_rank": 3,
    "retain_second_rank": 5,
    "second_search_rank": 10,
    "correlation_max": 0.8,
    "correlation_sessions": 60,
    "min_common_quotes": 40,
    "weak_market_budget": 0.5,
    "volatility_budget": 0.25,
    "volatility_sessions": 60,
    "fast_volatility_sessions": 20,
    "daily_cut_min_account_pp": 2,
    "phase_offsets": [
      0,
      4,
      8,
      12,
      16
    ],
    "ensemble_windows": [
      20,
      40,
      80
    ]
  },
  "no_new_window_grid_or_best_calendar_selection": true
}