{
  "id": "opportunity-h1",
  "version": "1.0.0-eurusd-research",
  "trainedAt": "2026-09-20T21:44:34.647562+00:00",
  "features": [
    "return1",
    "return4",
    "return12",
    "trend12_26",
    "extension20",
    "range",
    "position20",
    "body",
    "trend24_96",
    "volatility_pips",
    "volatility_ratio",
    "hour_sin",
    "hour_cos",
    "direction"
  ],
  "label": "Positive simulated USD return: next H1 open entry, stop 1.5 ATR, target 3 ATR, close after at most 12 hours; adverse barrier first if both touched.",
  "costs": "1.2 pip spread, 0.2 pip adverse slippage each fill; zero commissions/swaps. Reference OHLC approximation.",
  "split": "Global chronological 60/15/10/15; labels purged at boundaries; 12-hour embargo. Scaling fits train; ridge selects validation; temperature selects calibration; threshold validation 75th percentile among eligible setups. Test never selects parameters.",
  "trainingObservations": 5802,
  "validationObservations": 1429,
  "calibrationObservations": 945,
  "testObservations": 1442,
  "testStart": "2026-06-04T21:00:00+00:00",
  "testEnd": "2026-09-17T22:00:00+00:00",
  "ridge": 0.1,
  "temperature": 0.75,
  "selectionThreshold": 0.3715266219124664,
  "testBrier": 0.22537260772726825,
  "constantBaselineBrier": 0.23000446252404086,
  "baseline": {
    "trades": 80,
    "winRate": 0.3375,
    "meanR": -0.11177451964904264,
    "targetRate": 0.1625
  },
  "selected": {
    "trades": 32,
    "winRate": 0.4375,
    "meanR": 0.16727218159560642,
    "targetRate": 0.21875
  },
  "winRateUplift95WeekBootstrap": [
    -0.01804860888052742,
    0.25241282232618856
  ],
  "evidenceGatePassed": false,
  "calibrationBins": [
    {
      "lower": 0,
      "upper": 0.35,
      "count": 675,
      "observedWinRate": 0.30962962962962964
    },
    {
      "lower": 0.35,
      "upper": 0.4,
      "count": 168,
      "observedWinRate": 0.3869047619047619
    },
    {
      "lower": 0.4,
      "upper": 0.45,
      "count": 63,
      "observedWinRate": 0.3968253968253968
    },
    {
      "lower": 0.45,
      "upper": 0.5,
      "count": 30,
      "observedWinRate": 0.3333333333333333
    },
    {
      "lower": 0.5,
      "upper": 0.55,
      "count": 7,
      "observedWinRate": 0.42857142857142855
    },
    {
      "lower": 0.55,
      "upper": 0.6,
      "count": 2,
      "observedWinRate": 1.0
    },
    {
      "lower": 0.6,
      "upper": 0.65,
      "count": 0,
      "observedWinRate": null
    },
    {
      "lower": 0.65,
      "upper": 1.0,
      "count": 0,
      "observedWinRate": null
    }
  ],
  "sources": [
    {
      "symbol": "EURUSD",
      "sha256": "f1477e278a388562010e48b673d89776207936a2fc42c9430410e2b050b94dfe",
      "bars": 12322,
      "url": "https://query1.finance.yahoo.com/v8/finance/chart/EURUSD=X?interval=1h&range=2y"
    }
  ],
  "limits": [
    "Not a live win probability or profitability guarantee",
    "One position per pair in evaluation; no shared portfolio/risk account simulation",
    "No retraining on device; inference and cached analysis work offline",
    "Costs are assumptions; outcomes are sensitive to spread, execution and the 12-hour exit plan",
    "Single-pair experiment; limited test period and nonstationarity",
    "Reuses previously inspected history: retrospective research, not independent forward validation. No news features or dynamic-stop policy were trained."
  ],
  "costStress": {
    "spreadPips": 2.5,
    "slippagePipsPerFill": 0.5,
    "selectionFrozen": true,
    "baseline": {
      "trades": 83,
      "winRate": 0.3132530120481928,
      "meanR": -0.21601734485425259,
      "targetRate": 0.14457831325301204
    },
    "selected": {
      "trades": 36,
      "winRate": 0.3611111111111111,
      "meanR": -0.023262442432865467,
      "targetRate": 0.19444444444444445
    }
  },
  "symbols": [
    "EURUSD"
  ]
}