← All V2 experiments
Relative return
1.228x
Excess vs bench
22.77%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
40.51%
Mean benchmark gain
14.08%
Mean excess gain
26.43%
Dispersion (ref)
17.92%
Win-rate vs bench (ref)
93.30%
Worst / best ratio (ref)
0.962x / 1.396x
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 | 10.89% | 2.22% | 1.085x |
| 2011-07-01 … 2016-06-30 | 33.69% | 13.74% | 1.175x |
| 2016-07-01 … 2021-06-30 | 64.96% | 20.63% | 1.368x |
| 2021-07-01 … 2026-06-26 | 59.51% | 15.48% | 1.381x |
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.228x · beat benchmark in 167/179
| # | Window | Strategy | Benchmark | Ratio |
|---|---|---|---|---|
| 1 | 2006-07-31 … 2011-07-29 | 10.24% | 1.79% | 1.083x |
| 2 | 2006-08-31 … 2011-08-31 | 8.30% | 0.21% | 1.081x |
| 3 | 2006-09-29 … 2011-08-31 | 5.95% | -0.14% | 1.061x |
| 4 | 2006-10-31 … 2011-10-31 | 3.62% | 0.23% | 1.034x |
| 5 | 2006-11-30 … 2011-11-30 | 1.10% | -0.05% | 1.011x |
| 6 | 2006-12-29 … 2011-11-30 | 1.92% | -0.32% | 1.022x |
| 7 | 2007-01-31 … 2012-01-31 | 2.53% | 0.93% | 1.016x |
| 8 | 2007-02-28 … 2012-01-31 | 2.15% | 1.43% | 1.007x |
| 9 | 2007-03-30 … 2012-03-30 | 5.96% | 3.09% | 1.028x |
| 10 | 2007-04-30 … 2012-04-30 | 5.23% | 2.42% | 1.028x |
| 11 | 2007-05-31 … 2012-05-31 | 1.67% | 0.60% | 1.011x |
| 12 | 2007-06-29 … 2012-06-29 | 1.21% | 1.92% | 0.993x |
| 13 | 2007-07-31 … 2012-07-31 | 0.27% | 2.69% | 0.976x |
| 14 | 2007-08-31 … 2012-08-31 | 0.65% | 2.95% | 0.978x |
| 15 | 2007-09-28 … 2012-09-28 | 0.94% | 3.20% | 0.978x |
| 16 | 2007-10-31 … 2012-10-31 | -1.26% | 2.60% | 0.962x |
| 17 | 2007-11-30 … 2012-11-30 | -0.28% | 3.45% | 0.964x |
| 18 | 2007-12-31 … 2012-12-31 | 0.15% | 3.69% | 0.966x |
| 19 | 2008-01-31 … 2013-01-31 | 3.48% | 5.85% | 0.978x |
| 20 | 2008-02-29 … 2013-02-28 | 4.95% | 6.82% | 0.982x |
| 21 | 2008-03-31 … 2013-03-28 | 6.28% | 7.73% | 0.987x |
| 22 | 2008-04-30 … 2013-04-30 | 6.75% | 7.51% | 0.993x |
| 23 | 2008-05-30 … 2013-04-30 | 6.79% | 7.81% | 0.990x |
| 24 | 2008-06-30 … 2013-06-28 | 14.28% | 9.33% | 1.045x |
| 25 | 2008-07-31 … 2013-07-31 | 18.05% | 10.48% | 1.069x |
| 26 | 2008-08-29 … 2013-07-31 | 18.27% | 10.52% | 1.070x |
| 27 | 2008-09-30 … 2013-09-30 | 22.08% | 11.48% | 1.095x |
| 28 | 2008-10-31 … 2013-10-31 | 30.04% | 15.76% | 1.123x |
| 29 | 2008-11-28 … 2013-10-31 | 33.71% | 17.46% | 1.138x |
| 30 | 2008-12-31 … 2013-12-31 | 36.42% | 18.44% | 1.152x |
| 31 | 2009-01-30 … 2013-12-31 | 39.61% | 20.64% | 1.157x |
| 32 | 2009-02-27 … 2014-01-31 | 44.10% | 21.63% | 1.185x |
| 33 | 2009-03-31 … 2014-03-31 | 42.73% | 20.60% | 1.183x |
| 34 | 2009-04-30 … 2014-04-30 | 38.85% | 19.00% | 1.167x |
| 35 | 2009-05-29 … 2014-04-30 | 37.40% | 18.32% | 1.161x |
| 36 | 2009-06-30 … 2014-06-30 | 39.02% | 19.01% | 1.168x |
| 37 | 2009-07-31 … 2014-07-31 | 36.22% | 17.39% | 1.160x |
| 38 | 2009-08-31 … 2014-08-29 | 37.17% | 17.70% | 1.165x |
| 39 | 2009-09-30 … 2014-09-30 | 35.48% | 16.64% | 1.162x |
| 40 | 2009-10-30 … 2014-09-30 | 37.21% | 17.08% | 1.172x |
| 41 | 2009-11-30 … 2014-11-28 | 37.00% | 16.82% | 1.173x |
| 42 | 2009-12-31 … 2014-12-31 | 36.38% | 16.28% | 1.173x |
| 43 | 2010-01-29 … 2014-12-31 | 38.83% | 17.23% | 1.184x |
| 44 | 2010-02-26 … 2015-01-30 | 36.98% | 15.80% | 1.183x |
| 45 | 2010-03-31 … 2015-03-31 | 36.57% | 15.40% | 1.183x |
| 46 | 2010-04-30 … 2015-04-30 | 35.28% | 15.38% | 1.172x |
| 47 | 2010-05-28 … 2015-04-30 | 37.62% | 17.09% | 1.175x |
| 48 | 2010-06-30 … 2015-06-30 | 39.98% | 17.45% | 1.192x |
| 49 | 2010-07-30 … 2015-06-30 | 39.38% | 16.43% | 1.197x |
| 50 | 2010-08-31 … 2015-08-31 | 37.56% | 15.76% | 1.188x |
| 51 | 2010-09-30 … 2015-09-30 | 33.74% | 13.61% | 1.177x |
| 52 | 2010-10-29 … 2015-09-30 | 32.22% | 13.06% | 1.169x |
| 53 | 2010-11-30 … 2015-11-30 | 33.41% | 15.09% | 1.159x |
| 54 | 2010-12-31 … 2015-12-31 | 32.11% | 13.55% | 1.163x |
| 55 | 2011-01-31 … 2016-01-29 | 28.88% | 11.90% | 1.152x |
| 56 | 2011-02-28 … 2016-01-29 | 30.16% | 11.53% | 1.167x |
| 57 | 2011-03-31 … 2016-03-31 | 31.92% | 12.90% | 1.168x |
| 58 | 2011-04-29 … 2016-04-29 | 30.21% | 12.39% | 1.159x |
| 59 | 2011-05-31 … 2016-05-31 | 31.87% | 12.94% | 1.168x |
| 60 | 2011-06-30 … 2016-06-30 | 32.85% | 13.30% | 1.173x |
| 61 | 2011-07-29 … 2016-07-29 | 36.68% | 14.52% | 1.194x |
| 62 | 2011-08-31 … 2016-08-31 | 39.42% | 15.19% | 1.210x |
| 63 | 2011-09-30 … 2016-09-30 | 43.04% | 16.32% | 1.230x |
| 64 | 2011-10-31 … 2016-10-31 | 40.48% | 14.02% | 1.232x |
| 65 | 2011-11-30 … 2016-11-30 | 45.10% | 14.66% | 1.266x |
| 66 | 2011-12-30 … 2016-12-30 | 44.94% | 14.92% | 1.261x |
| 67 | 2012-01-31 … 2017-01-31 | 44.57% | 14.63% | 1.261x |
| 68 | 2012-02-29 … 2017-02-28 | 43.55% | 14.78% | 1.251x |
| 69 | 2012-03-30 … 2017-02-28 | 42.84% | 14.43% | 1.248x |
| 70 | 2012-04-30 … 2017-04-28 | 39.46% | 14.61% | 1.217x |
| 71 | 2012-05-31 … 2017-05-31 | 43.28% | 15.98% | 1.235x |
| 72 | 2012-06-29 … 2017-05-31 | 43.64% | 15.44% | 1.244x |
| 73 | 2012-07-31 … 2017-07-31 | 44.94% | 15.43% | 1.256x |
| 74 | 2012-08-31 … 2017-08-31 | 46.30% | 15.12% | 1.271x |
| 75 | 2012-09-28 … 2017-08-31 | 45.69% | 14.77% | 1.269x |
| 76 | 2012-10-31 … 2017-10-31 | 49.25% | 16.12% | 1.285x |
| 77 | 2012-11-30 … 2017-11-30 | 49.15% | 16.79% | 1.277x |
| 78 | 2012-12-31 … 2017-12-29 | 48.16% | 16.93% | 1.267x |
| 79 | 2013-01-31 … 2018-01-31 | 50.80% | 17.57% | 1.283x |
| 80 | 2013-02-28 … 2018-02-28 | 52.53% | 16.21% | 1.313x |
| 81 | 2013-03-28 … 2018-02-28 | 51.98% | 15.81% | 1.312x |
| 82 | 2013-04-30 … 2018-04-30 | 47.64% | 14.25% | 1.292x |
| 83 | 2013-05-31 … 2018-05-31 | 40.83% | 14.57% | 1.229x |
| 84 | 2013-06-28 … 2018-05-31 | 43.71% | 14.97% | 1.250x |
| 85 | 2013-07-31 … 2018-07-31 | 39.78% | 14.83% | 1.217x |
| 86 | 2013-08-30 … 2018-07-31 | 40.41% | 15.59% | 1.215x |
| 87 | 2013-09-30 … 2018-09-28 | 42.37% | 15.84% | 1.229x |
| 88 | 2013-10-31 … 2018-10-31 | 31.57% | 12.89% | 1.165x |
| 89 | 2013-11-29 … 2018-10-31 | 31.34% | 12.60% | 1.166x |
| 90 | 2013-12-31 … 2018-12-31 | 27.58% | 9.93% | 1.161x |
| 91 | 2014-01-31 … 2019-01-31 | 28.59% | 12.37% | 1.144x |
| 92 | 2014-02-28 … 2019-02-28 | 26.01% | 12.38% | 1.121x |
| 93 | 2014-03-31 … 2019-03-29 | 29.53% | 12.76% | 1.149x |
| 94 | 2014-04-30 … 2019-04-30 | 30.90% | 13.73% | 1.151x |
| 95 | 2014-05-30 … 2019-04-30 | 30.23% | 13.54% | 1.147x |
| 96 | 2014-06-30 … 2019-06-28 | 31.14% | 12.81% | 1.162x |
| 97 | 2014-07-31 … 2019-07-31 | 33.70% | 13.30% | 1.180x |
| 98 | 2014-08-29 … 2019-07-31 | 32.54% | 12.80% | 1.175x |
| 99 | 2014-09-30 … 2019-09-30 | 33.82% | 12.70% | 1.187x |
| 100 | 2014-10-31 … 2019-10-31 | 34.80% | 12.91% | 1.194x |
| 101 | 2014-11-28 … 2019-10-31 | 34.48% | 12.60% | 1.194x |
| 102 | 2014-12-31 … 2019-12-31 | 39.33% | 14.16% | 1.220x |
| 103 | 2015-01-30 … 2019-12-31 | 39.76% | 14.85% | 1.217x |
| 104 | 2015-02-27 … 2020-01-31 | 41.27% | 14.04% | 1.239x |
| 105 | 2015-03-31 … 2020-03-31 | 37.73% | 8.56% | 1.269x |
| 106 | 2015-04-30 … 2020-04-30 | 45.11% | 11.65% | 1.300x |
| 107 | 2015-05-29 … 2020-05-29 | 44.65% | 12.61% | 1.284x |
| 108 | 2015-06-30 … 2020-06-30 | 46.69% | 13.64% | 1.291x |
| 109 | 2015-07-31 … 2020-07-31 | 50.38% | 14.60% | 1.312x |
| 110 | 2015-08-31 … 2020-08-31 | 57.86% | 18.07% | 1.337x |
| 111 | 2015-09-30 … 2020-09-30 | 55.89% | 17.05% | 1.332x |
| 112 | 2015-10-30 … 2020-10-30 | 52.01% | 14.60% | 1.326x |
| 113 | 2015-11-30 … 2020-11-30 | 58.69% | 17.43% | 1.351x |
| 114 | 2015-12-31 … 2020-12-31 | 61.94% | 18.65% | 1.365x |
| 115 | 2016-01-29 … 2021-01-29 | 65.04% | 19.26% | 1.384x |
| 116 | 2016-02-29 … 2021-02-26 | 61.70% | 19.79% | 1.350x |
| 117 | 2016-03-31 … 2021-03-31 | 64.57% | 19.42% | 1.378x |
| 118 | 2016-04-29 … 2021-03-31 | 66.36% | 19.66% | 1.390x |
| 119 | 2016-05-31 … 2021-05-28 | 65.10% | 20.42% | 1.371x |
| 120 | 2016-06-30 … 2021-06-30 | 67.13% | 21.06% | 1.381x |
| 121 | 2016-07-29 … 2021-06-30 | 64.96% | 20.63% | 1.368x |
| 122 | 2016-08-31 … 2021-08-31 | 67.02% | 21.75% | 1.372x |
| 123 | 2016-09-30 … 2021-09-30 | 62.99% | 20.22% | 1.356x |
| 124 | 2016-10-31 … 2021-10-29 | 66.73% | 22.50% | 1.361x |
| 125 | 2016-11-30 … 2021-11-30 | 66.20% | 21.87% | 1.364x |
| 126 | 2016-12-30 … 2021-11-30 | 66.89% | 21.75% | 1.371x |
| 127 | 2017-01-31 … 2022-01-31 | 59.57% | 20.17% | 1.328x |
| 128 | 2017-02-28 … 2022-02-28 | 58.72% | 18.51% | 1.339x |
| 129 | 2017-03-31 … 2022-03-31 | 62.69% | 19.46% | 1.362x |
| 130 | 2017-04-28 … 2022-03-31 | 64.77% | 19.46% | 1.379x |
| 131 | 2017-05-31 … 2022-05-31 | 61.40% | 15.59% | 1.396x |
| 132 | 2017-06-30 … 2022-06-30 | 57.69% | 13.08% | 1.394x |
| 133 | 2017-07-31 … 2022-07-29 | 59.97% | 15.16% | 1.389x |
| 134 | 2017-08-31 … 2022-08-31 | 56.85% | 13.72% | 1.379x |
| 135 | 2017-09-29 … 2022-08-31 | 57.09% | 13.56% | 1.383x |
| 136 | 2017-10-31 … 2022-10-31 | 50.04% | 11.86% | 1.341x |
| 137 | 2017-11-30 … 2022-11-30 | 50.34% | 12.52% | 1.336x |
| 138 | 2017-12-29 … 2022-11-30 | 51.27% | 12.46% | 1.345x |
| 139 | 2018-01-31 … 2023-01-31 | 48.99% | 11.01% | 1.342x |
| 140 | 2018-02-28 … 2023-02-28 | 46.27% | 11.03% | 1.317x |
| 141 | 2018-03-29 … 2023-02-28 | 47.15% | 11.72% | 1.317x |
| 142 | 2018-04-30 … 2023-04-28 | 45.64% | 13.01% | 1.289x |
| 143 | 2018-05-31 … 2023-05-31 | 46.07% | 12.95% | 1.293x |
| 144 | 2018-06-29 … 2023-05-31 | 46.47% | 13.01% | 1.296x |
| 145 | 2018-07-31 … 2023-07-31 | 52.95% | 14.67% | 1.334x |
| 146 | 2018-08-31 … 2023-08-31 | 47.79% | 13.51% | 1.302x |
| 147 | 2018-09-28 … 2023-08-31 | 46.99% | 13.56% | 1.294x |
| 148 | 2018-10-31 … 2023-10-31 | 44.23% | 12.60% | 1.281x |
| 149 | 2018-11-30 … 2023-11-30 | 47.85% | 14.58% | 1.290x |
| 150 | 2018-12-31 … 2023-12-29 | 54.93% | 17.26% | 1.321x |
| 151 | 2019-01-31 … 2024-01-31 | 54.00% | 16.27% | 1.324x |
| 152 | 2019-02-28 … 2024-01-31 | 53.83% | 15.94% | 1.327x |
| 153 | 2019-03-29 … 2024-03-28 | 61.69% | 17.50% | 1.376x |
| 154 | 2019-04-30 … 2024-04-30 | 58.18% | 15.50% | 1.370x |
| 155 | 2019-05-31 … 2024-05-31 | 61.88% | 18.12% | 1.370x |
| 156 | 2019-06-28 … 2024-06-28 | 60.26% | 17.99% | 1.358x |
| 157 | 2019-07-31 … 2024-07-31 | 55.78% | 17.70% | 1.324x |
| 158 | 2019-08-30 … 2024-08-30 | 55.92% | 18.41% | 1.317x |
| 159 | 2019-09-30 … 2024-09-30 | 57.79% | 18.65% | 1.330x |
| 160 | 2019-10-31 … 2024-10-31 | 55.95% | 17.87% | 1.323x |
| 161 | 2019-11-29 … 2024-11-29 | 62.09% | 18.64% | 1.366x |
| 162 | 2019-12-31 … 2024-12-31 | 56.11% | 17.62% | 1.327x |
| 163 | 2020-01-31 … 2025-01-31 | 56.13% | 18.07% | 1.322x |
| 164 | 2020-02-28 … 2025-02-28 | 53.48% | 19.00% | 1.290x |
| 165 | 2020-03-31 … 2025-03-31 | 54.96% | 19.24% | 1.300x |
| 166 | 2020-04-30 … 2025-04-30 | 51.15% | 16.49% | 1.298x |
| 167 | 2020-05-29 … 2025-04-30 | 50.46% | 15.80% | 1.299x |
| 168 | 2020-06-30 … 2025-06-30 | 56.00% | 18.19% | 1.320x |
| 169 | 2020-07-31 … 2025-07-31 | 53.31% | 17.87% | 1.301x |
| 170 | 2020-08-31 … 2025-08-29 | 49.56% | 16.69% | 1.282x |
| 171 | 2020-09-30 … 2025-09-30 | 56.39% | 18.57% | 1.319x |
| 172 | 2020-10-30 … 2025-09-30 | 58.20% | 19.43% | 1.325x |
| 173 | 2020-11-30 … 2025-11-28 | 50.82% | 17.77% | 1.281x |
| 174 | 2020-12-31 … 2025-12-31 | 49.59% | 16.92% | 1.279x |
| 175 | 2021-01-29 … 2025-12-31 | 49.30% | 17.20% | 1.274x |
| 176 | 2021-02-26 … 2026-01-30 | 55.91% | 17.04% | 1.332x |
| 177 | 2021-03-31 … 2026-03-31 | 49.87% | 14.07% | 1.314x |
| 178 | 2021-04-30 … 2026-04-30 | 55.70% | 16.03% | 1.342x |
| 179 | 2021-05-28 … 2026-04-30 | 56.53% | 16.22% | 1.347x |
Notes
mode=explore; family=contrarian-52w-recovery-quality-regime-momentum-hybrid
New hybrid family that combines deep 52-week-high contrarian recovery, quality-gated rebound repair, and regime-aware momentum confirmation through explicit arbitration instead of flat blending. The design separates washed-out rebound tapes from healthy bull tapes and stressed/risk-off tapes: when the market is damaged it rewards discounted names only if repair and business durability confirm; when the tape is healthy it lets momentum lead but still demands reasonable quality and tradability; when signals conflict, the script resolves them with branch-specific gates and penalties rather than averaging them away.
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 conflict penalty), one volatility check, all three liquidity checks, one income check, one valuation cluster (peg plus forward_pe, with pe left zero), one growth cluster (revenue_growth_pct, operating_income_growth_pct, free_cash_flow_growth_pct, with eps_growth_pct and forward_eps left zero), one quality cluster (operating_margin_pct plus free_cash_flow_margin_pct), and one size tilt (market_cap only). Deliberately weight return_1m_pct, pe, eps_growth_pct, forward_eps, 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 parent stacks while still considering the full menu consciously. Sparse fundamentals are normalized by present weight before sleeve arbitration.
Lesson notes
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%.
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 | GOOG | GOOGL | MSFT | AAPL | XOM | MNST | GS | BAC | C | MO | SLB | CVX | COP | VLO | PFE |
| 2006-08-31 | GOOGL | GOOG | MAY | AAPL | MSFT | XOM | INTC | CSCO | PFE | MO | GS | GE | C | BAC | ORCL |
| 2006-09-29 | MAY | AAPL | NVDA | GOOG | GOOGL | AKAM | MNST | MSFT | XOM | INTC | CSCO | ORCL | T | MRK | PFE |
| 2006-10-31 | MAY | AAPL | NVDA | GOOG | GOOGL | MSFT | INTC | AKAM | XOM | CSCO | ORCL | BKNG | T | GS | AMZN |
| 2006-11-30 | MAY | AAPL | NVDA | GOOG | GOOGL | MSFT | CSCO | MA | ICE | INTC | XOM | AKAM | ORCL | GS | T |
| 2006-12-29 | MAY | AAPL | NVDA | GOOG | GOOGL | MSFT | CSCO | ICE | MA | XOM | INTC | T | GS | AKAM | AMZN |
| 2007-01-31 | AAPL | MAY | NVDA | GOOG | GOOGL | ICE | MA | MSFT | CSCO | GS | XOM | T | INTC | AKAM | ATI |
| 2007-02-28 | AAPL | MAY | NVDA | GOOG | GOOGL | ICE | MSFT | MA | CF | CSCO | ATI | GS | ALGN | XOM | MGM |
| 2007-03-30 | AAPL | MAY | NVDA | GOOG | GOOGL | ICE | CF | GT | MSFT | GS | CSCO | XOM | MA | ATI | T |
| 2007-04-30 | AAPL | MAY | NVDA | GOOG | GOOGL | AMZN | GT | ANDV | MSFT | XOM | ICE | GS | CSCO | CF | INTC |
| 2007-05-31 | AAPL | NVDA | MAY | AMZN | GOOG | GOOGL | GT | MA | ICE | XOM | MSFT | ANDV | GS | INTC | CLF |
| 2007-06-29 | AAPL | MAY | NVDA | AMZN | GOOG | GOOGL | FSLR | MA | KMG | CF | INTC | XOM | MSFT | FCX | ICE |
| 2007-07-31 | AAPL | GOOGL | GOOG | XOM | MSFT | INTC | GE | CSCO | GS | FCX | C | COP | AMZN | SLB | MA |
| 2007-08-31 | AAPL | GOOGL | GOOG | XOM | GS | CSCO | INTC | GE | MSFT | C | BAC | SLB | IBM | COP | CVX |
| 2007-09-28 | AAPL | GOOGL | GOOG | XOM | GS | CSCO | INTC | MSFT | GE | C | BAC | FCX | SLB | COP | IBM |
| 2007-10-31 | AAPL | GOOGL | GOOG | GS | XOM | MSFT | INTC | CSCO | C | GE | FCX | BAC | ISRG | AMZN | MOS |
| 2007-11-30 | AAPL | GOOG | GOOGL | GS | MSFT | FSLR | XOM | C | INTC | GE | ISRG | CSCO | FCX | AMZN | PG |
| 2007-12-31 | AAPL | GOOG | GOOGL | GS | FSLR | C | MSFT | XOM | MOS | INTC | ISRG | FCX | MA | COP | SLB |
| 2008-01-31 | AAPL | GOOG | GOOGL | MSFT | C | MOS | FSLR | XOM | JPM | GS | COP | CF | INTC | MO | GE |
| 2008-02-29 | AAPL | GOOG | GOOGL | MSFT | C | GS | XOM | CSCO | GE | BAC | MO | PFE | WMT | MRK | JNJ |
| 2008-03-31 | AAPL | GOOG | GOOGL | MSFT | XOM | C | BAC | GE | CSCO | GS | WMT | MO | INTC | PFE | JNJ |
| 2008-04-30 | AAPL | GOOG | GOOGL | MSFT | XOM | CSCO | C | GE | WMT | INTC | BAC | MA | IBM | PFE | COP |
| 2008-05-30 | AAPL | GOOG | GOOGL | FSLR | XOM | C | MSFT | MA | JPM | MEE | BAC | COP | MOS | WMT | GE |
| 2008-06-30 | AAPL | GOOG | C | XOM | GOOGL | MSFT | GE | BAC | COP | CVX | CSCO | WMT | PFE | INTC | V |
| 2008-07-31 | AAPL | GOOG | C | GOOGL | XOM | GS | MSFT | GE | BAC | COP | CVX | CSCO | INTC | WMT | V |
| 2008-08-29 | AAPL | GS | GOOG | BAC | XOM | C | MSFT | GOOGL | JPM | MA | FSLR | AMGN | GE | WFC | WMT |
| 2008-09-30 | AAPL | GOOG | C | XOM | GS | BAC | GOOGL | MSFT | GE | JPM | WMT | WFC | INTC | CVX | CSCO |
| 2008-10-31 | AAPL | GOOG | XOM | C | GOOGL | GS | MSFT | GE | BAC | WFC | JPM | WMT | INTC | PG | JNJ |
| 2008-11-28 | AAPL | GOOG | XOM | GOOGL | WFC | GS | GE | MSFT | C | BAC | JPM | PG | WMT | JNJ | INTC |
| 2008-12-31 | AAPL | GOOG | XOM | GE | GOOGL | WFC | JPM | MSFT | C | GS | BAC | PG | WMT | CVX | JNJ |
| 2009-01-30 | XOM | AAPL | GOOG | GE | GOOGL | JPM | MSFT | WFC | GS | PG | CVX | WMT | BAC | PFE | JNJ |
| 2009-02-27 | XOM | GOOG | AAPL | GS | GOOGL | GE | JPM | MSFT | WFC | CVX | WMT | BAC | PFE | JNJ | T |
| 2009-03-31 | XOM | GOOG | AAPL | GOOGL | GE | GS | T | JPM | MSFT | WMT | CVX | IBM | JNJ | INTC | FCX |
| 2009-04-30 | GS | GOOG | XOM | AAPL | GOOGL | BAC | GE | JPM | WFC | MSFT | T | FCX | IBM | INTC | CSCO |
| 2009-05-29 | BAC | GS | AAPL | GOOG | XOM | JPM | GE | GOOGL | WFC | FCX | MS | INTC | MSFT | T | CSCO |
| 2009-06-30 | BAC | GS | WFC | JPM | XOM | AAPL | GOOGL | GOOG | MSFT | CAR | GE | F | CSCO | FCX | INTC |
| 2009-07-31 | BAC | GS | WFC | JPM | AAPL | XOM | MSFT | GOOG | GOOGL | CAR | CSCO | FCX | F | GE | INTC |
| 2009-08-31 | BAC | C | JPM | GS | WFC | XOM | AAPL | GOOGL | GOOG | CSCO | F | FCX | MSFT | GE | QCOM |
| 2009-09-30 | BAC | C | GS | JPM | AAPL | WFC | XOM | GOOG | GOOGL | GE | FCX | AIG | LVS | CAR | MSFT |
| 2009-10-30 | BAC | C | GS | AAPL | AIG | JPM | GOOG | GOOGL | WFC | FCX | XOM | GE | MSFT | LVS | F |
| 2009-11-30 | BAC | C | AAPL | GOOGL | GOOG | XOM | FCX | GS | JPM | MSFT | GE | WFC | PFE | F | LVS |
| 2009-12-31 | CAR | BAC | NVDA | AAPL | GGP | F | AMD | GOOG | SANM | FCX | UAL | MU | BKNG | GOOGL | GNW |
| 2010-01-29 | BAC | CAR | NVDA | SANM | F | AAPL | GOOG | GNW | AMD | UAL | GGP | ISRG | GOOGL | AMZN | C |
| 2010-02-26 | BAC | CAR | SANM | AAPL | NVDA | F | GNW | UAL | GOOG | ACS | GGP | AMD | AAL | ISRG | CLF |
| 2010-03-31 | BAC | AAPL | NVDA | F | SANM | GNW | GOOG | CLF | UAL | LVS | INCY | LYV | CAR | MTG | WLL |
| 2010-04-30 | BAC | NVDA | AAPL | UAL | GNW | SANM | INCY | F | GOOG | C | MTG | LVS | ETFC | NFLX | CLF |
| 2010-05-28 | C | AAPL | BAC | GOOG | GS | XOM | F | GOOGL | LVS | GE | ETFC | NFLX | UAL | JPM | WLL |
| 2010-06-30 | AAPL | NFLX | C | BAC | TMUS | GOOG | AKAM | XOM | GS | LVS | ETFC | AAL | HBAN | BBWI | ZION |
| 2010-07-30 | AAPL | C | BAC | TMUS | XOM | AAL | AIG | NFLX | WY | GOOG | LVS | ETFC | CMI | NTAP | F |
| 2010-08-31 | AAPL | LVS | NFLX | XOM | BAC | BKNG | AKAM | C | GOOG | BRK-B | AIG | GOOGL | ETFC | INTU | FSLR |
| 2010-09-30 | AAPL | C | LVS | ETFC | GOOG | BAC | NFLX | GOOGL | NEM | XOM | BKNG | VZ | GS | FCX | WY |
| 2010-10-29 | ETFC | NFLX | NVDA | LVS | AAPL | GOOG | CMG | FFIV | BKNG | UAL | AAL | WLL | NEM | NTAP | VRTS |
| 2010-11-30 | ETFC | LVS | NVDA | NFLX | GM | AAPL | CMG | VRTS | FFIV | BKNG | GOOG | AIG | UAL | WLL | DECK |
| 2010-12-31 | ETFC | NVDA | LVS | NFLX | AIG | WLL | AAPL | CMG | FFIV | FCX | VRTS | GOOG | ACAS | BKNG | BAC |
| 2011-01-31 | MAY | NVDA | ETFC | LVS | AIG | NFLX | AAPL | BAC | GOOG | WLL | FCX | C | FFIV | BKNG | CMG |
| 2011-02-28 | MAY | NVDA | ETFC | NFLX | LVS | AIG | AAPL | BAC | VIAV | GOOG | URI | C | NXPI | LULU | IPGP |
| 2011-03-31 | MAY | NVDA | AAPL | IPGP | NFLX | URI | ETFC | VIAV | GOOG | LVS | LULU | NOV | BAC | CMG | BKNG |
| 2011-04-29 | MAY | NVDA | IPGP | AAPL | NFLX | LULU | GOOG | ETFC | VIAV | ANDV | BKNG | FTNT | CMG | LVS | BAC |
| 2011-05-31 | NVDA | MAY | IPGP | AAPL | VLO | NFLX | BKNG | GOOG | LULU | FTNT | VIAV | PSKY | MCO | ETFC | BKR |
| 2011-06-30 | MAY | IPGP | NVDA | NFLX | AAPL | LULU | GOOG | BKNG | VLO | EP | FTNT | ULTA | CMG | PSKY | WCG |
| 2011-07-29 | AAPL | GOOG | GOOGL | XOM | AIG | BAC | IBM | C | NFLX | TER | WYNN | LULU | JPM | MSFT | JNJ |
| 2011-08-31 | AAPL | GOOG | CF | GOOGL | CTRA | LVS | JNJ | BIIB | LULU | MSFT | IBM | WYNN | NFLX | PM | BKNG |
| 2011-09-30 | AAPL | GOOG | DLTR | NEM | JNJ | VFC | IBM | INTC | MA | AZO | AMZN | V | BBWI | ORLY | MTCH |
| 2011-10-31 | AAPL | GOOG | XOM | GOOGL | IBM | CF | MSFT | JNJ | KLAC | BAC | INTC | GE | PM | C | WFC |
| 2011-11-30 | AAPL | GOOG | GOOGL | XOM | LVS | URI | KLAC | CSCO | IBM | FFIV | INTC | BIIB | ORLY | ISRG | CAT |
| 2011-12-30 | AAPL | XOM | GOOG | GOOGL | AKAM | FFIV | GE | MRK | URI | WFC | PM | IBM | MA | KLAC | ISRG |
| 2012-01-31 | AAPL | GOOG | GOOGL | BAC | XOM | GE | IBM | MSFT | CF | MRK | URI | PFE | C | V | INTC |
| 2012-02-29 | AAPL | URI | STX | GOOG | NVDA | BAC | REGN | FAST | V | MNST | MA | GOOGL | ISRG | EQIX | DPZ |
| 2012-03-30 | AAPL | BAC | STX | BLDR | URI | NVDA | GOOG | EQIX | V | REGN | ISRG | MA | BKNG | MNST | DPZ |
| 2012-04-30 | AAPL | BLDR | REGN | STX | URI | BAC | BKNG | ISRG | V | GOOG | EC | EQIX | MA | MNST | ORLY |
| 2012-05-31 | AAPL | AAL | BLDR | REGN | VRTX | STX | MNST | META | BAC | GOOG | ORLY | ISRG | SHW | TJX | V |
| 2012-06-29 | AAPL | BLDR | AAL | VRTX | MNST | BAC | EQIX | REGN | GOOG | STX | TJX | LEN | ROST | V | BKNG |
| 2012-07-31 | AAPL | GOOG | GOOGL | EXPE | JPM | MRK | XOM | V | SPG | WFC | JNJ | STX | PFE | DIS | HAL |
| 2012-08-31 | AAPL | GOOG | STX | GOOGL | CDNS | JPM | MRK | XOM | GE | EXPE | BAC | ANDV | AMGN | PHM | WFC |
| 2012-09-28 | AAPL | PHM | STX | GOOG | VRTX | BLDR | ANDV | GOOGL | EQIX | LPX | BAC | LYB | REGN | KBH | GILD |
| 2012-10-31 | AAPL | GOOG | GOOGL | PHM | BAC | CDNS | STX | GILD | C | EXPE | GE | JPM | BBBY | BLDR | KBH |
| 2012-11-30 | AAPL | PHM | GOOG | BBBY | REGN | BAC | BLDR | LPX | KBH | GILD | WY | GOOGL | LEN | WHR | PSX |
| 2012-12-31 | REGN | AAPL | BAC | PHM | LPX | GOOG | BBBY | KBH | GILD | SW | STX | ANDV | EXPE | WHR | LYB |
| 2013-01-31 | NFLX | BAC | PHM | AAPL | META | KBH | OMX | LPX | GOOG | THC | ANDV | WHR | VRTS | MPC | REGN |
| 2013-02-28 | NFLX | OMX | BAC | META | GOOG | APO | VRTS | PHM | LPX | AAPL | GILD | ANDV | VLO | THC | MPC |
| 2013-03-28 | NFLX | OMX | GOOG | MTG | MHK | THC | FNMA | AOS | FMCC | VRTS | AAPL | GILD | BAC | PHM | META |
| 2013-04-30 | NFLX | OMX | FNMA | FMCC | MTG | GOOG | BAC | AAPL | MHK | GILD | META | THC | ANDV | NVDA | AOS |
| 2013-05-31 | FNMA | FMCC | NFLX | OMX | TSLA | FSLR | MTG | GOOG | AAPL | BAC | GOOGL | NVDA | PHM | BBBY | GILD |
| 2013-06-28 | FNMA | FMCC | OMX | TSLA | NFLX | GOOG | AAPL | FSLR | BBBY | BAC | MTG | NVDA | GOOGL | REGN | MU |
| 2013-07-31 | FNMA | FMCC | TSLA | OMX | GOOG | NFLX | MTG | GME | BAC | BBBY | AAPL | FSLR | GOOGL | NVDA | MU |
| 2013-08-30 | TSLA | OMX | FNMA | FMCC | MTG | GOOG | NFLX | AAPL | GME | META | NVDA | BBBY | BAC | GOOGL | MU |
| 2013-09-30 | TSLA | OMX | FNMA | META | NFLX | FMCC | AAPL | GOOG | MTG | MU | NVDA | GME | REGN | BAC | GOOGL |
| 2013-10-31 | OMX | TSLA | FNMA | FMCC | META | AAPL | GOOG | MU | NFLX | NVDA | MTG | DAL | GOOGL | BSX | BKNG |
| 2013-11-29 | OMX | FNMA | TSLA | META | FMCC | NFLX | AAPL | GOOG | MU | DAL | INCY | NVDA | GOOGL | BKNG | BAC |
| 2013-12-31 | FNMA | FMCC | TSLA | META | NFLX | GOOG | AAPL | MU | INCY | GOOGL | NVDA | KATE | DAL | BKNG | TKO |
| 2014-01-31 | FNMA | FMCC | TSLA | META | GOOG | INCY | TKO | AAPL | MU | NFLX | ILMN | GOOGL | NVDA | BAC | MGM |
| 2014-02-28 | FNMA | FMCC | TSLA | GOOG | META | ILMN | AAPL | MU | GOOGL | TKO | NFLX | NVDA | INCY | MGM | WYNN |
| 2014-03-31 | FNMA | FMCC | TSLA | GOOG | TKO | META | ILMN | GOOGL | AAPL | NVDA | NFLX | MU | BAC | URI | AVGO |
| 2014-04-30 | FNMA | TSLA | FMCC | META | MU | GOOG | NVDA | AAPL | TKO | AVGO | ILMN | GOOGL | URI | NFLX | FRX |
| 2014-05-30 | META | TSLA | MU | FNMA | AAPL | LUV | NVDA | AVGO | FRX | FMCC | ILMN | GOOG | NFLX | AAL | DAL |
| 2014-06-30 | META | MU | TSLA | AAPL | FNMA | NFLX | FMCC | LUV | NVDA | WLL | ILMN | AAL | AVGO | FANG | NFX |
| 2014-07-31 | MU | AAPL | META | TSLA | LUV | NFLX | NVDA | FMCC | WMB | SWKS | AVGO | FNMA | FANG | FRX | URI |
| 2014-08-29 | AAPL | MU | MMI | SWKS | NVDA | META | GILD | LUV | FMCC | TSLA | URI | FNMA | NFLX | AVGO | TPL |
| 2014-09-30 | AAPL | GILD | MU | ENPH | NVDA | LUV | META | SWKS | NFLX | PANW | TPL | TSLA | SMCI | AVGO | WMB |
| 2014-10-31 | AAPL | PANW | MMI | GILD | NVDA | MU | ENPH | SWKS | SMCI | META | TSLA | LUV | EW | MNST | AVGO |
| 2014-11-28 | AAPL | PANW | PAYC | TSLA | SWKS | NVDA | LUV | META | EW | MNST | GILD | MU | AVGO | SMCI | AMGN |
| 2014-12-31 | AAPL | SWKS | PANW | RCL | NVDA | LUV | MU | KMI | AXON | META | GILD | EW | DAL | TSLA | UAL |
| 2015-01-30 | AAPL | KMI | SWKS | META | RCL | ON | GOOG | GILD | BAC | BRK-B | V | KR | BLK | LUV | MRK |
| 2015-02-27 | AAPL | SWKS | PANW | NVDA | EA | KR | MNST | RCL | LUV | ANDV | LULU | KMI | SMCI | PAYC | GILD |
| 2015-03-31 | AAPL | SWKS | PANW | NVDA | AVGO | MNST | KR | CNC | GILD | ANDV | EA | HSP | BBWI | COR | MOH |
| 2015-04-30 | AAPL | SWKS | PANW | NVDA | AVGO | NFLX | MNST | CZR | PAYC | FTNT | BLDR | KMG | NXPI | INCY | EA |
| 2015-05-29 | SWKS | AAPL | NFLX | NVDA | AVGO | PANW | CNXT | CZR | INCY | AXON | BLDR | FTNT | BTUUQ | DXCM | NXPI |
| 2015-06-30 | AAPL | GILD | GE | META | BAC | JPM | SWKS | NFLX | BTUUQ | VTRS | GOOG | BIIB | MSFT | C | XOM |
| 2015-07-31 | AAPL | GILD | META | GOOG | BAC | GOOGL | JPM | GE | AMZN | NFLX | C | EBAY | DIS | V | MA |
| 2015-08-31 | AAPL | NFLX | META | GOOG | SBUX | AMZN | GOOGL | JPM | BKNG | GILD | FTNT | PANW | MDLZ | CZR | DHI |
| 2015-09-30 | AAPL | GOOG | META | NFLX | SBUX | AMZN | GOOGL | BKNG | GILD | MDLZ | PANW | V | NKE | CMG | FTNT |
| 2015-10-30 | AAPL | GOOG | GILD | META | XOM | KLAC | SBUX | GOOGL | NFLX | NVDA | DIS | PFE | JPM | GE | NKE |
| 2015-11-30 | GE | AMZN | AAPL | GOOG | META | GOOGL | MSFT | PSA | GILD | XOM | V | DD | DIS | BAC | COST |
| 2015-12-31 | AMZN | GE | META | GOOG | AAPL | GOOGL | MSFT | DD | NFLX | AMAT | BKNG | JNJ | GM | PSA | BAC |
| 2016-01-29 | AMZN | GE | AAPL | GOOG | META | GOOGL | MSFT | JNJ | V | XOM | TPR | TSN | PFE | KLAC | TAP |
| 2016-02-29 | GE | GOOG | AAPL | AMZN | META | GILD | XOM | SPGI | GOOGL | PFE | MSFT | V | JNJ | DIS | T |
| 2016-03-31 | GE | GOOG | AMZN | META | AAPL | GOOGL | XOM | PSA | T | MSFT | JNJ | MCD | VZ | SPG | TSN |
| 2016-04-29 | NVDA | GOOG | META | NEM | AMZN | TSN | AVGO | CNX | CLF | EW | BAC | T | WB | ABMD | GE |
| 2016-05-31 | NVDA | GOOG | META | AMZN | AMD | CZR | WB | ABMD | TSN | EW | ULTA | CNX | ISRG | T | BAX |
| 2016-06-30 | NVDA | CLF | GOOG | AMZN | AMD | OKE | META | DLR | X | AWK | DXC | T | CZR | ULTA | EQIX |
| 2016-07-29 | NVDA | CLF | AMD | X | WB | CNX | AMZN | GOOG | NEM | META | DLR | AAPL | AMAT | PAYC | HPE |
| 2016-08-31 | NVDA | AMD | WB | CLF | X | DHR | AMAT | GOOG | AMZN | HPE | META | NEM | BAC | GEN | AAPL |
| 2016-09-30 | NVDA | WB | AMD | X | CLF | AMAT | WMB | DHR | AMZN | WPX | OKE | AAPL | NAV | LITE | GEN |
| 2016-10-31 | NVDA | AMD | WB | X | DHR | LITE | AMAT | CNX | AAPL | GEN | TPL | HPE | CLF | GOOG | WPX |
| 2016-11-30 | NVDA | AMD | CLF | X | WB | FMCC | BAC | FNMA | DHR | CNX | AMAT | TPL | HPE | GOOG | AAPL |
| 2016-12-30 | NVDA | CLF | AMD | X | BAC | FMCC | FNMA | RF | KEY | GS | MS | JPM | TPL | AMAT | GOOG |
| 2017-01-31 | NVDA | CLF | AMD | BAC | FNMA | X | FMCC | CSX | URI | RF | CHTR | TPL | JPM | KEY | GS |
| 2017-02-28 | NVDA | AMD | CLF | BAC | CSX | X | URI | RF | GS | JPM | WDC | MS | AAPL | KEY | ANET |
| 2017-03-31 | NVDA | AMD | CLF | BAC | CSX | X | RF | INCY | ANET | URI | AAPL | JPM | CHTR | GS | MS |
| 2017-04-28 | NVDA | AMD | BAC | CSX | WDC | KMG | ANET | AAPL | LRCX | AMAT | CHTR | HPQ | TSLA | IDXX | INCY |
| 2017-05-31 | NVDA | AMD | CSX | TTD | XYZ | TSLA | CHTR | LRCX | BAC | AAPL | WDC | KMG | MU | ANET | GOOG |
| 2017-06-30 | NVDA | XYZ | TSLA | CSX | ANET | WB | VRTX | GOOG | AAPL | BAC | CHTR | LRCX | AMAT | WDC | TTD |
| 2017-07-31 | NVDA | XYZ | VRTX | CHTR | ANET | TSLA | MU | ALGN | GOOG | WB | LRCX | META | PYPL | CSX | AAPL |
| 2017-08-31 | NVDA | WB | VRTX | XYZ | TTWO | ANET | TSLA | LRCX | NRG | GOOG | AAPL | ALGN | META | PYPL | IPGP |
| 2017-09-29 | NVDA | XYZ | WB | ANET | TTWO | MU | LRCX | NRG | VRTX | ETSY | TTD | BBBY | TSLA | SEDG | GOOG |
| 2017-10-31 | NVDA | BBBY | XYZ | MU | ALGN | SEDG | TTWO | LRCX | ANET | TTD | ETSY | AMAT | AAPL | IPGP | BAC |
| 2017-11-30 | NVDA | BBBY | XYZ | ENPH | MU | ANET | ALGN | SEDG | LRCX | AAPL | PYPL | VRTX | NRG | GOOG | FSLR |
| 2017-12-29 | NVDA | BBBY | XYZ | ENPH | ANET | SEDG | MU | ALGN | WB | GOOG | VRTX | AAPL | BAC | PYPL | LRCX |
| 2018-01-31 | BBBY | NVDA | XYZ | ANET | NKTR | MU | SEDG | ABBV | GOOG | BAC | BA | ALGN | AMZN | PYPL | TTWO |
| 2018-02-28 | NKTR | NVDA | BBBY | XYZ | ANET | MU | AMZN | ENPH | NFLX | SEDG | GOOG | ABBV | BA | BAC | EC |
| 2018-03-29 | NKTR | AMZN | MU | META | NVDA | GOOG | AAPL | CCI | XYZ | NFLX | MSFT | BAC | MA | V | BA |
| 2018-04-30 | AMZN | NKTR | AAPL | MU | GE | META | NFLX | ANF | NVDA | CMG | GOOG | XYZ | ULTA | STX | LUMN |
| 2018-05-31 | AMZN | CCI | MU | META | AAPL | NVDA | GOOG | NFLX | ENPH | CAT | V | MSFT | XYZ | NKTR | ETSY |
| 2018-06-29 | AMZN | CCI | META | NFLX | ANF | GOOG | AAPL | TKO | MU | NVDA | XYZ | MSFT | V | ENPH | PSA |
| 2018-07-31 | ENPH | NVDA | HET | TKO | ETSY | AXON | NFLX | AMZN | MU | CVNA | XYZ | THC | TTD | SEDG | ANF |
| 2018-08-31 | HET | NVDA | CVNA | TKO | ENPH | XYZ | AMD | MOS | TTD | NFLX | AMZN | ETSY | AXON | DXCM | CCI |
| 2018-09-28 | HET | AMD | CVNA | NVDA | TKO | XYZ | TTD | MOS | AMZN | ETSY | NFLX | DXCM | ABMD | LULU | CCI |
| 2018-10-31 | CCI | AMZN | AAPL | AMD | TTD | CRM | XYZ | DXCM | HET | ABMD | PAYC | MOH | TSLA | FTNT | META |
| 2018-11-30 | AMZN | CCI | HET | BBWI | AMD | TSLA | AAPL | EXR | ABMD | MSFT | BEN | GOOG | PM | WBD | SBUX |
| 2018-12-31 | CCI | AMZN | AAPL | GOOG | EXR | META | MSFT | JPM | MRK | HET | BRK-B | BAC | V | WFC | GOOGL |
| 2019-01-31 | AMZN | HET | CCI | GOOG | AMD | META | NFLX | FNMA | FMCC | EXR | MSFT | AAPL | PAYC | LRCX | MRK |
| 2019-02-28 | CCI | HET | AMZN | GOOG | EXR | NFLX | AAPL | META | XYZ | LLY | MRK | BLK | BA | TTD | AMD |
| 2019-03-29 | HET | TTD | NVDA | ETSY | AMD | FNMA | CMG | CCI | ENPH | LLY | FMCC | EXR | AMZN | TSLA | MRK |
| 2019-04-30 | HET | TTD | NVDA | AMD | ENPH | CVNA | ETSY | CCI | AMZN | EXR | CMG | AVP | PAYC | NOW | FNMA |
| 2019-05-31 | AMZN | HET | ENPH | EXR | CCI | MTCH | NFLX | GOOG | META | TSLA | AAPL | MSFT | AMD | CDNS | COTY |
| 2019-06-28 | HET | ENPH | NVDA | TTD | AVP | PAYC | CCI | FNMA | EXR | AMZN | ERIE | AMD | FMCC | VEEV | MTCH |
| 2019-07-31 | HET | ENPH | NVDA | TTD | PAYC | CCI | EXR | AVP | AMZN | SBUX | GOOG | MTCH | AAPL | CMG | VEEV |
| 2019-08-30 | ENPH | EXR | HET | CCI | AMZN | AAPL | GOOG | MSFT | META | BLK | JPM | MRK | QCOM | NVDA | PSA |
| 2019-09-30 | HET | ENPH | NVDA | SEDG | CCI | AVP | EXR | GOOG | AAPL | KLAC | TSLA | SBUX | PODD | CMG | T |
| 2019-10-31 | HET | ENPH | NVDA | AVP | CCI | TSLA | SEDG | AAPL | EXR | KLAC | GOOG | GNRC | LRCX | BAC | T |
| 2019-11-29 | HET | NVDA | ENPH | TSLA | AAPL | CCI | GOOG | KLAC | CVNA | SEDG | PODD | AVP | BAC | LRCX | EXR |
| 2019-12-31 | HET | NVDA | ENPH | TSLA | AAPL | CCI | GOOG | SEDG | KLAC | LRCX | BAC | CVNA | TGT | THC | TER |
| 2020-01-31 | HET | TSLA | NVDA | ENPH | AAPL | CCI | GOOG | SEDG | BMY | LRCX | EXR | PAYC | CVNA | CPRT | PODD |
| 2020-02-28 | TSLA | HET | AAPL | ENPH | CCI | AMZN | GOOG | PCG | NVDA | AMD | SEDG | CI | MSFT | GEN | DXCM |
| 2020-03-31 | TSLA | EXR | AAPL | DVN | AMZN | GOOG | CCI | MSFT | ENPH | AMT | META | NVDA | BRK-B | CI | AMD |
| 2020-04-30 | TSLA | EXR | DVN | AAPL | AMZN | ENPH | GOOG | CCI | MSFT | AMT | META | NVDA | NFLX | BRK-B | CI |
| 2020-05-29 | TSLA | EXR | ENPH | AMZN | DVN | AAPL | GOOG | CCI | MSFT | AMT | META | NVDA | BRK-B | NFLX | CI |
| 2020-06-30 | TSLA | AMZN | AAPL | CCI | EXR | GOOG | MSFT | AMT | NVDA | META | ENPH | NFLX | AMD | JPM | BRK-B |
| 2020-07-31 | TSLA | BBBY | AMZN | AAPL | CCI | NVDA | MSFT | XYZ | EXR | ENPH | GOOG | AMT | AMD | META | NFLX |
| 2020-08-31 | TSLA | BBBY | EXR | AAPL | AMZN | NVDA | XYZ | CCI | AMD | META | MSFT | BLK | GOOG | TUP | ETSY |
| 2020-09-30 | TSLA | EXR | BBBY | AAPL | AMZN | CCI | NVDA | TUP | GME | PENN | ENPH | XYZ | AMD | BLK | FDX |
| 2020-10-30 | TSLA | EXR | TUP | AAPL | ENPH | GME | AMZN | CCI | NVDA | XYZ | BLK | AMD | FDX | GOOG | META |
| 2020-11-30 | TSLA | TUP | CCI | EXR | ENPH | AAPL | GME | AMZN | BLK | NOW | MRNA | XYZ | NVDA | DVN | BBBY |
| 2020-12-31 | TSLA | TUP | CCI | ENPH | EXR | AAPL | AMZN | DVN | XYZ | MRNA | NOW | CPRI | GOOG | BLK | AMT |
| 2021-01-29 | GME | TSLA | CCI | EXR | AMZN | AAPL | AMT | BLK | COST | AMD | DVN | ENPH | GOOG | XYZ | NOW |
| 2021-02-26 | GME | TSLA | CCI | EXR | AAPL | AMT | DVN | AMZN | XYZ | GOOG | VIAC | BLK | QEP | COST | NOW |
| 2021-03-31 | GME | TSLA | EXR | AMT | AAPL | CCI | VIAC | PSKY | AMZN | GOOG | TTD | MRNA | DISCA | DISCK | XYZ |
| 2021-04-30 | TSLA | GME | EXR | GOOG | QEP | CAR | AMT | AAPL | VIAC | AMZN | CCI | BBWI | JPM | BLK | XEC |
| 2021-05-28 | GME | DVN | NVDA | TSLA | PLTR | PSKY | EXR | FCX | GOOG | CLF | MRNA | XEC | DDS | F | WFC |
| 2021-06-30 | GME | NVDA | MRNA | TSLA | DDS | PLTR | GOOG | CLF | PSKY | ANF | F | RRC | DVN | RRD | ROST |
| 2021-07-30 | GME | MRNA | NVDA | RRD | DDS | CLF | GOOG | BX | TSLA | BBWI | MDP | FTNT | HOOD | ROST | WFC |
| 2021-08-31 | GME | MRNA | NVDA | RRD | DDS | CLF | MDP | GOOG | BX | DDR | NAVI | ASO | SBNY | TSLA | NUE |
| 2021-09-30 | MRNA | GME | NVDA | RRD | RRC | DVN | GOOG | DDR | DDS | MDP | M | BX | MRO | TSLA | CAR |
| 2021-10-29 | GME | MRNA | NVDA | TSLA | RRD | DVN | CAR | RRC | MRO | DDS | DDR | M | GOOG | MDP | BX |
| 2021-11-30 | TSLA | NVDA | EXR | AMD | CAR | AAPL | MRO | GOOG | COST | MSFT | AMZN | DDS | MRNA | GME | BLK |
| 2021-12-31 | NVDA | CAR | DVN | GME | RRD | MRNA | TSLA | MRO | EXR | DDS | F | AMD | BLDR | ON | PFE |
| 2022-01-31 | DVN | TSLA | MRNA | AAPL | F | MRO | EXR | ON | GOOG | NVDA | PFE | CVX | BLDR | DLTR | AVGO |
| 2022-02-28 | TSLA | DVN | MRNA | AAPL | NVDA | EXR | EOG | XOM | CAR | MSFT | ABBV | AMD | MPC | F | MRO |
| 2022-03-31 | TSLA | MOS | OXY | CF | EXR | DVN | MRNA | GOOG | CVX | AAPL | MRO | COP | CAR | EQT | EOG |
| 2022-04-29 | EQT | TSLA | MOS | MRNA | DVN | MAR | OXY | VLO | CVX | CF | DLTR | MRO | NUE | ADM | NEM |
| 2022-05-31 | EXR | VLO | AMT | TSLA | AAPL | CCI | GOOG | MSFT | MPC | XOM | CVX | BRK-B | OXY | NVDA | BMY |
| 2022-06-30 | EXR | AMT | VLO | TSLA | AAPL | CCI | GOOG | MSFT | XOM | NVDA | MPC | BMY | BRK-B | OXY | MRK |
| 2022-07-29 | EXR | AMT | VLO | TSLA | AAPL | CCI | GOOG | MSFT | XOM | NVDA | MPC | OXY | MRNA | BRK-B | BMY |
| 2022-08-31 | EXR | TSLA | AMT | CCI | AAPL | MPC | MSFT | GOOG | NVDA | OXY | XOM | BRK-B | JPM | V | AMD |
| 2022-09-30 | EXR | TSLA | AMT | AAPL | CCI | MPC | MSFT | GOOG | NVDA | AMZN | BRK-B | V | JPM | XOM | PFE |
| 2022-10-31 | EXR | AMT | TSLA | AAPL | CCI | MPC | MSFT | GOOG | NVDA | JPM | V | AMZN | BRK-B | PFE | XOM |
| 2022-11-30 | UCL | VLO | EXR | TSLA | MPC | AAPL | CCI | BLK | AMT | XOM | GS | PSA | JPM | CVX | FSLR |
| 2022-12-30 | VLO | EXR | UCL | MPC | TSLA | BLK | CCI | AAPL | XOM | AMT | MRK | JPM | GS | NVDA | CVX |
| 2023-01-31 | UCL | EXR | VLO | TSLA | CCI | NVDA | MPC | BLK | AMT | AAPL | META | XOM | GS | GOOG | JPM |
| 2023-02-28 | EXR | TSLA | VLO | NVDA | UCL | CCI | MPC | BLK | AMT | MTW | PSA | AAPL | URI | META | FTI |
| 2023-03-31 | TSLA | NVDA | EXR | CCI | AAPL | AMT | MPC | MSFT | VLO | PSA | GOOG | BLK | ABNB | BKNG | META |
| 2023-04-28 | TSLA | NVDA | EXR | AMT | AAPL | MSFT | CCI | META | BLK | PSA | GOOG | BKNG | MPC | GE | AVGO |
| 2023-05-31 | EXR | TSLA | NVDA | AMT | CCI | MSFT | AAPL | GOOG | META | AMZN | AVGO | GOOGL | V | AMD | BKNG |
| 2023-06-30 | SMCI | NVDA | CVNA | RCL | CCL | TSLA | PLTR | EXR | META | NFLX | BLDR | VRT | NCLH | AVGO | ROST |
| 2023-07-31 | SMCI | CVNA | NVDA | RCL | PLTR | CCL | META | TSLA | NCLH | EXR | UBER | NFLX | VRT | AVGO | ROST |
| 2023-08-31 | EXR | NVDA | TSLA | CVNA | AMT | SMCI | ROST | UAL | META | VRT | BLK | CCI | NFLX | AAPL | GOOG |
| 2023-09-29 | CVNA | TSLA | EXR | NVDA | SMCI | VRT | NCLH | CRM | GOOG | CCL | META | RCL | AMD | AAPL | APP |
| 2023-10-31 | TSLA | EXR | NVDA | VRT | GOOG | CRM | RCL | CVNA | AAPL | META | LLY | ANF | CRWD | VST | APP |
| 2023-11-30 | NVDA | CVNA | VRT | ANF | PHM | SMCI | EXR | META | PLTR | GPS | TSLA | CRWD | APP | KKR | UBER |
| 2023-12-29 | CVNA | NVDA | PHM | ANF | COIN | EXR | VRT | SMCI | FNMA | CRWD | TSLA | GPS | PLTR | UBER | KKR |
| 2024-01-31 | NVDA | SMCI | CVNA | ANF | VRT | EXR | PHM | FNMA | CRWD | FMCC | ANET | KKR | UBER | META | AVGO |
| 2024-02-29 | SMCI | NVDA | CVNA | ANF | VRT | KKR | EXR | CRWD | ADCT | COIN | META | UBER | AMD | DYN | FNMA |
| 2024-03-28 | SMCI | NVDA | CVNA | COIN | ADCT | VRT | ANF | EXR | KKR | FNMA | DYN | HOOD | APP | FMCC | VST |
| 2024-04-30 | SMCI | CVNA | NVDA | ADCT | VRT | EXR | COIN | ANF | KKR | DYN | VST | DELL | HOOD | APP | FNMA |
| 2024-05-31 | NVDA | CVNA | SMCI | VRT | VST | ANF | COIN | DELL | EXR | KKR | HOOD | ADCT | DYN | FNMA | APP |
| 2024-06-28 | NVDA | SMCI | CVNA | VST | ANF | VRT | DELL | DYN | KKR | HOOD | EXR | COIN | APP | CRWD | FMCC |
| 2024-07-31 | NVDA | CVNA | ANF | SMCI | VST | LUMN | KKR | EXR | VRT | DYN | DELL | HOOD | COIN | APP | ANET |
| 2024-08-30 | NVDA | LUMN | CVNA | DYN | SMCI | EXR | ANF | VST | KKR | COIN | DELL | THC | CCI | PLTR | HOOD |
| 2024-09-30 | NVDA | EXR | CCI | LUMN | AMT | COST | AMZN | AAPL | BLK | CVNA | PSA | META | GS | GOOG | MSFT |
| 2024-10-31 | LUMN | CVNA | NVDA | APP | VST | EXR | PLTR | KKR | GEV | HOOD | CCI | DYN | TPL | COHR | VRT |
| 2024-11-29 | LUMN | CVNA | APP | NVDA | PLTR | VST | HOOD | TSLA | FNMA | AIG | EXR | CCI | TPL | FMCC | KKR |
| 2024-12-31 | APP | CCI | TSLA | NVDA | PLTR | EXR | WDAY | FMCC | EMR | AAPL | FNMA | AMZN | BLK | GOOG | AMT |
| 2025-01-31 | CCI | TSLA | APP | EXR | PLTR | FMCC | FNMA | NVDA | WDAY | HOOD | EMR | AMZN | AAPL | META | GOOG |
| 2025-02-28 | CCI | EXR | TSLA | PLTR | APP | FNMA | NVDA | FMCC | WDAY | AMT | EMR | HOOD | META | GS | AAPL |
| 2025-03-31 | TSLA | NVDA | PLTR | FNMA | HOOD | WBA | APP | TPR | WDC | FMCC | CVS | AMT | META | NEM | DASH |
| 2025-04-30 | PLTR | NVDA | TSLA | DG | HOOD | DLTR | FNMA | AMT | APP | WDC | NEM | EXR | MCK | EW | KR |
| 2025-05-30 | NVDA | TSLA | WDC | FNMA | DG | PLTR | DLTR | APP | GOOG | SMCI | NFLX | GEV | AMT | DXCM | F |
| 2025-06-30 | TSLA | HOOD | PLTR | NVDA | NEM | FNMA | FMCC | APP | AMT | GEV | NFLX | EXR | GOOG | GS | MSFT |
| 2025-07-31 | NVDA | HOOD | TSLA | PLTR | NEM | GEV | AMD | GOOG | APP | STX | MSFT | AVGO | GS | META | BLK |
| 2025-08-29 | HOOD | PLTR | FNMA | FMCC | NVDA | APP | NEM | GEV | CVNA | ECHO | UCL | WDC | STX | AMD | COIN |
| 2025-09-30 | HOOD | FNMA | FMCC | APP | PLTR | NVDA | WDC | STX | NEM | ECHO | GOOG | MU | TSLA | LITE | COIN |
| 2025-10-31 | TSLA | MU | NVDA | EXR | HOOD | APP | PLTR | GOOG | AMD | NEM | WDC | TE | GOOGL | FMCC | AVGO |
| 2025-11-28 | TSLA | MU | NVDA | GOOG | LITE | EXR | HOOD | GOOGL | PLTR | WDC | AMD | CIEN | NEM | AVGO | APP |
| 2025-12-31 | TSLA | MU | WDC | NVDA | LITE | GOOG | EXR | TE | ECHO | GOOGL | LLY | WBD | GS | AMD | NEM |
| 2026-01-30 | MU | WDC | NVDA | TSLA | GOOG | EXR | TE | LITE | ECHO | NEM | GOOGL | STX | GS | LRCX | AMT |
| 2026-02-27 | LITE | MU | WDC | TSLA | NVDA | EXR | GOOG | NEM | GOOGL | CIEN | AMT | GS | GLW | LRCX | TER |
| 2026-03-31 | LITE | NVDA | CIEN | CCI | GOOG | MU | WDC | EXR | TSLA | APA | DOW | LYB | COHR | GLW | CF |
| 2026-04-30 | LITE | CCI | MU | EXR | NVDA | WDC | GOOG | CIEN | TSLA | INTC | STX | VIAV | AMT | GEV | AMD |
| 2026-05-29 | MU | CCI | LITE | EXR | NVDA | WDC | INTC | AMD | STX | GOOG | DELL | TSLA | AMT | MRVL | CIEN |
| 2026-06-26 | MU | CCI | EXR | INTC | WDC | AMD | STX | LITE | NVDA | MRVL | DELL | GOOG | AMT | TSLA | GS |
Scoring script (python)
FORMULA_NAME = "Contrarian 52-Week Recovery with Quality-Regime Momentum Arbitration (v1125)"
LOGIC_VARIANT_COUNT = 4
NOTES = """mode=explore; family=contrarian-52w-recovery-quality-regime-momentum-hybrid
New hybrid family that combines deep 52-week-high contrarian recovery, quality-gated rebound repair, and regime-aware momentum confirmation through explicit arbitration instead of flat blending. The design separates washed-out rebound tapes from healthy bull tapes and stressed/risk-off tapes: when the market is damaged it rewards discounted names only if repair and business durability confirm; when the tape is healthy it lets momentum lead but still demands reasonable quality and tradability; when signals conflict, the script resolves them with branch-specific gates and penalties rather than averaging them away.
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 conflict penalty), one volatility check, all three liquidity checks, one income check, one valuation cluster (peg plus forward_pe, with pe left zero), one growth cluster (revenue_growth_pct, operating_income_growth_pct, free_cash_flow_growth_pct, with eps_growth_pct and forward_eps left zero), one quality cluster (operating_margin_pct plus free_cash_flow_margin_pct), and one size tilt (market_cap only). Deliberately weight return_1m_pct, pe, eps_growth_pct, forward_eps, 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 parent stacks while still considering the full menu consciously. Sparse fundamentals are normalized by present weight before sleeve arbitration."""
WASHED_OUT_RECOVERY = {
"from_52w_high_pct": (0.26, -1),
"from_200d_ma_pct": (0.18, +1),
"return_3m_pct": (0.08, +1),
"return_6m_pct": (0.04, +1),
"realized_vol_3m": (0.08, -1),
"avg_daily_dollar_volume_3m": (0.06, +1),
"trading_days_3m": (0.04, +1),
"dividend_yield_ttm_pct": (0.03, +1),
"peg": (0.05, -1),
"revenue_growth_pct": (0.05, +1),
"operating_income_growth_pct": (0.04, +1),
"operating_margin_pct": (0.05, +1),
"free_cash_flow_margin_pct": (0.04, +1),
"market_cap": (0.04, -1),
}
CALM_BULL = {
"from_200d_ma_pct": (0.15, +1),
"momentum_12_1_pct": (0.16, +1),
"return_6m_pct": (0.10, +1),
"from_52w_high_pct": (0.08, -1),
"realized_vol_3m": (0.05, -1),
"avg_daily_volume_3m": (0.05, +1),
"avg_daily_dollar_volume_3m": (0.04, +1),
"forward_pe": (0.05, -1),
"revenue_growth_pct": (0.05, +1),
"free_cash_flow_growth_pct": (0.05, +1),
"operating_margin_pct": (0.06, +1),
"free_cash_flow_margin_pct": (0.06, +1),
"market_cap": (0.03, -1),
}
STRESSED_BULL = {
"from_200d_ma_pct": (0.16, +1),
"from_52w_high_pct": (0.13, -1),
"return_3m_pct": (0.08, +1),
"momentum_12_1_pct": (0.07, +1),
"realized_vol_3m": (0.12, -1),
"avg_daily_dollar_volume_3m": (0.07, +1),
"trading_days_3m": (0.05, +1),
"dividend_ttm": (0.03, +1),
"peg": (0.05, -1),
"operating_income_growth_pct": (0.05, +1),
"free_cash_flow_growth_pct": (0.04, +1),
"operating_margin_pct": (0.08, +1),
"free_cash_flow_margin_pct": (0.07, +1),
}
RISK_OFF = {
"realized_vol_3m": (0.18, -1),
"from_200d_ma_pct": (0.14, +1),
"from_52w_high_pct": (0.12, -1),
"avg_daily_dollar_volume_3m": (0.08, +1),
"trading_days_3m": (0.08, +1),
"forward_pe": (0.06, -1),
"peg": (0.05, -1),
"revenue_growth_pct": (0.04, +1),
"operating_income_growth_pct": (0.06, +1),
"operating_margin_pct": (0.10, +1),
"free_cash_flow_margin_pct": (0.09, +1),
}
def score_universe(stocks, regime, ctx):
def pick_branch():
bull = regime.get("bull", False)
breadth = regime.get("breadth")
vol = regime.get("avg_realized_vol_3m")
median_200d = regime.get("median_from_200d_ma_pct")
median_momo = regime.get("median_momentum_12_1_pct")
if bull and breadth is not None and breadth >= 0.60 and vol is not None and vol <= 0.32:
return "calm_bull"
if bull and (
(vol is not None and vol > 0.32) or
(breadth is not None and breadth < 0.60)
):
return "stressed_bull"
if (not bull) and (
(median_200d is not None and median_200d > -2.0) or
(median_momo is not None and median_momo > 2.0)
):
return "washed_out_recovery"
return "risk_off"
branch = pick_branch()
if branch == "calm_bull":
weights = CALM_BULL
elif branch == "stressed_bull":
weights = STRESSED_BULL
elif branch == "washed_out_recovery":
weights = WASHED_OUT_RECOVERY
else:
weights = RISK_OFF
z_cache = {}
for metric in weights:
z_cache[metric] = ctx.z(metric)
def weighted_score(symbol, spec):
total = 0.0
used = 0.0
for metric, pair in spec.items():
weight, direction = pair
zmap = z_cache.get(metric)
if not zmap:
continue
val = zmap.get(symbol)
if val is None:
continue
total += weight * direction * val
used += weight
if used <= 0.0:
return None
return total / used
out = {}
for stock in stocks:
symbol = stock["symbol"]
price_repair_spec = {
"from_52w_high_pct": weights.get("from_52w_high_pct", (0.0, -1)),
"from_200d_ma_pct": weights.get("from_200d_ma_pct", (0.0, +1)),
"return_3m_pct": weights.get("return_3m_pct", (0.0, +1)),
"return_6m_pct": weights.get("return_6m_pct", (0.0, +1)),
"momentum_12_1_pct": weights.get("momentum_12_1_pct", (0.0, +1)),
"realized_vol_3m": weights.get("realized_vol_3m", (0.0, -1)),
"market_cap": weights.get("market_cap", (0.0, -1)),
}
durability_spec = {
"avg_daily_volume_3m": weights.get("avg_daily_volume_3m", (0.0, +1)),
"avg_daily_dollar_volume_3m": weights.get("avg_daily_dollar_volume_3m", (0.0, +1)),
"trading_days_3m": weights.get("trading_days_3m", (0.0, +1)),
"dividend_yield_ttm_pct": weights.get("dividend_yield_ttm_pct", (0.0, +1)),
"dividend_ttm": weights.get("dividend_ttm", (0.0, +1)),
"forward_pe": weights.get("forward_pe", (0.0, -1)),
"peg": weights.get("peg", (0.0, -1)),
"revenue_growth_pct": weights.get("revenue_growth_pct", (0.0, +1)),
"operating_income_growth_pct": weights.get("operating_income_growth_pct", (0.0, +1)),
"free_cash_flow_growth_pct": weights.get("free_cash_flow_growth_pct", (0.0, +1)),
"operating_margin_pct": weights.get("operating_margin_pct", (0.0, +1)),
"free_cash_flow_margin_pct": weights.get("free_cash_flow_margin_pct", (0.0, +1)),
}
repair = weighted_score(symbol, price_repair_spec)
durability = weighted_score(symbol, durability_spec)
if repair is None and durability is None:
continue
if repair is None:
repair = durability * 0.70
if durability is None:
durability = repair * 0.55
price_gap = stock.get("from_52w_high_pct")
dist_200d = stock.get("from_200d_ma_pct")
ret_12m = stock.get("return_12m_pct")
vol = stock.get("realized_vol_3m")
breadth = regime.get("breadth")
bull = regime.get("bull", False)
score = 0.0
if branch == "washed_out_recovery":
if price_gap is not None and price_gap > -0.18:
score -= 0.35
if dist_200d is not None and dist_200d < -0.18:
score -= 0.55
if repair >= 0.20 and durability >= -0.10:
score += 0.72 * repair + 0.28 * durability
elif durability >= 0.35 and repair >= -0.05:
score += 0.55 * repair + 0.45 * durability
else:
score += 0.42 * repair + 0.58 * durability
if vol is not None and vol > 0.60:
score -= 0.18
if ret_12m is not None and ret_12m > 55.0 and durability < 0.10:
score -= 0.20
elif branch == "calm_bull":
score += 0.60 * repair + 0.40 * durability
if durability >= 0.15:
score += 0.10 * repair
if price_gap is not None and price_gap < -0.45 and durability < 0.0:
score -= 0.22
if ret_12m is not None and ret_12m < -15.0:
score -= 0.10
elif branch == "stressed_bull":
score += 0.48 * repair + 0.52 * durability
if repair > 0.35 and durability < -0.15:
score -= 0.20
if durability > 0.30 and repair > -0.10:
score += 0.12
if vol is not None and vol > 0.55:
score -= 0.10
else:
score += 0.32 * repair + 0.68 * durability
if repair < -0.25:
score -= 0.15
if durability > 0.20 and repair > -0.10:
score += 0.10
if price_gap is not None and price_gap > -0.10:
score -= 0.08
if bull and breadth is not None and breadth > 0.72 and durability is not None and durability < -0.20:
score -= 0.10
if (not bull) and dist_200d is not None and dist_200d > 0.12 and repair is not None and repair < 0.0:
score -= 0.08
out[symbol] = score
return out