← All V2 experiments
Relative return
1.265x
Excess vs bench
26.54%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
44.73%
Mean benchmark gain
14.08%
Mean excess gain
30.64%
Dispersion (ref)
18.71%
Win-rate vs bench (ref)
100.00%
Worst / best ratio (ref)
1.068x / 1.513x
Logic variants
3
Updated
Jul 21, 2026
Anchored windows (reference — strategy vs benchmark)
Kept from V1 for continuity; the objective ranks on the full rolling set, not these four.
| Window | Strategy | Benchmark | Ratio |
|---|---|---|---|
| 2006-07-03 … 2011-06-30 | 19.26% | 2.22% | 1.167x |
| 2011-07-01 … 2016-06-30 | 39.64% | 13.74% | 1.228x |
| 2016-07-01 … 2021-06-30 | 77.73% | 20.63% | 1.473x |
| 2021-07-01 … 2026-06-26 | 40.50% | 15.48% | 1.217x |
All rolling windows — the objective set (equal-weighted mean ratio)
Strategy
Benchmark (CAPW_UNIV)
Excess
rolling 5y windows, monthly step — 179 windows · mean ratio 1.265x · beat benchmark in 179/179
| # | Window | Strategy | Benchmark | Ratio |
|---|---|---|---|---|
| 1 | 2006-07-31 … 2011-07-29 | 18.85% | 1.79% | 1.168x |
| 2 | 2006-08-31 … 2011-08-31 | 19.07% | 0.21% | 1.188x |
| 3 | 2006-09-29 … 2011-08-31 | 19.26% | -0.14% | 1.194x |
| 4 | 2006-10-31 … 2011-10-31 | 16.56% | 0.23% | 1.163x |
| 5 | 2006-11-30 … 2011-11-30 | 15.22% | -0.05% | 1.153x |
| 6 | 2006-12-29 … 2011-11-30 | 14.74% | -0.32% | 1.151x |
| 7 | 2007-01-31 … 2012-01-31 | 14.91% | 0.93% | 1.138x |
| 8 | 2007-02-28 … 2012-01-31 | 13.76% | 1.43% | 1.122x |
| 9 | 2007-03-30 … 2012-03-30 | 17.35% | 3.09% | 1.138x |
| 10 | 2007-04-30 … 2012-04-30 | 15.67% | 2.42% | 1.129x |
| 11 | 2007-05-31 … 2012-05-31 | 13.06% | 0.60% | 1.124x |
| 12 | 2007-06-29 … 2012-06-29 | 13.53% | 1.92% | 1.114x |
| 13 | 2007-07-31 … 2012-07-31 | 14.47% | 2.69% | 1.115x |
| 14 | 2007-08-31 … 2012-08-31 | 14.59% | 2.95% | 1.113x |
| 15 | 2007-09-28 … 2012-09-28 | 13.61% | 3.20% | 1.101x |
| 16 | 2007-10-31 … 2012-10-31 | 14.35% | 2.60% | 1.115x |
| 17 | 2007-11-30 … 2012-11-30 | 16.40% | 3.45% | 1.125x |
| 18 | 2007-12-31 … 2012-12-31 | 17.49% | 3.69% | 1.133x |
| 19 | 2008-01-31 … 2013-01-31 | 23.22% | 5.85% | 1.164x |
| 20 | 2008-02-29 … 2013-02-28 | 21.41% | 6.82% | 1.137x |
| 21 | 2008-03-31 … 2013-03-28 | 22.65% | 7.73% | 1.138x |
| 22 | 2008-04-30 … 2013-04-30 | 21.66% | 7.51% | 1.132x |
| 23 | 2008-05-30 … 2013-04-30 | 21.33% | 7.81% | 1.125x |
| 24 | 2008-06-30 … 2013-06-28 | 30.03% | 9.33% | 1.189x |
| 25 | 2008-07-31 … 2013-07-31 | 33.68% | 10.48% | 1.210x |
| 26 | 2008-08-29 … 2013-07-31 | 35.99% | 10.52% | 1.231x |
| 27 | 2008-09-30 … 2013-09-30 | 43.29% | 11.48% | 1.285x |
| 28 | 2008-10-31 … 2013-10-31 | 47.44% | 15.76% | 1.274x |
| 29 | 2008-11-28 … 2013-10-31 | 49.74% | 17.46% | 1.275x |
| 30 | 2008-12-31 … 2013-12-31 | 51.40% | 18.44% | 1.278x |
| 31 | 2009-01-30 … 2013-12-31 | 54.56% | 20.64% | 1.281x |
| 32 | 2009-02-27 … 2014-01-31 | 56.30% | 21.63% | 1.285x |
| 33 | 2009-03-31 … 2014-03-31 | 58.31% | 20.60% | 1.313x |
| 34 | 2009-04-30 … 2014-04-30 | 55.35% | 19.00% | 1.305x |
| 35 | 2009-05-29 … 2014-04-30 | 56.53% | 18.32% | 1.323x |
| 36 | 2009-06-30 … 2014-06-30 | 59.13% | 19.01% | 1.337x |
| 37 | 2009-07-31 … 2014-07-31 | 55.50% | 17.39% | 1.325x |
| 38 | 2009-08-31 … 2014-08-29 | 54.52% | 17.70% | 1.313x |
| 39 | 2009-09-30 … 2014-09-30 | 51.62% | 16.64% | 1.300x |
| 40 | 2009-10-30 … 2014-09-30 | 58.25% | 17.08% | 1.352x |
| 41 | 2009-11-30 … 2014-11-28 | 53.06% | 16.82% | 1.310x |
| 42 | 2009-12-31 … 2014-12-31 | 48.68% | 16.28% | 1.279x |
| 43 | 2010-01-29 … 2014-12-31 | 50.80% | 17.23% | 1.286x |
| 44 | 2010-02-26 … 2015-01-30 | 48.42% | 15.80% | 1.282x |
| 45 | 2010-03-31 … 2015-03-31 | 45.71% | 15.40% | 1.263x |
| 46 | 2010-04-30 … 2015-04-30 | 42.62% | 15.38% | 1.236x |
| 47 | 2010-05-28 … 2015-04-30 | 43.92% | 17.09% | 1.229x |
| 48 | 2010-06-30 … 2015-06-30 | 50.78% | 17.45% | 1.284x |
| 49 | 2010-07-30 … 2015-06-30 | 50.34% | 16.43% | 1.291x |
| 50 | 2010-08-31 … 2015-08-31 | 48.15% | 15.76% | 1.280x |
| 51 | 2010-09-30 … 2015-09-30 | 44.49% | 13.61% | 1.272x |
| 52 | 2010-10-29 … 2015-09-30 | 43.30% | 13.06% | 1.267x |
| 53 | 2010-11-30 … 2015-11-30 | 42.95% | 15.09% | 1.242x |
| 54 | 2010-12-31 … 2015-12-31 | 42.01% | 13.55% | 1.251x |
| 55 | 2011-01-31 … 2016-01-29 | 39.90% | 11.90% | 1.250x |
| 56 | 2011-02-28 … 2016-01-29 | 38.93% | 11.53% | 1.246x |
| 57 | 2011-03-31 … 2016-03-31 | 39.46% | 12.90% | 1.235x |
| 58 | 2011-04-29 … 2016-04-29 | 37.28% | 12.39% | 1.221x |
| 59 | 2011-05-31 … 2016-05-31 | 37.40% | 12.94% | 1.217x |
| 60 | 2011-06-30 … 2016-06-30 | 39.02% | 13.30% | 1.227x |
| 61 | 2011-07-29 … 2016-07-29 | 41.35% | 14.52% | 1.234x |
| 62 | 2011-08-31 … 2016-08-31 | 41.37% | 15.19% | 1.227x |
| 63 | 2011-09-30 … 2016-09-30 | 44.44% | 16.32% | 1.242x |
| 64 | 2011-10-31 … 2016-10-31 | 40.57% | 14.02% | 1.233x |
| 65 | 2011-11-30 … 2016-11-30 | 43.70% | 14.66% | 1.253x |
| 66 | 2011-12-30 … 2016-12-30 | 40.74% | 14.92% | 1.225x |
| 67 | 2012-01-31 … 2017-01-31 | 40.54% | 14.63% | 1.226x |
| 68 | 2012-02-29 … 2017-02-28 | 40.15% | 14.78% | 1.221x |
| 69 | 2012-03-30 … 2017-02-28 | 39.91% | 14.43% | 1.223x |
| 70 | 2012-04-30 … 2017-04-28 | 39.10% | 14.61% | 1.214x |
| 71 | 2012-05-31 … 2017-05-31 | 40.49% | 15.98% | 1.211x |
| 72 | 2012-06-29 … 2017-05-31 | 41.04% | 15.44% | 1.222x |
| 73 | 2012-07-31 … 2017-07-31 | 40.05% | 15.43% | 1.213x |
| 74 | 2012-08-31 … 2017-08-31 | 39.31% | 15.12% | 1.210x |
| 75 | 2012-09-28 … 2017-08-31 | 39.07% | 14.77% | 1.212x |
| 76 | 2012-10-31 … 2017-10-31 | 37.58% | 16.12% | 1.185x |
| 77 | 2012-11-30 … 2017-11-30 | 40.78% | 16.79% | 1.205x |
| 78 | 2012-12-31 … 2017-12-29 | 39.68% | 16.93% | 1.195x |
| 79 | 2013-01-31 … 2018-01-31 | 38.85% | 17.57% | 1.181x |
| 80 | 2013-02-28 … 2018-02-28 | 42.63% | 16.21% | 1.227x |
| 81 | 2013-03-28 … 2018-02-28 | 42.04% | 15.81% | 1.226x |
| 82 | 2013-04-30 … 2018-04-30 | 38.89% | 14.25% | 1.216x |
| 83 | 2013-05-31 … 2018-05-31 | 32.18% | 14.57% | 1.154x |
| 84 | 2013-06-28 … 2018-05-31 | 32.91% | 14.97% | 1.156x |
| 85 | 2013-07-31 … 2018-07-31 | 30.32% | 14.83% | 1.135x |
| 86 | 2013-08-30 … 2018-07-31 | 30.94% | 15.59% | 1.133x |
| 87 | 2013-09-30 … 2018-09-28 | 31.37% | 15.84% | 1.134x |
| 88 | 2013-10-31 … 2018-10-31 | 25.84% | 12.89% | 1.115x |
| 89 | 2013-11-29 … 2018-10-31 | 25.89% | 12.60% | 1.118x |
| 90 | 2013-12-31 … 2018-12-31 | 21.77% | 9.93% | 1.108x |
| 91 | 2014-01-31 … 2019-01-31 | 22.40% | 12.37% | 1.089x |
| 92 | 2014-02-28 … 2019-02-28 | 21.67% | 12.38% | 1.083x |
| 93 | 2014-03-31 … 2019-03-29 | 22.01% | 12.76% | 1.082x |
| 94 | 2014-04-30 … 2019-04-30 | 23.92% | 13.73% | 1.090x |
| 95 | 2014-05-30 … 2019-04-30 | 22.60% | 13.54% | 1.080x |
| 96 | 2014-06-30 … 2019-06-28 | 22.10% | 12.81% | 1.082x |
| 97 | 2014-07-31 … 2019-07-31 | 23.17% | 13.30% | 1.087x |
| 98 | 2014-08-29 … 2019-07-31 | 22.36% | 12.80% | 1.085x |
| 99 | 2014-09-30 … 2019-09-30 | 20.47% | 12.70% | 1.069x |
| 100 | 2014-10-31 … 2019-10-31 | 20.54% | 12.91% | 1.068x |
| 101 | 2014-11-28 … 2019-10-31 | 20.70% | 12.60% | 1.072x |
| 102 | 2014-12-31 … 2019-12-31 | 23.32% | 14.16% | 1.080x |
| 103 | 2015-01-30 … 2019-12-31 | 23.89% | 14.85% | 1.079x |
| 104 | 2015-02-27 … 2020-01-31 | 23.59% | 14.04% | 1.084x |
| 105 | 2015-03-31 … 2020-03-31 | 20.47% | 8.56% | 1.110x |
| 106 | 2015-04-30 … 2020-04-30 | 26.58% | 11.65% | 1.134x |
| 107 | 2015-05-29 … 2020-05-29 | 28.05% | 12.61% | 1.137x |
| 108 | 2015-06-30 … 2020-06-30 | 27.78% | 13.64% | 1.124x |
| 109 | 2015-07-31 … 2020-07-31 | 30.08% | 14.60% | 1.135x |
| 110 | 2015-08-31 … 2020-08-31 | 34.80% | 18.07% | 1.142x |
| 111 | 2015-09-30 … 2020-09-30 | 34.10% | 17.05% | 1.146x |
| 112 | 2015-10-30 … 2020-10-30 | 31.25% | 14.60% | 1.145x |
| 113 | 2015-11-30 … 2020-11-30 | 38.96% | 17.43% | 1.183x |
| 114 | 2015-12-31 … 2020-12-31 | 40.71% | 18.65% | 1.186x |
| 115 | 2016-01-29 … 2021-01-29 | 77.35% | 19.26% | 1.487x |
| 116 | 2016-02-29 … 2021-02-26 | 80.92% | 19.79% | 1.510x |
| 117 | 2016-03-31 … 2021-03-31 | 78.20% | 19.42% | 1.492x |
| 118 | 2016-04-29 … 2021-03-31 | 80.99% | 19.66% | 1.513x |
| 119 | 2016-05-31 … 2021-05-28 | 80.38% | 20.42% | 1.498x |
| 120 | 2016-06-30 … 2021-06-30 | 78.46% | 21.06% | 1.474x |
| 121 | 2016-07-29 … 2021-06-30 | 77.73% | 20.63% | 1.473x |
| 122 | 2016-08-31 … 2021-08-31 | 74.29% | 21.75% | 1.432x |
| 123 | 2016-09-30 … 2021-09-30 | 74.05% | 20.22% | 1.448x |
| 124 | 2016-10-31 … 2021-10-29 | 78.85% | 22.50% | 1.460x |
| 125 | 2016-11-30 … 2021-11-30 | 75.59% | 21.87% | 1.441x |
| 126 | 2016-12-30 … 2021-11-30 | 79.17% | 21.75% | 1.472x |
| 127 | 2017-01-31 … 2022-01-31 | 70.53% | 20.17% | 1.419x |
| 128 | 2017-02-28 … 2022-02-28 | 67.35% | 18.51% | 1.412x |
| 129 | 2017-03-31 … 2022-03-31 | 66.39% | 19.46% | 1.393x |
| 130 | 2017-04-28 … 2022-03-31 | 68.35% | 19.46% | 1.409x |
| 131 | 2017-05-31 … 2022-05-31 | 65.09% | 15.59% | 1.428x |
| 132 | 2017-06-30 … 2022-06-30 | 62.42% | 13.08% | 1.436x |
| 133 | 2017-07-31 … 2022-07-29 | 62.58% | 15.16% | 1.412x |
| 134 | 2017-08-31 … 2022-08-31 | 62.44% | 13.72% | 1.428x |
| 135 | 2017-09-29 … 2022-08-31 | 63.56% | 13.56% | 1.440x |
| 136 | 2017-10-31 … 2022-10-31 | 63.56% | 11.86% | 1.462x |
| 137 | 2017-11-30 … 2022-11-30 | 61.22% | 12.52% | 1.433x |
| 138 | 2017-12-29 … 2022-11-30 | 62.16% | 12.46% | 1.442x |
| 139 | 2018-01-31 … 2023-01-31 | 56.81% | 11.01% | 1.413x |
| 140 | 2018-02-28 … 2023-02-28 | 53.34% | 11.03% | 1.381x |
| 141 | 2018-03-29 … 2023-02-28 | 54.86% | 11.72% | 1.386x |
| 142 | 2018-04-30 … 2023-04-28 | 52.50% | 13.01% | 1.349x |
| 143 | 2018-05-31 … 2023-05-31 | 55.00% | 12.95% | 1.372x |
| 144 | 2018-06-29 … 2023-05-31 | 56.46% | 13.01% | 1.384x |
| 145 | 2018-07-31 … 2023-07-31 | 61.71% | 14.67% | 1.410x |
| 146 | 2018-08-31 … 2023-08-31 | 56.85% | 13.51% | 1.382x |
| 147 | 2018-09-28 … 2023-08-31 | 57.88% | 13.56% | 1.390x |
| 148 | 2018-10-31 … 2023-10-31 | 55.85% | 12.60% | 1.384x |
| 149 | 2018-11-30 … 2023-11-30 | 57.14% | 14.58% | 1.371x |
| 150 | 2018-12-31 … 2023-12-29 | 64.02% | 17.26% | 1.399x |
| 151 | 2019-01-31 … 2024-01-31 | 63.26% | 16.27% | 1.404x |
| 152 | 2019-02-28 … 2024-01-31 | 61.81% | 15.94% | 1.396x |
| 153 | 2019-03-29 … 2024-03-28 | 68.13% | 17.50% | 1.431x |
| 154 | 2019-04-30 … 2024-04-30 | 64.19% | 15.50% | 1.422x |
| 155 | 2019-05-31 … 2024-05-31 | 70.37% | 18.12% | 1.442x |
| 156 | 2019-06-28 … 2024-06-28 | 68.36% | 17.99% | 1.427x |
| 157 | 2019-07-31 … 2024-07-31 | 63.64% | 17.70% | 1.390x |
| 158 | 2019-08-30 … 2024-08-30 | 62.85% | 18.41% | 1.375x |
| 159 | 2019-09-30 … 2024-09-30 | 69.02% | 18.65% | 1.425x |
| 160 | 2019-10-31 … 2024-10-31 | 69.16% | 17.87% | 1.435x |
| 161 | 2019-11-29 … 2024-11-29 | 74.55% | 18.64% | 1.471x |
| 162 | 2019-12-31 … 2024-12-31 | 68.93% | 17.62% | 1.436x |
| 163 | 2020-01-31 … 2025-01-31 | 71.09% | 18.07% | 1.449x |
| 164 | 2020-02-28 … 2025-02-28 | 67.30% | 19.00% | 1.406x |
| 165 | 2020-03-31 … 2025-03-31 | 66.24% | 19.24% | 1.394x |
| 166 | 2020-04-30 … 2025-04-30 | 63.29% | 16.49% | 1.402x |
| 167 | 2020-05-29 … 2025-04-30 | 60.80% | 15.80% | 1.389x |
| 168 | 2020-06-30 … 2025-06-30 | 61.51% | 18.19% | 1.367x |
| 169 | 2020-07-31 … 2025-07-31 | 60.62% | 17.87% | 1.363x |
| 170 | 2020-08-31 … 2025-08-29 | 60.69% | 16.69% | 1.377x |
| 171 | 2020-09-30 … 2025-09-30 | 62.91% | 18.57% | 1.374x |
| 172 | 2020-10-30 … 2025-09-30 | 64.95% | 19.43% | 1.381x |
| 173 | 2020-11-30 … 2025-11-28 | 57.61% | 17.77% | 1.338x |
| 174 | 2020-12-31 … 2025-12-31 | 56.39% | 16.92% | 1.338x |
| 175 | 2021-01-29 … 2025-12-31 | 31.80% | 17.20% | 1.125x |
| 176 | 2021-02-26 … 2026-01-30 | 33.64% | 17.04% | 1.142x |
| 177 | 2021-03-31 … 2026-03-31 | 31.43% | 14.07% | 1.152x |
| 178 | 2021-04-30 … 2026-04-30 | 37.76% | 16.03% | 1.187x |
| 179 | 2021-05-28 … 2026-04-30 | 38.52% | 16.22% | 1.192x |
Notes
mode=explore; family=regime-momentum-contrarian-52w-recovery-quality-hybrid
New hybrid family that fuses the shallow-drawdown recovery sweet spot from contrarian-52w, the regime sleeve discipline from regime-momentum-quality-value, and the conflict arbitration concept from recovery-quality-regime-momentum-hybrid. The design is intentionally not a weighted average: bull regimes prefer repaired leaders that already re-accelerated, transition regimes explicitly arbitrate between momentum leadership and recovery depth using stock-level gates, and risk-off regimes keep only resilient recoveries with quality, valuation, and trading continuity support.
Deliberate metric coverage this run: momentum uses 12_1, 6m, and 3m selectively; trend/recovery uses both 200d distance and 52-week-high distance in all branches; volatility is active in every branch; liquidity is active via trading_days_3m and avg_daily_dollar_volume_3m in transition/risk-off while avg_daily_volume_3m is zeroed; income keeps dividend_yield_ttm_pct only in risk-off and zeros dividend_ttm; valuation uses forward_pe and peg outside the bull sleeve while pe is zeroed; growth rotates to forward_eps plus free_cash_flow_growth_pct and operating_income_growth_pct while eps_growth_pct and revenue_growth_pct are zeroed; quality uses free_cash_flow_margin_pct and operating_margin_pct; size uses market_cap only in bull as a mild anti-megacap tilt; remaining raw-level fields are deliberately zeroed.
Lesson notes
explore/regime-momentum-contrarian-52w-recovery-quality-hybrid: relative_return 1.2654x (delta -0.1603 vs exp_758); win-rate 100.0%, worst-window 1.067594, dispersion 18.7078%.
Monthly picks — top stocks selected each month (whole timeline)
timeline — 240 months · top 15 each
| Month | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006-07-31 | MNST | EXPD | GRMN | TEX | FTI | DDS | LVS | STLD | R | NUE | ATI | MTW | TMO | CME | ODFL |
| 2006-08-31 | ILMN | NVDA | DDS | IVZ | MTW | ODFL | FCX | ADM | DECK | GRMN | FIX | APH | REGN | LVS | PWR |
| 2006-09-29 | ILMN | AAPL | MU | CRM | WST | COHR | NVDA | AAL | REGN | LVS | TDY | TRMB | GRMN | MTW | GME |
| 2006-10-31 | ALGN | AKAM | COHR | CRM | ATI | AAL | VRTX | CTSH | AAPL | TEX | HUM | EME | CMI | CSX | NUE |
| 2006-11-30 | REGN | ALGN | ILMN | AAL | AKAM | ICE | AT | KSS | MAT | BMET | APCC | CRM | ALXN | LRCX | OMX |
| 2006-12-29 | MAY | REGN | MOS | ILMN | EQIX | ALGN | ATI | DLR | HOG | VNO | SWKS | RL | LVS | CTRA | MKTX |
| 2007-01-31 | MAY | REGN | AT | BMET | TEX | MOS | CSCO | AAL | WST | GME | TTWO | LVLT | FFIV | HOLX | ADS |
| 2007-02-28 | WYNN | ON | KMX | CRM | ICE | ALGN | UIS | INCY | COHR | SPG | DOC | AKAM | PSA | TEX | UAL |
| 2007-03-30 | MAY | ON | CF | ICE | ALGN | WYNN | MGM | CRM | MTCH | REGN | UIS | SPG | DE | WY | FDS |
| 2007-04-30 | CF | MAY | MOS | GME | SYK | ALGN | MKTX | ICE | ATI | TTWO | RL | TPR | INCY | FDS | MTCH |
| 2007-05-31 | ON | TDG | ETR | INCY | CCU | ICE | MAT | TAP | NVR | AEP | REGN | CRM | TTWO | ALGN | TRMB |
| 2007-06-29 | CLF | AMZN | DLX | NRG | ANDV | ON | ICE | WBD | CI | OKE | RRC | CTRA | TEX | PENN | NVDA |
| 2007-07-31 | KMG | CF | AXON | BKNG | MPWR | MOS | AMZN | AAPL | GME | DJ | EXPE | CE | MTW | CLF | WBD |
| 2007-08-31 | AXON | KMG | DECK | ALGN | FCX | LKQ | CF | AMZN | MA | CE | TDG | FAST | SWKS | ANDW | COP |
| 2007-09-28 | AXON | WYNN | VRTX | UAA | IDXX | ALGN | UAL | FAST | PENN | MA | AOS | DJ | TEX | CIEN | ICE |
| 2007-10-31 | MPWR | EXPE | GRMN | AMZN | FTI | NVDA | WYNN | AXON | NOV | FLR | BIIB | LVS | CLF | MGM | MUR |
| 2007-11-30 | WYNN | FTI | CF | FCX | FLR | LVS | AMZN | NOV | FMC | GRMN | IDXX | EXPE | CIEN | GOOGL | GOOG |
| 2007-12-31 | MCD | ISRG | VRSN | GOOGL | GOOG | NEE | FMC | LKQ | PH | IDXX | CF | HPQ | UNP | NOV | EXC |
| 2008-01-31 | FSLR | MOS | ESRX | PRGO | HUM | OXY | WDC | VRSN | CRL | JEC | MUR | XRAY | PEG | RRC | BRK-B |
| 2008-02-29 | WDC | CF | XOM | HAL | PRGO | KO | X | FSLR | MA | J | RRC | MUR | INCY | FCX | BKNG |
| 2008-03-31 | MOS | CF | MO | OXY | WDC | KO | BKNG | YUM | STLD | EQT | UNP | EOG | MCD | TTWO | NFLX |
| 2008-04-30 | MOS | CF | WDC | DVN | RRC | NFLX | APA | STLD | SLB | TKO | HP | OI | EOG | PH | NFX |
| 2008-05-30 | CF | MOS | APA | OXY | EOG | DVN | MPWR | BBBY | FSLR | NFLX | FTI | RRC | EQT | CTRA | FCX |
| 2008-06-30 | MOS | MA | WDC | WMT | CF | OXY | TTWO | WWY | UNP | HP | BBBY | ROST | EQT | CSX | R |
| 2008-07-31 | MEE | X | MOS | HP | BTUUQ | NAV | HAL | EW | CLF | NBR | VRTX | OXY | MA | FMC | NOV |
| 2008-08-29 | CF | ESV | HAS | BTUUQ | CLF | WWY | MEE | QCOM | ILMN | HP | MCD | COHR | NAV | DNR | FSLR |
| 2008-09-30 | WMT | ROST | SWN | MCD | WWY | SRCL | WYE | WAB | STJ | RTN | BCR | HRS | ESV | SBNY | CEPH |
| 2008-10-31 | WMT | MRSH | WWY | MCD | STE | WFC | ED | ROH | TSCO | SWN | CHD | CLX | TFC | NSC | BCR |
| 2008-11-28 | WMT | GIS | SHW | WFC | ROH | TSCO | SWN | AMGN | CLX | CHD | BBT | TFC | BRL | WRB | BCR |
| 2008-12-31 | SHW | WMT | AMGN | BMY | SO | GILD | KR | ROH | BRL | WFC | CHRW | AJG | VRTX | ACGL | HRB |
| 2009-01-30 | MCD | BMY | ORLY | SJM | GILD | NFLX | ROH | ED | AZO | MNST | LDOS | EW | SWN | DGX | PNW |
| 2009-02-27 | NFLX | VTRS | PCG | VRTX | MNST | DLTR | AZO | ALK | ORLY | DRI | NEM | EW | AAP | LDOS | TDG |
| 2009-03-31 | ROST | MNST | SNPS | EW | AAP | ROH | NEM | TYL | DRI | TMUS | BR | BALL | BIIB | VTRS | PCG |
| 2009-04-30 | NFLX | ROST | WDC | VTRS | BKNG | SNPS | DRI | KSS | BR | YUM | MRVL | QCOM | IBM | V | WBD |
| 2009-05-29 | WDC | NFLX | YUM | AAPL | DRI | GPS | TJX | BKNG | QCOM | ORLY | OXY | MS | EBAY | MRVL | WBD |
| 2009-06-30 | BKNG | MPWR | EXPE | F | NFLX | MS | ON | GPS | IDXX | WDC | AMZN | DDS | MSI | NTAP | DXCM |
| 2009-07-31 | ULTA | MPWR | DDS | SW | ON | WHR | IDXX | STX | SMCI | CI | MCHP | EBAY | MTG | NWL | MS |
| 2009-08-31 | CAR | ISRG | F | LULU | WHR | BLDR | ULTA | GT | MHK | SPGI | NWL | CI | COF | RCL | BEN |
| 2009-09-30 | FMCC | FNMA | MTG | PALM | GNW | F | ON | LEN | FITB | GPS | SSP | NVDA | WHR | GT | NFX |
| 2009-10-30 | SANM | BC | SSP | BKNG | GNW | RCL | INCY | BX | PALM | HIG | WBD | STX | EXPE | FLEX | AAPL |
| 2009-11-30 | LULU | BC | STX | CRM | JBL | LVS | FLEX | CAR | BBWI | ULTA | SANM | BEN | MAC | KMX | GNW |
| 2009-12-31 | KMG | DDS | AMZN | CI | NFLX | FCX | WBD | EXPE | LPX | RCL | CAT | BEN | SSP | BKNG | GNW |
| 2010-01-29 | BKNG | AMD | MU | CRM | KMG | LULU | BC | STX | MRVL | WDC | DDS | SSP | CAR | MTW | CLF |
| 2010-02-26 | AMD | NYT | LULU | MU | MTW | ULTA | CRM | JBL | UIS | BC | MRVL | ATI | M | TER | DDS |
| 2010-03-31 | F | AAL | SANM | KMG | DDR | MTW | REGN | SSP | LEN | ISRG | MAC | PODD | WSM | DXCM | AMD |
| 2010-04-30 | BBWI | LULU | NFLX | MTG | UAL | CLF | AAL | DDS | LPX | BC | KMG | F | EL | SANM | DECK |
| 2010-05-28 | BBWI | BC | MTG | URI | DPZ | UAL | ZION | SSP | PVH | MBI | VIAV | LPX | LEN | F | ASH |
| 2010-06-30 | WBD | ZION | NFLX | AAPL | NTAP | SBUX | UHS | WLL | ORLY | UAL | LVS | WYNN | MO | TSCO | LULU |
| 2010-07-30 | NFLX | LULU | AAPL | KDP | NEM | BBWI | TMUS | SBUX | AIG | WBD | NTAP | NKE | TSN | HSY | SWKS |
| 2010-08-31 | NTAP | AAPL | NFLX | PEG | MCHP | UAL | VNO | TSCO | ORLY | TMUS | CMCSA | PRGO | CTSH | BBWI | NKE |
| 2010-09-30 | CRM | BBWI | CCU | AAL | EXR | MBI | INTU | NFLX | CASY | WYNN | EQR | DXCM | AN | AVB | ALK |
| 2010-10-29 | CRM | MBI | AAPL | TPL | IPGP | TMUS | LULU | QCOM | ULTA | CCU | CMI | DPZ | DAL | EW | NEM |
| 2010-11-30 | BKNG | NTAP | RCL | SPGI | CF | UAL | INTU | WYNN | EBAY | F | MBI | MCO | EC | AAL | LVS |
| 2010-12-31 | LULU | BKNG | CMG | NFLX | UAA | VRTS | LVS | CRM | DECK | FFIV | MBI | TPR | MGM | EBAY | KMX |
| 2011-01-31 | LULU | ETFC | RCL | WLL | CIEN | ANF | CF | DECK | TMUS | ACAS | ON | CMG | BWA | XEC | FCX |
| 2011-02-28 | LULU | MAY | URI | NVDA | ETFC | VIAV | TEX | NFLX | VLO | ANDV | RCL | ON | ACAS | DE | WLL |
| 2011-03-31 | TER | MAY | KLAC | VIAV | CIEN | NVDA | SWKS | TTWO | CF | BX | ON | QCOM | ETFC | TXN | AVGO |
| 2011-04-29 | REGN | VIAV | URI | UAA | NFLX | CMG | HP | CBRE | VLO | MAY | IRM | TER | DECK | VRTS | ROK |
| 2011-05-31 | LULU | BKNG | REGN | BBWI | BIIB | VRTX | ANDV | GT | ECHO | MOH | JOY | CHTR | JEF | RDC | PRGO |
| 2011-06-30 | REGN | MCO | BBWI | BKNG | ANF | CHTR | DDS | TMUS | GT | VRTX | WYNN | NFLX | CF | GME | SLG |
| 2011-07-29 | REGN | WYNN | NFLX | LULU | COG | CEPH | BBWI | EP | WCG | TSCO | UAA | ABMD | ANF | MCO | MNST |
| 2011-08-31 | WYNN | ISRG | LULU | SBUX | BBWI | UNH | CMG | NFLX | CF | BKNG | MTCH | SPGI | BIIB | MSFT | ULTA |
| 2011-09-30 | AAPL | V | MA | ORLY | BBWI | ISRG | SPG | INTC | VFC | CMG | SPGI | MTCH | UNH | SBUX | LULU |
| 2011-10-31 | KLAC | CF | BBWI | V | AAPL | MA | MCD | ORLY | LULU | UST | MCO | INTC | MNST | TGT | GME |
| 2011-11-30 | KLAC | BBWI | MA | AAPL | ISRG | V | ORLY | INTC | MCO | ULTA | CSCO | UAA | MCD | SBUX | ORCL |
| 2011-12-30 | INTC | V | KLAC | MA | ISRG | ORLY | URI | MCD | BBWI | SBUX | VFC | MO | CSCO | AEE | WBD |
| 2012-01-31 | M | JWN | DPZ | CF | GWW | MA | FICO | MHK | EP | MPWR | OKE | TIN | ED | LEN | MBI |
| 2012-02-29 | REGN | MOH | TRGP | WCG | COG | LYB | MPWR | GILD | MCO | KLAC | ABMD | GMCR | AAL | STX | BLDR |
| 2012-03-30 | PHM | MOH | DHI | DPZ | ITT | WCG | UAA | JBL | STX | COG | BLDR | BKNG | CF | ABMD | GMCR |
| 2012-04-30 | AAPL | SBUX | CMG | GILD | QCOM | BLDR | ULTA | FAST | CCU | KMI | KLAC | FTNT | IVZ | ITT | UNH |
| 2012-05-31 | BKNG | STX | ORLY | GPS | LULU | AAPL | ISRG | SBUX | GILD | EBAY | HD | WBD | MPWR | EC | URI |
| 2012-06-29 | STX | ROST | GPS | VRTX | BKNG | GILD | REGN | DAL | AAPL | ISRG | MNST | MPWR | MA | TPL | DLTR |
| 2012-07-31 | AAL | VRTX | LEN | DG | STX | PHM | DHI | BKNG | CF | BLDR | LPX | MNST | AAPL | WBD | ALGN |
| 2012-08-31 | STX | EXPE | BLDR | MO | DG | AAL | WDC | KLAC | WOR | VZ | CMCSA | ALGN | DPZ | UIS | KBH |
| 2012-09-28 | STX | PHM | DHI | VLO | LEN | LPX | CHTR | UAA | LKQ | STZ | CDNS | DDS | KBH | VRTX | WOR |
| 2012-10-31 | TMUS | ALL | DHI | ANDV | EBAY | AAL | VLO | LLY | CF | MPC | DXCM | GE | VRTX | SHW | CHTR |
| 2012-11-30 | PHM | URI | GNRC | KBH | TMUS | BLDR | SPGI | DHI | LLY | GPS | REGN | AXON | IRM | C | DVA |
| 2012-12-31 | NFLX | STX | BBBY | GNRC | REGN | KBH | GME | MTW | LULU | ALL | LLY | MS | RCL | WYNN | DHI |
| 2013-01-31 | STX | LPX | RCL | BAC | REGN | AXON | PHM | ANF | AAL | RMD | F | BBBY | GM | CCI | IPGP |
| 2013-02-28 | PHM | GS | CI | GNRC | KBH | DHI | MS | EXPE | STX | TEX | BAC | FLT | LYB | C | CPRT |
| 2013-03-28 | VLO | APO | PHM | TEX | GS | BC | BX | GNRC | FNMA | FMCC | MS | HAL | C | INCY | NXPI |
| 2013-04-30 | FMCC | FNMA | GILD | VRTX | AMGN | MPC | MU | HRB | THC | ANDV | DXC | VLO | BMY | MTW | TMUS |
| 2013-05-31 | TSLA | GME | REGN | NFLX | PHM | KBH | KKR | WYNN | BX | MPC | VRTS | ADBE | APO | HRL | VRTX |
| 2013-06-28 | MCO | NFLX | REGN | FSLR | GILD | ENPH | APO | BX | BIIB | MBI | MS | CAR | CPAY | VRTX | AMAT |
| 2013-07-31 | MU | WDC | STX | NFLX | DXCM | TYL | VRTX | FSLR | SSP | MBI | BKNG | CAR | TKO | BX | MOH |
| 2013-08-30 | DAL | BBBY | MU | SVU | MTG | CHTR | LYV | MCO | GNW | REGN | SSP | TRIP | CSGP | CBOE | CIEN |
| 2013-09-30 | GME | ENPH | MTG | BBBY | TRIP | CI | EA | APO | LNC | PKG | ILMN | WDC | FL | STX | VRTX |
| 2013-10-31 | META | TSLA | NFLX | NOW | DXCM | REGN | GT | BX | FNMA | FMCC | MGM | APO | CIEN | BSX | ENPH |
| 2013-11-29 | META | FNMA | FL | FMCC | REGN | BBY | FANG | NOW | ALGN | APO | EPAM | SW | WEN | UAA | GME |
| 2013-12-31 | FNMA | FMCC | MU | DAL | META | AAL | FL | BBY | AXON | MKTX | ALK | FSLR | BIIB | BKNG | FIX |
| 2014-01-31 | FNMA | FMCC | BKNG | STX | DAL | MA | DECK | MGM | SMCI | UAL | GT | TMUS | TSLA | V | RRD |
| 2014-02-28 | STX | SMCI | MU | UAL | TKO | INCY | TPL | KATE | TMUS | AXON | PHM | RRD | CRM | MA | ENPH |
| 2014-03-31 | WYNN | FMCC | FNMA | META | ILMN | BKNG | MTCH | PANW | DXCM | UAA | MU | TPL | INCY | AAL | ADBE |
| 2014-04-30 | FNMA | FMCC | TSLA | WYNN | RCL | PANW | AAL | MPWR | META | TPL | VTRS | CF | EXPE | MTCH | EOG |
| 2014-05-30 | META | PANW | WYNN | FMCC | SMCI | FNMA | TSLA | BKNG | ILMN | STX | UAA | GNW | ADBE | EXPE | NFLX |
| 2014-06-30 | DAL | META | TRGP | TSLA | FMCC | FNMA | VTRS | URI | INCY | ALK | WYNN | NCC | PSX | NOW | BKNG |
| 2014-07-31 | URI | MU | FNMA | TRGP | FMCC | ENPH | HAL | NFX | AAL | DAL | RCL | SLB | FANG | AMAT | EOG |
| 2014-08-29 | MU | HAL | TRGP | SMCI | SLB | FANG | TWX | DAL | ISRG | FSLR | NBR | ZBRA | EOG | COP | CBRE |
| 2014-09-30 | ENPH | URI | TPL | MPWR | HPQ | AMT | ISRG | STLD | UHS | NXPI | XRX | NFLX | THC | TRGP | TSLA |
| 2014-10-31 | ENPH | ISRG | MPWR | URI | META | NTAP | NXPI | DXCM | UAA | STLD | MU | THC | WDAY | TSLA | FL |
| 2014-11-28 | ISRG | GILD | MMI | NOW | PODD | FL | HCA | STLD | SMCI | AMGN | BBY | NTAP | AAPL | IDXX | BBBY |
| 2014-12-31 | AMGN | REGN | AAPL | LRCX | ENPH | ABBV | GD | INCY | DXCM | GHC | ANDV | AMT | PODD | LLY | FL |
| 2015-01-30 | RCL | FTNT | DAL | LEG | ROST | AAL | IDXX | UNH | NCLH | MPWR | UAL | AMGN | BBY | RMD | EW |
| 2015-02-27 | RCL | IDXX | UAL | LUV | AXON | ALK | MAC | MMI | DXCM | ENPH | PCG | WELL | O | ED | SPG |
| 2015-03-31 | NOC | LULU | ON | WHR | NXPI | AAPL | REGN | CTAS | IDXX | MPWR | LUV | UAL | AVGO | INCY | BIIB |
| 2015-04-30 | KSS | MAY | PAYC | NXPI | NCLH | CNC | ON | CI | AVGO | BBWI | ROST | INCY | DRI | MPWR | UAA |
| 2015-05-29 | PAYC | BLDR | AXON | SSP | DRI | NOC | NOW | LULU | BBWI | BMY | EXPE | FICO | PRGO | UAA | YUM |
| 2015-06-30 | PAYC | PANW | FTNT | ANET | BX | REGN | AVGO | HUM | NXPI | ADI | BLDR | ON | MMI | LULU | KMG |
| 2015-07-31 | CI | PANW | BTUUQ | ANET | MTCH | COTY | IBKR | CNC | PAYC | INCY | LEG | MPC | HAS | AVGO | AET |
| 2015-08-31 | HAS | ORLY | SBUX | META | REGN | EXPE | DRI | PANW | HD | V | PSA | MHK | FTNT | SYK | VLO |
| 2015-09-30 | HAS | V | SO | ORLY | EXPE | BKNG | MA | NFLX | META | PANW | RCL | SBUX | SYK | VLO | TKO |
| 2015-10-30 | MO | HAS | VLO | INTC | ORLY | SBUX | ED | PAYC | META | SO | V | INCY | REGN | HRL | NKE |
| 2015-11-30 | EXPE | MO | KLAC | BKNG | ORLY | REGN | RCL | META | PGR | AEE | CDW | PAYC | FSLR | PLD | ACGL |
| 2015-12-31 | SBUX | LUV | ORLY | VRSN | MCD | REGN | META | NKE | MPWR | MAS | HD | HRL | SO | GOOGL | EXPE |
| 2016-01-29 | MCD | NVDA | HD | ORLY | MO | TXN | ADBE | NKE | HRL | GE | VLO | GOOGL | TSS | MSFT | META |
| 2016-02-29 | MCD | META | MO | GOOGL | ORLY | VZ | DAL | NVDA | MSFT | HRL | WMT | TXN | POOL | TAP | MAA |
| 2016-03-31 | MPWR | EMR | ETN | WYNN | FSLR | ARG | FIX | LUV | ATVI | SMCI | WHR | HRL | KLAC | BKNG | GDDY |
| 2016-04-29 | AMD | CPB | ANF | FAST | O | EMR | AEE | AMAT | MAT | ETN | WHR | DG | HRL | LNT | AVGO |
| 2016-05-31 | NEM | MTW | CLF | EW | CHTR | FAST | TSN | O | MCD | BAX | CPB | LULU | MAT | ABBV | WYNN |
| 2016-06-30 | AMD | MTW | ALB | PAYC | DXC | STJ | QLGC | SANM | STLD | EW | J | AMCR | NDSN | DNR | AXON |
| 2016-07-29 | OKE | DXC | DLR | CCI | CZR | MTW | SYK | NUE | SWN | DNR | MBI | SANM | TPL | AMAT | HAL |
| 2016-08-31 | CLF | NEM | ULTA | GRMN | LULU | DXC | WOR | IRM | VTR | OKE | AXON | DLR | CNX | ALB | O |
| 2016-09-30 | AMD | URI | CLF | CTAS | NEM | DHR | PODD | GRMN | DVN | PAYC | WYNN | MU | MSCI | AMGN | NOW |
| 2016-10-31 | ETSY | IDXX | WB | LITE | TPL | HPQ | LRCX | CTAS | CHTR | AOS | STX | AMD | NBR | GNW | AMZN |
| 2016-11-30 | CLF | WOR | MTCH | LITE | FCX | WB | ETSY | GRMN | SPGI | JOY | DHR | ADSK | MLM | GPS | ON |
| 2016-12-30 | BBY | CLF | FL | FMCC | FNMA | KSS | NVDA | FCX | AMD | STLD | DPZ | DRI | COHR | UIS | MU |
| 2017-01-31 | AMD | UAL | BBY | GS | NBR | FMCC | ANET | UIS | CLF | FL | NVDA | STLD | KMG | FNMA | MBI |
| 2017-02-28 | ON | CLF | NVDA | COHR | MU | LITE | NRG | ARES | MTG | TPL | KMG | VIAV | TRGP | TSLA | BBY |
| 2017-03-31 | URI | INCY | STX | LUV | COHR | CSX | BAC | HII | GS | UNM | NVDA | MS | JPM | DXC | MRVL |
| 2017-04-28 | KLAC | AMD | URI | NTAP | ON | VIAV | SSP | INCY | STX | ADI | NVDA | BAC | JEF | AMP | MS |
| 2017-05-31 | WB | SEDG | XRX | GEN | STX | INCY | LRCX | BKNG | PAYC | KLAC | NTAP | AMD | TER | BLDR | ADBE |
| 2017-06-30 | LRCX | PAYC | ANET | AMAT | REGN | IDXX | WB | BBY | FL | NVDA | MAR | CDNS | TTWO | ADSK | VEEV |
| 2017-07-31 | ANET | AMAT | LRCX | VRTX | REGN | FL | LITE | MAR | HAS | ETSY | WYNN | MTD | PENN | MU | TSLA |
| 2017-08-31 | SEDG | REGN | NFLX | FCX | TSLA | NYT | FSLR | EXPE | LITE | BKNG | MPWR | MAR | BBY | KBH | URI |
| 2017-09-29 | VRTX | WB | KMG | ETSY | AMT | RCL | PODD | FSLR | KSS | SBAC | BBY | CHTR | AAPL | TSLA | ADBE |
| 2017-10-31 | ENPH | ABBV | WB | GM | VRTX | ETSY | PODD | AON | FMCC | SPGI | NRG | VST | FNMA | LITE | BMY |
| 2017-11-30 | SEDG | LRCX | MU | ON | BBBY | XYZ | AMAT | MPWR | ENPH | IPGP | TER | NVDA | ANET | COHR | TTWO |
| 2017-12-29 | ENPH | SEDG | NTAP | XYZ | BBBY | MU | ANF | PYPL | ALGN | CDNS | IPGP | TER | LRCX | ADBE | ETSY |
| 2018-01-31 | ENPH | ANF | SEDG | BBBY | KSS | WYNN | TXN | BBY | ABBV | ETSY | GPS | BLK | DHI | FSLR | FL |
| 2018-02-28 | ANET | BBBY | WYNN | ANF | URI | TXN | EC | NTAP | CAT | ON | BBY | MAY | FL | DG | DE |
| 2018-03-29 | ANET | MU | SEDG | ON | BA | XYZ | ENPH | PAYC | ADBE | NFLX | WYNN | NOW | NKTR | URI | NTAP |
| 2018-04-30 | MU | SEDG | MPC | WYNN | ANET | NKTR | STX | TGT | XYZ | BA | EL | NOW | ISRG | KSS | NOC |
| 2018-05-31 | SEDG | ANF | MU | PAYC | STX | MTCH | ENPH | NTAP | NKTR | ON | EC | TWTR | SW | ABMD | ANET |
| 2018-06-29 | VLO | SEDG | FTNT | ADBE | MU | KSS | M | ENPH | NOW | JWN | ANF | PSX | THC | NFLX | MPWR |
| 2018-07-31 | ENPH | TTD | SEDG | ETSY | FTNT | NTAP | INTU | MU | LULU | DPZ | ADBE | NFLX | MA | CRM | ISRG |
| 2018-08-31 | M | CMG | JWN | ENPH | NFLX | KKR | AXON | KDP | REGN | THC | CLF | WBD | TRIP | UAA | MRO |
| 2018-09-28 | CVNA | DRI | CMG | AMD | CTAS | PAYC | AXON | EHC | WDAY | KSS | M | MPC | VLO | LUMN | NFLX |
| 2018-10-31 | TTD | ORLY | LULU | PAYC | XYZ | PFE | AAPL | UAL | VZ | ETSY | MTCH | TGT | FTNT | MOH | ABMD |
| 2018-11-30 | VZ | TTD | CMCSA | PAYC | WBD | LULU | DG | ULTA | KDP | ORLY | SBUX | LW | VRTX | PFE | V |
| 2018-12-31 | VZ | SBUX | MCD | PFE | HRL | AMT | MKC | TTD | SPG | KO | UAL | KDP | PAYC | CMCSA | TMO |
| 2019-01-31 | PAYC | TTD | LULU | VZ | MTCH | SBUX | MCD | AMD | PFE | HRL | PG | MRK | MA | REGN | SCG |
| 2019-02-28 | FTNT | FNMA | FMCC | MTCH | CLF | AMD | LULU | HRL | ORLY | XYZ | ELV | PFE | WCG | ROST | ETSY |
| 2019-03-29 | ETSY | TTD | SSP | FNMA | FMCC | CIEN | CVNA | RHT | FTNT | CPRT | EBAY | BA | AMD | MTCH | LRCX |
| 2019-04-30 | ETSY | AMD | INTU | KEYS | SMCI | ZBRA | FNMA | FMCC | ORLY | ALGN | META | ANET | CMG | AES | ON |
| 2019-05-31 | CDNS | SNPS | MTCH | TTD | LULU | DIS | TER | META | MCO | CMCSA | SBUX | MA | PYPL | ORLY | QCOM |
| 2019-06-28 | MTCH | TTD | QCOM | AMD | CVNA | MKTX | FDS | VEEV | ARES | AMT | WDAY | LHX | FMCC | FNMA | NOW |
| 2019-07-31 | ERIE | TTD | MKTX | NOW | AMD | DG | SBUX | VEEV | ETSY | PYPL | LIN | XRAY | ADI | CF | EL |
| 2019-08-30 | ENPH | MTCH | TTD | SEDG | TER | HAS | CDNS | AZO | AMAT | QCOM | MRVL | ERIE | DIS | TMO | NOW |
| 2019-09-30 | ENPH | MTCH | SEDG | SPGI | SBUX | SNPS | BX | CCI | AMT | MCO | SBAC | COST | MKTX | HAS | BALL |
| 2019-10-31 | SEDG | NWL | PODD | NOC | FNMA | MKTX | TGT | PHM | MTCH | SNPS | LMT | FMCC | CCI | NVR | WHR |
| 2019-11-29 | KLAC | TER | LRCX | AMAT | LEG | SEDG | QCOM | ENPH | AMD | KBH | TTD | DG | T | MU | REGN |
| 2019-12-31 | ENPH | MTCH | LEG | PAYC | TTD | CVNA | XRX | PHM | QCOM | MRNA | REGN | MKTX | PODD | PSX | DHI |
| 2020-01-31 | TER | SEDG | BMY | THC | ENPH | SWKS | AMD | TGT | MRNA | KLAC | QRVO | NXPI | CDAY | AMAT | ANSS |
| 2020-02-28 | MSFT | MCO | LRCX | VRTX | NEE | TSLA | ENPH | SPGI | AAPL | FTNT | TER | PAYC | INTC | BMY | CHTR |
| 2020-03-31 | MSFT | NEM | ENPH | GILD | TSLA | ABBV | TMUS | NVDA | VRTX | AAPL | NOW | ADBE | NEE | GEN | CCI |
| 2020-04-30 | REGN | VRTX | NEM | ENPH | SEDG | SPGI | LLY | TGT | CHTR | WMT | ABBV | TMUS | AAPL | NVDA | MSFT |
| 2020-05-29 | NEM | GILD | ENPH | LLY | GOOGL | REGN | INTC | NFLX | QCOM | MCO | VRTX | MSFT | ANET | DXCM | TER |
| 2020-06-30 | ENPH | NEM | SEDG | META | EBAY | TMUS | MSFT | LEN | SPGI | PAYC | INTC | GOOGL | REGN | V | TGT |
| 2020-07-31 | EBAY | MRNA | ENPH | TSLA | ABBV | VRTX | NFLX | URI | DPZ | ADBE | FTNT | PENN | AMGN | MKTX | MTCH |
| 2020-08-31 | ETSY | EBAY | MPWR | BBBY | TER | BBY | MRNA | KLAC | FL | LRCX | DHI | MTCH | LEN | REGN | RRC |
| 2020-09-30 | ETSY | AAPL | CDNS | CRM | META | MRNA | LULU | CMG | URI | TSLA | FL | EBAY | ADBE | TSCO | AMD |
| 2020-10-30 | ENPH | GME | SEDG | ETSY | CRWD | PENN | TTD | TSLA | URI | CRM | LOW | BBY | WHR | CVNA | PBI |
| 2020-11-30 | MPWR | SEDG | GPS | DDOG | TMO | DHR | PENN | POOL | GNRC | CDNS | PBI | VRTS | URI | WOR | UAA |
| 2020-12-31 | ETSY | TTD | GME | LRCX | BBWI | CRWD | URI | MRNA | ANF | GPS | GM | XYZ | PENN | PBI | CVNA |
| 2021-01-29 | ENPH | TTD | TER | ETSY | KLAC | LRCX | PBI | FCX | BBWI | SEDG | AMAT | CLF | URI | ON | MPWR |
| 2021-02-26 | ENPH | CRWD | MRNA | PBI | DDS | TUP | ETSY | KLAC | TER | CLF | FCX | AXON | TSLA | SEDG | COHR |
| 2021-03-31 | M | JWN | MRO | ETSY | MRNA | OXY | NBR | DVN | FCX | ANF | SPG | APA | GPS | FANG | TRIP |
| 2021-04-30 | AMAT | VIAC | ANF | KSS | DISCA | DISCK | MRO | M | TRIP | LRCX | JWN | TPL | KLAC | DVN | SSP |
| 2021-05-28 | GME | MHK | M | JWN | GPS | TPL | STX | MAC | LPX | DDS | KSS | TDC | PHM | CLF | MTW |
| 2021-06-30 | MRO | STX | FCX | BBBY | JWN | M | MAC | NUE | CAR | NBR | F | GPS | LPX | GME | SLB |
| 2021-07-30 | MRO | DVN | ANF | F | TRGP | MUR | RRC | SPG | MHK | FCX | GNRC | URI | NUE | STX | BBT |
| 2021-08-31 | MRNA | GME | MRO | DDS | JWN | M | TGT | CLF | MAC | RRC | NUE | DVN | TRGP | STLD | MBI |
| 2021-09-30 | MRNA | BX | JWN | M | INTU | XEC | MPWR | BBWI | GOOGL | SIVB | EXR | FTNT | NUE | DHR | NAVI |
| 2021-10-29 | MRNA | JWN | M | RRC | OXY | APA | CF | MAC | NTAP | SIVB | NUE | MUR | SLB | ASO | DRE |
| 2021-11-30 | JWN | M | DDS | SPG | CAR | RRC | MRNA | MRO | KKR | APA | DDOG | ETSY | COP | INTU | CF |
| 2021-12-31 | JWN | M | AMD | DDS | SPG | TSLA | DDOG | INTU | KKR | BX | APA | TTD | NVDA | BBWI | CAR |
| 2022-01-31 | ON | PFE | PLD | SPG | AVGO | NVDA | STX | HPQ | EXR | ORLY | QCOM | LOW | F | ANET | UNH |
| 2022-02-28 | ON | QCOM | CVS | UNH | VRTX | WFC | WY | PG | SLB | AVGO | ORLY | MCD | HPQ | WBA | REGN |
| 2022-03-31 | MOS | MRO | CF | SLB | LMT | NOC | TSLA | ON | ABBV | COP | OXY | PFE | FCX | REGN | XOM |
| 2022-04-29 | ABBV | MOS | REGN | CF | VRTX | MRO | FCX | LMT | CVX | NOC | PLD | UNH | OXY | SLB | MCK |
| 2022-05-31 | MOS | REGN | CF | ABBV | VRTX | PFE | LMT | SRE | UNH | WY | ON | MRO | GD | TRGP | NUE |
| 2022-06-30 | MRO | ABBV | XOM | LMT | CF | MPC | EOG | PFE | VLO | ED | OXY | CPB | UNH | AMGN | VRTX |
| 2022-07-29 | MRO | ON | CF | XOM | ABBV | MPC | MOS | OXY | PFE | ORLY | CVX | LMT | VLO | UPS | EOG |
| 2022-08-31 | VRTX | CF | ON | ORLY | MPC | MRO | SNPS | MOS | UNH | XOM | CDNS | VICI | UPS | ENPH | DG |
| 2022-09-30 | VRTX | MRO | MPC | ON | GIS | CF | ORLY | K | ENPH | XOM | OXY | REGN | MCK | CDNS | CI |
| 2022-10-31 | CF | VRTX | ORLY | ON | ABBV | GIS | MRO | AMGN | VLO | SLB | REGN | DE | K | TE | MOS |
| 2022-11-30 | ABBV | SLB | CF | COP | UNM | APA | H | MUR | NOV | HRB | HAL | ISRG | DDS | SCHW | NUE |
| 2022-12-30 | MPC | APA | HAL | TPL | SMCI | SANM | COP | ENPH | AXON | STLD | SPG | PSX | EOG | KLAC | FSLR |
| 2023-01-31 | MPC | GILD | FCX | BKNG | ODP | MRNA | ABMD | SMCI | SANM | CLF | VLO | BBWI | ORLY | ANF | ETSY |
| 2023-02-28 | UCL | LEN | PHM | DHI | CAT | SLB | MPC | DYN | ON | ROST | GILD | HES | CLF | ADI | MCHP |
| 2023-03-31 | URI | UCL | TEX | PH | ON | MTW | STLD | H | FTI | ANF | KLAC | ATI | UAL | GILD | VLO |
| 2023-04-28 | MPWR | ADI | MTW | AMD | ANET | COTY | SMCI | KLAC | ON | TTD | AXON | FSLR | UCL | MCHP | URI |
| 2023-05-31 | PHM | BKNG | SYK | VRTX | LEN | ORLY | ORCL | GIS | DHI | WST | TTD | YUM | NVDA | LIN | V |
| 2023-06-30 | PLTR | ORCL | COIN | MRVL | URI | AMD | SNPS | CRM | ABNB | H | DDOG | GOOGL | AMZN | CRWD | GT |
| 2023-07-31 | NFLX | ORCL | ISRG | AMD | MSFT | COIN | HUBB | AN | MTW | TEX | UAL | VNT | LEN | CPRT | CMG |
| 2023-08-31 | CCL | PLTR | GP | COIN | TTD | SMCI | RCL | META | LEN | BBBY | ON | DHI | NFLX | DAL | ABNB |
| 2023-09-29 | SLB | MAR | PLTR | HAL | SMCI | LRCX | PH | AVGO | ADBE | NVDA | META | CAT | CVNA | PHM | GOOGL |
| 2023-10-31 | CSCO | MSFT | SNPS | AVGO | HAL | ETN | SLB | META | NVDA | MAR | NFLX | LRCX | ADBE | PH | PSX |
| 2023-11-30 | FNMA | PLTR | FMCC | SMCI | AVGO | MPWR | CCL | FTI | META | JBL | MPC | APP | ACGL | ABNB | STLD |
| 2023-12-29 | ANF | ADBE | COIN | CVNA | PANW | SNPS | PLTR | FNMA | FMCC | DECK | VNO | CEG | SLG | APP | KSS |
| 2024-01-31 | COIN | GPS | KLAC | AVGO | DHI | FMCC | FNMA | LULU | AMD | X | SPG | STX | FICO | MPWR | WSM |
| 2024-02-29 | NOW | SMCI | FNMA | FMCC | PANW | BKNG | GPS | CVNA | VRTX | DHI | MAC | EXPE | LULU | MPWR | BBBY |
| 2024-03-28 | ANF | META | PLTR | FNMA | FMCC | SMCI | AVGO | ADCT | AMD | MPWR | UBER | COIN | ANET | DELL | NOW |
| 2024-04-30 | ANF | GPS | COIN | PLTR | HOOD | SMCI | META | NVDA | FNMA | FMCC | URI | ADCT | LRCX | MPWR | CAT |
| 2024-05-31 | ANF | DELL | CVNA | COIN | FNMA | FMCC | URI | META | CEG | DYN | VRT | MPC | CAT | SMCI | VST |
| 2024-06-28 | ANF | QCOM | NVDA | AVGO | DELL | VST | CMG | FSLR | VRT | CEG | MU | GE | PANW | FMCC | ETN |
| 2024-07-31 | ANF | NVDA | KLAC | NTAP | AVGO | HOOD | TER | GPS | COIN | VST | QCOM | AMAT | ANET | COHR | PLTR |
| 2024-08-30 | NVDA | LUMN | AVGO | KLAC | NTAP | CVNA | LU | ANF | HOOD | VST | TER | GLW | CEG | ATI | BKNG |
| 2024-09-30 | NVDA | AVGO | UHS | TRGP | TPL | GDDY | DYN | NTAP | FSLR | KLAC | VRT | PANW | MO | AMT | MCO |
| 2024-10-31 | PLTR | NVDA | HOOD | CEG | LUMN | IBM | COHR | VST | ORCL | UIS | MMM | ECHO | ANET | AVGO | LU |
| 2024-11-29 | LUMN | FMCC | FNMA | NVDA | TPL | VNO | COHR | CEG | VRT | GILD | ECHO | GM | ANET | GME | COIN |
| 2024-12-31 | GME | TPL | RCL | APP | BKNG | CVNA | HOOD | MRVL | PLTR | TTD | VST | TSLA | TMUS | TRGP | AXON |
| 2025-01-31 | TSLA | FNMA | MRVL | AVGO | FMCC | CEG | TPL | BKNG | EXPE | VST | COIN | NOW | LITE | ANET | CIEN |
| 2025-02-28 | PLTR | HOOD | META | AVGO | NFLX | APP | FMCC | UAL | FNMA | LU | RCL | CRWD | BKNG | CIEN | IBKR |
| 2025-03-31 | PLTR | NFLX | ABT | TMUS | HOOD | FTNT | V | RCL | MO | PAYC | TPR | TPL | META | WFC | T |
| 2025-04-30 | TMUS | YUM | GILD | ABT | MO | FTNT | T | UBER | PAYC | RCL | WMT | V | TPR | GME | NEM |
| 2025-05-30 | GILD | UBER | RCL | TSLA | NEM | ORLY | CHTR | META | MO | NFLX | APP | TMUS | WMT | AMT | TKO |
| 2025-06-30 | PLTR | EBAY | FNMA | PAYC | CEG | CF | APP | FTNT | VRT | IBKR | ADCT | COIN | WBD | CAR | FFIV |
| 2025-07-31 | RCL | FNMA | BKNG | CAR | HOOD | FMCC | UBER | NFLX | COIN | CNXT | IDXX | KLAC | CRWD | APP | ATI |
| 2025-08-29 | PLTR | COIN | CAR | HOOD | SSP | EBAY | UCL | LRCX | ORCL | AMD | CDNS | SNPS | CNXT | MSFT | DG |
| 2025-09-30 | AVGO | TE | FNMA | RCL | FMCC | EXPE | ORCL | EBAY | UAL | IDXX | SEDG | COIN | ECHO | CCL | CAR |
| 2025-10-31 | NEM | TE | FMCC | MPWR | IDXX | SEDG | FNMA | MRVL | ETSY | APP | ECHO | WYNN | ORCL | PSKY | MBI |
| 2025-11-28 | MPWR | LRCX | AMD | LUMN | HOOD | SEDG | TE | STX | MU | NEM | PLTR | WDC | DDOG | MRVL | EXPE |
| 2025-12-31 | WDC | KSS | AMD | STX | LUMN | AVGO | KLAC | IDXX | SSP | CAT | MPWR | M | AMAT | NEM | INTC |
| 2026-01-30 | KLAC | WDC | NEM | EXPE | LRCX | STX | KSS | SSP | WBD | AMAT | REGN | M | ECHO | TE | ALB |
| 2026-02-27 | KLAC | LRCX | TE | WDC | MPWR | STX | TER | AMAT | MU | WBD | SSP | GOOGL | LUV | ECHO | IPGP |
| 2026-03-31 | MU | WDC | STX | LRCX | NEM | GILD | TER | GOOGL | ADI | KLAC | RTX | PH | LMT | AMAT | KO |
| 2026-04-30 | TER | KLAC | CF | LRCX | APA | SEDG | AMAT | OXY | NEM | MRNA | IPGP | XOM | COHR | WBD | CVX |
| 2026-05-29 | APA | CF | TER | LITE | MPWR | OXY | ON | HAL | NBR | MCHP | VRT | INTC | VIAV | CAT | NVDA |
| 2026-06-26 | WDC | ON | STX | KLAC | ENPH | NTAP | LRCX | DDOG | MRVL | MU | TER | ADI | MPWR | AMAT | SEDG |
Scoring script (python)
FORMULA_NAME = "Regime Momentum Contrarian 52W Recovery Quality Hybrid (Arbitrated, v1187)"
LOGIC_VARIANT_COUNT = 3
NOTES = """mode=explore; family=regime-momentum-contrarian-52w-recovery-quality-hybrid
New hybrid family that fuses the shallow-drawdown recovery sweet spot from contrarian-52w, the regime sleeve discipline from regime-momentum-quality-value, and the conflict arbitration concept from recovery-quality-regime-momentum-hybrid. The design is intentionally not a weighted average: bull regimes prefer repaired leaders that already re-accelerated, transition regimes explicitly arbitrate between momentum leadership and recovery depth using stock-level gates, and risk-off regimes keep only resilient recoveries with quality, valuation, and trading continuity support.
Deliberate metric coverage this run: momentum uses 12_1, 6m, and 3m selectively; trend/recovery uses both 200d distance and 52-week-high distance in all branches; volatility is active in every branch; liquidity is active via trading_days_3m and avg_daily_dollar_volume_3m in transition/risk-off while avg_daily_volume_3m is zeroed; income keeps dividend_yield_ttm_pct only in risk-off and zeros dividend_ttm; valuation uses forward_pe and peg outside the bull sleeve while pe is zeroed; growth rotates to forward_eps plus free_cash_flow_growth_pct and operating_income_growth_pct while eps_growth_pct and revenue_growth_pct are zeroed; quality uses free_cash_flow_margin_pct and operating_margin_pct; size uses market_cap only in bull as a mild anti-megacap tilt; remaining raw-level fields are deliberately zeroed."""
BULL = {
"from_52w_high_pct": (0.24, -1),
"from_200d_ma_pct": (0.18, +1),
"momentum_12_1_pct": (0.17, +1),
"return_6m_pct": (0.13, +1),
"return_3m_pct": (0.09, +1),
"realized_vol_3m": (0.07, -1),
"free_cash_flow_margin_pct": (0.07, +1),
"forward_eps": (0.05, +1),
"market_cap": (0.05, -1),
}
TRANSITION = {
"from_52w_high_pct": (0.16, -1),
"from_200d_ma_pct": (0.16, +1),
"momentum_12_1_pct": (0.12, +1),
"return_6m_pct": (0.10, +1),
"return_3m_pct": (0.08, +1),
"realized_vol_3m": (0.10, -1),
"trading_days_3m": (0.06, +1),
"avg_daily_dollar_volume_3m": (0.05, +1),
"operating_margin_pct": (0.07, +1),
"free_cash_flow_growth_pct": (0.05, +1),
"forward_pe": (0.05, -1),
}
RISK_OFF = {
"from_52w_high_pct": (0.10, -1),
"from_200d_ma_pct": (0.18, +1),
"realized_vol_3m": (0.16, -1),
"operating_margin_pct": (0.13, +1),
"free_cash_flow_margin_pct": (0.09, +1),
"operating_income_growth_pct": (0.07, +1),
"trading_days_3m": (0.07, +1),
"avg_daily_dollar_volume_3m": (0.05, +1),
"peg": (0.07, -1),
"forward_pe": (0.04, -1),
"dividend_yield_ttm_pct": (0.04, +1),
}
def score_universe(stocks, regime, ctx):
def _get(obj, key, default=None):
if isinstance(obj, dict):
return obj.get(key, default)
return getattr(obj, key, default)
def _num(x):
try:
if x is None:
return None
v = float(x)
if v != v:
return None
return v
except Exception:
return None
def _clamp(x, lo, hi):
if x < lo:
return lo
if x > hi:
return hi
return x
def _regime_name(r):
for key in (
"regime", "name", "label", "state", "market_regime", "trend_regime",
"primary", "phase"
):
val = _get(r, key, None)
if val is not None:
s = str(val).strip().lower()
if s:
return s
return ""
def _is_true(r, key):
val = _get(r, key, None)
if isinstance(val, bool):
return val
if isinstance(val, (int, float)):
return val > 0
if isinstance(val, str):
return val.strip().lower() in ("1", "true", "yes", "on", "bull", "risk_on")
return False
def _pick_branch(r):
name = _regime_name(r)
if (
"risk" in name or "bear" in name or "defensive" in name or
"off" in name or "down" in name or _is_true(r, "risk_off") or
_is_true(r, "is_risk_off") or _is_true(r, "bear")
):
return "risk_off"
if (
"bull" in name or "up" in name or "on" in name or "strong" in name or
_is_true(r, "bull") or _is_true(r, "is_bull") or _is_true(r, "risk_on")
):
return "bull"
return "transition"
def _rank_scores(spec):
scores = {}
for symbol in symbols:
scores[symbol] = 0.0
for metric, (weight, direction) in spec.items():
vals = []
for symbol, stock in items:
v = _num(_get(stock, metric, None))
if v is not None:
vals.append((symbol, v))
n = len(vals)
if n == 0:
continue
vals.sort(key=lambda x: x[1])
if n == 1:
symbol = vals[0][0]
scores[symbol] += weight * 0.5
continue
for idx, (symbol, _) in enumerate(vals):
pct = idx / (n - 1)
if direction < 0:
pct = 1.0 - pct
scores[symbol] += weight * pct
return scores
def _recovery_profile(stock):
d52 = _num(_get(stock, "from_52w_high_pct", None))
d200 = _num(_get(stock, "from_200d_ma_pct", None))
vol = _num(_get(stock, "realized_vol_3m", None))
qual = _num(_get(stock, "free_cash_flow_margin_pct", None))
if d52 is None or d200 is None:
return 0.0
score = 0.0
# Prefer stocks meaningfully off highs, but not total breakdowns.
if d52 <= -8.0 and d52 >= -32.0:
score += 1.0
elif d52 <= -5.0 and d52 > -8.0:
score += 0.65
elif d52 < -32.0 and d52 >= -45.0:
score += 0.45
elif d52 > -5.0:
score -= 0.35
else:
score -= 0.15
# Recovery must already be repaired above/near long trend.
if d200 >= 12.0:
score += 0.95
elif d200 >= 4.0:
score += 0.65
elif d200 >= -2.0:
score += 0.25
else:
score -= 0.75
if vol is not None:
if vol <= 28.0:
score += 0.25
elif vol >= 45.0:
score -= 0.30
if qual is not None:
if qual >= 8.0:
score += 0.20
elif qual < 0.0:
score -= 0.20
return score
def _momentum_profile(stock):
m12 = _num(_get(stock, "momentum_12_1_pct", None))
r6 = _num(_get(stock, "return_6m_pct", None))
r3 = _num(_get(stock, "return_3m_pct", None))
d200 = _num(_get(stock, "from_200d_ma_pct", None))
vol = _num(_get(stock, "realized_vol_3m", None))
score = 0.0
seen = 0.0
if m12 is not None:
seen += 1.0
if m12 >= 12.0:
score += 1.0
elif m12 >= 4.0:
score += 0.6
elif m12 < -8.0:
score -= 0.8
if r6 is not None:
seen += 1.0
if r6 >= 10.0:
score += 0.85
elif r6 >= 3.0:
score += 0.45
elif r6 < -10.0:
score -= 0.75
if r3 is not None:
seen += 1.0
if r3 >= 4.0:
score += 0.55
elif r3 < -6.0:
score -= 0.55
if d200 is not None:
seen += 1.0
if d200 >= 8.0:
score += 0.55
elif d200 < -4.0:
score -= 0.55
if vol is not None:
seen += 1.0
if vol >= 42.0:
score -= 0.35
elif vol <= 24.0:
score += 0.10
if seen == 0.0:
return 0.0
return score / seen
def _defensive_profile(stock):
vol = _num(_get(stock, "realized_vol_3m", None))
opm = _num(_get(stock, "operating_margin_pct", None))
fcfm = _num(_get(stock, "free_cash_flow_margin_pct", None))
peg = _num(_get(stock, "peg", None))
fpe = _num(_get(stock, "forward_pe", None))
liq = _num(_get(stock, "trading_days_3m", None))
ddv = _num(_get(stock, "avg_daily_dollar_volume_3m", None))
dy = _num(_get(stock, "dividend_yield_ttm_pct", None))
d200 = _num(_get(stock, "from_200d_ma_pct", None))
score = 0.0
seen = 0.0
if vol is not None:
seen += 1.0
if vol <= 24.0:
score += 1.0
elif vol <= 32.0:
score += 0.55
elif vol >= 42.0:
score -= 0.85
if opm is not None:
seen += 1.0
if opm >= 12.0:
score += 0.8
elif opm < 0.0:
score -= 0.7
if fcfm is not None:
seen += 1.0
if fcfm >= 6.0:
score += 0.7
elif fcfm < 0.0:
score -= 0.6
if peg is not None:
seen += 1.0
if peg <= 1.8:
score += 0.45
elif peg >= 3.5:
score -= 0.45
elif fpe is not None:
seen += 1.0
if fpe <= 22.0:
score += 0.30
elif fpe >= 38.0:
score -= 0.30
if liq is not None:
seen += 1.0
if liq >= 58.0:
score += 0.25
elif liq < 45.0:
score -= 0.25
if ddv is not None:
seen += 1.0
if ddv > 0.0:
score += 0.15
if dy is not None:
seen += 1.0
if dy >= 0.8:
score += 0.15
if d200 is not None:
seen += 1.0
if d200 >= 0.0:
score += 0.25
elif d200 < -6.0:
score -= 0.35
if seen == 0.0:
return 0.0
return score / seen
branch = _pick_branch(regime)
if branch == "bull":
spec = BULL
elif branch == "risk_off":
spec = RISK_OFF
else:
spec = TRANSITION
if isinstance(stocks, dict):
items = list(stocks.items())
else:
items = []
for stock in stocks:
symbol = _get(stock, "symbol", None)
if symbol is not None:
items.append((symbol, stock))
symbols = [symbol for symbol, _ in items]
base_scores = _rank_scores(spec)
final_scores = {}
for symbol, stock in items:
base = base_scores.get(symbol, 0.0)
recovery = _recovery_profile(stock)
momentum = _momentum_profile(stock)
defensive = _defensive_profile(stock)
d52 = _num(_get(stock, "from_52w_high_pct", None))
d200 = _num(_get(stock, "from_200d_ma_pct", None))
score = base
if branch == "bull":
# In bull tapes, prefer repaired recoveries that have already graduated into momentum.
if recovery > 0.45 and momentum > 0.18:
score += 0.22 * _clamp(recovery, -1.5, 1.5)
score += 0.18 * _clamp(momentum, -1.5, 1.5)
elif recovery > 0.55 and momentum <= 0.0:
score += 0.08 * _clamp(recovery, -1.5, 1.5)
score -= 0.10
elif momentum > 0.35 and recovery <= 0.0:
score += 0.12 * _clamp(momentum, -1.5, 1.5)
score -= 0.06
if d52 is not None and d52 > -4.0:
score -= 0.08
if d52 is not None and d52 < -38.0:
score -= 0.10
elif branch == "transition":
# Explicit conflict arbitration: choose the sleeve based on whether recovery is repaired.
if recovery >= 0.55 and momentum >= 0.05:
score += 0.18 * _clamp(recovery, -1.5, 1.5)
score += 0.10 * _clamp(momentum, -1.5, 1.5)
elif momentum >= 0.35 and recovery < 0.25:
score += 0.16 * _clamp(momentum, -1.5, 1.5)
score -= 0.05
elif recovery >= 0.35 and momentum < -0.05:
score += 0.12 * _clamp(recovery, -1.5, 1.5)
score -= 0.08
else:
score += 0.08 * _clamp(recovery, -1.5, 1.5)
score += 0.08 * _clamp(momentum, -1.5, 1.5)
score += 0.10 * _clamp(defensive, -1.5, 1.5)
if d200 is not None and d200 < -5.0:
score -= 0.10
else:
# In risk-off, only keep recoveries that are already durable and fundamentally supported.
if recovery > 0.25 and defensive > 0.20:
score += 0.10 * _clamp(recovery, -1.5, 1.5)
score += 0.22 * _clamp(defensive, -1.5, 1.5)
else:
score += 0.28 * _clamp(defensive, -1.5, 1.5)
if recovery < -0.10:
score -= 0.06
if momentum < -0.20:
score -= 0.06
if d200 is not None and d200 < -8.0:
score -= 0.10
final_scores[symbol] = score
return final_scores