← All V2 experiments
Relative return
1.157x
Excess vs bench
15.67%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
32.30%
Mean benchmark gain
14.08%
Mean excess gain
18.22%
Dispersion (ref)
18.02%
Win-rate vs bench (ref)
99.44%
Worst / best ratio (ref)
0.998x / 1.426x
Logic variants
4
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 | 7.82% | 2.22% | 1.055x |
| 2011-07-01 … 2016-06-30 | 22.71% | 13.74% | 1.079x |
| 2016-07-01 … 2021-06-30 | 66.57% | 20.63% | 1.381x |
| 2021-07-01 … 2026-06-26 | 43.31% | 15.48% | 1.241x |
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.157x · beat benchmark in 178/179
| # | Window | Strategy | Benchmark | Ratio |
|---|---|---|---|---|
| 1 | 2006-07-31 … 2011-07-29 | 7.68% | 1.79% | 1.058x |
| 2 | 2006-08-31 … 2011-08-31 | 8.41% | 0.21% | 1.082x |
| 3 | 2006-09-29 … 2011-08-31 | 7.89% | -0.14% | 1.080x |
| 4 | 2006-10-31 … 2011-10-31 | 6.71% | 0.23% | 1.065x |
| 5 | 2006-11-30 … 2011-11-30 | 5.57% | -0.05% | 1.056x |
| 6 | 2006-12-29 … 2011-11-30 | 5.11% | -0.32% | 1.054x |
| 7 | 2007-01-31 … 2012-01-31 | 4.19% | 0.93% | 1.032x |
| 8 | 2007-02-28 … 2012-01-31 | 3.65% | 1.43% | 1.022x |
| 9 | 2007-03-30 … 2012-03-30 | 6.60% | 3.09% | 1.034x |
| 10 | 2007-04-30 … 2012-04-30 | 5.23% | 2.42% | 1.027x |
| 11 | 2007-05-31 … 2012-05-31 | 3.17% | 0.60% | 1.026x |
| 12 | 2007-06-29 … 2012-06-29 | 4.22% | 1.92% | 1.023x |
| 13 | 2007-07-31 … 2012-07-31 | 4.47% | 2.69% | 1.017x |
| 14 | 2007-08-31 … 2012-08-31 | 4.56% | 2.95% | 1.016x |
| 15 | 2007-09-28 … 2012-09-28 | 4.01% | 3.20% | 1.008x |
| 16 | 2007-10-31 … 2012-10-31 | 3.40% | 2.60% | 1.008x |
| 17 | 2007-11-30 … 2012-11-30 | 4.87% | 3.45% | 1.014x |
| 18 | 2007-12-31 … 2012-12-31 | 5.28% | 3.69% | 1.015x |
| 19 | 2008-01-31 … 2013-01-31 | 9.01% | 5.85% | 1.030x |
| 20 | 2008-02-29 … 2013-02-28 | 7.88% | 6.82% | 1.010x |
| 21 | 2008-03-31 … 2013-03-28 | 10.01% | 7.73% | 1.021x |
| 22 | 2008-04-30 … 2013-04-30 | 9.71% | 7.51% | 1.020x |
| 23 | 2008-05-30 … 2013-04-30 | 9.07% | 7.81% | 1.012x |
| 24 | 2008-06-30 … 2013-06-28 | 14.22% | 9.33% | 1.045x |
| 25 | 2008-07-31 … 2013-07-31 | 17.90% | 10.48% | 1.067x |
| 26 | 2008-08-29 … 2013-07-31 | 19.58% | 10.52% | 1.082x |
| 27 | 2008-09-30 … 2013-09-30 | 21.73% | 11.48% | 1.092x |
| 28 | 2008-10-31 … 2013-10-31 | 25.90% | 15.76% | 1.088x |
| 29 | 2008-11-28 … 2013-10-31 | 27.38% | 17.46% | 1.084x |
| 30 | 2008-12-31 … 2013-12-31 | 29.43% | 18.44% | 1.093x |
| 31 | 2009-01-30 … 2013-12-31 | 31.24% | 20.64% | 1.088x |
| 32 | 2009-02-27 … 2014-01-31 | 34.24% | 21.63% | 1.104x |
| 33 | 2009-03-31 … 2014-03-31 | 35.44% | 20.60% | 1.123x |
| 34 | 2009-04-30 … 2014-04-30 | 33.32% | 19.00% | 1.120x |
| 35 | 2009-05-29 … 2014-04-30 | 32.99% | 18.32% | 1.124x |
| 36 | 2009-06-30 … 2014-06-30 | 35.27% | 19.01% | 1.137x |
| 37 | 2009-07-31 … 2014-07-31 | 31.11% | 17.39% | 1.117x |
| 38 | 2009-08-31 … 2014-08-29 | 29.95% | 17.70% | 1.104x |
| 39 | 2009-09-30 … 2014-09-30 | 28.59% | 16.64% | 1.102x |
| 40 | 2009-10-30 … 2014-09-30 | 33.58% | 17.08% | 1.141x |
| 41 | 2009-11-30 … 2014-11-28 | 32.60% | 16.82% | 1.135x |
| 42 | 2009-12-31 … 2014-12-31 | 31.27% | 16.28% | 1.129x |
| 43 | 2010-01-29 … 2014-12-31 | 33.74% | 17.23% | 1.141x |
| 44 | 2010-02-26 … 2015-01-30 | 32.00% | 15.80% | 1.140x |
| 45 | 2010-03-31 … 2015-03-31 | 29.52% | 15.40% | 1.122x |
| 46 | 2010-04-30 … 2015-04-30 | 26.70% | 15.38% | 1.098x |
| 47 | 2010-05-28 … 2015-04-30 | 28.72% | 17.09% | 1.099x |
| 48 | 2010-06-30 … 2015-06-30 | 35.25% | 17.45% | 1.152x |
| 49 | 2010-07-30 … 2015-06-30 | 34.15% | 16.43% | 1.152x |
| 50 | 2010-08-31 … 2015-08-31 | 29.64% | 15.76% | 1.120x |
| 51 | 2010-09-30 … 2015-09-30 | 27.27% | 13.61% | 1.120x |
| 52 | 2010-10-29 … 2015-09-30 | 26.64% | 13.06% | 1.120x |
| 53 | 2010-11-30 … 2015-11-30 | 27.16% | 15.09% | 1.105x |
| 54 | 2010-12-31 … 2015-12-31 | 25.27% | 13.55% | 1.103x |
| 55 | 2011-01-31 … 2016-01-29 | 22.27% | 11.90% | 1.093x |
| 56 | 2011-02-28 … 2016-01-29 | 21.29% | 11.53% | 1.088x |
| 57 | 2011-03-31 … 2016-03-31 | 21.49% | 12.90% | 1.076x |
| 58 | 2011-04-29 … 2016-04-29 | 20.51% | 12.39% | 1.072x |
| 59 | 2011-05-31 … 2016-05-31 | 21.59% | 12.94% | 1.077x |
| 60 | 2011-06-30 … 2016-06-30 | 22.41% | 13.30% | 1.080x |
| 61 | 2011-07-29 … 2016-07-29 | 22.97% | 14.52% | 1.074x |
| 62 | 2011-08-31 … 2016-08-31 | 22.33% | 15.19% | 1.062x |
| 63 | 2011-09-30 … 2016-09-30 | 24.90% | 16.32% | 1.074x |
| 64 | 2011-10-31 … 2016-10-31 | 20.93% | 14.02% | 1.061x |
| 65 | 2011-11-30 … 2016-11-30 | 22.86% | 14.66% | 1.072x |
| 66 | 2011-12-30 … 2016-12-30 | 21.68% | 14.92% | 1.059x |
| 67 | 2012-01-31 … 2017-01-31 | 22.37% | 14.63% | 1.068x |
| 68 | 2012-02-29 … 2017-02-28 | 22.98% | 14.78% | 1.071x |
| 69 | 2012-03-30 … 2017-02-28 | 22.44% | 14.43% | 1.070x |
| 70 | 2012-04-30 … 2017-04-28 | 22.21% | 14.61% | 1.066x |
| 71 | 2012-05-31 … 2017-05-31 | 24.33% | 15.98% | 1.072x |
| 72 | 2012-06-29 … 2017-05-31 | 23.97% | 15.44% | 1.074x |
| 73 | 2012-07-31 … 2017-07-31 | 24.26% | 15.43% | 1.076x |
| 74 | 2012-08-31 … 2017-08-31 | 24.80% | 15.12% | 1.084x |
| 75 | 2012-09-28 … 2017-08-31 | 24.34% | 14.77% | 1.083x |
| 76 | 2012-10-31 … 2017-10-31 | 26.08% | 16.12% | 1.086x |
| 77 | 2012-11-30 … 2017-11-30 | 26.67% | 16.79% | 1.085x |
| 78 | 2012-12-31 … 2017-12-29 | 26.70% | 16.93% | 1.084x |
| 79 | 2013-01-31 … 2018-01-31 | 29.05% | 17.57% | 1.098x |
| 80 | 2013-02-28 … 2018-02-28 | 28.65% | 16.21% | 1.107x |
| 81 | 2013-03-28 … 2018-02-28 | 27.53% | 15.81% | 1.101x |
| 82 | 2013-04-30 … 2018-04-30 | 23.89% | 14.25% | 1.084x |
| 83 | 2013-05-31 … 2018-05-31 | 19.47% | 14.57% | 1.043x |
| 84 | 2013-06-28 … 2018-05-31 | 21.92% | 14.97% | 1.060x |
| 85 | 2013-07-31 … 2018-07-31 | 20.42% | 14.83% | 1.049x |
| 86 | 2013-08-30 … 2018-07-31 | 22.31% | 15.59% | 1.058x |
| 87 | 2013-09-30 … 2018-09-28 | 23.74% | 15.84% | 1.068x |
| 88 | 2013-10-31 … 2018-10-31 | 17.96% | 12.89% | 1.045x |
| 89 | 2013-11-29 … 2018-10-31 | 17.43% | 12.60% | 1.043x |
| 90 | 2013-12-31 … 2018-12-31 | 15.39% | 9.93% | 1.050x |
| 91 | 2014-01-31 … 2019-01-31 | 14.65% | 12.37% | 1.020x |
| 92 | 2014-02-28 … 2019-02-28 | 12.16% | 12.38% | 0.998x |
| 93 | 2014-03-31 … 2019-03-29 | 14.14% | 12.76% | 1.012x |
| 94 | 2014-04-30 … 2019-04-30 | 16.52% | 13.73% | 1.025x |
| 95 | 2014-05-30 … 2019-04-30 | 15.70% | 13.54% | 1.019x |
| 96 | 2014-06-30 … 2019-06-28 | 15.40% | 12.81% | 1.023x |
| 97 | 2014-07-31 … 2019-07-31 | 16.35% | 13.30% | 1.027x |
| 98 | 2014-08-29 … 2019-07-31 | 15.56% | 12.80% | 1.024x |
| 99 | 2014-09-30 … 2019-09-30 | 16.05% | 12.70% | 1.030x |
| 100 | 2014-10-31 … 2019-10-31 | 15.93% | 12.91% | 1.027x |
| 101 | 2014-11-28 … 2019-10-31 | 15.55% | 12.60% | 1.026x |
| 102 | 2014-12-31 … 2019-12-31 | 17.85% | 14.16% | 1.032x |
| 103 | 2015-01-30 … 2019-12-31 | 17.61% | 14.85% | 1.024x |
| 104 | 2015-02-27 … 2020-01-31 | 18.05% | 14.04% | 1.035x |
| 105 | 2015-03-31 … 2020-03-31 | 12.54% | 8.56% | 1.037x |
| 106 | 2015-04-30 … 2020-04-30 | 18.57% | 11.65% | 1.062x |
| 107 | 2015-05-29 … 2020-05-29 | 19.11% | 12.61% | 1.058x |
| 108 | 2015-06-30 … 2020-06-30 | 20.48% | 13.64% | 1.060x |
| 109 | 2015-07-31 … 2020-07-31 | 23.70% | 14.60% | 1.079x |
| 110 | 2015-08-31 … 2020-08-31 | 29.75% | 18.07% | 1.099x |
| 111 | 2015-09-30 … 2020-09-30 | 29.91% | 17.05% | 1.110x |
| 112 | 2015-10-30 … 2020-10-30 | 28.32% | 14.60% | 1.120x |
| 113 | 2015-11-30 … 2020-11-30 | 35.87% | 17.43% | 1.157x |
| 114 | 2015-12-31 … 2020-12-31 | 37.75% | 18.65% | 1.161x |
| 115 | 2016-01-29 … 2021-01-29 | 64.52% | 19.26% | 1.379x |
| 116 | 2016-02-29 … 2021-02-26 | 66.01% | 19.79% | 1.386x |
| 117 | 2016-03-31 … 2021-03-31 | 68.85% | 19.42% | 1.414x |
| 118 | 2016-04-29 … 2021-03-31 | 70.61% | 19.66% | 1.426x |
| 119 | 2016-05-31 … 2021-05-28 | 66.75% | 20.42% | 1.385x |
| 120 | 2016-06-30 … 2021-06-30 | 66.02% | 21.06% | 1.371x |
| 121 | 2016-07-29 … 2021-06-30 | 66.57% | 20.63% | 1.381x |
| 122 | 2016-08-31 … 2021-08-31 | 67.42% | 21.75% | 1.375x |
| 123 | 2016-09-30 … 2021-09-30 | 64.23% | 20.22% | 1.366x |
| 124 | 2016-10-31 … 2021-10-29 | 67.45% | 22.50% | 1.367x |
| 125 | 2016-11-30 … 2021-11-30 | 64.73% | 21.87% | 1.352x |
| 126 | 2016-12-30 … 2021-11-30 | 67.18% | 21.75% | 1.373x |
| 127 | 2017-01-31 … 2022-01-31 | 58.21% | 20.17% | 1.316x |
| 128 | 2017-02-28 … 2022-02-28 | 56.18% | 18.51% | 1.318x |
| 129 | 2017-03-31 … 2022-03-31 | 58.52% | 19.46% | 1.327x |
| 130 | 2017-04-28 … 2022-03-31 | 59.22% | 19.46% | 1.333x |
| 131 | 2017-05-31 … 2022-05-31 | 55.65% | 15.59% | 1.347x |
| 132 | 2017-06-30 … 2022-06-30 | 52.13% | 13.08% | 1.345x |
| 133 | 2017-07-31 … 2022-07-29 | 51.84% | 15.16% | 1.319x |
| 134 | 2017-08-31 … 2022-08-31 | 51.60% | 13.72% | 1.333x |
| 135 | 2017-09-29 … 2022-08-31 | 51.34% | 13.56% | 1.333x |
| 136 | 2017-10-31 … 2022-10-31 | 52.40% | 11.86% | 1.362x |
| 137 | 2017-11-30 … 2022-11-30 | 51.19% | 12.52% | 1.344x |
| 138 | 2017-12-29 … 2022-11-30 | 51.63% | 12.46% | 1.348x |
| 139 | 2018-01-31 … 2023-01-31 | 47.11% | 11.01% | 1.325x |
| 140 | 2018-02-28 … 2023-02-28 | 46.22% | 11.03% | 1.317x |
| 141 | 2018-03-29 … 2023-02-28 | 47.76% | 11.72% | 1.323x |
| 142 | 2018-04-30 … 2023-04-28 | 47.12% | 13.01% | 1.302x |
| 143 | 2018-05-31 … 2023-05-31 | 44.74% | 12.95% | 1.281x |
| 144 | 2018-06-29 … 2023-05-31 | 46.15% | 13.01% | 1.293x |
| 145 | 2018-07-31 … 2023-07-31 | 51.50% | 14.67% | 1.321x |
| 146 | 2018-08-31 … 2023-08-31 | 47.92% | 13.51% | 1.303x |
| 147 | 2018-09-28 … 2023-08-31 | 48.96% | 13.56% | 1.312x |
| 148 | 2018-10-31 … 2023-10-31 | 45.96% | 12.60% | 1.296x |
| 149 | 2018-11-30 … 2023-11-30 | 46.81% | 14.58% | 1.281x |
| 150 | 2018-12-31 … 2023-12-29 | 51.43% | 17.26% | 1.291x |
| 151 | 2019-01-31 … 2024-01-31 | 50.63% | 16.27% | 1.295x |
| 152 | 2019-02-28 … 2024-01-31 | 50.79% | 15.94% | 1.301x |
| 153 | 2019-03-29 … 2024-03-28 | 57.35% | 17.50% | 1.339x |
| 154 | 2019-04-30 … 2024-04-30 | 53.74% | 15.50% | 1.331x |
| 155 | 2019-05-31 … 2024-05-31 | 57.96% | 18.12% | 1.337x |
| 156 | 2019-06-28 … 2024-06-28 | 56.93% | 17.99% | 1.330x |
| 157 | 2019-07-31 … 2024-07-31 | 52.75% | 17.70% | 1.298x |
| 158 | 2019-08-30 … 2024-08-30 | 52.34% | 18.41% | 1.287x |
| 159 | 2019-09-30 … 2024-09-30 | 56.02% | 18.65% | 1.315x |
| 160 | 2019-10-31 … 2024-10-31 | 56.37% | 17.87% | 1.327x |
| 161 | 2019-11-29 … 2024-11-29 | 59.87% | 18.64% | 1.348x |
| 162 | 2019-12-31 … 2024-12-31 | 53.39% | 17.62% | 1.304x |
| 163 | 2020-01-31 … 2025-01-31 | 56.94% | 18.07% | 1.329x |
| 164 | 2020-02-28 … 2025-02-28 | 55.54% | 19.00% | 1.307x |
| 165 | 2020-03-31 … 2025-03-31 | 54.30% | 19.24% | 1.294x |
| 166 | 2020-04-30 … 2025-04-30 | 48.65% | 16.49% | 1.276x |
| 167 | 2020-05-29 … 2025-04-30 | 47.07% | 15.80% | 1.270x |
| 168 | 2020-06-30 … 2025-06-30 | 48.61% | 18.19% | 1.257x |
| 169 | 2020-07-31 … 2025-07-31 | 46.18% | 17.87% | 1.240x |
| 170 | 2020-08-31 … 2025-08-29 | 44.31% | 16.69% | 1.237x |
| 171 | 2020-09-30 … 2025-09-30 | 47.91% | 18.57% | 1.247x |
| 172 | 2020-10-30 … 2025-09-30 | 48.88% | 19.43% | 1.247x |
| 173 | 2020-11-30 … 2025-11-28 | 44.71% | 17.77% | 1.229x |
| 174 | 2020-12-31 … 2025-12-31 | 45.29% | 16.92% | 1.243x |
| 175 | 2021-01-29 … 2025-12-31 | 29.29% | 17.20% | 1.103x |
| 176 | 2021-02-26 … 2026-01-30 | 34.51% | 17.04% | 1.149x |
| 177 | 2021-03-31 … 2026-03-31 | 30.20% | 14.07% | 1.141x |
| 178 | 2021-04-30 … 2026-04-30 | 37.27% | 16.03% | 1.183x |
| 179 | 2021-05-28 … 2026-04-30 | 38.57% | 16.22% | 1.192x |
Notes
mode=explore; family=contrarian-52w-regime-momentum-recovery-quality-hybrid
New hybrid family built as a state-arbitrated relay instead of a static blend. It preserves the strong parent edge in recovery leaders off 52-week highs, but only pays for deeper drawdowns when repair, liquidity continuity, and operating durability confirm them. In healthy tapes, repaired leaders outrank deeper contrarian names; in choppier tapes, controlled pullbacks with improving trend get priority; in transitions, quality-backed turnarounds can beat pure momentum; in risk-off, the model triages for durable, liquid, lower-vol franchises that are merely bruised rather than broken.
Explicit arbitration rule: when momentum leadership and contrarian depth conflict, stock-state gates decide the sleeve. Deep drawdown names must pass a repair-and-durability gate to avoid falling knives; shallow drawdown leaders need trend persistence to outrank cheaper-looking laggards; transition tapes favor improving quality recoveries over both raw momentum and raw depth.
Deliberate metric coverage this run: active momentum uses 3m, 6m, and 12_1; trend/recovery uses both 200d distance and 52-week-high distance; volatility is active through realized vol; liquidity uses volume, dollar-volume, and trading-days continuity; income uses dividend yield in defensive branches only; valuation rotates to forward_pe and peg in transition/risk-off while pe is deliberately zeroed; growth uses forward_eps plus operating-income and free-cash-flow growth; quality uses operating and free-cash-flow margins; size uses market_cap only as a small negative tilt in strong tapes. Deliberate weight-0 metrics: return_1m_pct, return_12m_pct, dividend_ttm, pe, eps_growth_pct, revenue_growth_pct, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm.
Lesson notes
explore/contrarian-52w-regime-momentum-recovery-quality-hybrid: relative_return 1.1567x (delta -0.2690 vs exp_758); win-rate 99.4413%, worst-window 0.998068, dispersion 18.0235%.
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 | ATI | EXPD | MNST | MRK | GRMN | CPB | CMI | DDS | FTI | T | LVS | CME | VLO | TEX | SLG |
| 2006-08-31 | MRK | ILMN | T | GEN | ICE | LMT | DDS | SLG | ADM | LH | BXP | NVDA | MO | CVS | VNO |
| 2006-09-29 | T | ILMN | AAPL | ORCL | MRK | KSS | NVDA | GEN | CRM | HOG | HUM | BXP | LMT | TJX | VNO |
| 2006-10-31 | KSS | AKAM | GS | AAPL | ATI | CRM | ALGN | T | M | AIV | MS | CTSH | ORCL | MRK | ANF |
| 2006-11-30 | GS | AAL | ALGN | ICE | AKAM | MAT | ILMN | AT | HOG | REGN | MS | SLG | CMCSA | KSS | MRK |
| 2006-12-29 | ATI | MAY | LVS | HOG | ICE | VNO | GS | CMCSA | MTCH | WYNN | NVDA | ILMN | ES | TWX | EQIX |
| 2007-01-31 | MAY | UAL | TWX | ICE | GS | LVS | PCAR | CMCSA | AT | MTCH | TEX | MGM | LMT | CSCO | BKNG |
| 2007-02-28 | WYNN | ICE | DOC | MAT | SPG | KMX | BXP | AT | PSA | CRM | AKAM | TEX | UIS | NEE | ON |
| 2007-03-30 | ICE | ON | MAY | MAT | CF | NRG | MGM | NEE | WY | MTCH | SYK | AEP | FSLR | WYNN | CRM |
| 2007-04-30 | PEG | CF | ETR | MOS | MAY | ES | SYK | MAT | SRE | ICE | GT | BAX | CMI | FE | ATI |
| 2007-05-31 | ETR | PEG | EIX | HON | MCD | CMI | MRK | STLD | AMZN | DLTR | ALGN | CI | NRG | PWR | BAX |
| 2007-06-29 | CLF | AMZN | NRG | ICE | ANDV | HON | CI | AAPL | NOV | NVDA | DLX | MLM | MGM | WBD | OKE |
| 2007-07-31 | KMG | CF | AAPL | AMZN | AXON | DJ | ICE | CE | CLF | VRSN | MGM | MOS | HON | MTW | MA |
| 2007-08-31 | AXON | FCX | FSLR | DECK | COP | KMG | AMZN | ALGN | HON | CAT | CVX | MA | CE | LIN | IBM |
| 2007-09-28 | BIIB | WYNN | COP | FLR | SLB | CVX | AXON | LVS | CSCO | CMI | FCX | GME | NOV | VRTX | DE |
| 2007-10-31 | GRMN | EXPE | AMZN | FLR | FTI | LVS | BIIB | NOV | WYNN | NVDA | MPWR | MGM | BKR | CLF | GOOGL |
| 2007-11-30 | FTI | GOOG | GOOGL | FLR | FCX | AMZN | WYNN | LVS | FMC | NOV | GRMN | CLF | AAPL | APA | BIIB |
| 2007-12-31 | MCD | ISRG | GOOGL | GOOG | BRK-B | MRK | CME | HPQ | FSLR | KO | VRSN | CF | NEE | MA | FLR |
| 2008-01-31 | FSLR | MOS | ESRX | HUM | BRK-B | OXY | PRGO | VRSN | CRL | KO | MUR | ISRG | PEG | CF | WDC |
| 2008-02-29 | CF | MOS | HAL | BKNG | OXY | FSLR | CVX | DVN | WDC | ABT | PEG | J | WHR | ESRX | BLK |
| 2008-03-31 | CF | MOS | HAL | BIIB | WHR | BKNG | DVN | WDC | ABT | MO | AFL | OXY | IBM | JCI | CL |
| 2008-04-30 | CF | MOS | JCI | HAL | DVN | WDC | OXY | BKNG | CVX | RRC | APA | J | EQT | UNP | CLF |
| 2008-05-30 | MA | HAL | MOS | CF | APA | OXY | FSLR | BKNG | CSX | DVN | BBBY | NBR | WDC | UNP | CVX |
| 2008-06-30 | MA | MOS | CF | WDC | OXY | HAL | BBBY | DFS | NBR | APA | HP | FMC | D | BKNG | X |
| 2008-07-31 | MEE | MOS | CF | BTUUQ | X | MA | HP | ESV | WWY | HAL | CLF | WDC | ABT | D | APOL |
| 2008-08-29 | CF | ESV | MCD | APOL | BCR | BTUUQ | CEPH | ATGE | BAX | SRCL | MBI | MHS | MEE | RE | RTN |
| 2008-09-30 | MCD | ABT | BCR | ED | ESV | APOL | CEPH | MBI | ATGE | PRGO | SWN | D | BNI | SRCL | CPB |
| 2008-10-31 | ABT | MCD | AON | ED | MRSH | D | WWY | MBI | CLX | BAX | MDLZ | CHD | CPB | NSC | HPQ |
| 2008-11-28 | AON | MCD | ABT | ED | D | KR | DLTR | CLX | KMB | SHW | SJM | CPB | DAL | MRSH | CHRW |
| 2008-12-31 | AON | ABT | MCD | BMY | GILD | DLTR | ED | KR | SHW | CHRW | XOM | MRK | WM | AMGN | CVX |
| 2009-01-30 | ABT | MCD | XOM | BMY | GILD | OXY | CVX | DLTR | AON | ELV | ED | PCG | CL | SJM | MDLZ |
| 2009-02-27 | ABT | MCD | XOM | GILD | AON | PCG | ED | BMY | CAG | VTRS | BIIB | CVX | IBM | OXY | BKNG |
| 2009-03-31 | BKNG | BMY | IBM | CF | CVX | MS | AMT | GOOG | VTRS | ED | OXY | ADI | BIIB | AKAM | AON |
| 2009-04-30 | BKNG | EBAY | CF | NVDA | UPS | MS | MRVL | AZO | IBM | GRMN | AKAM | AON | WDC | OXY | ICE |
| 2009-05-29 | EBAY | CF | FCX | MOS | BKNG | WDC | MS | STX | OXY | CIEN | EOG | GNW | CNX | STLD | ASH |
| 2009-06-30 | EBAY | PRU | BKNG | FCX | GNW | MSI | MTG | STLD | GGP | THC | GT | MS | NFX | IP | AAPL |
| 2009-07-31 | EBAY | MOS | GNW | PRU | FITB | BKNG | GGP | LNC | CF | MEE | PFG | WLL | MSI | MS | FCX |
| 2009-08-31 | FITB | HIG | FNMA | LVS | BKNG | AIG | FMCC | COF | MEE | SLG | EBAY | MAC | PRU | HOG | LNC |
| 2009-09-30 | FNMA | FMCC | FITB | MTG | AIG | GNW | LVS | PALM | BKNG | COF | MGM | EBAY | HIG | MU | TXT |
| 2009-10-30 | GNW | FMCC | BKNG | HIG | FNMA | BC | LVS | SANM | SSP | FLEX | EBAY | BX | FCX | STX | INCY |
| 2009-11-30 | LVS | JBL | FCX | STX | GNW | BKNG | FLEX | HIG | PSKY | TT | CTSH | STI | BC | VSTNQ | DD |
| 2009-12-31 | BKNG | KMG | FCX | DDS | VSTNQ | TT | WBD | STI | MAC | F | GOOG | IP | SLG | AMD | GNW |
| 2010-01-29 | BKNG | AMD | MU | CLF | STX | CAR | F | SLG | ATI | DD | MTW | DDS | WLL | JBL | WYNN |
| 2010-02-26 | AMD | MU | NYT | MTG | MTW | JBL | ATI | BKNG | SSP | LVS | F | BC | UIS | STX | HUM |
| 2010-03-31 | F | AAL | SANM | LVS | UAL | DDR | CLF | HBAN | ZION | MGM | SSP | BKNG | FFIV | XRX | MTW |
| 2010-04-30 | CLF | MTG | UAL | BKNG | BBWI | DECK | LVS | DDS | VIAV | AAL | DDR | LPX | BC | PVH | HBAN |
| 2010-05-28 | MTG | ZION | BC | UAL | MBI | PVH | BBWI | MGM | CLF | VIAV | HST | URI | LPX | HBAN | RF |
| 2010-06-30 | ZION | BBWI | SBUX | NTAP | NEM | AAL | LVS | AIG | DDS | WLL | COR | BMY | UHS | HBAN | HAS |
| 2010-07-30 | NEM | AIG | BBWI | KDP | NTAP | AKAM | SBUX | BMY | AZO | HAS | HSY | BKNG | GS | CLF | CB |
| 2010-08-31 | NEM | BKNG | BMY | BBWI | NTAP | CLF | CB | CTSH | AZO | AXP | KDP | LVS | EW | VZ | D |
| 2010-09-30 | BBWI | BKNG | NTAP | CLF | NEM | CCU | VZ | BMY | LVS | CTSH | CASY | AKAM | AZO | MBI | CB |
| 2010-10-29 | MBI | BKNG | LYB | EMN | NEM | BBWI | NTAP | CTSH | TPL | AKAM | TXN | CB | VZ | COO | BMY |
| 2010-11-30 | NTAP | BKNG | TXN | LVS | BBWI | F | WLL | INTC | RCL | WYNN | ILMN | HON | ADI | ETN | EMN |
| 2010-12-31 | LVS | DECK | FFIV | TXN | VRTS | BKNG | BBWI | TPR | ILMN | MGM | ADI | AIG | EW | EXPD | MBI |
| 2011-01-31 | WLL | CIEN | DECK | ETFC | BWA | CLF | FCX | XEC | CXO | PXD | ALXN | JOY | TXN | CMI | CTXS |
| 2011-02-28 | VIAV | NVDA | MAY | TEX | ANDV | VLO | ETFC | URI | FLR | MOS | HOG | DE | NOV | WLL | TXN |
| 2011-03-31 | VIAV | CIEN | MAY | PSKY | COP | KLAC | NOV | SWKS | TER | XOM | NVDA | CBRE | TTWO | BKNG | ANDV |
| 2011-04-29 | VIAV | ANDV | REGN | BKNG | BIIB | PSKY | COP | NBR | IRM | MTW | HUM | CBRE | ECHO | HP | CIEN |
| 2011-05-31 | BKNG | BIIB | BBWI | CAT | REGN | CXO | PXD | KKR | ANDV | ELV | ALXN | GR | GT | JOY | FDO |
| 2011-06-30 | BKNG | ANF | REGN | DDS | BBWI | GT | BIIB | WYNN | KKR | HUM | CVX | COP | CAT | ELV | D |
| 2011-07-29 | D | CEPH | BIIB | REGN | BKNG | WCG | MNST | COG | ADS | EP | GR | WYNN | KSU | CVX | COP |
| 2011-08-31 | CF | BKNG | BIIB | AAPL | MOS | WYNN | KLAC | CVX | COP | VZ | DUK | IBM | DLTR | VFC | PM |
| 2011-09-30 | CF | BKNG | KLAC | DUK | AAPL | VZ | BIIB | DLTR | XOM | VFC | CVX | CTRA | COP | AZO | MOS |
| 2011-10-31 | KLAC | CF | DUK | MAY | DLTR | AAPL | BKNG | BIIB | DG | MNST | VZ | AZO | VFC | TJX | CL |
| 2011-11-30 | KLAC | BIIB | VFC | CF | DLTR | DECK | XOM | AEE | CVX | PFE | AAPL | ULTA | VZ | M | GWW |
| 2011-12-30 | KLAC | CF | PM | PFE | XOM | M | GWW | CVX | AEE | HUM | OKE | TJX | BIIB | AAPL | CTRA |
| 2012-01-31 | KLAC | CF | M | AAPL | GWW | WCG | MNST | WMB | CAT | GRMN | PFE | COG | TJX | ADS | GR |
| 2012-02-29 | BKNG | CF | AAPL | LYB | GRMN | REGN | CAT | TJX | TRGP | MOH | WCG | KLAC | URI | TEX | AIG |
| 2012-03-30 | BKNG | AAPL | CF | AIG | MOH | JBL | ULTA | BAC | LYB | LVS | M | EQIX | AAP | ADS | WBD |
| 2012-04-30 | AAPL | BKNG | WBD | TJX | CF | KLAC | ULTA | PSKY | SHW | TT | KMI | M | PM | WFC | EQIX |
| 2012-05-31 | STX | BKNG | AAPL | AIG | EC | WMB | SPG | SBAC | WBD | BIIB | M | SHW | PM | YUM | USB |
| 2012-06-29 | STX | BKNG | AAPL | MNST | CF | SHW | DLTR | VRTX | SBAC | DAL | AIG | SPG | WBD | TJX | SRE |
| 2012-07-31 | AAPL | STX | MRK | VRTX | BKNG | CF | KMB | EW | BIIB | LEN | SHW | CHD | AAL | MNST | SBAC |
| 2012-08-31 | STX | WDC | AAPL | ALL | MRK | CF | KBH | SBAC | NOC | AIG | TWX | CMCSA | BKNG | BIIB | BLDR |
| 2012-09-28 | STX | AAPL | WDC | ALL | VLO | PHM | CF | LPX | LEN | STZ | DHI | EBAY | DDS | EOG | TEX |
| 2012-10-31 | ALL | ANDV | URI | CF | LEN | AIG | STX | TWX | DHI | SHW | VLO | STZ | EBAY | MRK | JPM |
| 2012-11-30 | ALL | META | KBH | TRV | GNRC | LEN | AMGN | BKNG | NWL | DHI | AAL | PHM | DVA | GS | MTB |
| 2012-12-31 | STX | ALL | WDC | LEN | GNRC | TRV | FSLR | AMGN | NWL | META | BBBY | STZ | AAL | KBH | GS |
| 2013-01-31 | STX | WDC | META | BAC | LEN | LPX | PPG | APTV | DAL | PHM | EQIX | EMN | BKNG | STT | ALL |
| 2013-02-28 | STX | GS | WDC | DAL | ALL | PHM | MS | TRV | LYB | DHI | BAC | STT | KBH | TSN | HCA |
| 2013-03-28 | STX | GS | KKR | ALL | DHI | TRV | WDC | APO | STT | TEX | NWL | AMGN | BX | MPC | HON |
| 2013-04-30 | FNMA | FMCC | ALL | COR | AMGN | HRB | TWX | WDC | NWL | TRV | BAC | KR | KKR | GS | STX |
| 2013-05-31 | FNMA | FMCC | REGN | TSLA | KBH | VLO | KR | WDC | BKNG | KKR | PHM | MPC | BX | STX | MTG |
| 2013-06-28 | FSLR | FNMA | FMCC | REGN | WDC | BIIB | JPM | GS | MCO | MBI | BKNG | STX | APO | BX | CAR |
| 2013-07-31 | FNMA | WDC | FMCC | BKNG | STX | MU | FSLR | TYL | MBI | CME | REGN | ELV | DXCM | JPM | APTV |
| 2013-08-30 | BKNG | DAL | TSN | MTG | GNW | TRIP | BBBY | MU | SVU | PRU | CBOE | REGN | CIEN | LYV | BSX |
| 2013-09-30 | BKNG | TRIP | MTG | GME | META | DAL | RTX | EA | FL | GT | FANG | HII | LNC | CI | CPRI |
| 2013-10-31 | META | FNMA | BKNG | FMCC | TSLA | MGM | GT | MU | BX | REGN | ADS | APO | LVS | INCY | FLT |
| 2013-11-29 | FNMA | FMCC | FSLR | META | REGN | BKNG | PBI | FANG | INCY | ALGN | DAL | BA | LVS | AXON | URI |
| 2013-12-31 | FNMA | BKNG | FMCC | MCK | MU | DAL | IBKR | PBI | META | FSLR | URI | DECK | STZ | BR | CAH |
| 2014-01-31 | FNMA | FMCC | BKNG | MGM | DAL | URI | GT | DECK | BX | MA | V | PHM | STZ | MU | AMP |
| 2014-02-28 | BKNG | INCY | REGN | ILMN | MU | META | SMCI | URI | TKO | BX | PHM | ADSK | VLO | TPL | MGM |
| 2014-03-31 | ILMN | FNMA | META | FMCC | TSLA | BKNG | VTRS | BX | DXCM | MGM | INCY | WYNN | DAL | AAL | FRX |
| 2014-04-30 | FNMA | EOG | FMCC | TSLA | RCL | URI | VTRS | FSLR | GLW | DAL | HP | AAL | BKNG | META | ILMN |
| 2014-05-30 | META | DAL | URI | EOG | LYB | BKR | RCL | GLW | HP | BKNG | FNMA | COP | ILMN | FSLR | SLB |
| 2014-06-30 | META | DAL | URI | LYB | TRGP | AAL | EOG | FRX | SWKS | LUV | TSLA | COP | GD | FANG | EA |
| 2014-07-31 | MU | META | URI | ILMN | EOG | DAL | NFX | TRGP | AAL | COP | FANG | FNMA | EA | RCL | TAP |
| 2014-08-29 | MU | TWX | GILD | TRGP | FANG | HAL | DAL | EOG | LUV | RCL | DLR | CAR | COP | FSLR | URI |
| 2014-09-30 | GILD | NXPI | LUV | TPL | URI | WDC | UHS | RCL | STLD | ENPH | LYB | DLR | MS | TWX | WMB |
| 2014-10-31 | GILD | MU | RCL | LUV | NXPI | ENPH | GD | DAL | SIAL | HCA | MS | STLD | TRV | URI | ETR |
| 2014-11-28 | CSX | RCL | NXPI | UNP | DAL | GILD | MU | GD | ANDV | SWKS | LUV | SMCI | KR | TWX | RHI |
| 2014-12-31 | WELL | GD | INCY | EW | RCL | EIX | IRM | ANDV | ES | ETR | MNST | WEC | PNW | AEP | ZTS |
| 2015-01-30 | RCL | DAL | AAL | KR | WELL | ALL | RMD | SHW | EW | KDP | AMAT | UAL | MAC | AVB | TRV |
| 2015-02-27 | KR | RCL | MAC | SHW | RMD | AXON | UAL | WELL | PCG | VLO | ALK | ARE | TDG | COR | GILD |
| 2015-03-31 | SBUX | BIIB | DLTR | CI | GILD | SWKS | COR | ELV | KR | DRI | AET | AAPL | INCY | CME | ULTA |
| 2015-04-30 | CI | CNC | SBUX | INCY | SWKS | MAY | DRI | DLTR | NCLH | COR | HUM | DDS | ULTA | PAYC | MOH |
| 2015-05-29 | GILD | COR | SBUX | AXON | DRI | BLDR | CI | HSP | VTRS | PRGO | PAYC | BX | EXPE | ABMD | NCLH |
| 2015-06-30 | GILD | GS | BX | SBUX | HUM | JPM | VTRS | DRI | PANW | CNXT | AET | MPC | SWKS | CI | ZTS |
| 2015-07-31 | GILD | SBUX | CI | BTUUQ | VLO | MPC | DRI | PANW | EA | JPM | CNC | AET | GS | HUM | COTY |
| 2015-08-31 | VLO | SBUX | DRI | GILD | MDLZ | CI | UAL | EA | PANW | ANDV | HAS | ULTA | AYI | JPM | BKNG |
| 2015-09-30 | SBUX | VLO | HUM | DRI | BKNG | UAL | MDLZ | INCY | EQIX | DXCM | TKO | STZ | BLDR | AMZN | HSP |
| 2015-10-30 | SBUX | VLO | BKNG | UAL | STZ | EQIX | INCY | CCI | ACN | AZO | MDLZ | KDP | PLD | AMZN | GILD |
| 2015-11-30 | VLO | AMZN | PSX | LUV | GM | PLD | GOOG | MAS | ACN | EQIX | STZ | GILD | ANDV | PANW | GPN |
| 2015-12-31 | AMZN | VLO | VRSN | GOOG | GILD | MAS | LUV | PLD | DD | UAL | GM | GPN | ARG | GE | CCI |
| 2016-01-29 | GOOG | VLO | TAP | ABMD | AMZN | KMB | EQIX | STZ | GE | KDP | ATVI | LHX | CLX | VRSN | AVGO |
| 2016-02-29 | VZ | T | DAL | KLAC | UAL | KMB | AWK | AAL | ATO | CMS | XEL | DLR | PM | WEC | PPL |
| 2016-03-31 | T | VZ | PM | KLAC | TSN | AWK | EIX | ATO | ETN | XEL | KMB | DAL | CMS | MKC | NI |
| 2016-04-29 | KLAC | VZ | T | TSN | X | CNX | ABBV | AMZN | RRC | LUV | MAT | PM | ETN | DD | GPN |
| 2016-05-31 | NXPI | DLR | ABBV | T | EQIX | CLF | CNX | RRC | MUR | KLAC | MTW | AMZN | VMC | MLM | VZ |
| 2016-06-30 | T | ALB | DLR | EQIX | ABBV | WCG | CCI | ABMD | AWK | EVRG | SIVB | MTW | DXC | STJ | XEC |
| 2016-07-29 | DLR | OKE | DXC | AWK | T | EQIX | ALB | CCI | VZ | CNP | NI | GEN | WM | ABBV | HII |
| 2016-08-31 | CLF | ULTA | T | VTR | GRMN | SPGI | ALGN | KMI | WMB | DLR | IRM | ABBV | DXC | OKE | EW |
| 2016-09-30 | SPGI | AMD | CLF | GEN | AMZN | KMI | ABBV | WMB | MKTX | DHR | META | BKNG | TSN | PODD | GRMN |
| 2016-10-31 | SPGI | WB | LITE | C | AMZN | GEN | WMB | TPL | BKNG | NXPI | ETSY | AAL | META | UAL | DHR |
| 2016-11-30 | SPGI | CLF | KLAC | WOR | RCL | DAL | META | DXC | BKNG | WB | T | LITE | FCX | GRMN | TMUS |
| 2016-12-30 | CLF | FMCC | FNMA | STLD | BBY | MS | NUE | CSX | GM | FCX | FDX | PRU | AMD | PFG | JPM |
| 2017-01-31 | CLF | AMD | NBR | GS | STLD | MS | FMCC | CHTR | CSX | UIS | BBY | FITB | JPM | GM | KMG |
| 2017-02-28 | CLF | CHTR | MTB | AMD | COHR | LITE | NRG | GEN | MS | RF | SLM | MTG | TMUS | JPM | HWM |
| 2017-03-31 | INCY | CSX | GS | SPGI | META | COHR | BKNG | WB | AMAT | AVGO | HII | HWM | AMD | TTD | KLAC |
| 2017-04-28 | AMAT | AMD | KLAC | CHTR | SPGI | META | BBY | INCY | AVGO | MHK | DXC | SWKS | BKNG | TTD | GS |
| 2017-05-31 | WB | KLAC | META | BBY | MSFT | WDC | VEEV | LRCX | BKNG | RCL | AMAT | TTWO | DXC | GOOG | ADSK |
| 2017-06-30 | AMAT | WB | ADSK | TTWO | LRCX | EA | VEEV | XYZ | RCL | NVDA | WDC | SPGI | VRTX | MSFT | LITE |
| 2017-07-31 | AMAT | MU | VRTX | LITE | SPGI | META | MTD | LRCX | WB | BX | XYZ | PKG | PYPL | ALGN | RCL |
| 2017-08-31 | BA | ALL | RCL | MU | VRTX | META | AMAT | XYZ | NRG | SPGI | PGR | BX | COO | LRCX | C |
| 2017-09-29 | WB | BA | VRTX | RCL | MU | AMAT | MCHP | SBAC | APTV | META | KMG | ABMD | KLAC | GS | SPGI |
| 2017-10-31 | BA | WB | AMAT | TROW | RCL | ABBV | MCHP | GM | FMC | MU | CNC | CBOE | CI | FMCC | ENPH |
| 2017-11-30 | XYZ | MU | BBBY | AMAT | LRCX | IPGP | ON | BA | TTWO | INTC | WB | TWTR | NRG | MAR | MRVL |
| 2017-12-29 | XYZ | BBBY | ALGN | MU | IPGP | BA | MRVL | CBOE | ENPH | ON | WB | AMAT | TTWO | IBKR | FSLR |
| 2018-01-31 | BBBY | TROW | FSLR | WB | XYZ | DE | KBH | MPC | ALGN | ELV | MU | ENPH | BA | TXN | ODFL |
| 2018-02-28 | BBBY | EC | KKR | MPC | BA | ON | TROW | MAY | FSLR | ANET | WB | WYNN | TXN | RL | BKNG |
| 2018-03-29 | MU | XYZ | BA | ON | WYNN | WB | NKTR | BKNG | MPC | URI | AMAT | ALGN | ANET | BLK | NOW |
| 2018-04-30 | MU | NKTR | MPC | XYZ | WYNN | PSX | BKNG | ON | BA | NTAP | BR | PANW | CME | ENPH | CVNA |
| 2018-05-31 | MU | PSX | SEDG | NTAP | BKNG | COP | OXY | MPC | MCO | NKTR | M | CVX | VLO | NRG | ABMD |
| 2018-06-29 | MU | PSX | VLO | XYZ | M | MCO | ALGN | BA | ANDV | OXY | CPRT | MSCI | DECK | GDDY | V |
| 2018-07-31 | MU | XYZ | ETSY | TTD | ALGN | PSX | GDDY | CNC | V | VRSN | MCO | SEDG | ENPH | EVHC | BA |
| 2018-08-31 | PFE | MU | KDP | WAB | MPC | M | CNC | PSX | TJX | ABMD | LLY | REGN | AZO | GWW | MCO |
| 2018-09-28 | CVNA | MPC | PFE | FICO | ABMD | TJX | AMD | MTCH | VRSN | ANDV | NSC | PGR | LLY | ETSY | SHW |
| 2018-10-31 | XYZ | ABMD | MOH | PFE | AMD | LLY | ETSY | TJX | HCA | VZ | MRK | ESRX | MTCH | VEEV | PEG |
| 2018-11-30 | MRK | MKC | PFE | VZ | ESRX | KDP | AMD | ABMD | ULTA | LW | CME | PEG | HCA | MOS | AES |
| 2018-12-31 | MKC | PFE | MRK | ESRX | VZ | CME | KDP | PEG | LW | AVGO | BALL | CMCSA | AET | NRG | SO |
| 2019-01-31 | AMD | AVGO | AZO | DLTR | PFE | NRG | SO | WELL | BALL | CHD | MRK | RHT | PEG | DOC | TKO |
| 2019-02-28 | AVGO | AMD | XYZ | ERIE | BALL | PGR | AES | SO | MTCH | PEG | FNMA | FMCC | HET | REGN | WELL |
| 2019-03-29 | AMD | MTCH | CVNA | BALL | AVGO | KMI | AES | KLAC | SSP | ERIE | PGR | MU | HET | NYT | XLNX |
| 2019-04-30 | KEYS | AMD | MTCH | HON | AZO | ZBRA | NSC | LIN | MSCI | TDG | KLAC | FICO | PEP | HET | ALGN |
| 2019-05-31 | PEP | CVNA | MTCH | SO | BALL | HON | QCOM | LLY | APD | LIN | MDLZ | TT | MSFT | MSCI | SNPS |
| 2019-06-28 | MTCH | MKTX | HSY | LIN | FDS | QCOM | LHX | SBAC | VEEV | SO | PEP | MSFT | HON | AXP | CINF |
| 2019-07-31 | MKTX | ERIE | MTCH | LIN | SYK | MSI | HSY | VEEV | BALL | AXP | AZO | FIS | GS | SNPS | APD |
| 2019-08-30 | QCOM | ENPH | HSY | SBAC | LIN | LMT | SYK | APD | MSFT | ZTS | BALL | WEC | SO | HET | FIS |
| 2019-09-30 | ENPH | HSY | BMY | WEC | LMT | SNPS | SBAC | SO | FISV | QCOM | ETR | ZTS | PEP | BALL | KLAC |
| 2019-10-31 | PODD | BMY | LMT | QCOM | KLAC | NWL | EQIX | SHW | MKTX | KBH | MLM | SO | VRTX | PHM | WEC |
| 2019-11-29 | BMY | QCOM | KLAC | TER | WU | PSX | HET | KBH | XRX | VRTX | MSFT | SO | CPRT | LIN | BF.B |
| 2019-12-31 | ENPH | QCOM | VRTX | XRX | CVNA | DXCM | MSFT | HET | WU | AMGN | BMY | TER | URI | HWM | JPM |
| 2020-01-31 | BMY | SWKS | ANSS | HET | QRVO | MSFT | THC | LLY | CDAY | LMT | ENPH | KSU | TER | QCOM | TIF |
| 2020-02-28 | TSLA | LLY | BMY | HET | SWKS | MSFT | ENPH | TDG | SO | VRTX | QCOM | ANSS | AON | LMT | LDOS |
| 2020-03-31 | ENPH | NEM | TSLA | GEN | ABBV | QCOM | LLY | PODD | CSGP | KR | NOW | PGR | DVA | GOOG | ALL |
| 2020-04-30 | NEM | LLY | ENPH | CRWD | ABBV | KR | CLX | GEN | CI | QCOM | BIIB | PGR | LDOS | CDNS | ANET |
| 2020-05-29 | NEM | LLY | DXCM | ENPH | MRNA | CLX | BBBY | WST | KR | QCOM | CDNS | ABBV | GEN | CI | CRWD |
| 2020-06-30 | ENPH | NEM | EBAY | PENN | LOW | ABBV | MRNA | CDNS | QCOM | MSFT | SPGI | DHI | DG | LEN | DXCM |
| 2020-07-31 | EBAY | TSLA | ENPH | LOW | MRNA | NEM | ABBV | QCOM | PENN | CDNS | MRVL | MSFT | ADSK | XYZ | CLX |
| 2020-08-31 | BBBY | LOW | EBAY | ENPH | CDNS | DHI | PENN | PG | REGN | LEN | META | WHR | TER | NEM | BBY |
| 2020-09-30 | BBBY | LOW | ENPH | TUP | PG | CDNS | TSLA | META | CZR | EBAY | DHI | VIAC | PGR | MRNA | BBY |
| 2020-10-30 | ENPH | PENN | LOW | GME | XYZ | CVNA | VIAC | TSLA | FDX | CRWD | BBBY | WHR | DG | CZR | PBI |
| 2020-11-30 | VIAC | ENPH | PENN | GE | PCG | FDX | BBBY | DDOG | PSKY | XEC | GNRC | CARR | LOW | NOW | WPX |
| 2020-12-31 | MRNA | XYZ | GE | CRWD | PLTR | PENN | WPX | FSLR | GME | KLAC | FCX | AMAT | DVN | CVNA | QEP |
| 2021-01-29 | BBBY | FCX | CLF | PBI | WPX | KLAC | ALB | TSLA | MS | TER | AMAT | CVNA | TUP | APTV | GE |
| 2021-02-26 | GME | TSLA | PBI | CLF | TUP | FCX | PENN | DDS | AXON | TDC | CRWD | GNRC | COHR | XYZ | ALB |
| 2021-03-31 | GME | DVN | FCX | PENN | FANG | NBR | TRIP | ETSY | TPR | OXY | GS | GNRC | VIAC | MRNA | TDC |
| 2021-04-30 | VIAC | DISCA | DISCK | TRIP | TPL | BBWI | FCX | WSM | LPX | DVN | GNRC | AMAT | DELL | CZR | CLF |
| 2021-05-28 | GME | TPL | MAC | LPX | CLF | FCX | WSM | NUE | DDS | BBWI | ALL | TDC | LEN | PHM | TEX |
| 2021-06-30 | NUE | FCX | BBBY | BX | MAC | GS | COF | XEC | CLF | LPX | F | STLD | CAR | DVN | TRGP |
| 2021-07-30 | BX | TGT | GS | DVN | MAC | GNRC | TRGP | F | NUE | GOOG | FCX | MUR | RRC | CRWD | MS |
| 2021-08-31 | MRNA | KKR | BX | SIVB | GS | CLF | TGT | SBNY | NUE | AMD | DDS | GNRC | BBWI | WFC | KSU |
| 2021-09-30 | MRNA | BX | SIVB | SBNY | NUE | PKI | KSU | XEC | MMC | PXD | KKR | AMD | EPAM | FRC | A |
| 2021-10-29 | MRNA | BX | SIVB | SBNY | EOG | RRC | KKR | OXY | GS | M | APA | NUE | DVN | AMD | CB |
| 2021-11-30 | CAR | DDS | KKR | MRNA | M | RRC | BX | APA | COP | DXCM | APP | KLAC | WFC | AZO | JWN |
| 2021-12-31 | CAR | DDS | AMD | KKR | BX | KLAC | PFE | APA | DDOG | APP | ZTS | M | REGN | ODFL | JWN |
| 2022-01-31 | CAR | DDS | BLDR | PFE | WFC | ON | KLAC | AMD | BX | CVX | HPQ | AZO | F | KKR | MRVL |
| 2022-02-28 | WFC | REGN | CVX | XOM | CB | MCK | EXC | COP | PFE | BX | CAR | AXP | AMD | WY | HPQ |
| 2022-03-31 | CAR | FCX | COP | CVX | REGN | ABBV | CF | OXY | CB | MOS | DDS | MCK | ADM | BRK-B | WFC |
| 2022-04-29 | REGN | FCX | ABBV | CVX | MOS | CAR | COP | CF | MCK | EXC | OXY | ADM | CLF | BKR | CB |
| 2022-05-31 | CF | MOS | REGN | EOG | APA | PFE | ABBV | CVX | MRK | MPC | MCK | XOM | ADM | BMY | GILD |
| 2022-06-30 | EOG | APA | MPC | VLO | CF | ABBV | PFE | XOM | EQT | GILD | MOS | OXY | REGN | CTRA | MRK |
| 2022-07-29 | EOG | APA | CF | MPC | MOS | ABBV | ON | XOM | PFE | OXY | VLO | DVN | KLAC | MRNA | MCK |
| 2022-08-31 | CF | MOS | ON | VRTX | COP | CVX | MPC | APA | DVN | MCK | EOG | AZO | UPS | VICI | F |
| 2022-09-30 | CF | DVN | MOS | COP | CVX | MPC | APA | EOG | ON | VRTX | OXY | MCK | XOM | MAR | CAH |
| 2022-10-31 | CF | COP | CVX | APA | EOG | DVN | MPC | MOS | MCK | CAH | AZO | VRTX | CAR | GPC | XOM |
| 2022-11-30 | MPC | CVX | APA | COP | EOG | MRNA | XOM | CF | MRK | BKNG | AIG | AMGN | T | VRTX | GPC |
| 2022-12-30 | MPC | CVX | APA | BKNG | COP | AIG | EOG | MRK | XOM | MRNA | KLAC | T | JPM | ABMD | STLD |
| 2023-01-31 | BKNG | MPC | CLF | MRNA | ABMD | KLAC | BK | BNY | AIG | AON | CAT | COP | HES | MAR | MRK |
| 2023-02-28 | BKNG | MPC | UCL | MOS | CLF | LEN | MAR | ON | DHI | ABNB | ALGN | ULTA | AON | MCHP | DOW |
| 2023-03-31 | BKNG | MPC | UCL | VLO | ABNB | URI | DHI | LEN | XOM | ON | GE | STLD | MCHP | LVS | ULTA |
| 2023-04-28 | BKNG | GE | ADI | MPC | DHI | AVGO | FSLR | XOM | BSX | LEN | MTW | ABNB | CVX | DECK | LW |
| 2023-05-31 | BKNG | PHM | LEN | GE | VRTX | DHI | MDLZ | NEE | ADI | KLAC | HCA | FSLR | HSY | AON | LW |
| 2023-06-30 | BKNG | PHM | LEN | CVNA | PLTR | DHI | GE | KLAC | AVGO | SMCI | MRVL | DAL | CPRT | URI | TDG |
| 2023-07-31 | BKNG | DAL | PHM | GE | CVNA | PANW | JBL | KLAC | DHI | AVGO | HUBB | VLO | MPC | CRWD | EOG |
| 2023-08-31 | SMCI | COIN | BKNG | DAL | GP | PHM | MPC | CCL | PLTR | CVNA | RCL | BBBY | VLO | EOG | DASH |
| 2023-09-29 | CVNA | SMCI | BKNG | PSX | PLTR | MPC | PHM | COIN | JPM | CAT | EMR | EOG | VLO | CPRI | NOW |
| 2023-10-31 | PSX | MPC | BKNG | VLO | EMR | CVNA | SMCI | PHM | KLAC | TMUS | APP | CPRI | CME | NOW | TJX |
| 2023-11-30 | BKNG | IBM | SMCI | TMUS | PGR | NOW | PLTR | FNMA | JPM | CBOE | VST | CVNA | FMCC | CPRT | PHM |
| 2023-12-29 | BKNG | CVNA | COIN | PHM | NOW | UBER | IBM | LEN | PANW | CRWD | XYZ | DHI | KKR | VRT | DECK |
| 2024-01-31 | COIN | CVNA | BKNG | IBM | ANF | CRM | PHM | NOW | FICO | DHI | UBER | CRWD | FMCC | JPM | X |
| 2024-02-29 | SMCI | GE | PGR | IBM | CVNA | TDG | ANF | UBER | CRWD | CRM | BKNG | PCAR | META | CAT | NOW |
| 2024-03-28 | SMCI | ANF | GE | DELL | META | PLTR | CRM | FNMA | FMCC | UBER | IBM | COIN | PGR | ADCT | CVNA |
| 2024-04-30 | SMCI | COIN | ANF | HOOD | NVDA | PGR | PLTR | META | CAT | FNMA | FMCC | GE | ADCT | APP | WSM |
| 2024-05-31 | DELL | ANF | CVNA | COIN | PGR | NVDA | SMCI | VRT | META | VST | FNMA | CEG | WSM | CAT | NRG |
| 2024-06-28 | DELL | VST | FSLR | ANF | VRT | NVDA | PANW | CEG | META | PGR | SMCI | AMZN | NRG | TMUS | KLAC |
| 2024-07-31 | NVDA | ANF | HOOD | VST | CVNA | META | COIN | KLAC | COHR | FSLR | IBM | PANW | APP | GDDY | AMZN |
| 2024-08-30 | NVDA | LUMN | FICO | PGR | CVNA | ANF | PLTR | PANW | META | IRM | TMUS | IBM | WELL | PM | AMT |
| 2024-09-30 | PGR | IBM | NVDA | PM | NEM | PLTR | WELL | TRGP | CEG | VTR | KKR | AMT | UHS | VRT | META |
| 2024-10-31 | CEG | NVDA | VST | META | PLTR | IBM | PGR | LUMN | COHR | HOOD | TMUS | BKNG | MSI | FISV | TT |
| 2024-11-29 | LUMN | VRT | NVDA | TPL | VST | CEG | BKNG | WMB | COIN | TRGP | FMCC | FNMA | FISV | COHR | CRM |
| 2024-12-31 | TPL | APP | CVNA | VST | TRGP | HOOD | VRT | AXON | NVDA | COIN | RCL | TMUS | OKE | BKNG | WMB |
| 2025-01-31 | TPL | VST | COIN | FNMA | APP | MRVL | CEG | FMCC | GEV | META | TRGP | LITE | KMI | GS | LULU |
| 2025-02-28 | HOOD | APP | META | GS | JPM | PGR | BSX | GEV | IBKR | LULU | FOX | FNMA | CIEN | FMCC | DASH |
| 2025-03-31 | HOOD | PGR | APP | TPL | TPR | FOX | ABT | WELL | TMUS | BKNG | JPM | META | GS | UBER | BSX |
| 2025-04-30 | BKNG | PGR | GME | HOOD | UBER | APP | ABT | PM | WELL | TMUS | TPR | CME | TRV | BRK-B | MCK |
| 2025-05-30 | APP | GILD | UBER | BKNG | GME | PM | VRSN | VST | HOOD | NEM | COR | ABT | CME | RCL | CAH |
| 2025-06-30 | APP | GILD | BKNG | HOOD | UBER | PM | VRT | GS | SMCI | RCL | FNMA | MPWR | CCL | ABT | JPM |
| 2025-07-31 | HOOD | APP | RCL | UBER | BKNG | GS | CAR | C | GILD | FNMA | DIS | JPM | CCL | KLAC | HWM |
| 2025-08-29 | STX | HOOD | CAR | COIN | UBER | GEV | GS | C | KLAC | MPWR | GILD | TPR | SSP | DASH | UCL |
| 2025-09-30 | AVGO | C | TE | STX | GS | UBER | FNMA | GOOG | NEM | COIN | GEV | MS | ECHO | FMCC | KLAC |
| 2025-10-31 | NEM | MU | TE | STX | MPWR | KLAC | APP | FMCC | UBER | GILD | GS | HOOD | FNMA | AVGO | ECHO |
| 2025-11-28 | MU | MPWR | HOOD | KLAC | STX | LUMN | APP | GILD | NEM | TE | VRT | ECHO | GS | WDC | GLW |
| 2025-12-31 | WDC | MU | LUMN | STX | AVGO | KLAC | C | MPWR | GILD | VRT | SSP | NEM | M | GS | ATGE |
| 2026-01-30 | WDC | KLAC | NEM | MU | ECHO | ALB | SSP | C | STX | GS | GILD | MPWR | LLY | TE | EXPE |
| 2026-02-27 | WDC | MU | KLAC | TE | GILD | MPWR | ECHO | STX | GLW | ALB | NEM | GOOG | LITE | GOOGL | COHR |
| 2026-03-31 | MU | WDC | KLAC | NEM | COHR | GILD | GLW | LITE | STX | JNJ | IPGP | PSX | CIEN | FDX | ATI |
| 2026-04-30 | MU | KLAC | CAR | PSX | WDC | APA | NEM | COHR | GEV | CF | GILD | JNJ | GLW | FTI | LYB |
| 2026-05-29 | LITE | MU | CAR | KLAC | VRT | APA | WDC | COHR | GLW | GEV | CASY | FIX | PSX | INTC | GILD |
| 2026-06-26 | WDC | MU | HPE | TE | CIEN | KLAC | DELL | LITE | VRT | NUE | COHR | MRVL | SANM | STLD | FLEX |
Scoring script (python)
FORMULA_NAME = "Contrarian 52W Regime Momentum Recovery Quality Hybrid (State-Arbitrated Relay, v1165)"
LOGIC_VARIANT_COUNT = 4
NOTES = """mode=explore; family=contrarian-52w-regime-momentum-recovery-quality-hybrid
New hybrid family built as a state-arbitrated relay instead of a static blend. It preserves the strong parent edge in recovery leaders off 52-week highs, but only pays for deeper drawdowns when repair, liquidity continuity, and operating durability confirm them. In healthy tapes, repaired leaders outrank deeper contrarian names; in choppier tapes, controlled pullbacks with improving trend get priority; in transitions, quality-backed turnarounds can beat pure momentum; in risk-off, the model triages for durable, liquid, lower-vol franchises that are merely bruised rather than broken.
Explicit arbitration rule: when momentum leadership and contrarian depth conflict, stock-state gates decide the sleeve. Deep drawdown names must pass a repair-and-durability gate to avoid falling knives; shallow drawdown leaders need trend persistence to outrank cheaper-looking laggards; transition tapes favor improving quality recoveries over both raw momentum and raw depth.
Deliberate metric coverage this run: active momentum uses 3m, 6m, and 12_1; trend/recovery uses both 200d distance and 52-week-high distance; volatility is active through realized vol; liquidity uses volume, dollar-volume, and trading-days continuity; income uses dividend yield in defensive branches only; valuation rotates to forward_pe and peg in transition/risk-off while pe is deliberately zeroed; growth uses forward_eps plus operating-income and free-cash-flow growth; quality uses operating and free-cash-flow margins; size uses market_cap only as a small negative tilt in strong tapes. Deliberate weight-0 metrics: return_1m_pct, return_12m_pct, dividend_ttm, pe, eps_growth_pct, revenue_growth_pct, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm.
"""
# Deliberate weight-0 metrics this run:
# - Momentum/return: return_1m_pct, return_12m_pct
# - Income: dividend_ttm
# - Valuation: pe
# - Growth: eps_growth_pct, revenue_growth_pct
# - Size/raw levels: shares_outstanding, close, adj_close, high_52w, ma_200d,
# eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm
STRONG_BULL = {
"momentum_12_1_pct": (0.23, +1),
"return_6m_pct": (0.19, +1),
"return_3m_pct": (0.08, +1),
"from_200d_ma_pct": (0.13, +1),
"from_52w_high_pct": (0.17, -1),
"realized_vol_3m": (0.06, -1),
"avg_daily_dollar_volume_3m": (0.04, +1),
"trading_days_3m": (0.03, +1),
"forward_eps": (0.03, +1),
"free_cash_flow_margin_pct": (0.02, +1),
"market_cap": (0.02, -1),
}
SOFT_BULL = {
"from_52w_high_pct": (0.21, -1),
"from_200d_ma_pct": (0.18, +1),
"return_6m_pct": (0.12, +1),
"momentum_12_1_pct": (0.09, +1),
"return_3m_pct": (0.07, +1),
"realized_vol_3m": (0.08, -1),
"avg_daily_volume_3m": (0.05, +1),
"avg_daily_dollar_volume_3m": (0.04, +1),
"operating_income_growth_pct": (0.07, +1),
"free_cash_flow_growth_pct": (0.05, +1),
"operating_margin_pct": (0.04, +1),
}
TRANSITION = {
"from_200d_ma_pct": (0.16, +1),
"from_52w_high_pct": (0.14, -1),
"momentum_12_1_pct": (0.08, +1),
"return_3m_pct": (0.08, +1),
"realized_vol_3m": (0.07, -1),
"avg_daily_dollar_volume_3m": (0.05, +1),
"trading_days_3m": (0.04, +1),
"forward_pe": (0.08, -1),
"peg": (0.05, -1),
"forward_eps": (0.08, +1),
"operating_income_growth_pct": (0.07, +1),
"free_cash_flow_growth_pct": (0.06, +1),
"operating_margin_pct": (0.02, +1),
"free_cash_flow_margin_pct": (0.02, +1),
}
RISK_OFF = {
"from_52w_high_pct": (0.09, -1),
"from_200d_ma_pct": (0.13, +1),
"realized_vol_3m": (0.13, -1),
"avg_daily_dollar_volume_3m": (0.07, +1),
"trading_days_3m": (0.05, +1),
"dividend_yield_ttm_pct": (0.08, +1),
"forward_pe": (0.08, -1),
"peg": (0.05, -1),
"forward_eps": (0.07, +1),
"operating_margin_pct": (0.10, +1),
"free_cash_flow_margin_pct": (0.10, +1),
"free_cash_flow_growth_pct": (0.05, +1),
}
def score_universe(stocks, regime, ctx):
def safe_float(v):
if v is None:
return None
if isinstance(v, bool):
return 1.0 if v else 0.0
try:
x = float(v)
except Exception:
return None
if x != x:
return None
return x
def get_metric(stock, key):
return safe_float(stock.get(key))
def get_symbol(stock):
sym = stock.get("symbol")
if sym is None:
return None
try:
return str(sym)
except Exception:
return None
def rank_map(metric, direction):
values = []
for idx, stock in enumerate(stocks):
v = get_metric(stock, metric)
if v is not None:
values.append((idx, v))
ranked = {}
n = len(values)
if n == 0:
return ranked
values.sort(key=lambda x: x[1], reverse=(direction > 0))
if n == 1:
ranked[values[0][0]] = 1.0
return ranked
i = 0
while i < n:
j = i + 1
while j < n and values[j][1] == values[i][1]:
j += 1
avg_rank = (i + j - 1) * 0.5
score = 1.0 - (avg_rank / (n - 1))
k = i
while k < j:
ranked[values[k][0]] = score
k += 1
i = j
return ranked
def weighted_base(branch):
total = [0.0] * len(stocks)
coverage = [0.0] * len(stocks)
for metric, spec in branch.items():
weight, direction = spec
ranks = rank_map(metric, direction)
for idx, val in ranks.items():
total[idx] += weight * val
coverage[idx] += weight
out = [0.0] * len(stocks)
for idx in range(len(stocks)):
if coverage[idx] > 0.0:
out[idx] = total[idx] / coverage[idx]
return out
def regime_token():
parts = []
if isinstance(regime, str):
parts.append(regime.lower())
elif isinstance(regime, dict):
for key in (
"label",
"name",
"regime",
"state",
"market_regime",
"primary_regime",
"trend",
"description",
):
v = regime.get(key)
if v is not None:
try:
parts.append(str(v).lower())
except Exception:
pass
if ctx and isinstance(ctx, dict):
for key in ("regime", "market_regime", "regime_label", "market_state"):
v = ctx.get(key)
if v is not None:
try:
parts.append(str(v).lower())
except Exception:
pass
text = " ".join(parts)
if "risk" in text or "bear" in text or "defensive" in text or "crash" in text:
return "risk_off"
if "transition" in text or "mixed" in text or "neutral" in text or "sideways" in text:
return "transition"
if "soft" in text or "weak bull" in text or "fragile" in text or "repair" in text:
return "soft_bull"
if "bull" in text or "up" in text or "strong" in text or "momentum" in text:
return "strong_bull"
return "transition"
branch_name = regime_token()
if branch_name == "strong_bull":
branch = STRONG_BULL
elif branch_name == "soft_bull":
branch = SOFT_BULL
elif branch_name == "risk_off":
branch = RISK_OFF
else:
branch = TRANSITION
base_scores = weighted_base(branch)
result = {}
for idx, stock in enumerate(stocks):
symbol = get_symbol(stock)
if not symbol:
continue
m12 = get_metric(stock, "momentum_12_1_pct")
r6 = get_metric(stock, "return_6m_pct")
r3 = get_metric(stock, "return_3m_pct")
d52 = get_metric(stock, "from_52w_high_pct")
d200 = get_metric(stock, "from_200d_ma_pct")
vol = get_metric(stock, "realized_vol_3m")
adv = get_metric(stock, "avg_daily_volume_3m")
addv = get_metric(stock, "avg_daily_dollar_volume_3m")
tdays = get_metric(stock, "trading_days_3m")
fpe = get_metric(stock, "forward_pe")
peg = get_metric(stock, "peg")
feps = get_metric(stock, "forward_eps")
oig = get_metric(stock, "operating_income_growth_pct")
fcfg = get_metric(stock, "free_cash_flow_growth_pct")
om = get_metric(stock, "operating_margin_pct")
fcfm = get_metric(stock, "free_cash_flow_margin_pct")
dy = get_metric(stock, "dividend_yield_ttm_pct")
score = base_scores[idx]
bonus = 0.0
momentum_ok = (
(m12 is not None and m12 > 0.0) or
(r6 is not None and r6 > 0.0) or
(r3 is not None and r3 > -2.0)
)
strong_momentum = (
(m12 is not None and m12 > 8.0) and
(r6 is not None and r6 > 10.0)
)
repaired_trend = (
(d200 is not None and d200 > 0.0) and
(r3 is not None and r3 > -5.0)
)
deep_drawdown = d52 is not None and d52 >= 0.22
shallow_pullback = d52 is not None and 0.07 <= d52 <= 0.22
controlled_vol = vol is None or vol < 42.0
liquid_ok = (
(tdays is None or tdays >= 45.0) and
((addv is not None and addv > 0.0) or (adv is not None and adv > 0.0))
)
durability_ok = (
((om is not None and om > 0.0) or (fcfm is not None and fcfm > 0.0)) and
((fcfg is None or fcfg > -10.0) and (oig is None or oig > -10.0))
)
growth_ok = (
(feps is None or feps > 0.0) and
((oig is not None and oig > 0.0) or (fcfg is not None and fcfg > 0.0))
)
value_ok = (
(fpe is None or (fpe > 0.0 and fpe < 28.0)) and
(peg is None or (peg > 0.0 and peg < 2.2))
)
if branch_name == "strong_bull":
if strong_momentum and repaired_trend and shallow_pullback:
bonus += 0.18
elif deep_drawdown and repaired_trend and durability_ok and liquid_ok:
bonus += 0.08
elif deep_drawdown and not repaired_trend:
bonus -= 0.18
elif not momentum_ok:
bonus -= 0.08
if controlled_vol:
bonus += 0.03
else:
bonus -= 0.04
elif branch_name == "soft_bull":
if deep_drawdown and repaired_trend and durability_ok and controlled_vol:
bonus += 0.16
elif shallow_pullback and strong_momentum and controlled_vol:
bonus += 0.07
elif deep_drawdown and not durability_ok:
bonus -= 0.16
elif not liquid_ok:
bonus -= 0.05
if growth_ok:
bonus += 0.04
elif branch_name == "transition":
turnaround_ok = repaired_trend and durability_ok and growth_ok and value_ok
if turnaround_ok and deep_drawdown:
bonus += 0.18
elif turnaround_ok and shallow_pullback:
bonus += 0.10
elif strong_momentum and not value_ok:
bonus -= 0.07
elif deep_drawdown and (not repaired_trend or not durability_ok):
bonus -= 0.18
if liquid_ok:
bonus += 0.03
else:
defensive_ok = durability_ok and value_ok and controlled_vol and liquid_ok
if defensive_ok and shallow_pullback:
bonus += 0.15
elif defensive_ok and deep_drawdown and repaired_trend:
bonus += 0.08
elif deep_drawdown and not defensive_ok:
bonus -= 0.20
elif strong_momentum and vol is not None and vol > 45.0:
bonus -= 0.06
if dy is not None and dy > 0.0:
bonus += 0.03
if d200 is not None and d200 < -8.0:
bonus -= 0.05
coverage_penalty = 0.0
missing_core = 0
for v in (d52, d200, vol):
if v is None:
missing_core += 1
if missing_core >= 2:
coverage_penalty -= 0.06
if not liquid_ok:
coverage_penalty -= 0.03
result[symbol] = score + bonus + coverage_penalty
return result