{
  "stream": "D_no_gap_price3plus",
  "user_constraints": {
    "no_gap_filter": true,
    "price_min_usd": 3.0,
    "exit_time": "11:00",
    "sl_pct": 1.0,
    "tp_pct": 7.0,
    "universe": "2M+ ADV \u2229 cache_intraday_3y (300 tickers, ~3.3y 2023-01 to 2026-04)"
  },
  "methodology": {
    "window": "09:30 entry, 11:00 exit (90-min hold)",
    "sl_tp": "1% SL on win_low (LONG) / win_high (SHORT); 7% TP on opposite extreme; ambig conflict = SL conservative",
    "sh_real_calc": "daily-aggregated Sharpe \u00d70.5 (90-min vs full-day variance proxy)",
    "no_gap_verification": "NO detect rule references gap_pct or open vs prev_close as ratio. Stretched-open detection uses ATR-units (volatility-normalized), distinct from raw gap %"
  },
  "data_window": "2023-01-03 to 2026-04-22",
  "validated_candidates": [
    {
      "name": "g3a_open_2atr_above_short_exADR",
      "side": "SHORT",
      "category": "G_momentum",
      "hypothesis": "Open >2x 20d-avg-range above prev close on US-domiciled stocks = stretched, fade short to 11:00 (ADRs excluded as catch-up moves are structural not behavioral)",
      "n_events_4y": 940,
      "unique_tickers": 251,
      "avg_trades_per_day": 2.25,
      "wr_pct": 31.06,
      "mean_pnl_pct_fullday_proxy": 0.296,
      "sl_hits_pct": 67.6,
      "tp_hits_pct": 10.3,
      "est_sh_real_1100_exit": 1.53,
      "sh_daily_full": 3.07,
      "yr_dollar_at_15k_phase1": 13024,
      "by_year": {
        "2023": 1.81,
        "2024": 1.15,
        "2025": 1.55,
        "2026": 2.3
      },
      "verdict": "DEPLOY"
    },
    {
      "name": "c1_monday_universe_long",
      "side": "LONG",
      "category": "C_calendar",
      "hypothesis": "Monday 09:30->11:00 LONG entire 2M+ ADV universe; weekend reset positive drift",
      "n_events_4y": 44911,
      "unique_tickers": 300,
      "avg_trades_per_day": 289.75,
      "wr_pct": 43.9,
      "mean_pnl_pct_fullday_proxy": 0.062,
      "sl_hits_pct": 39.8,
      "tp_hits_pct": 1.3,
      "est_sh_real_1100_exit": 1.39,
      "sh_daily_full": 2.78,
      "yr_dollar_at_15k_phase1": 128356,
      "by_year": {
        "2023": 2.59,
        "2024": 0.53,
        "2025": 0.48,
        "2026": 4.38
      },
      "verdict": "PAPER",
      "note": "Sh assumes simultaneous entry on ALL stocks (~210 trades/Mon). Real trading needs sub-selection. True per-stock edge: +6.6bps mean vs non-Mondays."
    },
    {
      "name": "d1_open_100bps_below_pmclose_long",
      "side": "LONG",
      "category": "D_auction",
      "hypothesis": "Opening auction prints >=100bps below PM close = auction undershoot, mean revert long",
      "n_events_4y": 6012,
      "unique_tickers": 251,
      "avg_trades_per_day": 7.32,
      "wr_pct": 39.4,
      "mean_pnl_pct_fullday_proxy": 0.064,
      "sl_hits_pct": 51.0,
      "tp_hits_pct": 1.8,
      "est_sh_real_1100_exit": 0.64,
      "sh_daily_full": 1.28,
      "yr_dollar_at_15k_phase1": 17627,
      "by_year": {
        "2023": 1.0,
        "2024": -0.3,
        "2025": 0.8,
        "2026": 1.36
      },
      "verdict": "NEEDS_MORE"
    },
    {
      "name": "g_stretched_up_combo_short",
      "side": "SHORT",
      "category": "G_momentum",
      "hypothesis": "Either: open >2 ATRs above prev close OR 5d ret >=+20% (any stretched-up condition); fade SHORT",
      "n_events_4y": 2716,
      "unique_tickers": 257,
      "avg_trades_per_day": 3.85,
      "wr_pct": 26.73,
      "mean_pnl_pct_fullday_proxy": 0.09,
      "sl_hits_pct": 71.6,
      "tp_hits_pct": 8.6,
      "est_sh_real_1100_exit": 0.61,
      "sh_daily_full": 1.22,
      "yr_dollar_at_15k_phase1": 11204,
      "by_year": {
        "2023": 0.39,
        "2024": 0.52,
        "2025": 0.82,
        "2026": 0.99
      },
      "verdict": "NEEDS_MORE"
    }
  ],
  "rejected_candidates": [
    {
      "name": "g3b_open_2atr_below_long_exADR",
      "reason": "sh=0.28",
      "n": 947,
      "wr": 24.92,
      "sh": 0.28,
      "pnl": 0.075
    },
    {
      "name": "g1_5d_ret_20pct_short",
      "reason": "pnl=-0.015<0.05",
      "n": 1792,
      "wr": 24.44,
      "sh": -0.08,
      "pnl": -0.015
    },
    {
      "name": "g2_5d_ret_minus20_long",
      "reason": "pnl=-0.011<0.05",
      "n": 917,
      "wr": 25.41,
      "sh": -0.06,
      "pnl": -0.011
    },
    {
      "name": "c1b_monday_after_weak_friday_long",
      "reason": "pnl=0.043<0.05",
      "n": 11088,
      "wr": 42.49,
      "sh": 0.71,
      "pnl": 0.043
    },
    {
      "name": "c1c_monday_after_5d_drop_long",
      "reason": "pnl=0.048<0.05",
      "n": 5377,
      "wr": 35.19,
      "sh": 0.52,
      "pnl": 0.048
    },
    {
      "name": "d1_open_100bps_above_pmclose_short",
      "reason": "pnl=-0.001<0.05",
      "n": 34246,
      "wr": 43.89,
      "sh": -0.03,
      "pnl": -0.001
    },
    {
      "name": "g_stretched_dn_combo_long",
      "reason": "pnl=0.034<0.05",
      "n": 1860,
      "wr": 25.16,
      "sh": 0.17,
      "pnl": 0.034
    },
    {
      "name": "a1_pm_vol_spike_flat_short",
      "reason": "mean_pnl=0.02<0.05",
      "n_events_4y": 6256,
      "wr_pct": 43.72,
      "sh_real": 0.31,
      "mean_pnl": 0.022
    },
    {
      "name": "a1_pm_vol_spike_flat_long",
      "reason": "mean_pnl=0.00<0.05",
      "n_events_4y": 6256,
      "wr_pct": 43.8,
      "sh_real": 0.04,
      "mean_pnl": 0.003
    },
    {
      "name": "a2_pm_hod_exhausted_short",
      "reason": "mean_pnl=-0.00<0.05",
      "n_events_4y": 30017,
      "wr_pct": 41.34,
      "sh_real": -0.0,
      "mean_pnl": -0.0
    },
    {
      "name": "a3_pm_range_2x_meanrev_short",
      "reason": "mean_pnl=0.00<0.05",
      "n_events_4y": 28804,
      "wr_pct": 37.52,
      "sh_real": 0.04,
      "mean_pnl": 0.004
    },
    {
      "name": "a3_pm_range_2x_meanrev_long",
      "reason": "mean_pnl=0.01<0.05",
      "n_events_4y": 28804,
      "wr_pct": 38.5,
      "sh_real": 0.17,
      "mean_pnl": 0.012
    },
    {
      "name": "b1_strong_yclose_long",
      "reason": "mean_pnl=0.04<0.05",
      "n_events_4y": 68183,
      "wr_pct": 43.69,
      "sh_real": 0.63,
      "mean_pnl": 0.039
    },
    {
      "name": "b2_weak_yclose_long_bounce",
      "reason": "mean_pnl=-0.03<0.05",
      "n_events_4y": 62442,
      "wr_pct": 40.94,
      "sh_real": -0.37,
      "mean_pnl": -0.025
    },
    {
      "name": "b2_weak_yclose_short_continuation",
      "reason": "mean_pnl=0.02<0.05",
      "n_events_4y": 62442,
      "wr_pct": 41.35,
      "sh_real": 0.25,
      "mean_pnl": 0.018
    },
    {
      "name": "b3_three_up_meanrev_short",
      "reason": "mean_pnl=-0.03<0.05",
      "n_events_4y": 32338,
      "wr_pct": 40.78,
      "sh_real": -0.4,
      "mean_pnl": -0.025
    },
    {
      "name": "b3_three_dn_bounce_long",
      "reason": "mean_pnl=-0.03<0.05",
      "n_events_4y": 26250,
      "wr_pct": 41.06,
      "sh_real": -0.33,
      "mean_pnl": -0.025
    },
    {
      "name": "b4_inside_day_breakout_long",
      "reason": "mean_pnl=0.04<0.05",
      "n_events_4y": 28383,
      "wr_pct": 43.48,
      "sh_real": 0.49,
      "mean_pnl": 0.036
    },
    {
      "name": "c3_eom_window_long",
      "reason": "mean_pnl=0.01<0.05",
      "n_events_4y": 29861,
      "wr_pct": 43.84,
      "sh_real": 0.26,
      "mean_pnl": 0.012
    },
    {
      "name": "c4_bom_window_long",
      "reason": "mean_pnl=-0.03<0.05",
      "n_events_4y": 37150,
      "wr_pct": 39.13,
      "sh_real": -0.44,
      "mean_pnl": -0.031
    },
    {
      "name": "d1_open_above_pmvwap_short",
      "reason": "mean_pnl=0.01<0.05",
      "n_events_4y": 62776,
      "wr_pct": 42.65,
      "sh_real": 0.24,
      "mean_pnl": 0.013
    },
    {
      "name": "d3_first_min_high_range_short",
      "reason": "mean_pnl=-0.02<0.05",
      "n_events_4y": 39030,
      "wr_pct": 28.78,
      "sh_real": -0.27,
      "mean_pnl": -0.022
    },
    {
      "name": "f1_yday_dvol_3x_short",
      "reason": "mean_pnl=0.04<0.05",
      "n_events_4y": 2390,
      "wr_pct": 32.22,
      "sh_real": 0.31,
      "mean_pnl": 0.039
    },
    {
      "name": "f1_yday_dvol_3x_long",
      "reason": "mean_pnl=-0.03<0.05",
      "n_events_4y": 2390,
      "wr_pct": 28.79,
      "sh_real": -0.24,
      "mean_pnl": -0.034
    }
  ],
  "top_3_actionable": [
    {
      "rank": 1,
      "name": "g3a_open_2atr_above_short_exADR",
      "side": "SHORT",
      "why": "N=940 WR=31.06% Sh_real=1.53 pnl/trade=0.296% $/yr=$13,024 years_pos=4/4"
    },
    {
      "rank": 2,
      "name": "c1_monday_universe_long",
      "side": "LONG",
      "why": "N=44911 WR=43.9% Sh_real=1.39 pnl/trade=0.062% $/yr=$128,356 years_pos=4/4"
    },
    {
      "rank": 3,
      "name": "d1_open_100bps_below_pmclose_long",
      "side": "LONG",
      "why": "N=6012 WR=39.4% Sh_real=0.64 pnl/trade=0.064% $/yr=$17,627 years_pos=3/4"
    }
  ],
  "key_findings": {
    "best_edge": "g3a_open_2atr_above_short_exADR \u2014 open stretched >2 ATRs above prev close, US-domiciled stocks (no ADRs/foreign listings), SHORT to 11:00. Sh real ~1.5, all 4 years positive.",
    "monday_caveat": "c1_monday \"wins\" Sh ~1.4 but is universe-wide LONG (210 trades/Mon). Per-stock edge real (+6.6bps mean Mon vs -0.4bps non-Mon) but execution = portfolio not single-name.",
    "adrs_dominate_atr_signal": "Without ADR filter, top tickers were ING/UBS/UL/EQNR (catch-up moves from overseas \u2014 structural, not exploitable). Excluded for honest result.",
    "dead_categories": "PM volume z-score, PM HOD test count, weak/strong yclose, 3-bar momentum, day-of-month windows \u2014 all WR ~42% / pnl ~0% (baseline noise on 90-min window with 1%SL/7%TP)"
  }
}