← All V2 experiments
Relative return
1.369x
Excess vs bench
36.94%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
56.90%
Mean benchmark gain
14.08%
Mean excess gain
42.82%
Dispersion (ref)
30.09%
Win-rate vs bench (ref)
100.00%
Worst / best ratio (ref)
1.039x / 1.816x
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 | 24.51% | 2.22% | 1.218x |
| 2011-07-01 … 2016-06-30 | 35.58% | 13.74% | 1.192x |
| 2016-07-01 … 2021-06-30 | 107.88% | 20.63% | 1.723x |
| 2021-07-01 … 2026-06-26 | 80.48% | 15.48% | 1.563x |
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.369x · beat benchmark in 179/179
| # | Window | Strategy | Benchmark | Ratio |
|---|---|---|---|---|
| 1 | 2006-07-31 … 2011-07-29 | 22.22% | 1.79% | 1.201x |
| 2 | 2006-08-31 … 2011-08-31 | 22.15% | 0.21% | 1.219x |
| 3 | 2006-09-29 … 2011-08-31 | 18.89% | -0.14% | 1.191x |
| 4 | 2006-10-31 … 2011-10-31 | 16.07% | 0.23% | 1.158x |
| 5 | 2006-11-30 … 2011-11-30 | 13.64% | -0.05% | 1.137x |
| 6 | 2006-12-29 … 2011-11-30 | 14.41% | -0.32% | 1.148x |
| 7 | 2007-01-31 … 2012-01-31 | 12.67% | 0.93% | 1.116x |
| 8 | 2007-02-28 … 2012-01-31 | 11.40% | 1.43% | 1.098x |
| 9 | 2007-03-30 … 2012-03-30 | 13.16% | 3.09% | 1.098x |
| 10 | 2007-04-30 … 2012-04-30 | 11.80% | 2.42% | 1.092x |
| 11 | 2007-05-31 … 2012-05-31 | 8.19% | 0.60% | 1.075x |
| 12 | 2007-06-29 … 2012-06-29 | 6.77% | 1.92% | 1.048x |
| 13 | 2007-07-31 … 2012-07-31 | 7.47% | 2.69% | 1.046x |
| 14 | 2007-08-31 … 2012-08-31 | 8.34% | 2.95% | 1.052x |
| 15 | 2007-09-28 … 2012-09-28 | 7.51% | 3.20% | 1.042x |
| 16 | 2007-10-31 … 2012-10-31 | 7.18% | 2.60% | 1.045x |
| 17 | 2007-11-30 … 2012-11-30 | 8.05% | 3.45% | 1.044x |
| 18 | 2007-12-31 … 2012-12-31 | 7.69% | 3.69% | 1.039x |
| 19 | 2008-01-31 … 2013-01-31 | 12.15% | 5.85% | 1.060x |
| 20 | 2008-02-29 … 2013-02-28 | 12.71% | 6.82% | 1.055x |
| 21 | 2008-03-31 … 2013-03-28 | 16.04% | 7.73% | 1.077x |
| 22 | 2008-04-30 … 2013-04-30 | 16.65% | 7.51% | 1.085x |
| 23 | 2008-05-30 … 2013-04-30 | 15.38% | 7.81% | 1.070x |
| 24 | 2008-06-30 … 2013-06-28 | 22.27% | 9.33% | 1.118x |
| 25 | 2008-07-31 … 2013-07-31 | 27.40% | 10.48% | 1.153x |
| 26 | 2008-08-29 … 2013-07-31 | 28.15% | 10.52% | 1.160x |
| 27 | 2008-09-30 … 2013-09-30 | 33.17% | 11.48% | 1.195x |
| 28 | 2008-10-31 … 2013-10-31 | 41.80% | 15.76% | 1.225x |
| 29 | 2008-11-28 … 2013-10-31 | 43.97% | 17.46% | 1.226x |
| 30 | 2008-12-31 … 2013-12-31 | 46.70% | 18.44% | 1.239x |
| 31 | 2009-01-30 … 2013-12-31 | 49.75% | 20.64% | 1.241x |
| 32 | 2009-02-27 … 2014-01-31 | 53.37% | 21.63% | 1.261x |
| 33 | 2009-03-31 … 2014-03-31 | 52.31% | 20.60% | 1.263x |
| 34 | 2009-04-30 … 2014-04-30 | 48.77% | 19.00% | 1.250x |
| 35 | 2009-05-29 … 2014-04-30 | 50.33% | 18.32% | 1.270x |
| 36 | 2009-06-30 … 2014-06-30 | 50.91% | 19.01% | 1.268x |
| 37 | 2009-07-31 … 2014-07-31 | 45.52% | 17.39% | 1.240x |
| 38 | 2009-08-31 … 2014-08-29 | 44.27% | 17.70% | 1.226x |
| 39 | 2009-09-30 … 2014-09-30 | 40.61% | 16.64% | 1.205x |
| 40 | 2009-10-30 … 2014-09-30 | 45.67% | 17.08% | 1.244x |
| 41 | 2009-11-30 … 2014-11-28 | 43.33% | 16.82% | 1.227x |
| 42 | 2009-12-31 … 2014-12-31 | 40.22% | 16.28% | 1.206x |
| 43 | 2010-01-29 … 2014-12-31 | 41.93% | 17.23% | 1.211x |
| 44 | 2010-02-26 … 2015-01-30 | 39.90% | 15.80% | 1.208x |
| 45 | 2010-03-31 … 2015-03-31 | 38.61% | 15.40% | 1.201x |
| 46 | 2010-04-30 … 2015-04-30 | 37.85% | 15.38% | 1.195x |
| 47 | 2010-05-28 … 2015-04-30 | 40.62% | 17.09% | 1.201x |
| 48 | 2010-06-30 … 2015-06-30 | 45.47% | 17.45% | 1.239x |
| 49 | 2010-07-30 … 2015-06-30 | 44.28% | 16.43% | 1.239x |
| 50 | 2010-08-31 … 2015-08-31 | 40.24% | 15.76% | 1.211x |
| 51 | 2010-09-30 … 2015-09-30 | 35.43% | 13.61% | 1.192x |
| 52 | 2010-10-29 … 2015-09-30 | 33.13% | 13.06% | 1.177x |
| 53 | 2010-11-30 … 2015-11-30 | 34.46% | 15.09% | 1.168x |
| 54 | 2010-12-31 … 2015-12-31 | 33.71% | 13.55% | 1.178x |
| 55 | 2011-01-31 … 2016-01-29 | 31.33% | 11.90% | 1.174x |
| 56 | 2011-02-28 … 2016-01-29 | 31.60% | 11.53% | 1.180x |
| 57 | 2011-03-31 … 2016-03-31 | 31.98% | 12.90% | 1.169x |
| 58 | 2011-04-29 … 2016-04-29 | 31.46% | 12.39% | 1.170x |
| 59 | 2011-05-31 … 2016-05-31 | 31.25% | 12.94% | 1.162x |
| 60 | 2011-06-30 … 2016-06-30 | 33.70% | 13.30% | 1.180x |
| 61 | 2011-07-29 … 2016-07-29 | 39.49% | 14.52% | 1.218x |
| 62 | 2011-08-31 … 2016-08-31 | 40.74% | 15.19% | 1.222x |
| 63 | 2011-09-30 … 2016-09-30 | 43.87% | 16.32% | 1.237x |
| 64 | 2011-10-31 … 2016-10-31 | 40.24% | 14.02% | 1.230x |
| 65 | 2011-11-30 … 2016-11-30 | 44.32% | 14.66% | 1.259x |
| 66 | 2011-12-30 … 2016-12-30 | 44.00% | 14.92% | 1.253x |
| 67 | 2012-01-31 … 2017-01-31 | 44.10% | 14.63% | 1.257x |
| 68 | 2012-02-29 … 2017-02-28 | 42.58% | 14.78% | 1.242x |
| 69 | 2012-03-30 … 2017-02-28 | 42.74% | 14.43% | 1.247x |
| 70 | 2012-04-30 … 2017-04-28 | 39.01% | 14.61% | 1.213x |
| 71 | 2012-05-31 … 2017-05-31 | 44.22% | 15.98% | 1.243x |
| 72 | 2012-06-29 … 2017-05-31 | 44.77% | 15.44% | 1.254x |
| 73 | 2012-07-31 … 2017-07-31 | 45.34% | 15.43% | 1.259x |
| 74 | 2012-08-31 … 2017-08-31 | 45.93% | 15.12% | 1.268x |
| 75 | 2012-09-28 … 2017-08-31 | 45.54% | 14.77% | 1.268x |
| 76 | 2012-10-31 … 2017-10-31 | 48.59% | 16.12% | 1.280x |
| 77 | 2012-11-30 … 2017-11-30 | 49.53% | 16.79% | 1.280x |
| 78 | 2012-12-31 … 2017-12-29 | 48.17% | 16.93% | 1.267x |
| 79 | 2013-01-31 … 2018-01-31 | 49.60% | 17.57% | 1.272x |
| 80 | 2013-02-28 … 2018-02-28 | 52.02% | 16.21% | 1.308x |
| 81 | 2013-03-28 … 2018-02-28 | 49.14% | 15.81% | 1.288x |
| 82 | 2013-04-30 … 2018-04-30 | 45.53% | 14.25% | 1.274x |
| 83 | 2013-05-31 … 2018-05-31 | 38.30% | 14.57% | 1.207x |
| 84 | 2013-06-28 … 2018-05-31 | 41.02% | 14.97% | 1.227x |
| 85 | 2013-07-31 … 2018-07-31 | 39.11% | 14.83% | 1.211x |
| 86 | 2013-08-30 … 2018-07-31 | 40.36% | 15.59% | 1.214x |
| 87 | 2013-09-30 … 2018-09-28 | 43.92% | 15.84% | 1.242x |
| 88 | 2013-10-31 … 2018-10-31 | 33.91% | 12.89% | 1.186x |
| 89 | 2013-11-29 … 2018-10-31 | 33.95% | 12.60% | 1.190x |
| 90 | 2013-12-31 … 2018-12-31 | 30.30% | 9.93% | 1.185x |
| 91 | 2014-01-31 … 2019-01-31 | 31.26% | 12.37% | 1.168x |
| 92 | 2014-02-28 … 2019-02-28 | 29.60% | 12.38% | 1.153x |
| 93 | 2014-03-31 … 2019-03-29 | 31.69% | 12.76% | 1.168x |
| 94 | 2014-04-30 … 2019-04-30 | 34.10% | 13.73% | 1.179x |
| 95 | 2014-05-30 … 2019-04-30 | 33.94% | 13.54% | 1.180x |
| 96 | 2014-06-30 … 2019-06-28 | 36.74% | 12.81% | 1.212x |
| 97 | 2014-07-31 … 2019-07-31 | 38.78% | 13.30% | 1.225x |
| 98 | 2014-08-29 … 2019-07-31 | 38.61% | 12.80% | 1.229x |
| 99 | 2014-09-30 … 2019-09-30 | 40.19% | 12.70% | 1.244x |
| 100 | 2014-10-31 … 2019-10-31 | 40.71% | 12.91% | 1.246x |
| 101 | 2014-11-28 … 2019-10-31 | 41.01% | 12.60% | 1.252x |
| 102 | 2014-12-31 … 2019-12-31 | 46.08% | 14.16% | 1.280x |
| 103 | 2015-01-30 … 2019-12-31 | 46.16% | 14.85% | 1.273x |
| 104 | 2015-02-27 … 2020-01-31 | 48.10% | 14.04% | 1.299x |
| 105 | 2015-03-31 … 2020-03-31 | 44.69% | 8.56% | 1.333x |
| 106 | 2015-04-30 … 2020-04-30 | 51.32% | 11.65% | 1.355x |
| 107 | 2015-05-29 … 2020-05-29 | 51.29% | 12.61% | 1.343x |
| 108 | 2015-06-30 … 2020-06-30 | 53.55% | 13.64% | 1.351x |
| 109 | 2015-07-31 … 2020-07-31 | 64.76% | 14.60% | 1.438x |
| 110 | 2015-08-31 … 2020-08-31 | 73.61% | 18.07% | 1.470x |
| 111 | 2015-09-30 … 2020-09-30 | 73.08% | 17.05% | 1.479x |
| 112 | 2015-10-30 … 2020-10-30 | 67.85% | 14.60% | 1.465x |
| 113 | 2015-11-30 … 2020-11-30 | 77.06% | 17.43% | 1.508x |
| 114 | 2015-12-31 … 2020-12-31 | 79.00% | 18.65% | 1.509x |
| 115 | 2016-01-29 … 2021-01-29 | 116.59% | 19.26% | 1.816x |
| 116 | 2016-02-29 … 2021-02-26 | 112.29% | 19.79% | 1.772x |
| 117 | 2016-03-31 … 2021-03-31 | 114.69% | 19.42% | 1.798x |
| 118 | 2016-04-29 … 2021-03-31 | 116.21% | 19.66% | 1.807x |
| 119 | 2016-05-31 … 2021-05-28 | 112.14% | 20.42% | 1.762x |
| 120 | 2016-06-30 … 2021-06-30 | 110.83% | 21.06% | 1.742x |
| 121 | 2016-07-29 … 2021-06-30 | 107.88% | 20.63% | 1.723x |
| 122 | 2016-08-31 … 2021-08-31 | 105.83% | 21.75% | 1.691x |
| 123 | 2016-09-30 … 2021-09-30 | 102.71% | 20.22% | 1.686x |
| 124 | 2016-10-31 … 2021-10-29 | 108.67% | 22.50% | 1.703x |
| 125 | 2016-11-30 … 2021-11-30 | 107.62% | 21.87% | 1.704x |
| 126 | 2016-12-30 … 2021-11-30 | 110.12% | 21.75% | 1.726x |
| 127 | 2017-01-31 … 2022-01-31 | 97.02% | 20.17% | 1.639x |
| 128 | 2017-02-28 … 2022-02-28 | 98.42% | 18.51% | 1.674x |
| 129 | 2017-03-31 … 2022-03-31 | 101.99% | 19.46% | 1.691x |
| 130 | 2017-04-28 … 2022-03-31 | 105.70% | 19.46% | 1.722x |
| 131 | 2017-05-31 … 2022-05-31 | 101.98% | 15.59% | 1.747x |
| 132 | 2017-06-30 … 2022-06-30 | 92.80% | 13.08% | 1.705x |
| 133 | 2017-07-31 … 2022-07-29 | 92.09% | 15.16% | 1.668x |
| 134 | 2017-08-31 … 2022-08-31 | 91.08% | 13.72% | 1.680x |
| 135 | 2017-09-29 … 2022-08-31 | 92.08% | 13.56% | 1.691x |
| 136 | 2017-10-31 … 2022-10-31 | 85.84% | 11.86% | 1.661x |
| 137 | 2017-11-30 … 2022-11-30 | 85.67% | 12.52% | 1.650x |
| 138 | 2017-12-29 … 2022-11-30 | 87.53% | 12.46% | 1.668x |
| 139 | 2018-01-31 … 2023-01-31 | 83.90% | 11.01% | 1.657x |
| 140 | 2018-02-28 … 2023-02-28 | 79.48% | 11.03% | 1.616x |
| 141 | 2018-03-29 … 2023-02-28 | 79.63% | 11.72% | 1.608x |
| 142 | 2018-04-30 … 2023-04-28 | 75.66% | 13.01% | 1.554x |
| 143 | 2018-05-31 … 2023-05-31 | 79.56% | 12.95% | 1.590x |
| 144 | 2018-06-29 … 2023-05-31 | 79.94% | 13.01% | 1.592x |
| 145 | 2018-07-31 … 2023-07-31 | 87.61% | 14.67% | 1.636x |
| 146 | 2018-08-31 … 2023-08-31 | 83.10% | 13.51% | 1.613x |
| 147 | 2018-09-28 … 2023-08-31 | 82.97% | 13.56% | 1.611x |
| 148 | 2018-10-31 … 2023-10-31 | 79.81% | 12.60% | 1.597x |
| 149 | 2018-11-30 … 2023-11-30 | 81.65% | 14.58% | 1.585x |
| 150 | 2018-12-31 … 2023-12-29 | 88.07% | 17.26% | 1.604x |
| 151 | 2019-01-31 … 2024-01-31 | 87.03% | 16.27% | 1.609x |
| 152 | 2019-02-28 … 2024-01-31 | 87.20% | 15.94% | 1.615x |
| 153 | 2019-03-29 … 2024-03-28 | 98.03% | 17.50% | 1.685x |
| 154 | 2019-04-30 … 2024-04-30 | 93.48% | 15.50% | 1.675x |
| 155 | 2019-05-31 … 2024-05-31 | 96.49% | 18.12% | 1.663x |
| 156 | 2019-06-28 … 2024-06-28 | 93.88% | 17.99% | 1.643x |
| 157 | 2019-07-31 … 2024-07-31 | 89.41% | 17.70% | 1.609x |
| 158 | 2019-08-30 … 2024-08-30 | 90.93% | 18.41% | 1.612x |
| 159 | 2019-09-30 … 2024-09-30 | 95.92% | 18.65% | 1.651x |
| 160 | 2019-10-31 … 2024-10-31 | 97.13% | 17.87% | 1.673x |
| 161 | 2019-11-29 … 2024-11-29 | 104.31% | 18.64% | 1.722x |
| 162 | 2019-12-31 … 2024-12-31 | 96.23% | 17.62% | 1.668x |
| 163 | 2020-01-31 … 2025-01-31 | 101.34% | 18.07% | 1.705x |
| 164 | 2020-02-28 … 2025-02-28 | 97.70% | 19.00% | 1.661x |
| 165 | 2020-03-31 … 2025-03-31 | 96.74% | 19.24% | 1.650x |
| 166 | 2020-04-30 … 2025-04-30 | 89.60% | 16.49% | 1.628x |
| 167 | 2020-05-29 … 2025-04-30 | 88.58% | 15.80% | 1.629x |
| 168 | 2020-06-30 … 2025-06-30 | 92.72% | 18.19% | 1.631x |
| 169 | 2020-07-31 … 2025-07-31 | 83.32% | 17.87% | 1.555x |
| 170 | 2020-08-31 … 2025-08-29 | 79.85% | 16.69% | 1.541x |
| 171 | 2020-09-30 … 2025-09-30 | 84.95% | 18.57% | 1.560x |
| 172 | 2020-10-30 … 2025-09-30 | 88.81% | 19.43% | 1.581x |
| 173 | 2020-11-30 … 2025-11-28 | 77.59% | 17.77% | 1.508x |
| 174 | 2020-12-31 … 2025-12-31 | 80.67% | 16.92% | 1.545x |
| 175 | 2021-01-29 … 2025-12-31 | 57.78% | 17.20% | 1.346x |
| 176 | 2021-02-26 … 2026-01-30 | 66.40% | 17.04% | 1.422x |
| 177 | 2021-03-31 … 2026-03-31 | 63.07% | 14.07% | 1.430x |
| 178 | 2021-04-30 … 2026-04-30 | 72.91% | 16.03% | 1.490x |
| 179 | 2021-05-28 … 2026-04-30 | 74.43% | 16.22% | 1.501x |
Notes
mode=explore; family=contrarian-52w-recovery-quality-hybrid
New hybrid family that combines the contrarian-52w recovery ladder with the recovery-quality relay, but not as a flat average: each regime runs an explicit arbitration between a price-repair sleeve and a business-durability sleeve so deep rebounds only survive when quality/liquidity evidence is good enough, while cleaner recoveries can outrank mediocre fundamentals in stronger tapes.
Deliberate metric coverage: actively use one recovery cluster (from_52w_high_pct plus from_200d_ma_pct), one momentum cluster (return_3m_pct, return_6m_pct, momentum_12_1_pct, with return_12m_pct only as a repair confirmation), one volatility check, two liquidity checks, one income check, one valuation check, one growth cluster, one quality cluster, and one size tilt. Deliberately weight return_1m_pct, avg_daily_volume_3m, dividend_ttm, pe, eps_growth_pct, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, and free_cash_flow_ttm at zero this run to avoid collapsing into the same parent stack while still covering the full metric menu consciously. Sparse fundamentals are normalized by present weight before arbitration.
Lesson notes
explore/contrarian-52w-recovery-quality-hybrid: relative_return 1.1436x (delta -0.2258 vs exp_1104); win-rate 97.2067%, worst-window 0.990773, dispersion 15.6651%.
explore/contrarian-52w-recovery-quality-regime-momentum-hybrid: relative_return 1.0413x (delta -0.3282 vs exp_1104); win-rate 99.4413%, worst-window 0.983682, dispersion 6.4189%.
explore/contrarian-52w-recovery-quality-hybrid: relative_return 1.2779x (delta -0.0915 vs exp_1104); win-rate 94.4134%, worst-window 0.961218, dispersion 22.6979%.
explore/contrarian-52w-recovery-quality-regime-momentum-hybrid: relative_return 1.3864x (delta +0.0169 vs exp_1104); win-rate 100.0%, worst-window 1.055402, dispersion 31.336%.
explore/contrarian-52w-recovery-quality-regime-momentum-hybrid: relative_return 1.0983x (delta -0.2711 vs exp_1104); win-rate 100.0%, worst-window 1.015473, dispersion 8.902%.
explore/contrarian-52w-recovery-quality-regime-momentum-hybrid: relative_return 1.2277x (delta -0.1417 vs exp_1104); win-rate 93.2961%, worst-window 0.962398, dispersion 17.9162%.
explore/contrarian-52w-recovery-quality-regime-momentum-hybrid: relative_return 1.0808x (delta -0.2886 vs exp_1104); win-rate 97.2067%, worst-window 0.968241, dispersion 10.7931%.
explore/contrarian-52w-recovery-quality-regime-momentum-hybrid: relative_return 1.0734x (delta -0.2960 vs exp_1104); win-rate 94.4134%, worst-window 0.95015, dispersion 9.9316%.
explore/contrarian-52w-recovery-quality-regime-momentum-hybrid: relative_return 1.1144x (delta -0.2550 vs exp_1104); win-rate 99.4413%, worst-window 0.999356, dispersion 11.684%.
explore/contrarian-52w-recovery-quality-hybrid: relative_return 1.3694x (delta -0.0563 vs exp_758); win-rate 100.0%, worst-window 1.038568, dispersion 30.093%.
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 | GOOGL | GOOG | XOM | ILMN | T | MRK | AAPL | CMCSA | BAC | CPB | SLG | MO | MSFT | DGX |
| 2006-08-31 | MAY | ILMN | GOOGL | GOOG | AAPL | XOM | AKAM | ICE | MSFT | NVDA | ATI | DDS | VTR | MRK | T |
| 2006-09-29 | MAY | ILMN | AAPL | AKAM | GOOG | GOOGL | ATI | LVS | AAL | BKNG | KMX | MNST | AT | MTW | ORCL |
| 2006-10-31 | MAY | AKAM | ALGN | GOOG | INTC | AAPL | BKNG | AT | ORCL | EXPD | GOOGL | KSS | GT | UAA | ILMN |
| 2006-11-30 | MAY | GOOG | MA | GOOGL | ILMN | ICE | AAPL | REGN | ALGN | AKAM | AT | UAA | BKNG | GS | INTC |
| 2006-12-29 | MAY | MA | ICE | ALGN | REGN | EXPE | ILMN | AAPL | ATI | GOOG | CF | NVDA | AT | MTCH | CRM |
| 2007-01-31 | MAY | ICE | CF | MA | AAPL | UAL | ALGN | EXPE | GT | REGN | MGM | LVS | DHI | TTWO | TEX |
| 2007-02-28 | MAY | ICE | CF | ALGN | MGM | GT | MA | BKNG | UAL | DLX | WYNN | AAPL | ON | CBRE | ALB |
| 2007-03-30 | MAY | CF | ICE | GT | DLX | ON | MGM | BKNG | WYNN | MA | MOS | HP | MLM | DECK | UIS |
| 2007-04-30 | MAY | CF | GT | ICE | DLX | ALGN | ANDV | MOS | AMZN | HP | ON | TTWO | OI | TEX | CMI |
| 2007-05-31 | MAY | GT | FSLR | CF | ALGN | CLF | HES | AAPL | BKNG | AMZN | DLX | ANDV | OI | MA | ICE |
| 2007-06-29 | MAY | FSLR | KMG | CF | CLF | AAPL | DLX | AMZN | ANDV | MA | GT | NOV | AL | ICE | NRG |
| 2007-07-31 | AAPL | FSLR | CF | AL | AXON | AMZN | DJ | KMG | MA | MOS | GOOGL | GOOG | ICE | CE | MAY |
| 2007-08-31 | AAPL | FSLR | CF | AMZN | KMG | AXON | GRMN | AL | ALGN | ISRG | FCX | INTC | DECK | GOOGL | GOOG |
| 2007-09-28 | AAPL | GRMN | CF | WYNN | MOS | AMZN | NOV | GME | LVS | FTI | ISRG | MPWR | VRTX | GOOGL | GOOG |
| 2007-10-31 | AAPL | MOS | GOOGL | GOOG | ISRG | CF | WYNN | AMZN | GRMN | BBBY | FLR | NOV | MPWR | MSFT | LVS |
| 2007-11-30 | FSLR | AAPL | GOOG | GOOGL | ISRG | MOS | CF | MSFT | AMZN | FCX | FTI | NDAQ | AL | FLR | NOV |
| 2007-12-31 | AAPL | FSLR | GOOG | GOOGL | MOS | MSFT | CF | ISRG | PG | XOM | ADM | PRGO | MCD | AMZN | JEC |
| 2008-01-31 | AAPL | MOS | CF | FSLR | GOOG | GOOGL | MSFT | ESRX | PRGO | JEC | MA | ADM | ILMN | RRC | HES |
| 2008-02-29 | MOS | AAPL | CF | FSLR | PRGO | RRC | CLF | CNX | CTRA | GOOG | MA | OI | XOM | APA | MEE |
| 2008-03-31 | MOS | AAPL | FSLR | PRGO | WMT | MEE | CSX | MA | GILD | ILMN | CLF | RRC | EOG | STLD | APA |
| 2008-04-30 | MOS | AAPL | FSLR | MA | CF | MEE | CLF | WMT | APA | GOOG | ESV | HP | XOM | DVN | PRGO |
| 2008-05-30 | FSLR | AAPL | MEE | MOS | ESV | CLF | SWN | CF | BTUUQ | MA | GOOG | BCR | HRS | CELG | GOOGL |
| 2008-06-30 | AAPL | MEE | MOS | ESV | CLF | HP | FSLR | BTUUQ | BCR | SWN | COP | MA | WMT | NBR | APA |
| 2008-07-31 | AAPL | ESV | MEE | BCR | SWN | CLF | BTUUQ | IBM | FSLR | APOL | MOS | ATGE | CELG | FDO | WYE |
| 2008-08-29 | SWN | AAPL | BCR | CF | ROH | DF | ESV | MBI | CLF | FSLR | FDO | APOL | CELG | ATGE | BTUUQ |
| 2008-09-30 | SWN | BCR | DF | FDO | CELG | APOL | ATGE | WMT | ROH | CEPH | HRS | AAPL | FI | WFC | COG |
| 2008-10-31 | SWN | WFC | AAPL | BCR | BRL | WMT | TFC | STE | ROH | GIS | DF | XOM | WWY | CHD | DLTR |
| 2008-11-28 | AAPL | DLTR | BRL | SWN | XOM | WMT | BCR | ROH | MCD | CHD | DF | WFC | CLX | KR | AMGN |
| 2008-12-31 | XOM | AMGN | AAPL | BRL | SHW | DLTR | DAL | WFC | AZO | MCD | WRB | WMT | GILD | BMY | GOOG |
| 2009-01-30 | XOM | NFLX | AAPL | SWN | DLTR | BRL | ROH | ALK | GILD | VRTX | MNST | GOOG | DISCA | AMGN | ABT |
| 2009-02-27 | XOM | VRTX | NFLX | AAPL | AZO | GOOG | ORLY | VTRS | DLTR | MNST | GOOGL | AAP | PCG | WMT | NEM |
| 2009-03-31 | XOM | NFLX | AZO | VTRS | AAPL | AAP | DLTR | GOOG | ROH | ORLY | NEM | MNST | EW | AN | DRI |
| 2009-04-30 | F | AAPL | NFLX | AN | GOOG | AAP | AZO | ROH | BR | DRI | XOM | MNST | GS | IBM | VTRS |
| 2009-05-29 | AAPL | F | GS | AN | GOOG | AZO | FFIV | DRI | FCX | MNST | IBM | EW | NFLX | MS | AAP |
| 2009-06-30 | CAR | F | WDC | AAPL | EXPE | GS | ASH | GNW | PALM | AN | GOOG | MPWR | TSN | BWA | NFLX |
| 2009-07-31 | CAR | ASH | STX | F | GT | BAC | AAPL | THC | PALM | LULU | BLDR | TT | TER | DDS | EBAY |
| 2009-08-31 | CAR | GNW | F | BAC | LULU | LVS | THC | IP | PALM | FNMA | UIS | MTG | CBRE | GT | FITB |
| 2009-09-30 | CAR | GNW | PALM | MTG | SSP | UIS | LVS | FITB | ASH | F | BAC | SLG | DDR | C | FNMA |
| 2009-10-30 | CAR | GNW | SSP | BC | SW | HIG | INCY | LVS | THC | PALM | SLG | UIS | EXPE | STX | BKNG |
| 2009-11-30 | CAR | GNW | KMG | BC | VSTNQ | SSP | UIS | GGP | LVS | THC | HIG | MAC | AAPL | STI | STX |
| 2009-12-31 | CAR | SANM | GGP | VSTNQ | SSP | UAL | UIS | INCY | DDS | AMD | LVS | STI | BKNG | THC | LPX |
| 2010-01-29 | SANM | CAR | UAL | AMD | UIS | INCY | GGP | DDS | F | BC | SLG | MTW | BKNG | STX | JBL |
| 2010-02-26 | CAR | SANM | UAL | ACS | AMD | UIS | NYT | GNW | MTW | F | AAL | INCY | MU | GGP | LVS |
| 2010-03-31 | SANM | UAL | F | CLF | INCY | GNW | AAL | NYT | SMCI | LYV | LULU | GGP | DDS | ETFC | UIS |
| 2010-04-30 | UAL | MTG | SANM | GNW | INCY | LYV | CLF | DDS | ETFC | BC | MBI | LPX | VIAV | LULU | NFLX |
| 2010-05-28 | UAL | BC | SANM | MTG | ETFC | MBI | LYV | ZION | INCY | SSP | BBWI | AAL | DPZ | WLL | DDS |
| 2010-06-30 | AAPL | ETFC | AAL | UAL | AKAM | WLL | NFLX | LVS | PRGO | C | HSY | DECK | FFIV | CMG | ALK |
| 2010-07-30 | AAPL | ETFC | AAL | C | LVS | UAL | FFIV | AAP | WLL | DECK | KDP | INTU | FIS | GS | AZO |
| 2010-08-31 | AAPL | ETFC | LVS | NEM | FFIV | AKAM | NFLX | MBI | BKNG | CMS | AZO | WLL | CMI | CTSH | NTAP |
| 2010-09-30 | ETFC | NFLX | AKAM | LVS | AAPL | FFIV | CRM | MBI | AAL | BKNG | FTNT | URI | CMG | CCU | NTAP |
| 2010-10-29 | ETFC | LVS | NFLX | FTNT | MBI | AAPL | AAL | FFIV | UAL | CMG | BKNG | EC | WLL | URI | VRTS |
| 2010-11-30 | ETFC | LVS | NFLX | BKNG | MBI | CMG | URI | VRTS | UAL | EC | FFIV | WLL | FTNT | AAL | AAPL |
| 2010-12-31 | ETFC | LVS | NFLX | URI | CMG | FFIV | ACAS | DECK | WLL | VRTS | LULU | LYB | BKNG | FTNT | MBI |
| 2011-01-31 | MAY | ETFC | LVS | FFIV | AIG | CMG | URI | DECK | WLL | MBI | LPX | F | CIEN | MAS | AAPL |
| 2011-02-28 | MAY | ETFC | URI | VIAV | NFLX | NVDA | LULU | WLL | AIG | IPGP | NXPI | LPX | ANDV | AAPL | MAS |
| 2011-03-31 | MAY | IPGP | VIAV | NXPI | URI | ETFC | NVDA | NFLX | ANDV | SWKS | TSLA | LVS | AAPL | CIEN | LPX |
| 2011-04-29 | MAY | IPGP | VIAV | URI | NVDA | NXPI | LULU | TSLA | ANDV | DECK | KLAC | ETFC | REGN | DF | BC |
| 2011-05-31 | MAY | IPGP | LULU | MTW | URI | NXPI | VIAV | NVDA | ANDV | GMCR | PETM | EP | WFM | GR | FDO |
| 2011-06-30 | MAY | IPGP | EP | ANF | NXPI | COG | WCG | LULU | NFLX | DDS | ULTA | BKNG | DPZ | ABMD | FTNT |
| 2011-07-29 | AAPL | ULTA | COG | CTRA | CEPH | IPGP | MNST | DPZ | MAY | VRTS | BIIB | DDS | NFLX | EP | LULU |
| 2011-08-31 | AAPL | CF | CTRA | BIIB | MCD | DG | LULU | WYNN | AZO | ULTA | DLTR | EQT | BKNG | OKE | IRM |
| 2011-09-30 | AAPL | MNST | AZO | VFC | DLTR | CF | DPZ | NI | ULTA | V | KMB | IBM | NEM | DG | MA |
| 2011-10-31 | AAPL | CF | MAY | KLAC | BIIB | DLTR | VFC | MNST | CTRA | MCD | AZO | IBM | GOOG | ULTA | DG |
| 2011-11-30 | AAPL | INTC | CTRA | GOOG | KLAC | DLTR | ULTA | VFC | BIIB | PM | IBM | GOOGL | MA | GWW | OKE |
| 2011-12-30 | AAPL | GOOG | KLAC | GRMN | INTC | XOM | PM | GOOGL | DLTR | GPC | OKE | VFC | MA | DOC | TJX |
| 2012-01-31 | URI | COG | REGN | WCG | GNRC | AAPL | MNST | AAL | MBI | ABMD | STX | ADS | DPZ | LYB | FAST |
| 2012-02-29 | URI | STX | AAPL | MOH | REGN | WCG | NXPI | HCA | LYB | MBI | ITT | GRMN | SWKS | FAST | COG |
| 2012-03-30 | AAPL | STX | BLDR | URI | REGN | MOH | NXPI | MTG | BKNG | LYB | EQIX | WCG | TEX | COG | HFC |
| 2012-04-30 | AAPL | REGN | BLDR | URI | EQIX | STX | NXPI | FBHS | FICO | ULTA | PHM | BKNG | EC | GPS | MNST |
| 2012-05-31 | AAPL | AAL | REGN | STX | BLDR | BKNG | EQIX | EC | ORLY | GPS | MNST | LULU | INCY | URI | MPWR |
| 2012-06-29 | AAPL | AAL | REGN | BLDR | STX | MNST | EXPE | BKNG | VRTX | EQIX | ROST | TRIP | ALGN | SHW | INCY |
| 2012-07-31 | AAPL | EXPE | LPX | AAL | MNST | SHW | EW | EQIX | VRTX | DG | STX | V | MRK | STZ | SBAC |
| 2012-08-31 | AAPL | STX | ANDV | PHM | STZ | LPX | KBH | EQIX | VLO | UIS | EXPE | WOR | SHW | GPS | GOOG |
| 2012-09-28 | PHM | LPX | STX | AAPL | KBH | EXPE | ANDV | STZ | VRTX | BLDR | LYB | VLO | AAL | LEN | BBBY |
| 2012-10-31 | AAPL | PHM | BBBY | KBH | ANDV | LPX | BLDR | GNRC | STZ | GOOG | GOOGL | WSM | MAS | ALL | HCA |
| 2012-11-30 | KBH | PHM | BBBY | GNRC | LPX | ANDV | AAPL | STZ | REGN | FSLR | WHR | PSX | AXON | EXPE | META |
| 2012-12-31 | FSLR | GNRC | LPX | PHM | REGN | KBH | BBBY | GNW | THC | ANDV | WHR | AXON | AAPL | SW | NFLX |
| 2013-01-31 | NFLX | PHM | LPX | OMX | META | KBH | THC | BBBY | VRTS | URI | WHR | FSLR | ANDV | SW | APO |
| 2013-02-28 | NFLX | OMX | THC | MTG | VRTS | LPX | GNRC | PHM | APO | KBH | META | URI | DAL | MPC | CAR |
| 2013-03-28 | NFLX | FMCC | FNMA | OMX | MTG | SVU | VRTS | THC | APO | GNRC | DAL | GNW | VLO | CPAY | LPX |
| 2013-04-30 | FNMA | FMCC | OMX | MTG | NFLX | THC | HRB | ANDV | VRTS | PSX | ALK | GILD | ENPH | MPC | APO |
| 2013-05-31 | FNMA | FMCC | OMX | MTG | TSLA | NFLX | APO | SVU | KBH | FSLR | VRTS | REGN | ALK | GME | AAPL |
| 2013-06-28 | FNMA | FMCC | OMX | TSLA | NFLX | FSLR | MTG | SVU | VRTS | REGN | BBBY | CAR | MU | CPAY | KBH |
| 2013-07-31 | FNMA | FMCC | OMX | TSLA | BBBY | MTG | FSLR | NFLX | SVU | VRTS | GME | FANG | GNW | MU | AAPL |
| 2013-08-30 | OMX | FNMA | TSLA | FMCC | MTG | BBBY | SVU | NFLX | AAPL | FANG | TRIP | GME | BBY | REGN | GNW |
| 2013-09-30 | OMX | TSLA | FNMA | FMCC | BBBY | MTG | NFLX | META | AAPL | GME | FANG | FL | AXON | EA | BBY |
| 2013-10-31 | OMX | FMCC | FNMA | TSLA | META | MU | FANG | CIEN | AXON | GT | AAPL | BKNG | MTG | INCY | EPAM |
| 2013-11-29 | OMX | FNMA | FMCC | META | INCY | TSLA | CLF | AXON | MU | FANG | NFLX | PBI | FL | CIEN | GME |
| 2013-12-31 | FNMA | FMCC | META | INCY | MU | TSLA | NFLX | AXON | BBY | PBI | KATE | AAPL | CLF | FL | TLAB |
| 2014-01-31 | FNMA | FMCC | INCY | TKO | ILMN | MU | META | KATE | CELG | SMCI | AXON | MGM | ETFC | FLT | RRD |
| 2014-02-28 | FMCC | FNMA | TKO | ILMN | META | INCY | TSLA | AAL | FRX | MU | DXCM | PHM | ALGN | SMCI | KBH |
| 2014-03-31 | FMCC | FNMA | TKO | ILMN | TSLA | META | INCY | DXCM | FRX | AAL | FANG | WYNN | FSLR | VTRS | NFLX |
| 2014-04-30 | FMCC | FNMA | TSLA | TKO | ILMN | FRX | META | FANG | CAR | AAL | HP | NXPI | SWKS | MU | VTRS |
| 2014-05-30 | FMCC | FNMA | META | TSLA | FRX | ILMN | AAL | TPL | SWKS | FANG | CAR | MU | WLL | NBR | DAL |
| 2014-06-30 | FNMA | FMCC | TRGP | FANG | AAL | META | FRX | NFX | SWKS | NBR | WLL | DAL | MU | INCY | ILMN |
| 2014-07-31 | FMCC | FNMA | SWKS | FANG | TRGP | MU | NFX | NBR | CAR | WLL | AAPL | TPL | WMB | FRX | ILMN |
| 2014-08-29 | ENPH | MMI | SWKS | AAPL | TRGP | CAR | TPL | MU | FMCC | NFX | FNMA | LUV | FANG | SMCI | URI |
| 2014-09-30 | ENPH | TPL | LUV | SWKS | AAPL | GILD | MMI | HCA | TRGP | SMCI | THC | CAR | STLD | UHS | MU |
| 2014-10-31 | ENPH | MMI | PANW | AAPL | SMCI | SWKS | EW | GILD | BBBY | TPL | AMGN | SIAL | LUV | META | TRGP |
| 2014-11-28 | PAYC | SMCI | AAPL | SWKS | PANW | EW | MNST | LUV | BBBY | MMI | ZTS | GILD | KLAC | AXON | VEEV |
| 2014-12-31 | AXON | PAYC | SWKS | PANW | EW | MNST | ENPH | AAPL | SMCI | LUV | CNC | DXCM | INCY | KLAC | UAL |
| 2015-01-30 | AAPL | SWKS | RCL | AXON | EA | LULU | KR | RMD | CSGP | ALK | LUV | GILD | CNC | VTR | DAL |
| 2015-02-27 | PAYC | SWKS | AAPL | AXON | KR | MNST | EA | PANW | ALK | CNC | LULU | SMCI | EPAM | ENPH | AVGO |
| 2015-03-31 | SWKS | PAYC | INCY | AAPL | CNC | EA | MNST | NXPI | BIIB | PANW | GHC | AVGO | HSP | AXON | SMCI |
| 2015-04-30 | SWKS | PAYC | BLDR | CNC | INCY | PANW | KMG | MNST | EPAM | AAPL | MOH | NXPI | ON | HSP | AVGO |
| 2015-05-29 | BTUUQ | BLDR | CNXT | AXON | PAYC | SWKS | CZR | NFLX | INCY | KMG | NFX | AAPL | CNC | ABMD | SSP |
| 2015-06-30 | AAPL | BTUUQ | BLDR | SWKS | AXON | GILD | PAYC | SEDG | HUM | VTRS | DXCM | COTY | ZBRA | CI | ANET |
| 2015-07-31 | AAPL | BTUUQ | META | BLDR | CNC | INCY | CI | IBKR | GILD | DXCM | AET | COTY | EA | ABMD | ANET |
| 2015-08-31 | SBUX | AAPL | META | ABMD | DXCM | BLDR | AYI | EA | HAS | GOOG | HSP | GOOGL | MDLZ | ALK | GPN |
| 2015-09-30 | SBUX | META | AAPL | AMZN | AIZ | GOOG | DXCM | EA | GOOGL | HSP | CBOE | FIX | CASY | ABMD | BKNG |
| 2015-10-30 | META | SBUX | GOOG | AAPL | GOOGL | ABMD | BKNG | GILD | AMZN | VRSN | KDP | AIZ | PSA | CINF | MO |
| 2015-11-30 | GE | ABMD | AAPL | AMZN | META | GOOG | GOOGL | TSS | ATVI | TAP | FIX | MCD | HOLX | GPN | TTWO |
| 2015-12-31 | AMZN | ABMD | GE | GOOG | META | GOOGL | ATVI | AAPL | VRSN | KMB | KR | CLX | CVC | DLR | MAA |
| 2016-01-29 | AMZN | ABMD | GE | META | GOOG | ATVI | ATO | AAPL | AWK | DLR | GOOGL | NI | CASY | EQIX | STZ |
| 2016-02-29 | META | AMZN | TSN | ABMD | MAT | GOOG | KMB | CMS | GE | FSLR | WEC | CINF | GOOGL | LNT | AWK |
| 2016-03-31 | TSN | NEM | LITE | MAT | FSLR | WB | ANF | ABMD | ARG | FAST | KLAC | GNRC | EVRG | AMZN | META |
| 2016-04-29 | CLF | CNX | TSN | LITE | NEM | WB | MUR | MTW | NVDA | CPRI | ANF | MAT | STLD | ABMD | TPR |
| 2016-05-31 | CLF | AMD | CNX | DXC | MTW | RRC | ALB | NEM | NVDA | X | CZR | WB | EW | STLD | STJ |
| 2016-06-30 | CLF | X | OKE | CNX | NVDA | AMD | DXC | NEM | MTW | ALB | MDR | MUR | JOY | WB | WCG |
| 2016-07-29 | CLF | AMD | X | NEM | WB | NVDA | DHR | OKE | CNX | WLL | DLR | DXC | WPX | BLDR | RRC |
| 2016-08-31 | AMD | WB | CLF | X | NEM | NVDA | CNX | DHR | JOY | WMB | GNW | OKE | TRGP | ULTA | WPX |
| 2016-09-30 | WB | CLF | AMD | X | WMB | NVDA | GNW | TRGP | DHR | NEM | KMI | LITE | JOY | WPX | CNX |
| 2016-10-31 | WB | X | LITE | TPL | NVDA | GNW | AAPL | NBR | WMB | CNX | META | AMZN | AMD | DXC | WPX |
| 2016-11-30 | CLF | WB | AMD | X | FMCC | NVDA | FNMA | LITE | WOR | NBR | DHR | TPL | ETSY | MRVL | EME |
| 2016-12-30 | CLF | FMCC | NVDA | FNMA | AMD | X | UIS | NBR | WB | BAC | SLM | STLD | BBY | UAL | LNC |
| 2017-01-31 | FMCC | NVDA | FNMA | CLF | AMD | X | NBR | WB | CSX | TPL | UIS | BAC | STLD | CFG | URI |
| 2017-02-28 | AMD | CLF | NVDA | X | NBR | COHR | SLM | FMCC | FNMA | CSX | LITE | URI | TPL | BAC | UIS |
| 2017-03-31 | AMD | NVDA | INCY | CLF | TTD | URI | CSX | X | MU | RF | ANET | BAC | COHR | CFG | UIS |
| 2017-04-28 | AMD | NVDA | TTD | INCY | KMG | MU | LITE | ANET | BAC | CSX | FMCC | X | FNMA | LRCX | NRG |
| 2017-05-31 | TTD | NVDA | WB | AMD | XYZ | KMG | ANET | TSLA | VEEV | MU | LRCX | CSX | TTWO | ALGN | BBY |
| 2017-06-30 | NVDA | TTD | WB | XYZ | LITE | LRCX | TSLA | TTWO | ANET | VEEV | VRTX | AMAT | KMG | ADSK | PAYC |
| 2017-07-31 | NVDA | XYZ | ALGN | VRTX | TTD | WB | LITE | SEDG | TSLA | ANET | VEEV | PAYC | NRG | KMG | MU |
| 2017-08-31 | NVDA | SEDG | WB | VRTX | NRG | TTWO | XYZ | ALGN | TSLA | ANET | IPGP | CVNA | LITE | FSLR | KMG |
| 2017-09-29 | NVDA | WB | TTWO | SEDG | XYZ | BBBY | VRTX | FSLR | ALGN | IPGP | TTD | ANET | NRG | MU | LRCX |
| 2017-10-31 | BBBY | XYZ | NVDA | WB | ALGN | SEDG | MU | MTW | FSLR | TTWO | TTD | IPGP | LRCX | NRG | CZR |
| 2017-11-30 | BBBY | ENPH | XYZ | SEDG | MU | NVDA | ALGN | IPGP | ANET | LRCX | WB | NRG | PYPL | MTCH | COHR |
| 2017-12-29 | BBBY | ENPH | XYZ | SEDG | ALGN | WB | MU | IPGP | FSLR | ANET | NVDA | IBKR | MTCH | TKO | LRCX |
| 2018-01-31 | BBBY | NKTR | XYZ | EC | SEDG | KBH | ENPH | ANET | WB | FSLR | MAY | PENN | KSS | IPGP | ALGN |
| 2018-02-28 | NKTR | BBBY | ENPH | EC | XYZ | ANET | MTCH | SEDG | FSLR | WB | MAY | KSS | NFLX | NVDA | AMZN |
| 2018-03-29 | NKTR | XYZ | AMZN | MU | NVDA | SEDG | ENPH | ANET | BA | WB | ALGN | META | HET | THC | TKO |
| 2018-04-30 | NKTR | MU | AMZN | EC | HET | TWTR | META | GWW | TKO | SEDG | ABMD | BKNG | ANET | FSLR | CVNA |
| 2018-05-31 | AXON | ENPH | NKTR | THC | TKO | AMZN | MU | EC | HET | SEDG | CCI | META | DXCM | CVNA | ANDV |
| 2018-06-29 | TKO | AXON | ENPH | HET | THC | CVNA | AMZN | MU | XYZ | ALGN | ETSY | NKTR | NFLX | EC | CCI |
| 2018-07-31 | TKO | HET | AXON | CVNA | XYZ | MU | AMZN | ETSY | TTD | THC | ALGN | CCI | TPL | ENPH | SVU |
| 2018-08-31 | HET | CVNA | TKO | ENPH | AXON | TTD | DXCM | XYZ | AMD | ETSY | NFLX | THC | LULU | SVU | M |
| 2018-09-28 | HET | CVNA | AMD | XYZ | TKO | CCI | AMZN | DXCM | ABMD | UIS | TTD | AXON | AAPL | MOH | ETSY |
| 2018-10-31 | HET | CCI | DXCM | MOS | AAPL | ABMD | UIS | XYZ | MOH | AMZN | TKO | AAP | ETSY | CRM | LULU |
| 2018-11-30 | HET | CCI | AMZN | MOS | KDP | TTD | MOH | VZ | DELL | MRK | CLX | BALL | PFE | AET | ETSY |
| 2018-12-31 | HET | CCI | AMZN | AET | KDP | MKC | SCG | MRK | NRG | RHT | WCG | VZ | AZO | WELL | XLNX |
| 2019-01-31 | HET | CCI | AMZN | XLNX | RHT | BALL | WELL | DOC | DXCM | AVGO | FNMA | CDAY | MRK | ELV | BLL |
| 2019-02-28 | HET | FNMA | ENPH | FMCC | TTD | ETSY | RHT | CLF | NYT | CIEN | ERIE | CDAY | AMD | XLNX | GRMN |
| 2019-03-29 | HET | TTD | FNMA | FMCC | ENPH | ETSY | CVNA | CMG | CIEN | ERIE | NYT | AMD | RHT | CDAY | GEN |
| 2019-04-30 | HET | ENPH | TTD | FNMA | FMCC | AMD | ETSY | CVNA | ALGN | SMCI | KEYS | AVP | CMG | ANF | CIEN |
| 2019-05-31 | HET | CCI | AMZN | ENPH | ERIE | XRAY | EXR | CPRT | MTCH | EQIX | TSN | VEEV | LHX | MKTX | AZO |
| 2019-06-28 | HET | ENPH | FNMA | AVP | FMCC | TTD | CVNA | VEEV | ERIE | QCOM | MTCH | MKTX | PAYC | SEDG | AMD |
| 2019-07-31 | HET | ENPH | TTD | ERIE | AVP | MKTX | VEEV | MTCH | XYZ | CVNA | COTY | PAYC | SBUX | AAPL | QCOM |
| 2019-08-30 | HET | ENPH | CCI | AMZN | EXR | AAPL | QCOM | PODD | SEDG | AVP | ERIE | MKTX | MSFT | TTD | TDY |
| 2019-09-30 | HET | ENPH | SEDG | MKTX | AVP | QCOM | PODD | MTCH | BALL | HSY | KBH | LRCX | FNMA | SBAC | CVNA |
| 2019-10-31 | HET | ENPH | SEDG | PODD | BLDR | AVP | MKTX | KLAC | GNRC | KBH | FNMA | AAPL | LRCX | FMCC | NWL |
| 2019-11-29 | HET | ENPH | DXCM | TSLA | SEDG | AVP | LRCX | AAPL | BLDR | QRVO | PODD | TER | GNRC | KLAC | LEG |
| 2019-12-31 | HET | ENPH | TSLA | THC | CVNA | AAPL | AMD | QRVO | DXCM | MAT | BLDR | SWKS | BMY | PODD | LRCX |
| 2020-01-31 | HET | TSLA | AAPL | ENPH | THC | SEDG | LM | CVNA | SWKS | APO | TER | QRVO | CDAY | BLDR | ANSS |
| 2020-02-28 | HET | TSLA | CCI | ENPH | DXCM | MSFT | AAPL | LM | GEN | TYL | PODD | DVA | MSCI | RMD | GNRC |
| 2020-03-31 | ENPH | TSLA | DXCM | AMZN | GEN | AAPL | KR | LM | DVA | BIIB | CLX | NEM | DLR | REGN | VRTX |
| 2020-04-30 | ENPH | TSLA | DXCM | MSFT | AMZN | AAPL | NEM | PODD | GEN | BIO | MKTX | KR | VEEV | WST | CLX |
| 2020-05-29 | ENPH | TSLA | DXCM | DDOG | AAPL | AMZN | VEEV | GEN | GOOG | CCI | MSFT | AMT | CRWD | NEM | TECH |
| 2020-06-30 | TSLA | BBBY | ENPH | DDOG | AAPL | DXCM | XYZ | META | AMZN | NEM | CCI | MSFT | EA | NYT | WST |
| 2020-07-31 | BBBY | TSLA | AAPL | AMZN | XYZ | NVDA | DDOG | PENN | META | CVNA | CCI | DXCM | ENPH | EBAY | MSFT |
| 2020-08-31 | BBBY | TSLA | MRNA | CVNA | RRC | ETSY | PENN | XYZ | AMD | AAPL | CNX | EQT | PBI | NVDA | LRCX |
| 2020-09-30 | BBBY | TSLA | PENN | AAPL | TUP | GME | AMD | AMZN | CVNA | NVDA | XYZ | PBI | FDX | META | ENPH |
| 2020-10-30 | TSLA | TUP | ENPH | PENN | AAPL | GME | XYZ | FDX | NVDA | SEDG | BBBY | TTD | VIAC | PBI | CVNA |
| 2020-11-30 | TUP | TSLA | BBBY | MRNA | GME | ENPH | TTD | PBI | PENN | SEDG | XYZ | VIAC | UA | CLF | PVH |
| 2020-12-31 | TUP | TSLA | ENPH | MRNA | BBBY | PENN | GME | TTD | XYZ | CVNA | PBI | ETSY | CLF | BBWI | CPRI |
| 2021-01-29 | GME | TSLA | ENPH | BBBY | TUP | TTD | SEDG | CLF | TER | CVNA | FDX | DDS | ETSY | LRCX | PVH |
| 2021-02-26 | GME | TSLA | DDS | TUP | MRNA | ENPH | TDC | CLF | AXON | PBI | COHR | PENN | XYZ | PD | MAC |
| 2021-03-31 | GME | TSLA | NBR | TUP | VIAC | PENN | TPL | PSKY | ENPH | MRNA | DVN | APA | TRIP | CPRI | FANG |
| 2021-04-30 | GME | VIAC | TSLA | NBR | TPL | TRIP | TUP | DISCA | DISCK | QEP | OXY | CAR | MAC | AXON | CLF |
| 2021-05-28 | GME | MAC | DDS | TPL | TSLA | DISCA | DISCK | VIAC | NBR | LPX | TRIP | TDC | CAR | BBBY | NUE |
| 2021-06-30 | GME | DDS | CAR | MAC | TSLA | BBBY | DISCK | NUE | DISCA | NBR | LPX | PBI | PSKY | TPL | XEC |
| 2021-07-30 | GME | MRNA | RRD | DDS | ASO | NUE | MUR | ANF | DVN | TRGP | CAR | MDP | RRC | TPL | GNRC |
| 2021-08-31 | GME | MRNA | DDS | RRD | MDP | TSLA | MAC | CLF | SBNY | RRC | NUE | ASO | TPL | FTNT | NAVI |
| 2021-09-30 | MRNA | GME | RRD | MDP | DDS | RRC | BX | SBNY | CAR | AMD | MAC | FTNT | NUE | IT | NAVI |
| 2021-10-29 | MRNA | GME | RRC | CAR | RRD | DDS | TSLA | DVN | MRO | MDP | TRGP | MAC | MUR | M | SBNY |
| 2021-11-30 | CAR | TSLA | DDS | NVDA | RRC | DVN | MRO | RRD | MDP | AMD | MRNA | TRGP | FANG | KKR | MUR |
| 2021-12-31 | CAR | TSLA | RRD | DDS | NVDA | AMD | BLDR | DDOG | BX | ALB | M | APP | ON | DVN | APA |
| 2022-01-31 | DVN | RRD | TSLA | EXR | MRO | AAPL | AZO | EOG | COP | FANG | BLDR | XOM | NVDA | PFE | CVX |
| 2022-02-28 | DVN | RRD | MRO | AAPL | TSLA | TRGP | EOG | COP | FCX | CVX | MCK | FANG | XOM | BLDR | CAR |
| 2022-03-31 | COP | TSLA | EXR | RRD | CAR | DVN | MUR | MRO | TRGP | XOM | OXY | CF | AAPL | BKR | RRC |
| 2022-04-29 | COP | EQT | RRC | DVN | TRGP | CVX | DDS | MCK | HP | MUR | MRO | NUE | CNX | APA | CTRA |
| 2022-05-31 | VLO | EQT | APA | DVN | XOM | OXY | CVX | RRC | CTRA | EXE | MRO | PSX | EOG | BMY | HRB |
| 2022-06-30 | VLO | XOM | MRK | BMY | MCK | FHN | AMT | HRB | UNM | OXY | HSY | TSLA | CVX | EXR | APA |
| 2022-07-29 | XOM | EQT | OXY | VLO | CVX | LW | DVN | CTRA | AMT | HES | HRB | TSLA | MRO | JKHY | ODP |
| 2022-08-31 | DVN | HRB | MPC | EXR | FSLR | OXY | CAH | CF | TSLA | XOM | AMT | SMCI | CTRA | MCK | MRO |
| 2022-09-30 | MPC | HRB | FSLR | TSLA | MCK | CAH | HES | COP | HUBB | DVN | LW | UNM | ODP | EXR | NLSN |
| 2022-10-31 | FSLR | AZO | DVN | MPC | GPC | TKO | HUM | HII | HES | CF | XOM | FTI | ERIE | PFG | TPL |
| 2022-11-30 | UCL | FSLR | SMCI | TPL | DYN | HES | SANM | ODP | DXCM | UNM | ABMD | FTI | MPC | EME | COP |
| 2022-12-30 | UCL | SMCI | MPC | FSLR | TPL | AXON | STLD | HES | COP | SANM | ABMD | ODP | MUR | UNM | FTI |
| 2023-01-31 | UCL | NFLX | HES | SMCI | ODP | FSLR | AXON | FCX | FTI | LVS | TPL | ABMD | STLD | SANM | BKR |
| 2023-02-28 | UCL | MTW | TSLA | COTY | FTI | NVDA | EXR | MPC | TEX | CLF | BLDR | STLD | PVH | ALGN | BKNG |
| 2023-03-31 | TSLA | SMCI | NVDA | FTI | FSLR | UCL | MTW | TEX | EXR | GE | STLD | ATI | BKNG | AN | AXON |
| 2023-04-28 | SMCI | NVDA | FSLR | META | TSLA | AXON | UCL | WST | EXR | ASO | TKO | GE | MSFT | COTY | ALGN |
| 2023-05-31 | SMCI | EXR | NVDA | BKNG | BLDR | MSFT | AVGO | TSLA | AAPL | FICO | PANW | CPRT | KBH | COTY | PHM |
| 2023-06-30 | SMCI | CVNA | TSLA | NVDA | PLTR | APP | BLDR | META | VRT | RCL | AMD | CCL | IAC | CRWD | FSLR |
| 2023-07-31 | SMCI | CVNA | TSLA | APP | NVDA | PLTR | META | VRT | BLDR | RCL | JBL | CRWD | PANW | CCL | AMD |
| 2023-08-31 | CVNA | SMCI | TSLA | VRT | NVDA | APP | EXR | RCL | META | NFLX | DASH | BLDR | PLTR | HOOD | BBBY |
| 2023-09-29 | NVDA | SMCI | VRT | EXR | APP | TSLA | CVNA | BKNG | GOOG | EME | META | VST | APO | BKR | FTI |
| 2023-10-31 | VRT | NVDA | EXR | APP | NFLX | FTI | META | AIZ | MCK | DELL | CNX | LII | RRC | MSFT | JBL |
| 2023-11-30 | EXR | NVDA | VRT | ANF | TSLA | PHM | PLTR | SMCI | META | NRG | COIN | APP | GPS | FTI | CVNA |
| 2023-12-29 | CVNA | COIN | ANF | FNMA | GPS | VRT | SMCI | KEY | PLTR | TSLA | APP | FMCC | CRWD | VNO | NVDA |
| 2024-01-31 | ANF | FNMA | CVNA | SMCI | VRT | FMCC | NVDA | CRWD | GPS | APP | ANET | ADCT | X | AMD | FICO |
| 2024-02-29 | SMCI | ADCT | CVNA | ANF | NVDA | VRT | CRWD | DYN | COIN | FNMA | AMD | VST | PANW | GPS | APP |
| 2024-03-28 | SMCI | ADCT | CVNA | NVDA | COIN | FNMA | ANF | VRT | DYN | APP | VST | FMCC | GPS | AMD | DELL |
| 2024-04-30 | SMCI | CVNA | ADCT | DYN | NVDA | ANF | VRT | FNMA | COIN | APP | VST | GPS | HOOD | WSM | COHR |
| 2024-05-31 | CVNA | VST | NVDA | SMCI | VRT | DELL | ANF | DYN | ADCT | COIN | FNMA | APP | HOOD | NRG | WSM |
| 2024-06-28 | NVDA | VST | CVNA | SMCI | VRT | ANF | DELL | DYN | APP | COIN | LU | FNMA | FSLR | EME | THC |
| 2024-07-31 | CVNA | NVDA | VST | DYN | ANF | APP | LUMN | VRT | COIN | HOOD | NRG | LU | COHR | THC | GPS |
| 2024-08-30 | LUMN | NVDA | CVNA | DYN | VST | PBI | LU | HOOD | THC | FSLR | ANF | FICO | PLTR | SOLV | DELL |
| 2024-09-30 | LUMN | DYN | CVNA | NVDA | APP | PBI | VST | FSLR | GEV | COHR | ECHO | TPL | THC | PLTR | GME |
| 2024-10-31 | LUMN | CVNA | APP | VST | NVDA | PLTR | COHR | GEV | HOOD | FICO | IRM | TPL | VNO | ECHO | CNX |
| 2024-11-29 | LUMN | APP | CVNA | TPL | FMCC | PLTR | FNMA | VST | NVDA | GEV | COHR | TSLA | AXON | VRT | HOOD |
| 2024-12-31 | APP | FMCC | FNMA | PLTR | NVDA | TSLA | CVNA | HOOD | VST | AXON | TPL | LB | CCI | TRGP | LITE |
| 2025-01-31 | APP | FMCC | FNMA | PLTR | TSLA | VST | HOOD | GEV | TPL | CVNA | LB | AXON | LUMN | UAL | VRT |
| 2025-02-28 | FNMA | FMCC | APP | HOOD | PLTR | NVDA | TPR | CCI | IBKR | TSLA | META | EXR | TKO | VFC | WSM |
| 2025-03-31 | FNMA | FMCC | NEM | BRK-B | NVDA | CME | CAH | EXE | GL | TPL | TPR | HWM | EXC | AZO | MCK |
| 2025-04-30 | FNMA | NEM | PLTR | FMCC | VRSN | COR | PM | NVDA | GEV | HOOD | EHC | TKO | ROL | CNP | ETR |
| 2025-05-30 | FNMA | NEM | FMCC | PLTR | APP | NVDA | TSLA | HOOD | GEV | PM | BUD | MNST | JCI | HWM | GILD |
| 2025-06-30 | FNMA | HOOD | FMCC | CAR | APP | PLTR | NVDA | TSLA | GEV | COIN | VRT | NEM | AXON | NRG | STX |
| 2025-07-31 | HOOD | FNMA | FMCC | CAR | APP | NVDA | GEV | PLTR | NEM | COIN | TSLA | CVNA | SMCI | TPR | HWM |
| 2025-08-29 | HOOD | PLTR | FNMA | CAR | UCL | FMCC | GEV | APP | ECHO | FIX | COIN | LITE | AMD | NVDA | VST |
| 2025-09-30 | FNMA | FMCC | HOOD | ECHO | APP | LITE | WDC | CAR | PLTR | STX | COIN | TSLA | GEV | FIX | AVGO |
| 2025-10-31 | TE | FMCC | FNMA | APP | ECHO | HOOD | LUMN | MU | NEM | CIEN | NVDA | LITE | WDC | DYN | AMD |
| 2025-11-28 | ECHO | LITE | TE | WDC | HOOD | CIEN | AMD | STX | MU | PLTR | APP | LUMN | KSS | SANM | NVDA |
| 2025-12-31 | LITE | TE | ECHO | MU | WDC | CIEN | COHR | STX | AMD | NVDA | AVGO | LUMN | ALB | SSP | VIAV |
| 2026-01-30 | TE | ECHO | MU | WDC | LITE | STX | ALB | LRCX | NEM | CIEN | LUMN | COHR | WBD | TER | KLAC |
| 2026-02-27 | LITE | TE | WDC | MU | CIEN | COHR | STX | ECHO | VIAV | TER | GLW | LRCX | ALB | FIX | IPGP |
| 2026-03-31 | LITE | CIEN | CCI | MU | WDC | VIAV | ECHO | EXR | NVDA | FIX | GILD | ATI | GLW | TRGP | COHR |
| 2026-04-30 | LITE | CIEN | VIAV | MU | WDC | CCI | COHR | GLW | NVDA | STX | APA | TER | ECHO | EXR | FIX |
| 2026-05-29 | MU | LITE | DELL | VIAV | NVDA | WDC | CCI | INTC | AMD | CIEN | STX | COHR | FIX | NBR | VRT |
| 2026-06-26 | MU | WDC | LITE | STX | DELL | MRVL | CIEN | VIAV | DD | AMD | TE | INTC | HPE | FLEX | GLW |
Scoring script (python)
FORMULA_NAME = "Contrarian 52-Week Recovery with Quality Arbitration (v1104)"
LOGIC_VARIANT_COUNT = 3
NOTES = """mode=explore; family=contrarian-52w-recovery-quality-hybrid
New hybrid family that combines the contrarian-52w recovery ladder with the recovery-quality relay, but not as a flat average: each regime runs an explicit arbitration between a price-repair sleeve and a business-durability sleeve so deep rebounds only survive when quality/liquidity evidence is good enough, while cleaner recoveries can outrank mediocre fundamentals in stronger tapes.
Deliberate metric coverage: actively use one recovery cluster (from_52w_high_pct plus from_200d_ma_pct), one momentum cluster (return_3m_pct, return_6m_pct, momentum_12_1_pct, with return_12m_pct only as a repair confirmation), one volatility check, two liquidity checks, one income check, one valuation check, one growth cluster, one quality cluster, and one size tilt. Deliberately weight return_1m_pct, avg_daily_volume_3m, dividend_ttm, pe, eps_growth_pct, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, and free_cash_flow_ttm at zero this run to avoid collapsing into the same parent stack while still covering the full metric menu consciously. Sparse fundamentals are normalized by present weight before arbitration."""
CALM_BULL = {
"from_52w_high_pct": (0.18, -1),
"from_200d_ma_pct": (0.14, +1),
"return_6m_pct": (0.10, +1),
"momentum_12_1_pct": (0.08, +1),
"realized_vol_3m": (0.05, -1),
"avg_daily_dollar_volume_3m": (0.05, +1),
"dividend_yield_ttm_pct": (0.03, +1),
"market_cap": (0.04, -1),
}
STRESSED_BULL = {
"from_52w_high_pct": (0.12, -1),
"from_200d_ma_pct": (0.14, +1),
"return_3m_pct": (0.08, +1),
"momentum_12_1_pct": (0.07, +1),
"realized_vol_3m": (0.07, -1),
"avg_daily_dollar_volume_3m": (0.07, +1),
"trading_days_3m": (0.05, +1),
"free_cash_flow_margin_pct": (0.08, +1),
"operating_margin_pct": (0.06, +1),
"free_cash_flow_growth_pct": (0.05, +1),
"forward_pe": (0.05, -1),
}
RISK_OFF = {
"from_52w_high_pct": (0.08, -1),
"from_200d_ma_pct": (0.15, +1),
"return_12m_pct": (0.05, +1),
"realized_vol_3m": (0.11, -1),
"avg_daily_dollar_volume_3m": (0.08, +1),
"trading_days_3m": (0.06, +1),
"dividend_yield_ttm_pct": (0.06, +1),
"forward_pe": (0.05, -1),
"revenue_growth_pct": (0.05, +1),
"operating_income_growth_pct": (0.06, +1),
"free_cash_flow_growth_pct": (0.07, +1),
"forward_eps": (0.04, +1),
"operating_margin_pct": (0.08, +1),
"free_cash_flow_margin_pct": (0.10, +1),
}
def _regime_book(regime):
if regime.get("bull"):
if regime.get("avg_realized_vol_3m", 0) > 28 or regime.get("breadth", 0) < 0.62:
return STRESSED_BULL, "stressed_bull"
return CALM_BULL, "calm_bull"
return RISK_OFF, "risk_off"
def _bounded(value, low, high):
if value < low:
return low
if value > high:
return high
return value
def score_universe(stocks, regime, ctx):
book, branch = _regime_book(regime)
zmaps = {metric: ctx.z(metric) for metric in book}
scores = {}
for row in stocks:
sym = row["symbol"]
base_total = 0.0
base_weight = 0.0
for metric, (weight, sign) in book.items():
z = zmaps[metric].get(sym)
if z is not None:
base_total += weight * sign * z
base_weight += weight
if base_weight > 0:
total = base_total / base_weight
else:
total = 0.0
drawdown = row.get("from_52w_high_pct")
trend = row.get("from_200d_ma_pct")
ret3 = row.get("return_3m_pct")
ret6 = row.get("return_6m_pct")
ret12 = row.get("return_12m_pct")
mom = row.get("momentum_12_1_pct")
vol = row.get("realized_vol_3m")
dollar_vol = row.get("avg_daily_dollar_volume_3m")
trading_days = row.get("trading_days_3m")
div_yield = row.get("dividend_yield_ttm_pct")
forward_pe = row.get("forward_pe")
rev_growth = row.get("revenue_growth_pct")
op_growth = row.get("operating_income_growth_pct")
fcf_growth = row.get("free_cash_flow_growth_pct")
forward_eps = row.get("forward_eps")
op_margin = row.get("operating_margin_pct")
fcf_margin = row.get("free_cash_flow_margin_pct")
cap = row.get("market_cap")
recovery_score = 0.0
recovery_weight = 0.0
if drawdown is not None:
recovery_weight += 1.0
if branch == "calm_bull":
if drawdown < -42:
recovery_score -= 1.00
elif drawdown < -30:
recovery_score += 0.45
elif drawdown < -18:
recovery_score += 1.10
elif drawdown < -8:
recovery_score += 0.60
elif drawdown < -3:
recovery_score += 0.10
else:
recovery_score -= 0.30
elif branch == "stressed_bull":
if drawdown < -45:
recovery_score -= 0.85
elif drawdown < -32:
recovery_score += 0.20
elif drawdown < -16:
recovery_score += 0.75
elif drawdown < -6:
recovery_score += 0.55
else:
recovery_score -= 0.20
else:
if drawdown < -30:
recovery_score -= 0.55
elif drawdown < -16:
recovery_score += 0.25
elif drawdown < -5:
recovery_score += 0.70
else:
recovery_score -= 0.15
if trend is not None:
recovery_weight += 1.0
if branch == "calm_bull":
if trend > 14:
recovery_score += 0.85
elif trend > 4:
recovery_score += 0.45
elif trend < -4:
recovery_score -= 0.90
elif branch == "stressed_bull":
if trend > 10:
recovery_score += 0.65
elif trend > 1:
recovery_score += 0.35
elif trend < -3:
recovery_score -= 0.85
else:
if trend > 8:
recovery_score += 0.70
elif trend > 2:
recovery_score += 0.35
elif trend < 0:
recovery_score -= 0.90
if ret3 is not None:
recovery_weight += 0.7
if ret3 > 16:
recovery_score += 0.55
elif ret3 > 4:
recovery_score += 0.30
elif ret3 < -10:
recovery_score -= 0.65
elif ret3 < 0:
recovery_score -= 0.20
if ret6 is not None:
recovery_weight += 0.9
if ret6 > 20:
recovery_score += 0.60
elif ret6 > 8:
recovery_score += 0.35
elif ret6 < -8:
recovery_score -= 0.70
elif ret6 < 0:
recovery_score -= 0.25
if mom is not None:
recovery_weight += 0.8
if mom >= 3 and mom <= 24:
recovery_score += 0.50
elif mom > 24:
recovery_score += 0.18
elif mom < -12:
recovery_score -= 0.70
elif mom < 0:
recovery_score -= 0.20
if ret12 is not None:
recovery_weight += 0.5
if branch == "risk_off":
if ret12 > 8:
recovery_score += 0.30
elif ret12 < -20:
recovery_score -= 0.55
else:
if ret12 > 12:
recovery_score += 0.18
elif ret12 < -25:
recovery_score -= 0.35
if vol is not None:
recovery_weight += 0.6
if vol < 22:
recovery_score += 0.25
elif vol > 44:
recovery_score -= 0.45
elif vol > 34:
recovery_score -= 0.18
if recovery_weight > 0:
recovery_score = recovery_score / recovery_weight
quality_score = 0.0
quality_weight = 0.0
if fcf_margin is not None:
quality_weight += 1.1
if fcf_margin > 12:
quality_score += 1.00
elif fcf_margin > 5:
quality_score += 0.55
elif fcf_margin < 0:
quality_score -= 1.00
elif fcf_margin < 3:
quality_score -= 0.25
if op_margin is not None:
quality_weight += 0.9
if op_margin > 18:
quality_score += 0.80
elif op_margin > 8:
quality_score += 0.40
elif op_margin < 0:
quality_score -= 0.90
elif op_margin < 4:
quality_score -= 0.20
growth_balance = 0.0
growth_count = 0
for metric in (rev_growth, op_growth, fcf_growth):
if metric is not None:
growth_count += 1
if metric > 18:
growth_balance += 0.80
elif metric > 6:
growth_balance += 0.35
elif metric < -12:
growth_balance -= 0.90
elif metric < 0:
growth_balance -= 0.30
if growth_count > 0:
quality_weight += 1.0
quality_score += growth_balance / growth_count
if forward_eps is not None:
quality_weight += 0.5
if forward_eps > 0:
quality_score += 0.25
else:
quality_score -= 0.80
if forward_pe is not None:
quality_weight += 0.6
if forward_pe > 0 and forward_pe < 18:
quality_score += 0.35
elif forward_pe > 40:
quality_score -= 0.45
if div_yield is not None:
quality_weight += 0.4
if div_yield >= 0.7 and div_yield <= 4.5:
quality_score += 0.22
elif div_yield > 5.5:
quality_score -= 0.20
elif div_yield == 0 and branch == "risk_off":
quality_score -= 0.12
if dollar_vol is not None:
quality_weight += 0.5
if dollar_vol > 30000000:
quality_score += 0.35
elif dollar_vol > 10000000:
quality_score += 0.18
elif dollar_vol < 3000000:
quality_score -= 0.45
if trading_days is not None:
quality_weight += 0.4
if trading_days >= 62:
quality_score += 0.18
elif trading_days <= 57:
quality_score -= 0.35
if quality_weight > 0:
quality_score = quality_score / quality_weight
if branch == "calm_bull":
recovery_mix = 0.72
quality_mix = 0.28
elif branch == "stressed_bull":
recovery_mix = 0.52
quality_mix = 0.48
else:
recovery_mix = 0.34
quality_mix = 0.66
total += recovery_mix * recovery_score + quality_mix * quality_score
if recovery_weight > 0 and quality_weight > 0:
if recovery_score > 0.45 and quality_score > 0.25:
total += 0.28
elif recovery_score > 0.55 and quality_score < -0.20:
total -= 0.48
elif recovery_score < -0.25 and quality_score > 0.45 and branch != "calm_bull":
total += 0.10
elif recovery_score < -0.35 and quality_score < -0.20:
total -= 0.22
elif recovery_weight > 0 and quality_weight == 0 and branch != "calm_bull":
total -= 0.12
if branch == "calm_bull":
if cap is not None:
if cap < 3000000000:
total += 0.18
elif cap < 10000000000:
total += 0.08
elif cap > 200000000000:
total -= 0.10
if drawdown is not None and trend is not None:
if drawdown < -12 and drawdown > -28 and trend > 5:
total += 0.22
elif branch == "stressed_bull":
if vol is not None and vol > 40:
total -= 0.18
if quality_weight > 0 and quality_score > 0.35 and drawdown is not None and drawdown < -10:
total += 0.16
else:
if vol is not None:
if vol < 24:
total += 0.14
elif vol > 34:
total -= 0.22
if trend is not None and trend < 0:
total -= 0.20
if quality_weight > 0 and quality_score > 0.40 and drawdown is not None and drawdown > -4:
total += 0.14
total += 0.10 * _bounded(recovery_score - quality_score, -1.5, 1.5) * (0.25 if branch == "risk_off" else 0.55)
scores[sym] = total
return scores