{
  "stream": "B_wider_filters",
  "methodology_notes": [
    "PnL proxy: SHORT @ open -> exit @ close (full day). Real 11:00 ET exit ~50-70% of full-day move.",
    "vol_ratio (today_vol / adv20d) used as proxy for pm_dvol_z (no intraday PM data in OHLCV parquet). vol_ratio>=3 ~ 3sigma proxy.",
    "TP/SL applied via clip(-1, +7) on raw pnl. TP/SL ambiguity (intraday hit both): conservative SL takes priority \u2014 but here we cap aggregate so neutral cap.",
    "ADV from calc_avg_daily_volume_20d.parquet (snapshot). No survivorship correction for delisted tickers.",
    "Period: 2023-04-25 to 2026-04-24 (3y).",
    "Prev_close split-contamination: capped gaps to [-50,+200] and intraday to [-80,+80] to dampen split artifacts.",
    "Universe via ADV snapshot \u2014 point-in-time ADV would be more honest (lookahead bias minor for 3y window)."
  ],
  "baseline_v2": {
    "name": "baseline_v2",
    "params": {
      "gap_min": 10,
      "price_max": 10,
      "vol_ratio_min_proxy": 3,
      "adv_min": 2000000
    },
    "n_signals_3y": 3232,
    "n_per_yr": 1077.3,
    "wr": 0.5204,
    "mean_pnl_pct": 3.1086,
    "total_pnl_pct_3y": 10046.9,
    "yr_dollar_at_1k": 33490.0,
    "yr_dollar_at_15k_phase1": 502345.0
  },
  "configs": [
    {
      "name": "config_1_gap_loose_5",
      "params": {
        "gap_min": 5,
        "price_max": 10,
        "vol_ratio_min": 3,
        "adv_min": 2000000
      },
      "n_signals_3y": 4597,
      "n_per_yr": 1532.3,
      "wr": 0.506,
      "mean_pnl_pct": 2.8638,
      "total_pnl_pct_3y": 13164.69,
      "yr_dollar_at_1k": 43882.0,
      "yr_dollar_at_15k_phase1": 658235.0,
      "edge_efficiency": "per_trade x0.92, yearly_$ x1.31",
      "verdict": "BETTER"
    },
    {
      "name": "config_2_price_expand_20",
      "params": {
        "gap_min": 10,
        "price_max": 20,
        "vol_ratio_min": 3,
        "adv_min": 2000000
      },
      "n_signals_3y": 3483,
      "n_per_yr": 1161.0,
      "wr": 0.5179,
      "mean_pnl_pct": 3.0032,
      "total_pnl_pct_3y": 10460.25,
      "yr_dollar_at_1k": 34867.0,
      "yr_dollar_at_15k_phase1": 523012.0,
      "edge_efficiency": "per_trade x0.97, yearly_$ x1.04",
      "verdict": "EQUIVALENT"
    },
    {
      "name": "config_3_universe_500k",
      "params": {
        "gap_min": 10,
        "price_max": 10,
        "vol_ratio_min": 3,
        "adv_min": 500000
      },
      "n_signals_3y": 6351,
      "n_per_yr": 2117.0,
      "wr": 0.5368,
      "mean_pnl_pct": 3.1711,
      "total_pnl_pct_3y": 20139.84,
      "yr_dollar_at_1k": 67133.0,
      "yr_dollar_at_15k_phase1": 1006992.0,
      "edge_efficiency": "per_trade x1.02, yearly_$ x2.00",
      "verdict": "BETTER"
    },
    {
      "name": "config_4_combined_wide",
      "params": {
        "gap_min": 5,
        "price_max": 20,
        "vol_ratio_min": 3,
        "adv_min": 500000
      },
      "n_signals_3y": 10533,
      "n_per_yr": 3511.0,
      "wr": 0.5074,
      "mean_pnl_pct": 2.7225,
      "total_pnl_pct_3y": 28676.5,
      "yr_dollar_at_1k": 95588.0,
      "yr_dollar_at_15k_phase1": 1433825.0,
      "edge_efficiency": "per_trade x0.88, yearly_$ x2.85",
      "verdict": "BETTER"
    },
    {
      "name": "config_5_narrow_strict",
      "params": {
        "gap_min": 15,
        "price_max": 10,
        "vol_ratio_min": 5,
        "adv_min": 2000000
      },
      "n_signals_3y": 1689,
      "n_per_yr": 563.0,
      "wr": 0.5281,
      "mean_pnl_pct": 3.2105,
      "total_pnl_pct_3y": 5422.48,
      "yr_dollar_at_1k": 18075.0,
      "yr_dollar_at_15k_phase1": 271124.0,
      "edge_efficiency": "per_trade x1.03, yearly_$ x0.54",
      "verdict": "WORSE"
    }
  ],
  "winner_config": "config_4_combined_wide \u2014 per_trade x0.88, yearly_$ x2.85, $/yr@$1K=95588.0",
  "tradeoff_summary": "Baseline v2: N=3232 signals/3y, WR=52.04%, mean=3.109%, $/yr@$1K=$33490. Loosening gap to 5% multiplies N by ~1.4x but mean edge changes from 3.109% to 2.864%. Stricter narrow (config 5): N x0.52, edge 3.211%. Capacity-optimal: config_4_combined_wide."
}