{
  "declared_before_new_returns": true,
  "all_history_already_seen": true,
  "rules": [
    {
      "name": "baseline_cash",
      "family": "baseline",
      "defense": "cash",
      "vol": 0.25
    },
    {
      "name": "baseline_gold10",
      "family": "baseline",
      "defense": "gold10",
      "vol": 0.25
    },
    {
      "name": "phase3_cash",
      "family": "phase3",
      "defense": "cash",
      "vol": 0.25
    },
    {
      "name": "phase3_gold10",
      "family": "phase3",
      "defense": "gold10",
      "vol": 0.25
    },
    {
      "name": "monthly_buffer_cash",
      "family": "monthly_buffer",
      "defense": "cash",
      "vol": 0.25
    },
    {
      "name": "monthly_buffer_gold10",
      "family": "monthly_buffer",
      "defense": "gold10",
      "vol": 0.25
    },
    {
      "name": "phase3_buffer_cash",
      "family": "phase3_buffer",
      "defense": "cash",
      "vol": 0.25
    },
    {
      "name": "phase3_buffer_gold10",
      "family": "phase3_buffer",
      "defense": "gold10",
      "vol": 0.25
    },
    {
      "name": "phase3_fastvol_cash",
      "family": "phase3_fastvol",
      "defense": "cash",
      "vol": 0.25
    },
    {
      "name": "phase3_fastvol_gold10",
      "family": "phase3_fastvol",
      "defense": "gold10",
      "vol": 0.25
    },
    {
      "name": "phase3_exit_cash",
      "family": "phase3_exit",
      "defense": "cash",
      "vol": 0.25
    },
    {
      "name": "phase3_exit_gold10",
      "family": "phase3_exit",
      "defense": "gold10",
      "vol": 0.25
    },
    {
      "name": "phase3_top2_cash",
      "family": "phase3_top2",
      "defense": "cash",
      "vol": 0.25
    },
    {
      "name": "phase3_top2_gold10",
      "family": "phase3_top2",
      "defense": "gold10",
      "vol": 0.25
    },
    {
      "name": "phase3_foreign_split_cash",
      "family": "phase3_foreign_split",
      "defense": "cash",
      "vol": 0.25
    },
    {
      "name": "phase3_foreign_split_gold10",
      "family": "phase3_foreign_split",
      "defense": "gold10",
      "vol": 0.25
    },
    {
      "name": "phase3_own_exit_cash",
      "family": "phase3_own_exit",
      "defense": "cash",
      "vol": 0.25
    },
    {
      "name": "phase3_own_exit_gold10",
      "family": "phase3_own_exit",
      "defense": "gold10",
      "vol": 0.25
    }
  ],
  "primary": "phase3_cash",
  "why_primary": "Reduce dependence on a single close by three equal signal slots at month-end offsets0,2,5, one cash account; choose before returns, not highest CAGR.",
  "three_phase_offsets": [
    0,
    2,
    5
  ],
  "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
    ]
  ],
  "timing_diagnostic_names": [
    "baseline_cash",
    "phase3_cash",
    "phase3_buffer_cash",
    "phase3_own_exit_cash"
  ],
  "timing_offsets": [
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10
  ],
  "target_cagr": 20,
  "maximum_drawdown": 30,
  "leverage": false,
  "equity_score_window": 40,
  "volatility_budget": 0.25,
  "gold_target_cap": 0.1,
  "period": [
    "20190102",
    "20260811"
  ],
  "cost_each_side": 0.002,
  "no_untouched_holdout": true,
  "implementation": "Keep unscaled equal signal slots, update a slot only on its own calendar anchor; combine in one account then covariance-aware risk-size all holdings; quote/NAV execution waits may change actual holdings. Exit variants erase broken slots daily and reopen only on a slot anchor.",
  "selection": "Normal >=20 CAGR and MDD>=-30; every fixed stress must also pass. This is historical screening, not a forecast."
}