{
  "strategy_id": "baseline_momentum_live_v1",
  "generated_at": "2026-06-05T18:39:11.590992+00:00",
  "data_source": "Alpaca daily OHLC, feed=iex, split-adjusted",
  "window": {
    "start": "2022-07-21",
    "end": "2026-06-05",
    "daily_rows": 995,
    "symbols": 94
  },
  "signal": {
    "lookback_days": 20,
    "top_n": 6,
    "prior_close_signal": "uses previous trading day's close for next_open and close_or_moc variants",
    "same_day_close_signal": "uses same-day close and executes next trading-day open"
  },
  "cost_assumption": {
    "one_way_cost_bps_per_turnover": 10.0,
    "average_trade_cost_bps_definition": "average rebalance turnover multiplied by one-way cost bps"
  },
  "unavailable_intraday_variants": {
    "near_open_open_plus_30m": "requires intraday bars; not available in this daily-OHLC study",
    "mid_day": "requires intraday bars; not available in this daily-OHLC study",
    "close_minus_30m_1530_et": "requires intraday bars; not available in this daily-OHLC study"
  },
  "results": [
    {
      "weekday": "Monday",
      "execution_variant": "next_open",
      "execution_label": "prior close signal -> same-day open execution",
      "n_rebalances": 180,
      "gross_sharpe": 0.8050778076669401,
      "net_sharpe": 0.7242213190367509,
      "cagr": 0.3425908479759192,
      "maxdd": -0.5267484180858665,
      "turnover": 0.9511256903993288,
      "avg_trade_cost_bps": 9.511256903993289,
      "total_return": 1.772566538752931
    },
    {
      "weekday": "Monday",
      "execution_variant": "close_or_moc",
      "execution_label": "prior close signal -> same-day close / Market-on-Close proxy",
      "n_rebalances": 180,
      "gross_sharpe": 0.7844860568765826,
      "net_sharpe": 0.7037799329673978,
      "cagr": 0.33206184244934067,
      "maxdd": -0.5432013593087618,
      "turnover": 0.9511256903993288,
      "avg_trade_cost_bps": 9.511256903993289,
      "total_return": 1.6980249291255802
    },
    {
      "weekday": "Monday",
      "execution_variant": "same_day_close_next_open",
      "execution_label": "same-day close signal -> next trading-day open execution",
      "n_rebalances": 180,
      "gross_sharpe": 0.8540722708912504,
      "net_sharpe": 0.7631493471149163,
      "cagr": 0.3648743318761547,
      "maxdd": -0.5373215926422621,
      "turnover": 0.9651670543999024,
      "avg_trade_cost_bps": 9.651670543999023,
      "total_return": 1.935137564443139
    },
    {
      "weekday": "Tuesday",
      "execution_variant": "next_open",
      "execution_label": "prior close signal -> same-day open execution",
      "n_rebalances": 200,
      "gross_sharpe": 0.7433355144161653,
      "net_sharpe": 0.6509303913991047,
      "cagr": 0.27832322892091765,
      "maxdd": -0.5367526835488312,
      "turnover": 0.9360550416196075,
      "avg_trade_cost_bps": 9.360550416196075,
      "total_return": 1.571321992441927
    },
    {
      "weekday": "Tuesday",
      "execution_variant": "close_or_moc",
      "execution_label": "prior close signal -> same-day close / Market-on-Close proxy",
      "n_rebalances": 200,
      "gross_sharpe": 0.5135159592212812,
      "net_sharpe": 0.4206532882999155,
      "cagr": 0.12605586001454028,
      "maxdd": -0.6226192786486409,
      "turnover": 0.9360550416196075,
      "avg_trade_cost_bps": 9.360550416196075,
      "total_return": 0.5787284752183459
    },
    {
      "weekday": "Tuesday",
      "execution_variant": "same_day_close_next_open",
      "execution_label": "same-day close signal -> next trading-day open execution",
      "n_rebalances": 200,
      "gross_sharpe": 0.8788391385980739,
      "net_sharpe": 0.784416641434856,
      "cagr": 0.364158363710819,
      "maxdd": -0.5310242890492651,
      "turnover": 0.9229799165909668,
      "avg_trade_cost_bps": 9.229799165909668,
      "total_return": 2.3014956615721074
    },
    {
      "weekday": "Wednesday",
      "execution_variant": "next_open",
      "execution_label": "prior close signal -> same-day open execution",
      "n_rebalances": 198,
      "gross_sharpe": 0.9146174174178362,
      "net_sharpe": 0.8195712083703746,
      "cagr": 0.3886379203936312,
      "maxdd": -0.5310242890492654,
      "turnover": 0.9276011044700917,
      "avg_trade_cost_bps": 9.276011044700917,
      "total_return": 2.490881583025286
    },
    {
      "weekday": "Wednesday",
      "execution_variant": "close_or_moc",
      "execution_label": "prior close signal -> same-day close / Market-on-Close proxy",
      "n_rebalances": 198,
      "gross_sharpe": 1.1521778427394873,
      "net_sharpe": 1.054304444006496,
      "cagr": 0.552688230966129,
      "maxdd": -0.39549260378822737,
      "turnover": 0.9276011044700917,
      "avg_trade_cost_bps": 9.276011044700917,
      "total_return": 4.340600244994159
    },
    {
      "weekday": "Wednesday",
      "execution_variant": "same_day_close_next_open",
      "execution_label": "same-day close signal -> next trading-day open execution",
      "n_rebalances": 198,
      "gross_sharpe": 0.9254518528465577,
      "net_sharpe": 0.8263474267158715,
      "cagr": 0.37623910500087,
      "maxdd": -0.4134464946401585,
      "turnover": 0.9078648336055399,
      "avg_trade_cost_bps": 9.0786483360554,
      "total_return": 2.3736783405928272
    },
    {
      "weekday": "Thursday",
      "execution_variant": "next_open",
      "execution_label": "prior close signal -> same-day open execution",
      "n_rebalances": 193,
      "gross_sharpe": 0.866299410506859,
      "net_sharpe": 0.7669798100021152,
      "cagr": 0.3421327286324012,
      "maxdd": -0.4212230820534637,
      "turnover": 0.9313884192353408,
      "avg_trade_cost_bps": 9.313884192353408,
      "total_return": 1.9806967288856332
    },
    {
      "weekday": "Thursday",
      "execution_variant": "close_or_moc",
      "execution_label": "prior close signal -> same-day close / Market-on-Close proxy",
      "n_rebalances": 193,
      "gross_sharpe": 0.8878261281845049,
      "net_sharpe": 0.7838826234625711,
      "cagr": 0.3457634268338974,
      "maxdd": -0.475793474225352,
      "turnover": 0.9313884192353408,
      "avg_trade_cost_bps": 9.313884192353408,
      "total_return": 2.010733883426913
    },
    {
      "weekday": "Thursday",
      "execution_variant": "same_day_close_next_open",
      "execution_label": "same-day close signal -> next trading-day open execution",
      "n_rebalances": 193,
      "gross_sharpe": 0.7630854339697698,
      "net_sharpe": 0.6618530133020832,
      "cagr": 0.271918933527707,
      "maxdd": -0.45405108619713497,
      "turnover": 0.9165676985927143,
      "avg_trade_cost_bps": 9.165676985927142,
      "total_return": 1.4417725111170485
    },
    {
      "weekday": "Friday",
      "execution_variant": "next_open",
      "execution_label": "prior close signal -> same-day open execution",
      "n_rebalances": 197,
      "gross_sharpe": 0.7903501498225912,
      "net_sharpe": 0.68931977868548,
      "cagr": 0.28648790184015627,
      "maxdd": -0.4365506932130877,
      "turnover": 0.9005477964036183,
      "avg_trade_cost_bps": 9.005477964036183,
      "total_return": 1.5970440198628664
    },
    {
      "weekday": "Friday",
      "execution_variant": "close_or_moc",
      "execution_label": "prior close signal -> same-day close / Market-on-Close proxy",
      "n_rebalances": 197,
      "gross_sharpe": 0.638563423074066,
      "net_sharpe": 0.5467384121840831,
      "cagr": 0.21066005074598992,
      "maxdd": -0.45901376523167925,
      "turnover": 0.9005477964036183,
      "avg_trade_cost_bps": 9.005477964036183,
      "total_return": 1.0631293453487394
    },
    {
      "weekday": "Friday",
      "execution_variant": "same_day_close_next_open",
      "execution_label": "same-day close signal -> next trading-day open execution",
      "n_rebalances": 196,
      "gross_sharpe": 0.5879475174680142,
      "net_sharpe": 0.5066332051911233,
      "cagr": 0.1779306800398881,
      "maxdd": -0.5612630745267393,
      "turnover": 0.9272689378470257,
      "avg_trade_cost_bps": 9.272689378470258,
      "total_return": 0.8538162621099512
    }
  ],
  "best_by_net_sharpe": {
    "weekday": "Wednesday",
    "execution_variant": "close_or_moc",
    "execution_label": "prior close signal -> same-day close / Market-on-Close proxy",
    "n_rebalances": 198,
    "gross_sharpe": 1.1521778427394873,
    "net_sharpe": 1.054304444006496,
    "cagr": 0.552688230966129,
    "maxdd": -0.39549260378822737,
    "turnover": 0.9276011044700917,
    "avg_trade_cost_bps": 9.276011044700917,
    "total_return": 4.340600244994159
  },
  "current_default_proxy": {
    "weekday": "Friday",
    "execution_variant": "close_or_moc",
    "execution_label": "prior close signal -> same-day close / Market-on-Close proxy",
    "n_rebalances": 197,
    "gross_sharpe": 0.638563423074066,
    "net_sharpe": 0.5467384121840831,
    "cagr": 0.21066005074598992,
    "maxdd": -0.45901376523167925,
    "turnover": 0.9005477964036183,
    "avg_trade_cost_bps": 9.005477964036183,
    "total_return": 1.0631293453487394
  },
  "stress_subset": {
    "definition": "recent semiconductor stress proxy: 2026-03-01 to 2026-04-30 rebalance events",
    "results": {
      "Monday / next_open": {
        "status": "computed",
        "start": "2026-03-02",
        "end": "2026-04-27",
        "n_rebalances": 9,
        "total_return": 0.11688489222214704,
        "net_sharpe": 1.436507542179153,
        "max_weekly_loss": -0.05619479670909872
      },
      "Monday / close_or_moc": {
        "status": "computed",
        "start": "2026-03-02",
        "end": "2026-04-27",
        "n_rebalances": 9,
        "total_return": 0.12175594447883142,
        "net_sharpe": 1.3393848020025023,
        "max_weekly_loss": -0.08480864056603837
      },
      "Monday / same_day_close_next_open": {
        "status": "computed",
        "start": "2026-03-02",
        "end": "2026-04-27",
        "n_rebalances": 9,
        "total_return": 0.13272110790123115,
        "net_sharpe": 1.8379366542193993,
        "max_weekly_loss": -0.07674020536308535
      },
      "Tuesday / next_open": {
        "status": "computed",
        "start": "2026-03-03",
        "end": "2026-04-28",
        "n_rebalances": 9,
        "total_return": 0.13272110790123115,
        "net_sharpe": 1.8379366542193993,
        "max_weekly_loss": -0.07674020536308535
      },
      "Tuesday / close_or_moc": {
        "status": "computed",
        "start": "2026-03-03",
        "end": "2026-04-28",
        "n_rebalances": 9,
        "total_return": 0.23507603808596067,
        "net_sharpe": 2.9270628575808266,
        "max_weekly_loss": -0.03247959152380105
      },
      "Tuesday / same_day_close_next_open": {
        "status": "computed",
        "start": "2026-03-03",
        "end": "2026-04-28",
        "n_rebalances": 9,
        "total_return": 0.408505122874679,
        "net_sharpe": 3.70613639836494,
        "max_weekly_loss": -0.08657824979468305
      },
      "Wednesday / next_open": {
        "status": "computed",
        "start": "2026-03-04",
        "end": "2026-04-29",
        "n_rebalances": 9,
        "total_return": 0.408505122874679,
        "net_sharpe": 3.70613639836494,
        "max_weekly_loss": -0.08657824979468305
      },
      "Wednesday / close_or_moc": {
        "status": "computed",
        "start": "2026-03-04",
        "end": "2026-04-29",
        "n_rebalances": 9,
        "total_return": 0.5026314203999338,
        "net_sharpe": 4.362804065938468,
        "max_weekly_loss": -0.0505367576731905
      },
      "Wednesday / same_day_close_next_open": {
        "status": "computed",
        "start": "2026-03-04",
        "end": "2026-04-29",
        "n_rebalances": 9,
        "total_return": 0.3530934157415666,
        "net_sharpe": 3.4727147217807905,
        "max_weekly_loss": -0.11421862371611428
      },
      "Thursday / next_open": {
        "status": "computed",
        "start": "2026-03-05",
        "end": "2026-04-30",
        "n_rebalances": 9,
        "total_return": 0.3530934157415666,
        "net_sharpe": 3.4727147217807905,
        "max_weekly_loss": -0.11421862371611428
      },
      "Thursday / close_or_moc": {
        "status": "computed",
        "start": "2026-03-05",
        "end": "2026-04-30",
        "n_rebalances": 9,
        "total_return": 0.2847531698215331,
        "net_sharpe": 3.168590448512375,
        "max_weekly_loss": -0.10726932787149167
      },
      "Thursday / same_day_close_next_open": {
        "status": "computed",
        "start": "2026-03-05",
        "end": "2026-04-30",
        "n_rebalances": 9,
        "total_return": 0.29483990435349905,
        "net_sharpe": 2.9747470810017824,
        "max_weekly_loss": -0.08995061383553501
      },
      "Friday / next_open": {
        "status": "computed",
        "start": "2026-03-06",
        "end": "2026-04-24",
        "n_rebalances": 7,
        "total_return": 0.0731444131179324,
        "net_sharpe": 1.2216263593158752,
        "max_weekly_loss": -0.11564101188828398
      },
      "Friday / close_or_moc": {
        "status": "computed",
        "start": "2026-03-06",
        "end": "2026-04-24",
        "n_rebalances": 7,
        "total_return": 0.09175515246902588,
        "net_sharpe": 1.3305779774975284,
        "max_weekly_loss": -0.14281857038099305
      },
      "Friday / same_day_close_next_open": {
        "status": "computed",
        "start": "2026-03-06",
        "end": "2026-04-24",
        "n_rebalances": 7,
        "total_return": 0.13914350783681972,
        "net_sharpe": 1.7810009551572243,
        "max_weekly_loss": -0.12856564642490892
      }
    }
  },
  "recommendation": {
    "policy": "Friday 15:30 ET / close-30m should be treated as pending intraday validation; daily proxy favors same-day close / MOC among available proxies.",
    "full_auto_vs_semi_auto": "semi-automatic until intraday 15:30 ET data and risk guard are validated",
    "reason": "Daily proxy shows timing sensitivity and today's live run exposed schedule/cap mismatch; add human/intraday veto before fully automatic expansion."
  }
}
