{
  "signals": [
    {
      "name": "expanding_gex_quintile",
      "description": "GEX level ranked by expanding historical percentile (NO lookahead). Our own computation, not the precomputed quintile.",
      "morning_ic": {
        "1h": {
          "is": 0.0992,
          "oos": 0.2105,
          "n_is": 3582,
          "n_oos": 1656
        },
        "3h": {
          "is": 0.1437,
          "oos": 0.2329,
          "n_is": 3501,
          "n_oos": 1602
        },
        "eod": {
          "is": 0.1441,
          "oos": 0.2784,
          "n_is": 3582,
          "n_oos": 1656
        }
      },
      "midday_ic": {
        "1h": {
          "is": 0.0793,
          "oos": 0.0732,
          "n_is": 4695,
          "n_oos": 2154
        },
        "3h": {
          "is": 0.1573,
          "oos": 0.1649,
          "n_is": 4608,
          "n_oos": 2088
        },
        "eod": {
          "is": 0.1249,
          "oos": 0.1554,
          "n_is": 4770,
          "n_oos": 2205
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": 0.064,
          "oos": 0.0866,
          "n_is": 4625,
          "n_oos": 2088
        },
        "eod": {
          "is": 0.0467,
          "oos": 0.078,
          "n_is": 6750,
          "n_oos": 3049
        }
      },
      "best_horizon": "eod",
      "best_time": "morning",
      "hit_rate_top_quintile": 0.81,
      "n_obs": 22353,
      "quintile_returns_morning_3h": {
        "Q1": {
          "mean_bps": -7.5,
          "hit_rate": 0.53,
          "n": 883
        },
        "Q2": {
          "mean_bps": -11.1,
          "hit_rate": 0.54,
          "n": 349
        },
        "Q3": {
          "mean_bps": -5.0,
          "hit_rate": 0.51,
          "n": 148
        },
        "Q4": {
          "mean_bps": 9.6,
          "hit_rate": 0.57,
          "n": 56
        },
        "Q5": {
          "mean_bps": 51.5,
          "hit_rate": 0.81,
          "n": 166
        }
      },
      "notes": "CORRECTED version. Precomputed gex_quintile has within-day lookahead (corr=-0.92 with spot). This uses expanding-window rank with only past data. IC drops from 0.85 to 0.23 but is honest."
    },
    {
      "name": "gex_quintile",
      "description": "GEX quintile (1-5) at current time",
      "morning_ic": {
        "1h": {
          "is": 0.6737,
          "oos": 0.6901,
          "n_is": 3600,
          "n_oos": 1656
        },
        "3h": {
          "is": 0.7964,
          "oos": 0.8461,
          "n_is": 3600,
          "n_oos": 1656
        },
        "eod": {
          "is": 0.7085,
          "oos": 0.7256,
          "n_is": 3600,
          "n_oos": 1656
        }
      },
      "midday_ic": {
        "1h": {
          "is": 0.6209,
          "oos": 0.568,
          "n_is": 4800,
          "n_oos": 2208
        },
        "3h": {
          "is": 0.6539,
          "oos": 0.6832,
          "n_is": 4800,
          "n_oos": 2208
        },
        "eod": {
          "is": 0.5795,
          "oos": 0.618,
          "n_is": 4800,
          "n_oos": 2208
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": 0.3008,
          "oos": 0.4182,
          "n_is": 6951,
          "n_oos": 3138
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6951,
          "n_oos": 3138
        },
        "eod": {
          "is": 0.2603,
          "oos": 0.3699,
          "n_is": 6951,
          "n_oos": 3138
        }
      },
      "best_horizon": "3h",
      "best_time": "morning",
      "hit_rate_top_quintile": 0.9735,
      "n_obs": 22353,
      "notes": "WARNING: Precomputed quintile has within-day lookahead bias (corr=-0.92 with intraday spot). IC of 0.85 is inflated. Use expanding_gex_quintile instead (IC=0.23, still strong)."
    },
    {
      "name": "gex_change_30m",
      "description": "GEX change over last 30 minutes",
      "morning_ic": {
        "1h": {
          "is": -0.0089,
          "oos": -0.0239,
          "n_is": 2400,
          "n_oos": 1104
        },
        "3h": {
          "is": -0.003,
          "oos": -0.0064,
          "n_is": 2400,
          "n_oos": 1104
        },
        "eod": {
          "is": -0.037,
          "oos": 0.0306,
          "n_is": 2400,
          "n_oos": 1104
        }
      },
      "midday_ic": {
        "1h": {
          "is": 0.0481,
          "oos": -0.0491,
          "n_is": 4800,
          "n_oos": 2208
        },
        "3h": {
          "is": 0.014,
          "oos": -0.0336,
          "n_is": 4800,
          "n_oos": 2208
        },
        "eod": {
          "is": 0.0357,
          "oos": 0.0559,
          "n_is": 4800,
          "n_oos": 2208
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": 0.013,
          "oos": 0.0713,
          "n_is": 6951,
          "n_oos": 3138
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6951,
          "n_oos": 3138
        },
        "eod": {
          "is": 0.0291,
          "oos": 0.0819,
          "n_is": 6951,
          "n_oos": 3138
        }
      },
      "best_horizon": "eod",
      "best_time": "afternoon",
      "hit_rate_top_quintile": 0.518,
      "n_obs": 20601,
      "notes": ""
    },
    {
      "name": "gex_regime",
      "description": "Binary: positive vs negative GEX regime",
      "morning_ic": {
        "1h": {
          "is": 0.0851,
          "oos": 0.1638,
          "n_is": 3600,
          "n_oos": 1656
        },
        "3h": {
          "is": 0.1265,
          "oos": 0.2838,
          "n_is": 3600,
          "n_oos": 1656
        },
        "eod": {
          "is": 0.1042,
          "oos": 0.3324,
          "n_is": 3600,
          "n_oos": 1656
        }
      },
      "midday_ic": {
        "1h": {
          "is": 0.0735,
          "oos": 0.1223,
          "n_is": 4800,
          "n_oos": 2208
        },
        "3h": {
          "is": 0.161,
          "oos": 0.1568,
          "n_is": 4800,
          "n_oos": 2208
        },
        "eod": {
          "is": 0.105,
          "oos": 0.1314,
          "n_is": 4800,
          "n_oos": 2208
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": 0.0586,
          "oos": 0.0642,
          "n_is": 6951,
          "n_oos": 3138
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6951,
          "n_oos": 3138
        },
        "eod": {
          "is": 0.0169,
          "oos": 0.0827,
          "n_is": 6951,
          "n_oos": 3138
        }
      },
      "best_horizon": "eod",
      "best_time": "morning",
      "hit_rate_top_quintile": 0.5374,
      "n_obs": 22353,
      "notes": ""
    },
    {
      "name": "vix_30m_inv",
      "description": "Inverted VIX 30-min change (VIX drop \u2192 bullish)",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": 0.0135,
          "n_is": 0,
          "n_oos": 384
        },
        "3h": {
          "is": null,
          "oos": 0.2107,
          "n_is": 0,
          "n_oos": 384
        },
        "eod": {
          "is": null,
          "oos": 0.2316,
          "n_is": 0,
          "n_oos": 384
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.0793,
          "n_is": 0,
          "n_oos": 768
        },
        "3h": {
          "is": null,
          "oos": 0.3536,
          "n_is": 0,
          "n_oos": 768
        },
        "eod": {
          "is": null,
          "oos": 0.3115,
          "n_is": 0,
          "n_oos": 768
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": -0.0175,
          "n_is": 0,
          "n_oos": 1185
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 1185
        },
        "eod": {
          "is": null,
          "oos": 0.0501,
          "n_is": 0,
          "n_oos": 1185
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 2337,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "vix9d_vix_ratio_chg",
      "description": "VIX9D/VIX ratio 30-min change",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": -0.0017,
          "n_is": 0,
          "n_oos": 384
        },
        "3h": {
          "is": null,
          "oos": -0.211,
          "n_is": 0,
          "n_oos": 384
        },
        "eod": {
          "is": null,
          "oos": -0.191,
          "n_is": 0,
          "n_oos": 384
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": 0.0874,
          "n_is": 0,
          "n_oos": 768
        },
        "3h": {
          "is": null,
          "oos": -0.3145,
          "n_is": 0,
          "n_oos": 768
        },
        "eod": {
          "is": null,
          "oos": -0.2338,
          "n_is": 0,
          "n_oos": 768
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.2491,
          "n_is": 0,
          "n_oos": 129
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 129
        },
        "eod": {
          "is": null,
          "oos": -0.0519,
          "n_is": 0,
          "n_oos": 129
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 1281,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "vix1d_vix_ratio_chg",
      "description": "VIX1D/VIX ratio 30-min change",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": -0.0079,
          "n_is": 0,
          "n_oos": 384
        },
        "3h": {
          "is": null,
          "oos": -0.1711,
          "n_is": 0,
          "n_oos": 384
        },
        "eod": {
          "is": null,
          "oos": -0.1193,
          "n_is": 0,
          "n_oos": 384
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.0296,
          "n_is": 0,
          "n_oos": 768
        },
        "3h": {
          "is": null,
          "oos": -0.2602,
          "n_is": 0,
          "n_oos": 768
        },
        "eod": {
          "is": null,
          "oos": -0.1553,
          "n_is": 0,
          "n_oos": 768
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.063,
          "n_is": 0,
          "n_oos": 129
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 129
        },
        "eod": {
          "is": null,
          "oos": -0.1803,
          "n_is": 0,
          "n_oos": 129
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 1281,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "vix_spike_contrarian",
      "description": "Contrarian on VIX >3% 30m moves",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": -0.008,
          "n_is": 3600,
          "n_oos": 1782
        },
        "3h": {
          "is": null,
          "oos": 0.0451,
          "n_is": 3600,
          "n_oos": 1782
        },
        "eod": {
          "is": null,
          "oos": 0.0763,
          "n_is": 3600,
          "n_oos": 1782
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.0769,
          "n_is": 4800,
          "n_oos": 2376
        },
        "3h": {
          "is": null,
          "oos": 0.1305,
          "n_is": 4800,
          "n_oos": 2376
        },
        "eod": {
          "is": null,
          "oos": 0.114,
          "n_is": 4800,
          "n_oos": 2376
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": -0.0298,
          "n_is": 6951,
          "n_oos": 3390
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6951,
          "n_oos": 3390
        },
        "eod": {
          "is": null,
          "oos": -0.0064,
          "n_is": 6951,
          "n_oos": 3390
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 22899,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "tick_level",
      "description": "NYSE TICK close value",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": 0.128,
          "n_is": 0,
          "n_oos": 1150
        },
        "3h": {
          "is": null,
          "oos": 0.2646,
          "n_is": 0,
          "n_oos": 1150
        },
        "eod": {
          "is": null,
          "oos": 0.2254,
          "n_is": 0,
          "n_oos": 1150
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": 0.0431,
          "n_is": 0,
          "n_oos": 1512
        },
        "3h": {
          "is": null,
          "oos": 0.2924,
          "n_is": 0,
          "n_oos": 1512
        },
        "eod": {
          "is": null,
          "oos": 0.1908,
          "n_is": 0,
          "n_oos": 1512
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.1456,
          "n_is": 0,
          "n_oos": 63
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 63
        },
        "eod": {
          "is": null,
          "oos": 0.2354,
          "n_is": 0,
          "n_oos": 63
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 2725,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "tick_30m_ma",
      "description": "NYSE TICK 30-min moving average",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": 0.2192,
          "n_is": 0,
          "n_oos": 1160
        },
        "3h": {
          "is": null,
          "oos": 0.4148,
          "n_is": 0,
          "n_oos": 1160
        },
        "eod": {
          "is": null,
          "oos": 0.343,
          "n_is": 0,
          "n_oos": 1160
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": 0.0925,
          "n_is": 0,
          "n_oos": 1512
        },
        "3h": {
          "is": null,
          "oos": 0.4614,
          "n_is": 0,
          "n_oos": 1512
        },
        "eod": {
          "is": null,
          "oos": 0.266,
          "n_is": 0,
          "n_oos": 1512
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.1444,
          "n_is": 0,
          "n_oos": 378
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 378
        },
        "eod": {
          "is": null,
          "oos": 0.2404,
          "n_is": 0,
          "n_oos": 378
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 3050,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "tick_extreme",
      "description": "Contrarian: buy TICK<-1000, sell TICK>+1000",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": -0.0721,
          "n_is": 3600,
          "n_oos": 1782
        },
        "3h": {
          "is": null,
          "oos": -0.101,
          "n_is": 3600,
          "n_oos": 1782
        },
        "eod": {
          "is": null,
          "oos": -0.073,
          "n_is": 3600,
          "n_oos": 1782
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": 0.0092,
          "n_is": 4800,
          "n_oos": 2376
        },
        "3h": {
          "is": null,
          "oos": -0.0871,
          "n_is": 4800,
          "n_oos": 2376
        },
        "eod": {
          "is": null,
          "oos": -0.0759,
          "n_is": 4800,
          "n_oos": 2376
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": null,
          "n_is": 6951,
          "n_oos": 3390
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6951,
          "n_oos": 3390
        },
        "eod": {
          "is": null,
          "oos": null,
          "n_is": 6951,
          "n_oos": 3390
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 22899,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "dxy_30m_inv",
      "description": "DXY 30m momentum inverted (DXY down = ES up)",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": 0.1811,
          "n_is": 0,
          "n_oos": 228
        },
        "3h": {
          "is": null,
          "oos": 0.257,
          "n_is": 0,
          "n_oos": 228
        },
        "eod": {
          "is": null,
          "oos": 0.3139,
          "n_is": 0,
          "n_oos": 228
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": 0.042,
          "n_is": 0,
          "n_oos": 456
        },
        "3h": {
          "is": null,
          "oos": 0.2234,
          "n_is": 0,
          "n_oos": 456
        },
        "eod": {
          "is": null,
          "oos": 0.1716,
          "n_is": 0,
          "n_oos": 456
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.0488,
          "n_is": 0,
          "n_oos": 648
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 648
        },
        "eod": {
          "is": null,
          "oos": 0.0878,
          "n_is": 0,
          "n_oos": 648
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 1332,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "tlt_30m_mom",
      "description": "TLT 30m momentum",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": -0.0775,
          "n_is": 0,
          "n_oos": 780
        },
        "3h": {
          "is": null,
          "oos": -0.0751,
          "n_is": 0,
          "n_oos": 780
        },
        "eod": {
          "is": null,
          "oos": 0.0505,
          "n_is": 0,
          "n_oos": 780
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.0685,
          "n_is": 0,
          "n_oos": 1560
        },
        "3h": {
          "is": null,
          "oos": 0.0383,
          "n_is": 0,
          "n_oos": 1560
        },
        "eod": {
          "is": null,
          "oos": 0.0148,
          "n_is": 0,
          "n_oos": 1560
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": -0.0983,
          "n_is": 0,
          "n_oos": 2306
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 2306
        },
        "eod": {
          "is": null,
          "oos": 0.0087,
          "n_is": 0,
          "n_oos": 2306
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 4646,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "usdjpy_30m_mom",
      "description": "USDJPY 30m momentum (risk-on proxy)",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": -0.2531,
          "n_is": 0,
          "n_oos": 216
        },
        "3h": {
          "is": null,
          "oos": -0.2917,
          "n_is": 0,
          "n_oos": 216
        },
        "eod": {
          "is": null,
          "oos": -0.3466,
          "n_is": 0,
          "n_oos": 216
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.2272,
          "n_is": 0,
          "n_oos": 432
        },
        "3h": {
          "is": null,
          "oos": -0.1588,
          "n_is": 0,
          "n_oos": 432
        },
        "eod": {
          "is": null,
          "oos": -0.049,
          "n_is": 0,
          "n_oos": 432
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": -0.0487,
          "n_is": 0,
          "n_oos": 612
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 612
        },
        "eod": {
          "is": null,
          "oos": -0.1159,
          "n_is": 0,
          "n_oos": 612
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 1260,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "hyg_30m_mom",
      "description": "HYG 30m momentum (credit risk proxy)",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": 0.0094,
          "n_is": 0,
          "n_oos": 780
        },
        "3h": {
          "is": null,
          "oos": 0.0817,
          "n_is": 0,
          "n_oos": 780
        },
        "eod": {
          "is": null,
          "oos": 0.0621,
          "n_is": 0,
          "n_oos": 780
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.097,
          "n_is": 0,
          "n_oos": 1565
        },
        "3h": {
          "is": null,
          "oos": 0.1877,
          "n_is": 0,
          "n_oos": 1565
        },
        "eod": {
          "is": null,
          "oos": 0.1672,
          "n_is": 0,
          "n_oos": 1565
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": -0.0395,
          "n_is": 0,
          "n_oos": 2310
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 2310
        },
        "eod": {
          "is": null,
          "oos": 0.0305,
          "n_is": 0,
          "n_oos": 2310
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 4655,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "tlt_es_divergence",
      "description": "TLT outperforming ES 30m (mean-reversion)",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": -0.0792,
          "n_is": 0,
          "n_oos": 780
        },
        "3h": {
          "is": null,
          "oos": -0.096,
          "n_is": 0,
          "n_oos": 780
        },
        "eod": {
          "is": null,
          "oos": 0.0089,
          "n_is": 0,
          "n_oos": 780
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.0354,
          "n_is": 0,
          "n_oos": 1560
        },
        "3h": {
          "is": null,
          "oos": 0.0432,
          "n_is": 0,
          "n_oos": 1560
        },
        "eod": {
          "is": null,
          "oos": 0.1172,
          "n_is": 0,
          "n_oos": 1560
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.0553,
          "n_is": 0,
          "n_oos": 2306
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 2306
        },
        "eod": {
          "is": null,
          "oos": 0.0585,
          "n_is": 0,
          "n_oos": 2306
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 4646,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "cum_delta_norm",
      "description": "Cumulative delta / cumulative volume (order flow bias)",
      "morning_ic": {
        "1h": {
          "is": 0.0871,
          "oos": 0.0932,
          "n_is": 3546,
          "n_oos": 1746
        },
        "3h": {
          "is": 0.0721,
          "oos": 0.0893,
          "n_is": 3546,
          "n_oos": 1746
        },
        "eod": {
          "is": 0.0777,
          "oos": 0.0655,
          "n_is": 3546,
          "n_oos": 1746
        }
      },
      "midday_ic": {
        "1h": {
          "is": 0.0109,
          "oos": 0.0466,
          "n_is": 4728,
          "n_oos": 2328
        },
        "3h": {
          "is": 0.0151,
          "oos": 0.0738,
          "n_is": 4728,
          "n_oos": 2328
        },
        "eod": {
          "is": -0.0061,
          "oos": 0.0666,
          "n_is": 4728,
          "n_oos": 2328
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": -0.0025,
          "oos": 0.03,
          "n_is": 6843,
          "n_oos": 3318
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6843,
          "n_oos": 3318
        },
        "eod": {
          "is": -0.0471,
          "oos": 0.008,
          "n_is": 6843,
          "n_oos": 3318
        }
      },
      "best_horizon": "1h",
      "best_time": "morning",
      "hit_rate_top_quintile": 0.6,
      "n_obs": 22509,
      "notes": ""
    },
    {
      "name": "delta_30m_sum",
      "description": "30-min rolling delta sum",
      "morning_ic": {
        "1h": {
          "is": 0.057,
          "oos": 0.099,
          "n_is": 3546,
          "n_oos": 1746
        },
        "3h": {
          "is": 0.0582,
          "oos": 0.0826,
          "n_is": 3546,
          "n_oos": 1746
        },
        "eod": {
          "is": 0.0647,
          "oos": 0.0683,
          "n_is": 3546,
          "n_oos": 1746
        }
      },
      "midday_ic": {
        "1h": {
          "is": 0.0279,
          "oos": 0.0666,
          "n_is": 4728,
          "n_oos": 2328
        },
        "3h": {
          "is": 0.0255,
          "oos": 0.0708,
          "n_is": 4728,
          "n_oos": 2328
        },
        "eod": {
          "is": -0.0138,
          "oos": 0.0335,
          "n_is": 4728,
          "n_oos": 2328
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": -0.0426,
          "oos": 0.0184,
          "n_is": 6843,
          "n_oos": 3318
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6843,
          "n_oos": 3318
        },
        "eod": {
          "is": -0.0469,
          "oos": 0.0479,
          "n_is": 6843,
          "n_oos": 3318
        }
      },
      "best_horizon": "1h",
      "best_time": "morning",
      "hit_rate_top_quintile": 0.5657,
      "n_obs": 22509,
      "notes": ""
    },
    {
      "name": "delta_price_corr",
      "description": "30-min rolling correlation of cum_delta vs price (low = divergence)",
      "morning_ic": {
        "1h": {
          "is": -0.0109,
          "oos": -0.1001,
          "n_is": 2955,
          "n_oos": 1455
        },
        "3h": {
          "is": -0.0177,
          "oos": -0.0335,
          "n_is": 2955,
          "n_oos": 1455
        },
        "eod": {
          "is": -0.0282,
          "oos": -0.025,
          "n_is": 2955,
          "n_oos": 1455
        }
      },
      "midday_ic": {
        "1h": {
          "is": -0.0128,
          "oos": 0.0158,
          "n_is": 4728,
          "n_oos": 2328
        },
        "3h": {
          "is": 0.0171,
          "oos": 0.019,
          "n_is": 4728,
          "n_oos": 2328
        },
        "eod": {
          "is": -0.0004,
          "oos": 0.0377,
          "n_is": 4728,
          "n_oos": 2328
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": 0.0693,
          "oos": -0.0218,
          "n_is": 6843,
          "n_oos": 3318
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6843,
          "n_oos": 3318
        },
        "eod": {
          "is": 0.0588,
          "oos": 0.0115,
          "n_is": 6843,
          "n_oos": 3318
        }
      },
      "best_horizon": "1h",
      "best_time": "morning",
      "hit_rate_top_quintile": 0.4811,
      "n_obs": 21627,
      "notes": ""
    },
    {
      "name": "first_30m_dir",
      "description": "First 30-min return direction (continuation?)",
      "morning_ic": {
        "1h": {
          "is": 0.022,
          "oos": 0.0081,
          "n_is": 2200,
          "n_oos": 1089
        },
        "3h": {
          "is": 0.0671,
          "oos": -0.0261,
          "n_is": 2200,
          "n_oos": 1089
        },
        "eod": {
          "is": 0.1664,
          "oos": -0.0325,
          "n_is": 2200,
          "n_oos": 1089
        }
      },
      "midday_ic": {
        "1h": {
          "is": 0.0541,
          "oos": -0.0106,
          "n_is": 4800,
          "n_oos": 2376
        },
        "3h": {
          "is": 0.1117,
          "oos": -0.0743,
          "n_is": 4800,
          "n_oos": 2376
        },
        "eod": {
          "is": 0.1203,
          "oos": -0.0339,
          "n_is": 4800,
          "n_oos": 2376
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": 0.0823,
          "oos": -0.0255,
          "n_is": 6951,
          "n_oos": 3390
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6951,
          "n_oos": 3390
        },
        "eod": {
          "is": 0.0747,
          "oos": -0.0455,
          "n_is": 6951,
          "n_oos": 3390
        }
      },
      "best_horizon": "1h",
      "best_time": "morning",
      "hit_rate_top_quintile": 0.4955,
      "n_obs": 20806,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "morning_range_pos",
      "description": "Position in morning range (0=low, 1=high) after 11am",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 0
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 0
        },
        "eod": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 0
        }
      },
      "midday_ic": {
        "1h": {
          "is": -0.0067,
          "oos": 0.0419,
          "n_is": 4800,
          "n_oos": 2376
        },
        "3h": {
          "is": 0.0314,
          "oos": -0.0437,
          "n_is": 4800,
          "n_oos": 2376
        },
        "eod": {
          "is": 0.0047,
          "oos": -0.1396,
          "n_is": 4800,
          "n_oos": 2376
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": 0.033,
          "oos": -0.1035,
          "n_is": 6951,
          "n_oos": 3390
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6951,
          "n_oos": 3390
        },
        "eod": {
          "is": -0.05,
          "oos": -0.2132,
          "n_is": 6951,
          "n_oos": 3390
        }
      },
      "best_horizon": "eod",
      "best_time": "afternoon",
      "hit_rate_top_quintile": 0.3414,
      "n_obs": 17517,
      "notes": ""
    },
    {
      "name": "return_from_open",
      "description": "Intraday return from open",
      "morning_ic": {
        "1h": {
          "is": 0.0109,
          "oos": 0.0517,
          "n_is": 3600,
          "n_oos": 1782
        },
        "3h": {
          "is": 0.0354,
          "oos": 0.0245,
          "n_is": 3600,
          "n_oos": 1782
        },
        "eod": {
          "is": 0.1218,
          "oos": -0.0052,
          "n_is": 3600,
          "n_oos": 1782
        }
      },
      "midday_ic": {
        "1h": {
          "is": 0.0198,
          "oos": 0.032,
          "n_is": 4800,
          "n_oos": 2376
        },
        "3h": {
          "is": 0.0928,
          "oos": -0.0387,
          "n_is": 4800,
          "n_oos": 2376
        },
        "eod": {
          "is": 0.0848,
          "oos": -0.1116,
          "n_is": 4800,
          "n_oos": 2376
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": 0.0703,
          "oos": -0.1175,
          "n_is": 6951,
          "n_oos": 3390
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6951,
          "n_oos": 3390
        },
        "eod": {
          "is": 0.0177,
          "oos": -0.2116,
          "n_is": 6951,
          "n_oos": 3390
        }
      },
      "best_horizon": "1h",
      "best_time": "morning",
      "hit_rate_top_quintile": 0.521,
      "n_obs": 22899,
      "notes": ""
    },
    {
      "name": "hiro_raw",
      "description": "SPX HIRO current-day signal (raw level)",
      "morning_ic": {},
      "midday_ic": {},
      "afternoon_ic": {},
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 0,
      "notes": "Insufficient data: 0 obs"
    },
    {
      "name": "hiro_zscore",
      "description": "SPX HIRO z-score",
      "morning_ic": {},
      "midday_ic": {},
      "afternoon_ic": {},
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 0,
      "notes": "Insufficient data: 0 obs"
    },
    {
      "name": "mm_gamma_total",
      "description": "Total MM gamma across all strikes",
      "morning_ic": {
        "1h": {
          "is": 0.0727,
          "oos": -0.0906,
          "n_is": 300,
          "n_oos": 384
        },
        "3h": {
          "is": 0.0286,
          "oos": -0.0462,
          "n_is": 300,
          "n_oos": 384
        },
        "eod": {
          "is": 0.0561,
          "oos": -0.0611,
          "n_is": 300,
          "n_oos": 384
        }
      },
      "midday_ic": {
        "1h": {
          "is": -0.1057,
          "oos": 0.0448,
          "n_is": 450,
          "n_oos": 574
        },
        "3h": {
          "is": -0.0206,
          "oos": 0.0135,
          "n_is": 450,
          "n_oos": 574
        },
        "eod": {
          "is": 0.0041,
          "oos": 0.0469,
          "n_is": 450,
          "n_oos": 574
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": 0.0625,
          "oos": -0.0216,
          "n_is": 1778,
          "n_oos": 2242
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 1778,
          "n_oos": 2242
        },
        "eod": {
          "is": 0.0588,
          "oos": 0.0697,
          "n_is": 1778,
          "n_oos": 2242
        }
      },
      "best_horizon": "eod",
      "best_time": "afternoon",
      "hit_rate_top_quintile": 0.4279,
      "n_obs": 5728,
      "notes": ""
    },
    {
      "name": "cust_gamma_total",
      "description": "Total customer gamma across all strikes",
      "morning_ic": {
        "1h": {
          "is": -0.0699,
          "oos": -0.1759,
          "n_is": 300,
          "n_oos": 384
        },
        "3h": {
          "is": -0.0034,
          "oos": -0.0855,
          "n_is": 300,
          "n_oos": 384
        },
        "eod": {
          "is": -0.1061,
          "oos": -0.1154,
          "n_is": 300,
          "n_oos": 384
        }
      },
      "midday_ic": {
        "1h": {
          "is": 0.0641,
          "oos": 0.0667,
          "n_is": 450,
          "n_oos": 574
        },
        "3h": {
          "is": -0.0907,
          "oos": -0.0304,
          "n_is": 450,
          "n_oos": 574
        },
        "eod": {
          "is": -0.1258,
          "oos": -0.0416,
          "n_is": 450,
          "n_oos": 574
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": -0.1244,
          "oos": -0.0482,
          "n_is": 1778,
          "n_oos": 2242
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 1778,
          "n_oos": 2242
        },
        "eod": {
          "is": -0.1107,
          "oos": -0.0552,
          "n_is": 1778,
          "n_oos": 2242
        }
      },
      "best_horizon": "1h",
      "best_time": "morning",
      "hit_rate_top_quintile": 0.4359,
      "n_obs": 5728,
      "notes": ""
    },
    {
      "name": "vvix_30m_change",
      "description": "VVIX 30-min pct change",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": -0.0315,
          "n_is": 0,
          "n_oos": 756
        },
        "3h": {
          "is": null,
          "oos": -0.2134,
          "n_is": 0,
          "n_oos": 756
        },
        "eod": {
          "is": null,
          "oos": -0.0963,
          "n_is": 0,
          "n_oos": 756
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.022,
          "n_is": 0,
          "n_oos": 1512
        },
        "3h": {
          "is": null,
          "oos": -0.357,
          "n_is": 0,
          "n_oos": 1512
        },
        "eod": {
          "is": null,
          "oos": -0.2821,
          "n_is": 0,
          "n_oos": 1512
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.0542,
          "n_is": 0,
          "n_oos": 2202
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 2202
        },
        "eod": {
          "is": null,
          "oos": -0.0482,
          "n_is": 0,
          "n_oos": 2202
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 4470,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "vvix_level",
      "description": "VVIX absolute level",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": -0.1067,
          "n_is": 0,
          "n_oos": 1118
        },
        "3h": {
          "is": null,
          "oos": -0.2689,
          "n_is": 0,
          "n_oos": 1118
        },
        "eod": {
          "is": null,
          "oos": -0.0732,
          "n_is": 0,
          "n_oos": 1118
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.2229,
          "n_is": 0,
          "n_oos": 1464
        },
        "3h": {
          "is": null,
          "oos": -0.1245,
          "n_is": 0,
          "n_oos": 1464
        },
        "eod": {
          "is": null,
          "oos": 0.0083,
          "n_is": 0,
          "n_oos": 1464
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.0396,
          "n_is": 0,
          "n_oos": 244
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 244
        },
        "eod": {
          "is": null,
          "oos": 0.0824,
          "n_is": 0,
          "n_oos": 244
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 2826,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    }
  ],
  "combinations": [
    {
      "name": "combo_tick_plus_vix",
      "description": "Z-score sum: sig_tick_30m_ma + sig_vix_30m_chg",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": 0.1234,
          "n_is": 0,
          "n_oos": 384
        },
        "3h": {
          "is": null,
          "oos": 0.3183,
          "n_is": 0,
          "n_oos": 384
        },
        "eod": {
          "is": null,
          "oos": 0.3403,
          "n_is": 0,
          "n_oos": 384
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.0122,
          "n_is": 0,
          "n_oos": 768
        },
        "3h": {
          "is": null,
          "oos": 0.4682,
          "n_is": 0,
          "n_oos": 768
        },
        "eod": {
          "is": null,
          "oos": 0.3245,
          "n_is": 0,
          "n_oos": 768
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": -0.1072,
          "n_is": 0,
          "n_oos": 195
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 195
        },
        "eod": {
          "is": null,
          "oos": 0.1824,
          "n_is": 0,
          "n_oos": 195
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 1347,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "combo_gex_plus_delta",
      "description": "Z-score sum: sig_gex_quintile + sig_cum_delta_norm",
      "morning_ic": {
        "1h": {
          "is": 0.4639,
          "oos": 0.4755,
          "n_is": 3546,
          "n_oos": 1638
        },
        "3h": {
          "is": 0.5364,
          "oos": 0.5919,
          "n_is": 3546,
          "n_oos": 1638
        },
        "eod": {
          "is": 0.4742,
          "oos": 0.4952,
          "n_is": 3546,
          "n_oos": 1638
        }
      },
      "midday_ic": {
        "1h": {
          "is": 0.5025,
          "oos": 0.5198,
          "n_is": 4728,
          "n_oos": 2184
        },
        "3h": {
          "is": 0.5426,
          "oos": 0.6492,
          "n_is": 4728,
          "n_oos": 2184
        },
        "eod": {
          "is": 0.4579,
          "oos": 0.576,
          "n_is": 4728,
          "n_oos": 2184
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": 0.2932,
          "oos": 0.425,
          "n_is": 6843,
          "n_oos": 3102
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 6843,
          "n_oos": 3102
        },
        "eod": {
          "is": 0.2292,
          "oos": 0.3896,
          "n_is": 6843,
          "n_oos": 3102
        }
      },
      "best_horizon": "3h",
      "best_time": "midday",
      "hit_rate_top_quintile": 0.9177,
      "n_obs": 22041,
      "notes": ""
    },
    {
      "name": "combo_tick_plus_hyg",
      "description": "Z-score sum: sig_tick_30m_ma + sig_hyg_mom",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": 0.1265,
          "n_is": 0,
          "n_oos": 770
        },
        "3h": {
          "is": null,
          "oos": 0.2588,
          "n_is": 0,
          "n_oos": 770
        },
        "eod": {
          "is": null,
          "oos": 0.2404,
          "n_is": 0,
          "n_oos": 770
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.0186,
          "n_is": 0,
          "n_oos": 1512
        },
        "3h": {
          "is": null,
          "oos": 0.368,
          "n_is": 0,
          "n_oos": 1512
        },
        "eod": {
          "is": null,
          "oos": 0.2493,
          "n_is": 0,
          "n_oos": 1512
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.0003,
          "n_is": 0,
          "n_oos": 378
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 378
        },
        "eod": {
          "is": null,
          "oos": 0.208,
          "n_is": 0,
          "n_oos": 378
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 2660,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "combo_vix_plus_dxy",
      "description": "Z-score sum: sig_vix_30m_chg + sig_dxy_mom",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": 0.1531,
          "n_is": 0,
          "n_oos": 216
        },
        "3h": {
          "is": null,
          "oos": 0.2719,
          "n_is": 0,
          "n_oos": 216
        },
        "eod": {
          "is": null,
          "oos": 0.3345,
          "n_is": 0,
          "n_oos": 216
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.0842,
          "n_is": 0,
          "n_oos": 432
        },
        "3h": {
          "is": null,
          "oos": 0.3059,
          "n_is": 0,
          "n_oos": 432
        },
        "eod": {
          "is": null,
          "oos": 0.2514,
          "n_is": 0,
          "n_oos": 432
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.0245,
          "n_is": 0,
          "n_oos": 648
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 648
        },
        "eod": {
          "is": null,
          "oos": 0.1078,
          "n_is": 0,
          "n_oos": 648
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 1296,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "combo_tick_vix_dxy",
      "description": "Z-score sum: sig_tick_30m_ma + sig_vix_30m_chg + sig_dxy_mom",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": 0.2296,
          "n_is": 0,
          "n_oos": 216
        },
        "3h": {
          "is": null,
          "oos": 0.3885,
          "n_is": 0,
          "n_oos": 216
        },
        "eod": {
          "is": null,
          "oos": 0.3987,
          "n_is": 0,
          "n_oos": 216
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.0461,
          "n_is": 0,
          "n_oos": 432
        },
        "3h": {
          "is": null,
          "oos": 0.4174,
          "n_is": 0,
          "n_oos": 432
        },
        "eod": {
          "is": null,
          "oos": 0.2498,
          "n_is": 0,
          "n_oos": 432
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": -0.0058,
          "n_is": 0,
          "n_oos": 108
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 108
        },
        "eod": {
          "is": null,
          "oos": 0.2134,
          "n_is": 0,
          "n_oos": 108
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 756,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "combo_delta_plus_vix",
      "description": "Z-score sum: sig_delta_30m + sig_vix_30m_chg",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": 0.0737,
          "n_is": 0,
          "n_oos": 384
        },
        "3h": {
          "is": null,
          "oos": 0.1323,
          "n_is": 0,
          "n_oos": 384
        },
        "eod": {
          "is": null,
          "oos": 0.1493,
          "n_is": 0,
          "n_oos": 384
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": -0.1279,
          "n_is": 0,
          "n_oos": 768
        },
        "3h": {
          "is": null,
          "oos": 0.3003,
          "n_is": 0,
          "n_oos": 768
        },
        "eod": {
          "is": null,
          "oos": 0.271,
          "n_is": 0,
          "n_oos": 768
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.1074,
          "n_is": 0,
          "n_oos": 1185
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 1185
        },
        "eod": {
          "is": null,
          "oos": 0.1265,
          "n_is": 0,
          "n_oos": 1185
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 2337,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    },
    {
      "name": "combo_open_ret_plus_tick",
      "description": "Z-score sum: sig_ret_from_open + sig_tick_30m_ma",
      "morning_ic": {
        "1h": {
          "is": null,
          "oos": 0.2154,
          "n_is": 0,
          "n_oos": 1160
        },
        "3h": {
          "is": null,
          "oos": 0.391,
          "n_is": 0,
          "n_oos": 1160
        },
        "eod": {
          "is": null,
          "oos": 0.3128,
          "n_is": 0,
          "n_oos": 1160
        }
      },
      "midday_ic": {
        "1h": {
          "is": null,
          "oos": 0.1088,
          "n_is": 0,
          "n_oos": 1512
        },
        "3h": {
          "is": null,
          "oos": 0.3403,
          "n_is": 0,
          "n_oos": 1512
        },
        "eod": {
          "is": null,
          "oos": 0.1789,
          "n_is": 0,
          "n_oos": 1512
        }
      },
      "afternoon_ic": {
        "1h": {
          "is": null,
          "oos": 0.008,
          "n_is": 0,
          "n_oos": 378
        },
        "3h": {
          "is": null,
          "oos": null,
          "n_is": 0,
          "n_oos": 378
        },
        "eod": {
          "is": null,
          "oos": 0.0535,
          "n_is": 0,
          "n_oos": 378
        }
      },
      "best_horizon": null,
      "best_time": null,
      "hit_rate_top_quintile": null,
      "n_obs": 3050,
      "notes": "FAILED: No consistent IS/OOS signal above |IC| > 0.02"
    }
  ],
  "quintile_analysis": {
    "gex_change_30m": [
      {
        "q": 1,
        "mean": -0.00039196364110938715,
        "std": 0.002607313497073334,
        "count": 610,
        "mean_bps": -3.9196364110938715
      },
      {
        "q": 2,
        "mean": -0.0005230013664669978,
        "std": 0.0024915661402003207,
        "count": 610,
        "mean_bps": -5.230013664669978
      },
      {
        "q": 3,
        "mean": -0.0006718542801414327,
        "std": 0.0025037252795524502,
        "count": 609,
        "mean_bps": -6.718542801414327
      },
      {
        "q": 4,
        "mean": -0.0004467197157871794,
        "std": 0.002216708347882532,
        "count": 610,
        "mean_bps": -4.467197157871794
      },
      {
        "q": 5,
        "mean": 0.0003522423137032931,
        "std": 0.0025167427452423776,
        "count": 610,
        "mean_bps": 3.522423137032931
      }
    ],
    "cum_delta_norm": [
      {
        "q": 1,
        "mean": -0.00067254285677987,
        "std": 0.004107784442128245,
        "count": 350,
        "mean_bps": -6.7254285677987
      },
      {
        "q": 2,
        "mean": -0.0003390589496914439,
        "std": 0.0033352814868520923,
        "count": 349,
        "mean_bps": -3.3905894969144392
      },
      {
        "q": 3,
        "mean": 0.00015780364254847141,
        "std": 0.0028424036762666437,
        "count": 349,
        "mean_bps": 1.5780364254847141
      },
      {
        "q": 4,
        "mean": 0.00026357462367035265,
        "std": 0.002584991437190769,
        "count": 349,
        "mean_bps": 2.6357462367035263
      },
      {
        "q": 5,
        "mean": 0.00012855951035987558,
        "std": 0.0025243584607014574,
        "count": 349,
        "mean_bps": 1.2855951035987558
      }
    ],
    "delta_price_corr": [
      {
        "q": 1,
        "mean": 0.000485974926739551,
        "std": 0.0031626092945836975,
        "count": 291,
        "mean_bps": 4.85974926739551
      },
      {
        "q": 2,
        "mean": -0.00028852058011281137,
        "std": 0.0032556764791599174,
        "count": 291,
        "mean_bps": -2.8852058011281136
      },
      {
        "q": 3,
        "mean": 0.00010506848266149503,
        "std": 0.002731133150874262,
        "count": 291,
        "mean_bps": 1.0506848266149502
      },
      {
        "q": 4,
        "mean": -0.00023407989736123368,
        "std": 0.0027782827804677377,
        "count": 291,
        "mean_bps": -2.340798973612337
      },
      {
        "q": 5,
        "mean": -0.0006619788833407666,
        "std": 0.003221142434318473,
        "count": 291,
        "mean_bps": -6.619788833407665
      }
    ],
    "mm_gamma_total": [
      {
        "q": 1,
        "mean": 8.39623580220959e-05,
        "std": 0.0018780908541482237,
        "count": 430,
        "mean_bps": 0.8396235802209591
      },
      {
        "q": 2,
        "mean": -0.0011787958849989017,
        "std": 0.002323522351172865,
        "count": 430,
        "mean_bps": -11.787958849989018
      },
      {
        "q": 3,
        "mean": -0.00021502631425797687,
        "std": 0.002662790339599914,
        "count": 429,
        "mean_bps": -2.1502631425797687
      },
      {
        "q": 4,
        "mean": -2.749444886600354e-05,
        "std": 0.0022990945134590355,
        "count": 430,
        "mean_bps": -0.2749444886600354
      },
      {
        "q": 5,
        "mean": -3.518294716080716e-05,
        "std": 0.0014869866875932716,
        "count": 430,
        "mean_bps": -0.3518294716080716
      }
    ],
    "cust_gamma_total": [
      {
        "q": 1,
        "mean": 0.0009558181758385559,
        "std": 0.002553045857854052,
        "count": 78,
        "mean_bps": 9.55818175838556
      },
      {
        "q": 2,
        "mean": -0.00010077024491618531,
        "std": 0.0034306209926328406,
        "count": 76,
        "mean_bps": -1.0077024491618531
      },
      {
        "q": 3,
        "mean": 0.00029388211368603105,
        "std": 0.0029432568441899367,
        "count": 76,
        "mean_bps": 2.9388211368603105
      },
      {
        "q": 4,
        "mean": -0.0005983480651037265,
        "std": 0.0035963454901742757,
        "count": 78,
        "mean_bps": -5.983480651037265
      },
      {
        "q": 5,
        "mean": -0.0009492113865445328,
        "std": 0.003549071634137781,
        "count": 76,
        "mean_bps": -9.492113865445328
      }
    ],
    "combo_gex_plus_delta": [
      {
        "q": 1,
        "mean": -0.0036258742922795667,
        "std": 0.004007574285491295,
        "count": 413,
        "mean_bps": -36.25874292279567
      },
      {
        "q": 2,
        "mean": -0.0012014972359073665,
        "std": 0.0025526767234623736,
        "count": 413,
        "mean_bps": -12.014972359073665
      },
      {
        "q": 3,
        "mean": 0.0005253654774533082,
        "std": 0.002739594939749277,
        "count": 412,
        "mean_bps": 5.253654774533082
      },
      {
        "q": 4,
        "mean": 0.0017758960250008461,
        "std": 0.0029505787858216835,
        "count": 413,
        "mean_bps": 17.75896025000846
      },
      {
        "q": 5,
        "mean": 0.002924975794970792,
        "std": 0.0033436510394567014,
        "count": 413,
        "mean_bps": 29.24975794970792
      }
    ]
  },
  "metadata": {
    "n_bars": 22899,
    "n_days": 299,
    "date_range": "2025-01-02 to 2026-03-02",
    "is_range": "2025-01-02 to 2025-10-10 (200 days)",
    "oos_range": "2025-10-13 to 2026-03-02 (99 days)"
  },
  "summary": "INTRADAY SIGNAL RESEARCH RESULTS (ES Futures)\n==============================================\n299 trading days (Jan 2025 - Mar 2026). 200 IS / 99 OOS.\n27 signals + 7 combinations tested.\n\nTOP SIGNALS (IS/OOS consistent):\n1. Expanding GEX Quintile: Morning/EOD OOS IC=0.28, Morning/3H OOS IC=0.23\n   - Top quintile: +51.5 bps/3H, 81% hit rate\n   - THE primary signal. Works across all windows, strongest in morning.\n\n2. GEX Regime (pos/neg): Morning/EOD OOS IC=0.33\n   - Positive gamma = bullish, simple binary filter\n\n3. Customer Gamma (TRACE): Morning/1H OOS IC=-0.18\n   - High customer gamma = bearish (contrarian)\n\n4. Cumulative Delta: Morning/1H OOS IC=0.09\n   - Positive delta flow = bullish, confirms GEX signal\n\n5. Delta 30m Sum: Morning/1H OOS IC=0.10\n   - Recent order flow direction adds to prediction\n\n6. GEX + Delta Combo: Midday/3H OOS IC=0.65 (inflated by precomputed GEX)\n   - True IC likely ~0.25-0.30 with honest GEX. Still best combo.\n\nFAILED (20 signals): VIX, TICK, cross-asset all lack IS data for validation.\nFirst-30min direction failed IS/OOS consistency.\n\nKEY INSIGHT: Morning session (9:30-11:00 ET) is when positioning signals work best.\nGEX level is the dominant predictor. Order flow delta adds incremental value."
}