← All V2 experiments
Relative return
1.026x
Excess vs bench
2.61%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
17.01%
Mean benchmark gain
14.08%
Mean excess gain
2.93%
Dispersion (ref)
5.21%
Win-rate vs bench (ref)
83.24%
Worst / best ratio (ref)
0.978x / 1.083x
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 | 8.48% | 2.22% | 1.061x |
| 2011-07-01 … 2016-06-30 | 14.10% | 13.74% | 1.003x |
| 2016-07-01 … 2021-06-30 | 23.73% | 20.63% | 1.026x |
| 2021-07-01 … 2026-06-26 | 27.67% | 15.48% | 1.106x |
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.026x · beat benchmark in 149/179
| # | Window | Strategy | Benchmark | Ratio |
|---|---|---|---|---|
| 1 | 2006-07-31 … 2011-07-29 | 7.93% | 1.79% | 1.060x |
| 2 | 2006-08-31 … 2011-08-31 | 7.49% | 0.21% | 1.073x |
| 3 | 2006-09-29 … 2011-08-31 | 7.47% | -0.14% | 1.076x |
| 4 | 2006-10-31 … 2011-10-31 | 7.12% | 0.23% | 1.069x |
| 5 | 2006-11-30 … 2011-11-30 | 5.98% | -0.05% | 1.060x |
| 6 | 2006-12-29 … 2011-11-30 | 6.09% | -0.32% | 1.064x |
| 7 | 2007-01-31 … 2012-01-31 | 7.54% | 0.93% | 1.065x |
| 8 | 2007-02-28 … 2012-01-31 | 8.26% | 1.43% | 1.067x |
| 9 | 2007-03-30 … 2012-03-30 | 9.81% | 3.09% | 1.065x |
| 10 | 2007-04-30 … 2012-04-30 | 9.50% | 2.42% | 1.069x |
| 11 | 2007-05-31 … 2012-05-31 | 6.74% | 0.60% | 1.061x |
| 12 | 2007-06-29 … 2012-06-29 | 8.30% | 1.92% | 1.063x |
| 13 | 2007-07-31 … 2012-07-31 | 8.44% | 2.69% | 1.056x |
| 14 | 2007-08-31 … 2012-08-31 | 8.68% | 2.95% | 1.056x |
| 15 | 2007-09-28 … 2012-09-28 | 9.05% | 3.20% | 1.057x |
| 16 | 2007-10-31 … 2012-10-31 | 7.47% | 2.60% | 1.048x |
| 17 | 2007-11-30 … 2012-11-30 | 8.28% | 3.45% | 1.047x |
| 18 | 2007-12-31 … 2012-12-31 | 7.85% | 3.69% | 1.040x |
| 19 | 2008-01-31 … 2013-01-31 | 10.06% | 5.85% | 1.040x |
| 20 | 2008-02-29 … 2013-02-28 | 10.11% | 6.82% | 1.031x |
| 21 | 2008-03-31 … 2013-03-28 | 12.48% | 7.73% | 1.044x |
| 22 | 2008-04-30 … 2013-04-30 | 12.14% | 7.51% | 1.043x |
| 23 | 2008-05-30 … 2013-04-30 | 11.49% | 7.81% | 1.034x |
| 24 | 2008-06-30 … 2013-06-28 | 10.61% | 9.33% | 1.012x |
| 25 | 2008-07-31 … 2013-07-31 | 12.95% | 10.48% | 1.022x |
| 26 | 2008-08-29 … 2013-07-31 | 13.05% | 10.52% | 1.023x |
| 27 | 2008-09-30 … 2013-09-30 | 15.21% | 11.48% | 1.033x |
| 28 | 2008-10-31 … 2013-10-31 | 17.55% | 15.76% | 1.015x |
| 29 | 2008-11-28 … 2013-10-31 | 18.80% | 17.46% | 1.011x |
| 30 | 2008-12-31 … 2013-12-31 | 19.93% | 18.44% | 1.013x |
| 31 | 2009-01-30 … 2013-12-31 | 21.07% | 20.64% | 1.004x |
| 32 | 2009-02-27 … 2014-01-31 | 23.05% | 21.63% | 1.012x |
| 33 | 2009-03-31 … 2014-03-31 | 21.47% | 20.60% | 1.007x |
| 34 | 2009-04-30 … 2014-04-30 | 20.21% | 19.00% | 1.010x |
| 35 | 2009-05-29 … 2014-04-30 | 19.44% | 18.32% | 1.009x |
| 36 | 2009-06-30 … 2014-06-30 | 22.61% | 19.01% | 1.030x |
| 37 | 2009-07-31 … 2014-07-31 | 19.88% | 17.39% | 1.021x |
| 38 | 2009-08-31 … 2014-08-29 | 20.68% | 17.70% | 1.025x |
| 39 | 2009-09-30 … 2014-09-30 | 19.21% | 16.64% | 1.022x |
| 40 | 2009-10-30 … 2014-09-30 | 20.24% | 17.08% | 1.027x |
| 41 | 2009-11-30 … 2014-11-28 | 19.48% | 16.82% | 1.023x |
| 42 | 2009-12-31 … 2014-12-31 | 17.98% | 16.28% | 1.015x |
| 43 | 2010-01-29 … 2014-12-31 | 19.26% | 17.23% | 1.017x |
| 44 | 2010-02-26 … 2015-01-30 | 19.20% | 15.80% | 1.029x |
| 45 | 2010-03-31 … 2015-03-31 | 17.68% | 15.40% | 1.020x |
| 46 | 2010-04-30 … 2015-04-30 | 16.55% | 15.38% | 1.010x |
| 47 | 2010-05-28 … 2015-04-30 | 18.45% | 17.09% | 1.012x |
| 48 | 2010-06-30 … 2015-06-30 | 19.71% | 17.45% | 1.019x |
| 49 | 2010-07-30 … 2015-06-30 | 19.35% | 16.43% | 1.025x |
| 50 | 2010-08-31 … 2015-08-31 | 17.29% | 15.76% | 1.013x |
| 51 | 2010-09-30 … 2015-09-30 | 15.46% | 13.61% | 1.016x |
| 52 | 2010-10-29 … 2015-09-30 | 14.90% | 13.06% | 1.016x |
| 53 | 2010-11-30 … 2015-11-30 | 16.02% | 15.09% | 1.008x |
| 54 | 2010-12-31 … 2015-12-31 | 15.45% | 13.55% | 1.017x |
| 55 | 2011-01-31 … 2016-01-29 | 13.68% | 11.90% | 1.016x |
| 56 | 2011-02-28 … 2016-01-29 | 12.95% | 11.53% | 1.013x |
| 57 | 2011-03-31 … 2016-03-31 | 14.21% | 12.90% | 1.012x |
| 58 | 2011-04-29 … 2016-04-29 | 12.40% | 12.39% | 1.000x |
| 59 | 2011-05-31 … 2016-05-31 | 13.08% | 12.94% | 1.001x |
| 60 | 2011-06-30 … 2016-06-30 | 13.66% | 13.30% | 1.003x |
| 61 | 2011-07-29 … 2016-07-29 | 13.73% | 14.52% | 0.993x |
| 62 | 2011-08-31 … 2016-08-31 | 13.31% | 15.19% | 0.984x |
| 63 | 2011-09-30 … 2016-09-30 | 15.19% | 16.32% | 0.990x |
| 64 | 2011-10-31 … 2016-10-31 | 12.42% | 14.02% | 0.986x |
| 65 | 2011-11-30 … 2016-11-30 | 13.13% | 14.66% | 0.987x |
| 66 | 2011-12-30 … 2016-12-30 | 12.49% | 14.92% | 0.979x |
| 67 | 2012-01-31 … 2017-01-31 | 12.18% | 14.63% | 0.979x |
| 68 | 2012-02-29 … 2017-02-28 | 12.59% | 14.78% | 0.981x |
| 69 | 2012-03-30 … 2017-02-28 | 11.86% | 14.43% | 0.978x |
| 70 | 2012-04-30 … 2017-04-28 | 12.62% | 14.61% | 0.983x |
| 71 | 2012-05-31 … 2017-05-31 | 15.37% | 15.98% | 0.995x |
| 72 | 2012-06-29 … 2017-05-31 | 14.46% | 15.44% | 0.992x |
| 73 | 2012-07-31 … 2017-07-31 | 13.51% | 15.43% | 0.983x |
| 74 | 2012-08-31 … 2017-08-31 | 13.88% | 15.12% | 0.989x |
| 75 | 2012-09-28 … 2017-08-31 | 13.32% | 14.77% | 0.987x |
| 76 | 2012-10-31 … 2017-10-31 | 15.52% | 16.12% | 0.995x |
| 77 | 2012-11-30 … 2017-11-30 | 14.91% | 16.79% | 0.984x |
| 78 | 2012-12-31 … 2017-12-29 | 14.91% | 16.93% | 0.983x |
| 79 | 2013-01-31 … 2018-01-31 | 16.74% | 17.57% | 0.993x |
| 80 | 2013-02-28 … 2018-02-28 | 16.70% | 16.21% | 1.004x |
| 81 | 2013-03-28 … 2018-02-28 | 15.60% | 15.81% | 0.998x |
| 82 | 2013-04-30 … 2018-04-30 | 14.75% | 14.25% | 1.004x |
| 83 | 2013-05-31 … 2018-05-31 | 16.07% | 14.57% | 1.013x |
| 84 | 2013-06-28 … 2018-05-31 | 16.83% | 14.97% | 1.016x |
| 85 | 2013-07-31 … 2018-07-31 | 15.97% | 14.83% | 1.010x |
| 86 | 2013-08-30 … 2018-07-31 | 16.77% | 15.59% | 1.010x |
| 87 | 2013-09-30 … 2018-09-28 | 16.95% | 15.84% | 1.010x |
| 88 | 2013-10-31 … 2018-10-31 | 14.27% | 12.89% | 1.012x |
| 89 | 2013-11-29 … 2018-10-31 | 13.81% | 12.60% | 1.011x |
| 90 | 2013-12-31 … 2018-12-31 | 11.97% | 9.93% | 1.018x |
| 91 | 2014-01-31 … 2019-01-31 | 12.46% | 12.37% | 1.001x |
| 92 | 2014-02-28 … 2019-02-28 | 12.19% | 12.38% | 0.998x |
| 93 | 2014-03-31 … 2019-03-29 | 14.15% | 12.76% | 1.012x |
| 94 | 2014-04-30 … 2019-04-30 | 15.22% | 13.73% | 1.013x |
| 95 | 2014-05-30 … 2019-04-30 | 14.53% | 13.54% | 1.009x |
| 96 | 2014-06-30 … 2019-06-28 | 11.86% | 12.81% | 0.992x |
| 97 | 2014-07-31 … 2019-07-31 | 12.72% | 13.30% | 0.995x |
| 98 | 2014-08-29 … 2019-07-31 | 11.96% | 12.80% | 0.993x |
| 99 | 2014-09-30 … 2019-09-30 | 11.63% | 12.70% | 0.990x |
| 100 | 2014-10-31 … 2019-10-31 | 11.58% | 12.91% | 0.988x |
| 101 | 2014-11-28 … 2019-10-31 | 11.29% | 12.60% | 0.988x |
| 102 | 2014-12-31 … 2019-12-31 | 13.39% | 14.16% | 0.993x |
| 103 | 2015-01-30 … 2019-12-31 | 13.46% | 14.85% | 0.988x |
| 104 | 2015-02-27 … 2020-01-31 | 13.16% | 14.04% | 0.992x |
| 105 | 2015-03-31 … 2020-03-31 | 9.93% | 8.56% | 1.013x |
| 106 | 2015-04-30 … 2020-04-30 | 13.68% | 11.65% | 1.018x |
| 107 | 2015-05-29 … 2020-05-29 | 14.14% | 12.61% | 1.014x |
| 108 | 2015-06-30 … 2020-06-30 | 14.41% | 13.64% | 1.007x |
| 109 | 2015-07-31 … 2020-07-31 | 15.72% | 14.60% | 1.010x |
| 110 | 2015-08-31 … 2020-08-31 | 19.18% | 18.07% | 1.009x |
| 111 | 2015-09-30 … 2020-09-30 | 17.94% | 17.05% | 1.008x |
| 112 | 2015-10-30 … 2020-10-30 | 16.09% | 14.60% | 1.013x |
| 113 | 2015-11-30 … 2020-11-30 | 18.84% | 17.43% | 1.012x |
| 114 | 2015-12-31 … 2020-12-31 | 20.44% | 18.65% | 1.015x |
| 115 | 2016-01-29 … 2021-01-29 | 21.75% | 19.26% | 1.021x |
| 116 | 2016-02-29 … 2021-02-26 | 23.56% | 19.79% | 1.032x |
| 117 | 2016-03-31 … 2021-03-31 | 22.47% | 19.42% | 1.025x |
| 118 | 2016-04-29 … 2021-03-31 | 23.37% | 19.66% | 1.031x |
| 119 | 2016-05-31 … 2021-05-28 | 23.60% | 20.42% | 1.026x |
| 120 | 2016-06-30 … 2021-06-30 | 23.33% | 21.06% | 1.019x |
| 121 | 2016-07-29 … 2021-06-30 | 23.73% | 20.63% | 1.026x |
| 122 | 2016-08-31 … 2021-08-31 | 27.72% | 21.75% | 1.049x |
| 123 | 2016-09-30 … 2021-09-30 | 24.97% | 20.22% | 1.040x |
| 124 | 2016-10-31 … 2021-10-29 | 27.61% | 22.50% | 1.042x |
| 125 | 2016-11-30 … 2021-11-30 | 27.49% | 21.87% | 1.046x |
| 126 | 2016-12-30 … 2021-11-30 | 27.97% | 21.75% | 1.051x |
| 127 | 2017-01-31 … 2022-01-31 | 26.34% | 20.17% | 1.051x |
| 128 | 2017-02-28 … 2022-02-28 | 24.95% | 18.51% | 1.054x |
| 129 | 2017-03-31 … 2022-03-31 | 26.33% | 19.46% | 1.057x |
| 130 | 2017-04-28 … 2022-03-31 | 26.07% | 19.46% | 1.055x |
| 131 | 2017-05-31 … 2022-05-31 | 24.44% | 15.59% | 1.077x |
| 132 | 2017-06-30 … 2022-06-30 | 22.15% | 13.08% | 1.080x |
| 133 | 2017-07-31 … 2022-07-29 | 21.58% | 15.16% | 1.056x |
| 134 | 2017-08-31 … 2022-08-31 | 20.65% | 13.72% | 1.061x |
| 135 | 2017-09-29 … 2022-08-31 | 20.70% | 13.56% | 1.063x |
| 136 | 2017-10-31 … 2022-10-31 | 21.06% | 11.86% | 1.082x |
| 137 | 2017-11-30 … 2022-11-30 | 21.56% | 12.52% | 1.080x |
| 138 | 2017-12-29 … 2022-11-30 | 21.84% | 12.46% | 1.083x |
| 139 | 2018-01-31 … 2023-01-31 | 18.80% | 11.01% | 1.070x |
| 140 | 2018-02-28 … 2023-02-28 | 17.98% | 11.03% | 1.063x |
| 141 | 2018-03-29 … 2023-02-28 | 18.49% | 11.72% | 1.061x |
| 142 | 2018-04-30 … 2023-04-28 | 17.62% | 13.01% | 1.041x |
| 143 | 2018-05-31 … 2023-05-31 | 17.38% | 12.95% | 1.039x |
| 144 | 2018-06-29 … 2023-05-31 | 17.80% | 13.01% | 1.042x |
| 145 | 2018-07-31 … 2023-07-31 | 20.10% | 14.67% | 1.047x |
| 146 | 2018-08-31 … 2023-08-31 | 18.27% | 13.51% | 1.042x |
| 147 | 2018-09-28 … 2023-08-31 | 18.06% | 13.56% | 1.040x |
| 148 | 2018-10-31 … 2023-10-31 | 15.81% | 12.60% | 1.029x |
| 149 | 2018-11-30 … 2023-11-30 | 16.87% | 14.58% | 1.020x |
| 150 | 2018-12-31 … 2023-12-29 | 19.37% | 17.26% | 1.018x |
| 151 | 2019-01-31 … 2024-01-31 | 20.21% | 16.27% | 1.034x |
| 152 | 2019-02-28 … 2024-01-31 | 19.86% | 15.94% | 1.034x |
| 153 | 2019-03-29 … 2024-03-28 | 21.79% | 17.50% | 1.036x |
| 154 | 2019-04-30 … 2024-04-30 | 19.93% | 15.50% | 1.038x |
| 155 | 2019-05-31 … 2024-05-31 | 23.54% | 18.12% | 1.046x |
| 156 | 2019-06-28 … 2024-06-28 | 24.21% | 17.99% | 1.053x |
| 157 | 2019-07-31 … 2024-07-31 | 22.74% | 17.70% | 1.043x |
| 158 | 2019-08-30 … 2024-08-30 | 23.01% | 18.41% | 1.039x |
| 159 | 2019-09-30 … 2024-09-30 | 24.14% | 18.65% | 1.046x |
| 160 | 2019-10-31 … 2024-10-31 | 23.26% | 17.87% | 1.046x |
| 161 | 2019-11-29 … 2024-11-29 | 24.81% | 18.64% | 1.052x |
| 162 | 2019-12-31 … 2024-12-31 | 22.06% | 17.62% | 1.038x |
| 163 | 2020-01-31 … 2025-01-31 | 22.84% | 18.07% | 1.040x |
| 164 | 2020-02-28 … 2025-02-28 | 23.67% | 19.00% | 1.039x |
| 165 | 2020-03-31 … 2025-03-31 | 23.01% | 19.24% | 1.032x |
| 166 | 2020-04-30 … 2025-04-30 | 20.36% | 16.49% | 1.033x |
| 167 | 2020-05-29 … 2025-04-30 | 19.84% | 15.80% | 1.035x |
| 168 | 2020-06-30 … 2025-06-30 | 21.70% | 18.19% | 1.030x |
| 169 | 2020-07-31 … 2025-07-31 | 20.76% | 17.87% | 1.025x |
| 170 | 2020-08-31 … 2025-08-29 | 19.43% | 16.69% | 1.024x |
| 171 | 2020-09-30 … 2025-09-30 | 21.98% | 18.57% | 1.029x |
| 172 | 2020-10-30 … 2025-09-30 | 22.42% | 19.43% | 1.025x |
| 173 | 2020-11-30 … 2025-11-28 | 22.04% | 17.77% | 1.036x |
| 174 | 2020-12-31 … 2025-12-31 | 20.34% | 16.92% | 1.029x |
| 175 | 2021-01-29 … 2025-12-31 | 20.16% | 17.20% | 1.025x |
| 176 | 2021-02-26 … 2026-01-30 | 22.28% | 17.04% | 1.045x |
| 177 | 2021-03-31 … 2026-03-31 | 21.31% | 14.07% | 1.064x |
| 178 | 2021-04-30 … 2026-04-30 | 24.94% | 16.03% | 1.077x |
| 179 | 2021-05-28 … 2026-04-30 | 24.40% | 16.22% | 1.070x |
Notes
mode=explore; family=contrarian-52w-hybrid
New hybrid family that combines the strongest orthogonal elements of the winning parent families without mechanically averaging them: deep 52-week contrarian repair, quality-filtered recovery durability, and regime-aware momentum leadership. The arbitration is explicit. In damaged tapes, washed-out names only qualify when recovery evidence, balance-sheet durability proxies, and tradability confirm the repair. In strong tapes, momentum leaders can dominate, but only when they are not excessively extended, too volatile, or obviously low-quality. In mixed tapes, the strategy prefers names where short-horizon repair and medium-horizon leadership are converging rather than fighting each other.
Deliberate metric coverage this run: actively use momentum (return_1m_pct, return_3m_pct, return_6m_pct, return_12m_pct, momentum_12_1_pct), trend/recovery (from_200d_ma_pct, from_52w_high_pct), volatility (realized_vol_3m), liquidity (avg_daily_volume_3m, avg_daily_dollar_volume_3m, trading_days_3m), income (dividend_yield_ttm_pct), valuation (pe, forward_pe, peg), growth (eps_growth_pct, operating_income_growth_pct, free_cash_flow_growth_pct, forward_eps), quality (operating_margin_pct, free_cash_flow_margin_pct), and size (market_cap). Deliberately weight dividend_ttm, revenue_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 correlated price-level duplication and to keep the family structurally distinct from prior hybrids. Sparse fundamentals are normalized within each sleeve so missing fields do not automatically dominate or disqualify a stock.
Regime branches: panic-repair, transition, clean-trend, and defensive-carry. The branch count is exactly four.
Lesson notes
explore/contrarian-52w-hybrid: relative_return 1.0261x (delta -0.3603 vs exp_1137); win-rate 83.2402%, worst-window 0.977525, dispersion 5.2058%.
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 | MRK | T | BAC | MO | ABT | AES | CVX | LMT | CMCSA | JPM | CPB | BXP | ADM | WFC | DIS |
| 2006-08-31 | T | DGX | BXP | MRK | AIV | MO | LH | BAC | HPQ | EQR | AMT | AES | LMT | KSS | ABT |
| 2006-09-29 | BAC | CMCSA | MS | AIV | T | LMT | GILD | ORCL | ALL | MRK | GS | JPM | PFE | BEN | BAX |
| 2006-10-31 | CMCSA | GS | AT | T | BEN | NVDA | HAS | BMET | MRK | NEE | ALXN | MAT | ADS | EQR | INCLF |
| 2006-11-30 | CSCO | NEE | CTSH | ETR | ES | CMCSA | AAPL | ATI | GS | HOG | VNO | DOC | MTCH | BXP | CVX |
| 2006-12-29 | CMCSA | MCD | CSCO | BKNG | T | AT | NEE | HPQ | ETR | MS | IBM | TWX | BMET | DOC | ALXN |
| 2007-01-31 | HPQ | DOC | NEE | BXP | T | CMCSA | CTSH | BMY | ATI | AIV | MAT | GS | AMP | EOP | SPG |
| 2007-02-28 | NEE | ABT | MAT | ETR | CNP | AEP | BAX | CI | NRG | SRE | DD | SYK | ANDV | CHD | T |
| 2007-03-30 | AEP | T | ETR | NRG | NEE | KR | ES | BAX | MAT | PEG | SYK | TAP | ANDV | ALXN | FE |
| 2007-04-30 | CI | BAX | ETR | NEE | AEP | NRG | MCD | CVX | KO | HON | ALXN | CE | EXC | CNP | ANDV |
| 2007-05-31 | NRG | CI | FCX | CE | AAPL | ALXN | AT | HON | T | VZ | GT | AMZN | HPQ | COP | BALL |
| 2007-06-29 | CE | CVX | FCX | BKNG | ALXN | MDR | AAPL | JEC | DECK | APOL | ACN | MA | ATGE | AT | CMI |
| 2007-07-31 | AL | FCX | ALXN | MDR | APOL | JEC | CMI | ATGE | AT | LIN | HPQ | BA | NOV | HON | MMM |
| 2007-08-31 | BIIB | IBM | DE | HPQ | CSCO | CVX | MMM | INTC | ESRX | COP | APD | AAPL | SLB | NOV | VRSN |
| 2007-09-28 | CVX | COP | DE | FLR | APA | BG | HAL | CSCO | GOOG | BIIB | EBAY | APD | RTX | GOOGL | IBM |
| 2007-10-31 | APA | GOOG | DVN | DE | MCD | GOOGL | OXY | BG | KO | FCX | FMC | AFL | NKE | MRK | ESRX |
| 2007-11-30 | BKNG | CL | OXY | HPQ | MO | MRK | GOOG | SCHW | BRK-B | WDC | ESRX | CVX | D | FCX | DHR |
| 2007-12-31 | HPQ | BKNG | CME | COP | BRK-B | VLO | DVN | CVX | HAL | OXY | WDC | GOOG | D | FCX | FSLR |
| 2008-01-31 | MOS | MO | BKNG | ESRX | BAX | HUM | BRK-B | PFE | CL | CAT | FE | BDX | COP | RTX | WMT |
| 2008-02-29 | HAL | CF | BKNG | ABT | CVX | OXY | DVN | WDC | MOS | COP | BA | AFL | FCX | XOM | HPQ |
| 2008-03-31 | ABT | BKNG | HAL | CAG | DVN | AFL | GE | MO | CF | IBM | D | CSX | WHR | JCI | APA |
| 2008-04-30 | CF | HAL | MOS | CVX | OXY | DVN | BKNG | WDC | JCI | BA | COP | APA | D | SLB | IBM |
| 2008-05-30 | MA | HAL | CSX | IBM | UNP | FMC | OXY | COP | CVX | APOL | BKNG | APA | BTUUQ | NBR | ATGE |
| 2008-06-30 | HAL | CF | MOS | D | OXY | APA | ABT | COP | CVX | WDC | MA | DVN | FMC | PEG | NBR |
| 2008-07-31 | ABT | CF | BCR | D | APOL | IBM | ATGE | CEPH | BNI | HAL | MOS | ACS | CPB | HPQ | BKNG |
| 2008-08-29 | MCD | CF | ABT | AON | BCR | SCHW | APOL | D | ED | CEPH | ATGE | BBWI | HPQ | BNI | ACS |
| 2008-09-30 | ABT | MCD | ED | CPB | D | SCHW | AON | HPQ | BAX | BCR | MDLZ | IBM | LLY | GIS | CLX |
| 2008-10-31 | ABT | AON | MCD | ED | CPB | D | MO | CAG | BAX | MRSH | CLX | HPQ | KR | AZO | DLTR |
| 2008-11-28 | AON | ABT | D | MCD | ED | DLTR | KR | AEP | CLX | BMY | CPB | CL | CHD | HPQ | SHW |
| 2008-12-31 | ABT | BMY | AON | MCD | AMGN | CAG | AEP | ED | JNJ | AZO | XOM | CVX | BKNG | DRI | RTX |
| 2009-01-30 | ABT | BMY | MCD | CAG | XOM | ED | CVX | ADI | IBM | AMGN | JNJ | BAX | APA | AEP | DLTR |
| 2009-02-27 | AON | ABT | MCD | BKNG | BMY | IBM | CAG | ADI | ED | DRI | CF | MOS | XOM | AMGN | CVX |
| 2009-03-31 | CVX | BMY | AAPL | CF | MS | CAG | DRI | ED | BKNG | IBM | ADI | AZO | AON | UPS | OXY |
| 2009-04-30 | BKNG | EBAY | CVX | AAPL | CF | ADBE | IBM | AON | MS | WDC | UPS | DRI | CTSH | PH | RCL |
| 2009-05-29 | EBAY | CF | BKNG | CVX | MS | MOS | AAPL | OXY | EOG | ADBE | WDC | IBM | GPS | RTX | BMY |
| 2009-06-30 | AAPL | WBD | BKNG | AMGN | MSFT | ORCL | ELV | F | GILD | FFIV | FISV | TJX | IBM | CAG | ESRX |
| 2009-07-31 | AAPL | AMGN | WBD | BKNG | ORCL | EBAY | TJX | MMM | IBM | MCHP | FIS | BEN | INTC | ADBE | F |
| 2009-08-31 | AAPL | WBD | BKNG | CTSH | MSFT | EBAY | MU | MMM | WDC | BEN | ORCL | GMCR | PFE | NVR | MCK |
| 2009-09-30 | AAPL | WBD | ISRG | BKNG | EOG | GS | BEN | EBAY | CTSH | CSCO | OXY | MU | ASH | WLL | GNW |
| 2009-10-30 | AAPL | MSFT | MA | GOOG | GOOGL | WBD | PFE | BEN | ISRG | BKNG | EOG | MCK | CTSH | V | ITW |
| 2009-11-30 | ISRG | WBD | MSFT | AAPL | BKNG | GOOG | GOOGL | AMT | BMY | MA | ABT | CCI | CTSH | PFE | SYK |
| 2009-12-31 | ISRG | AAPL | GOOG | MSFT | GOOGL | MA | CCI | AMT | BKNG | F | WLL | ORCL | V | FTR | MEE |
| 2010-01-29 | ISRG | AMT | PFE | GE | MA | GIS | COR | ABT | CCI | PG | F | MMM | MSFT | AMGN | SYK |
| 2010-02-26 | ISRG | BKNG | GNW | F | CXO | GGP | PXD | A | BTUUQ | GMCR | CF | JOY | WLL | SNDK | ASH |
| 2010-03-31 | BKNG | AAPL | HON | BMY | GE | WLL | GNW | CXO | DAL | AFL | FITB | SYK | PXD | AMP | EBAY |
| 2010-04-30 | AAPL | WBD | WLL | HON | BBWI | BKNG | CXO | PXD | A | DIS | RF | JOY | HST | GGP | LVS |
| 2010-05-28 | AAPL | WBD | COR | HAS | NTAP | KDP | INTU | MCD | HON | DG | AKAM | AZO | SHW | NFLX | MCK |
| 2010-06-30 | BMY | NEM | AAPL | PEG | NTAP | CB | HAS | CCI | MMM | GIS | BBWI | MO | AMGN | HON | COR |
| 2010-07-30 | BMY | BKNG | GS | BBWI | NTAP | PEG | HON | QCOM | CMCSA | MO | AAPL | COP | CB | INTU | AZO |
| 2010-08-31 | BMY | BKNG | NEM | CB | D | CCI | MCD | ABT | EBAY | AAPL | ED | AMT | MO | MRO | COP |
| 2010-09-30 | AAPL | BKNG | AMT | CCI | MO | BMY | TXN | MCHP | NTAP | INTU | VZ | ADI | AZO | MCD | CTSH |
| 2010-10-29 | BKNG | AAPL | TXN | ADI | NTAP | MO | ORCL | INTU | AMT | BWA | AAP | MCD | AZO | BMY | LYB |
| 2010-11-30 | AAPL | TXN | MCHP | ADI | HON | BKNG | BBWI | AZO | QCOM | BWA | EXPD | ETN | ILMN | AME | OXY |
| 2010-12-31 | ADI | OXY | AAPL | HON | COP | TXN | LYB | LULU | ETN | AZO | QCOM | NOV | BKNG | WLL | FCX |
| 2011-01-31 | AAPL | ADI | TXN | GE | QCOM | HON | BKNG | COP | MCHP | DE | KLAC | XOM | NOV | ETN | OXY |
| 2011-02-28 | QCOM | GE | COP | KLAC | AAPL | TXN | HON | ADI | TER | AMAT | CMCSA | BKNG | NOV | CSX | OXY |
| 2011-03-31 | BKNG | COP | LULU | CAT | MCHP | DE | WYNN | CVX | CSX | BKR | OXY | CMG | ADI | ROK | HP |
| 2011-04-29 | BKNG | MCO | OXY | MCHP | WYNN | BBWI | LULU | LYB | SPG | ORCL | KKR | ELV | INTC | CAT | COO |
| 2011-05-31 | MCO | SPG | PFE | CF | MA | D | BKNG | HUM | PM | WYNN | MNST | MO | MSI | ADI | AXP |
| 2011-06-30 | D | SPG | MNST | CMG | ADS | BKNG | MA | AXP | ARG | ISRG | BEN | GR | CTRA | BIIB | LULU |
| 2011-07-29 | D | AAPL | SPG | BKNG | CF | INTC | MSFT | WYNN | COP | AXP | KLAC | CVX | BBWI | MA | GE |
| 2011-08-31 | CF | AAPL | BKNG | MSFT | KLAC | DUK | VZ | WBD | WYNN | BBWI | AEP | KO | MA | SPG | MCD |
| 2011-09-30 | AAPL | KLAC | DUK | INTC | MSFT | VZ | BKNG | CF | V | AEP | MA | T | SPG | KO | GE |
| 2011-10-31 | KLAC | CF | AAPL | INTC | ADI | AMAT | BKNG | ADBE | DUK | SPG | WBD | MSFT | LRCX | V | MCHP |
| 2011-11-30 | KLAC | PFE | INTC | MA | AEE | AAPL | OXY | AEP | V | XOM | VZ | DUK | ISRG | CAT | BKNG |
| 2011-12-30 | KLAC | PFE | CF | AAPL | GE | MA | V | ISRG | XOM | AEP | INTC | SPG | VZ | ADBE | CVX |
| 2012-01-31 | AAPL | PFE | KLAC | SPG | AMGN | CF | MSFT | INTC | GILD | V | ISRG | MCD | FAST | CMCSA | AMT |
| 2012-02-29 | AAPL | V | MSFT | ISRG | BKNG | CMCSA | CF | MA | FAST | EQIX | INTC | QCOM | TJX | AMGN | HD |
| 2012-03-30 | AAPL | BKNG | QCOM | SPG | ISRG | WBD | KLAC | INTC | MSFT | EQIX | V | GE | IVZ | PFE | CMCSA |
| 2012-04-30 | BKNG | SPG | ISRG | V | WBD | AAPL | MA | PFE | MSFT | CCI | CF | INTC | CMCSA | MO | EBAY |
| 2012-05-31 | AAPL | SPG | NEE | MO | AMGN | GE | AMT | V | CCI | DIS | CMCSA | PFE | SHW | BMY | ISRG |
| 2012-06-29 | SPG | GE | AMT | CMCSA | V | AAPL | CF | NEE | MO | WBD | CCI | BMY | DIS | AMGN | DG |
| 2012-07-31 | AAPL | SPG | V | NEE | AMGN | MO | AMT | PFE | GE | CMCSA | AEP | GILD | CCI | BMY | EBAY |
| 2012-08-31 | AAPL | AMGN | GILD | SPG | GE | CMCSA | ALL | EBAY | CF | STX | PFE | AEP | WBD | CCI | HD |
| 2012-09-28 | GE | CF | AAPL | GILD | CMCSA | ALL | AMGN | PFE | WBD | DIS | GOOGL | HD | GOOG | NEE | MA |
| 2012-10-31 | CMCSA | AMGN | AMT | GILD | ALL | PFE | CCI | AEP | GE | WBD | AOS | MCO | EOG | MA | NEE |
| 2012-11-30 | AMGN | GILD | EBAY | CMCSA | MA | AMT | ALL | BEN | V | CCI | CF | MCO | PFE | WBD | GE |
| 2012-12-31 | AMT | CCI | APTV | ORCL | AMGN | ADBE | CMCSA | WBD | BAC | MCO | GS | GILD | MA | PPG | LYB |
| 2013-01-31 | WBD | EBAY | ALL | GS | GILD | MCO | ORCL | STX | BLK | PFE | BEN | CF | ANDV | LYB | CPAY |
| 2013-02-28 | GILD | WBD | ALL | AMGN | GE | KKR | BMY | CAG | JPM | BRK-B | APTV | ALK | PFE | ANDV | GEN |
| 2013-03-28 | AMGN | GILD | BMY | ALL | PFE | BEN | MA | ADBE | LEG | HON | GIS | BIIB | STX | KR | CAG |
| 2013-04-30 | GILD | DIS | MA | AMGN | ADBE | KKR | MCO | SPG | ALL | AMT | GIS | NEE | JNJ | ABBV | AEP |
| 2013-05-31 | MCO | GILD | JPM | GS | CSCO | BMY | STX | WDC | BKNG | MA | MSFT | AXP | SLM | FSLR | STT |
| 2013-06-28 | BKNG | STX | MA | CSCO | CI | HON | CME | WFC | JPM | AET | COR | CBOE | WDC | BA | KEY |
| 2013-07-31 | MA | BKNG | GILD | CSCO | MCO | JPM | RTX | NOC | CBOE | BSX | GE | JNJ | MMM | EA | HON |
| 2013-08-30 | BKNG | META | GILD | CI | MA | ADS | ELV | FLT | AMGN | CELG | LMT | KATE | NOC | HBI | MGM |
| 2013-09-30 | BKNG | MA | META | GILD | MCO | WYNN | REGN | ADS | MGM | FLT | CELG | TXN | HBI | KATE | SPGI |
| 2013-10-31 | BKNG | MA | GILD | BMY | SBUX | META | GE | TXN | PFE | DAL | BA | NXPI | MMM | INTU | NOC |
| 2013-11-29 | BKNG | MA | GILD | BX | MSFT | PFE | MMM | AMP | MCK | COR | SPGI | CAH | OMX | MCO | URI |
| 2013-12-31 | MA | BX | WYNN | URI | BKNG | V | ABBV | AMP | GILD | LVS | GE | MMM | META | MCO | VLO |
| 2014-01-31 | META | BKNG | GILD | BX | MU | WYNN | URI | MSFT | CMCSA | GOOG | GOOGL | BAC | MCK | ESRX | BIIB |
| 2014-02-28 | BKNG | BX | META | URI | WYNN | V | GILD | REGN | DD | PFE | TMO | MGM | ORCL | DIS | MU |
| 2014-03-31 | MSFT | EOG | URI | ORCL | MCHP | GLW | TXN | WFC | HP | CF | QCOM | BX | HPQ | DD | TSN |
| 2014-04-30 | MU | EOG | AAPL | ORCL | DD | MSFT | MO | LYB | URI | BKR | AEP | SLB | GLW | CAT | PSA |
| 2014-05-30 | EOG | MU | COP | AAPL | URI | SLB | MO | GD | SPG | LYB | ORCL | WMB | DAL | ABBV | AEP |
| 2014-06-30 | EOG | MU | META | COP | AEP | SLB | AAPL | HAL | GILD | URI | INTC | WLL | BKR | OXY | ETR |
| 2014-07-31 | META | AAPL | MSFT | GILD | URI | AMT | COP | SPG | INTC | VZ | MU | EOG | DIS | T | INTU |
| 2014-08-29 | GILD | AAPL | MSFT | KLAC | META | URI | MCO | AMT | AMGN | MU | IVZ | LYB | INTC | NXPI | MO |
| 2014-09-30 | GILD | META | MSFT | MO | MU | KLAC | AAPL | MCO | AMGN | INTU | INTC | GD | ABBV | LRCX | UNP |
| 2014-10-31 | GILD | AAPL | AMGN | MO | ABBV | MCO | AEP | GD | MSFT | SPG | V | DLR | KR | CSX | ED |
| 2014-11-28 | AAPL | ABBV | AMGN | MO | AMT | MU | V | INTC | KLAC | KR | GD | CSCO | DAL | INTU | META |
| 2014-12-31 | KR | BBWI | ALL | AEP | ED | V | AMAT | LOW | ORLY | AAPL | MO | DAL | HD | RCL | DLTR |
| 2015-01-30 | MO | SPG | KR | AAPL | ED | AEP | PSA | BX | TXN | ALL | BBWI | PCG | WELL | KDP | SHW |
| 2015-02-27 | MO | TXN | CI | V | AAPL | BBWI | DLTR | COR | KR | CNC | DIS | BX | MMM | CME | LOW |
| 2015-03-31 | CI | COR | KR | BBWI | SBUX | AAPL | BX | CNC | META | COST | DLTR | AET | HAS | SPG | TXN |
| 2015-04-30 | BX | AAPL | SBUX | COR | MCO | HAS | DIS | ABMD | MA | INTU | BKNG | HSP | BK | CI | BNY |
| 2015-05-29 | GILD | BX | AAPL | SBUX | CI | MCO | DIS | AET | JPM | HAS | GS | ELV | INTU | NXPI | COR |
| 2015-06-30 | GILD | JPM | AAPL | SBUX | GS | BKNG | BX | HAS | MA | EBAY | DIS | CMCSA | MCO | ABT | CI |
| 2015-07-31 | SBUX | GILD | AMGN | MA | DIS | EBAY | NKE | V | HAS | META | KR | JPM | ORLY | ACN | MCO |
| 2015-08-31 | BKNG | CCI | GILD | MO | SBUX | HAS | JPM | EBAY | PSA | ED | PGR | CI | HD | MA | SPG |
| 2015-09-30 | BKNG | MO | SBUX | CCI | PEG | INTC | PSA | ED | CSCO | GE | SPG | GILD | VLO | CMCSA | BBWI |
| 2015-10-30 | BKNG | MO | CCI | INTC | SBUX | GILD | GE | CSCO | TXN | CMCSA | AAPL | PSA | SPG | AAL | KLAC |
| 2015-11-30 | PSA | GOOGL | MCD | GE | V | MO | HD | ADBE | META | SBUX | COST | VLO | INTC | PSX | DHR |
| 2015-12-31 | GE | MO | CCI | PSA | BKNG | AMGN | GILD | MCD | KLAC | GOOGL | INTC | SPG | SO | PLD | AVGO |
| 2016-01-29 | KLAC | CCI | MO | MCD | GE | PSA | NEE | SO | AEP | GOOGL | ADBE | AMGN | ISRG | GOOG | TXN |
| 2016-02-29 | KLAC | VZ | T | BKNG | AEP | DAL | CCI | ED | ISRG | GE | SPG | MO | ABBV | GILD | UAL |
| 2016-03-31 | KLAC | VZ | PSA | T | AEP | ED | GE | MCD | ISRG | SPG | MO | DLR | SO | PM | EXC |
| 2016-04-29 | T | ISRG | KLAC | MCD | META | BAX | HAS | MO | AWK | ED | HON | VZ | ABBV | EVRG | AFL |
| 2016-05-31 | SPGI | KLAC | ADBE | META | T | ABMD | ISRG | CSCO | DLR | ABBV | CCI | MO | TXN | HAS | EQIX |
| 2016-06-30 | CCI | MO | T | ISRG | VZ | DLR | AEP | AWK | SPG | AMT | EQIX | ED | JNJ | CNP | IRM |
| 2016-07-29 | TXN | T | ISRG | SPGI | SPG | META | CSCO | ABBV | AMGN | DHR | ABMD | VZ | HPE | QCOM | KLAC |
| 2016-08-31 | META | CSCO | SPGI | TXN | DHR | ISRG | AMAT | AMGN | MSFT | EBAY | INTC | QCOM | ADBE | PG | AMZN |
| 2016-09-30 | SPGI | META | ISRG | BKNG | HPQ | CSCO | NVDA | AMZN | ADBE | EBAY | QCOM | AMAT | GEN | INTC | TXN |
| 2016-10-31 | META | MSFT | BKNG | DHR | TXN | SPGI | MA | ADBE | CSCO | QCOM | NVDA | GOOGL | GEN | ANET | LRCX |
| 2016-11-30 | AMAT | TXN | KLAC | QCOM | ADI | MSFT | JPM | BKNG | CSX | LRCX | IBM | DHR | HPE | SPGI | ANET |
| 2016-12-30 | JPM | MSFT | ADI | NVDA | T | AAPL | AMAT | TXN | IBM | MS | GS | C | PNC | DHR | KEY |
| 2017-01-31 | AMAT | IBM | BKNG | ADBE | AAPL | DHR | ADI | MSFT | CMCSA | DELL | KLAC | TXN | NVDA | IP | MS |
| 2017-02-28 | AAPL | BKNG | CSCO | ADBE | ADI | META | AMGN | JPM | AMAT | MO | KLAC | IBM | SPGI | ISRG | BAC |
| 2017-03-31 | ADBE | META | BKNG | AMAT | KLAC | AAPL | ADI | MSFT | LRCX | TXN | AMT | SPGI | ISRG | GEN | CCL |
| 2017-04-28 | ADBE | META | AMAT | BKNG | ISRG | MSFT | GOOGL | CCL | AAPL | AMT | KLAC | ABBV | LRCX | CHTR | MCD |
| 2017-05-31 | AMAT | ADBE | ISRG | META | AAPL | GOOGL | KLAC | ADI | MCD | MSFT | AMT | LRCX | MA | BKNG | CCL |
| 2017-06-30 | ABBV | ADBE | SPGI | ISRG | META | MCD | CCL | AMT | BX | BKNG | NVDA | ORCL | AMGN | MA | CSX |
| 2017-07-31 | META | BKNG | SPGI | ADBE | NVDA | MA | AMAT | AMT | MSFT | MCD | LRCX | ISRG | ALL | CCL | CHTR |
| 2017-08-31 | ABBV | ADBE | AMT | META | MA | V | RCL | MSFT | MCD | ISRG | NVDA | AAPL | CCL | SPGI | GILD |
| 2017-09-29 | AMAT | MA | LRCX | META | ABBV | V | TXN | ISRG | NVDA | BA | BMY | SPGI | MSFT | KLAC | AMGN |
| 2017-10-31 | MU | AMAT | TXN | NVDA | MA | ISRG | LRCX | ADBE | ABBV | META | V | MSFT | MCD | CDNS | AAPL |
| 2017-11-30 | ABBV | BA | ISRG | ANET | ADBE | MSFT | AEP | TXN | MU | V | URI | MA | CBOE | ALL | INTC |
| 2017-12-29 | TXN | ABBV | BA | V | ANET | MSFT | ALL | INTC | CSCO | URI | MCD | PGR | MA | MAR | HD |
| 2018-01-31 | MSFT | MA | ADBE | ANET | V | ABBV | GOOGL | CSCO | NVDA | BA | JPM | BAC | MAR | PYPL | GOOG |
| 2018-02-28 | MU | MA | ADBE | ABBV | BKNG | MSFT | V | CSCO | INTC | NVDA | AMAT | BA | EL | TXN | ANET |
| 2018-03-29 | MU | ADBE | MA | BKNG | EL | INTU | INTC | V | EXR | BR | ABMD | NEE | PGR | CPRT | CSGP |
| 2018-04-30 | MU | BKNG | PSX | AEP | ANET | ADBE | WYNN | PFE | EXR | ALL | MPC | PANW | CSCO | NEE | MCO |
| 2018-05-31 | MU | PSX | BKNG | V | PFE | MCO | FCX | EXR | ADBE | MA | COP | META | AAPL | INTU | M |
| 2018-06-29 | MU | V | PFE | META | PSX | MCO | BKNG | EXR | ADBE | INTU | DIS | M | MA | VZ | ANET |
| 2018-07-31 | PFE | V | ADBE | PSX | DIS | SPG | MSFT | AAPL | MA | AMGN | CSX | MU | ISRG | INTU | ORLY |
| 2018-08-31 | PFE | V | SPG | MA | ADBE | AAPL | MSFT | ISRG | ABMD | NVDA | CSCO | INTU | TJX | CNC | COST |
| 2018-09-28 | PFE | V | DIS | MA | ADBE | ABMD | AAPL | INTU | CSCO | PGR | ISRG | MSFT | NVDA | ORLY | TJX |
| 2018-10-31 | PFE | VZ | CMCSA | DIS | AVGO | AEP | MO | AAPL | SPG | PEG | MRK | NEE | ESRX | BKNG | PGR |
| 2018-11-30 | PFE | VZ | SBUX | CMCSA | AVGO | DIS | MRK | EXR | DELL | BKNG | MCD | NEE | PEG | BALL | ESRX |
| 2018-12-31 | PFE | AVGO | VZ | SBUX | CMCSA | DIS | YUM | NEE | EXR | ABBV | MRK | AET | CME | MCD | PEG |
| 2019-01-31 | AVGO | PFE | ADI | SBUX | MU | EXR | REGN | KLAC | BALL | META | LRCX | CMCSA | BKNG | DOC | AIV |
| 2019-02-28 | AVGO | ADI | PGR | SBUX | AMT | AZO | INTU | MRK | DHR | BALL | MA | REGN | BA | AES | PEG |
| 2019-03-29 | AVGO | CCI | CDNS | V | MA | INTU | CSCO | AZO | PG | SBUX | BALL | MSFT | AES | KLAC | MCD |
| 2019-04-30 | MSFT | MA | ADI | V | KLAC | ADBE | CDNS | CSCO | AVGO | HON | MCO | LRCX | PYPL | TXN | ORCL |
| 2019-05-31 | MSFT | PEP | CCI | SO | KO | HON | LIN | MTCH | MA | LLY | AXP | DIS | JNJ | ORCL | BMY |
| 2019-06-28 | MSFT | V | MA | BALL | ORCL | SBUX | APD | LIN | CDNS | MCD | HON | AXP | ADBE | CCI | ADI |
| 2019-07-31 | V | MSFT | CCI | MA | SPGI | MCD | DIS | HSY | PG | SBUX | INTU | EXR | MCO | CDNS | TXN |
| 2019-08-30 | CCI | KO | MSFT | EXR | MCD | SPGI | AMGN | MA | V | INTU | BALL | PLD | SO | SBUX | KLAC |
| 2019-09-30 | SO | NEE | MSFT | KO | KLAC | TXN | T | NXPI | CCI | PLD | LRCX | ETR | MCD | ES | MDT |
| 2019-10-31 | BMY | AMGN | MSFT | SO | NEE | T | KLAC | BKNG | AAPL | KO | NXPI | PLD | ETR | VRTX | CCI |
| 2019-11-29 | AMGN | AAPL | MSFT | BMY | PLD | VRTX | JPM | ANSS | HET | INTC | QCOM | XRX | URI | BAC | CDAY |
| 2019-12-31 | BMY | AMGN | MSFT | AAPL | JPM | MCO | QCOM | ANSS | KLAC | BAC | ADBE | SPGI | HET | LRCX | C |
| 2020-01-31 | MSFT | BMY | SPGI | ADBE | NEE | MCO | SO | MA | KO | AAPL | JNJ | V | GOOGL | AON | CCI |
| 2020-02-28 | BMY | MSFT | LLY | VRTX | JNJ | KO | ADBE | NEM | GOOGL | CCI | AMGN | AON | HET | MCO | QCOM |
| 2020-03-31 | ABBV | NEM | ANET | MSFT | LLY | VZ | PFE | PGR | AMT | CDNS | GILD | CCI | ORCL | AMGN | QCOM |
| 2020-04-30 | ABBV | NEM | LLY | PFE | AMGN | MSFT | ANET | QCOM | GIS | CDNS | VZ | AMT | ENPH | ADBE | REGN |
| 2020-05-29 | ABBV | NEM | ANET | CDNS | LLY | MSFT | REGN | GIS | CSCO | PFE | QCOM | EBAY | BKNG | AMT | CCI |
| 2020-06-30 | EBAY | ABBV | NEM | MSFT | QCOM | AAPL | CDNS | ADBE | KLAC | SPGI | META | LOW | AMGN | INTC | ENPH |
| 2020-07-31 | AAPL | CDNS | EBAY | QCOM | ABBV | ADBE | META | DHR | NEM | NVDA | NEE | MSFT | SPGI | PLD | FAST |
| 2020-08-31 | ADBE | MSFT | META | AAPL | CDNS | SPGI | PG | EBAY | ABBV | MA | TXN | ENPH | NVDA | DHR | AMD |
| 2020-09-30 | DHR | ENPH | PG | CHTR | LOW | AMGN | SPGI | ADBE | NVDA | TXN | DE | FDX | AVGO | ABMD | AAPL |
| 2020-10-30 | DHR | ENPH | EXR | TXN | PG | ABMD | NEE | CDNS | TMO | DE | CARR | META | BALL | CTLT | CPRT |
| 2020-11-30 | ETSY | ENPH | ABMD | TER | TXN | LRCX | DE | KLAC | AMAT | ABBV | FDX | QCOM | CTLT | CDAY | AVGO |
| 2020-12-31 | CDNS | ENPH | ETSY | AMAT | TER | AVGO | AAPL | ABBV | MS | KLAC | LRCX | ABMD | QCOM | ANET | DE |
| 2021-01-29 | ETSY | AMAT | AVGO | ENPH | KLAC | TXN | MSFT | QCOM | WBD | ABBV | AAPL | DE | ANET | DD | PENN |
| 2021-02-26 | ETSY | AMAT | ABBV | CDNS | KLAC | MS | LRCX | DVN | WBD | AVGO | GS | ENPH | ORCL | DE | PSKY |
| 2021-03-31 | AMAT | KLAC | URI | CSCO | LRCX | MO | TXN | DE | BAC | GS | JPM | CLF | GM | SPG | EBAY |
| 2021-04-30 | BBWI | EXR | COF | GS | SPG | GOOGL | FTNT | AMAT | KKR | MS | FCX | META | FITB | TPR | AON |
| 2021-05-28 | BBWI | GS | MS | AMAT | COF | EXR | SPG | ORCL | C | FTNT | JPM | ALL | FCX | BAC | BIG |
| 2021-06-30 | BBWI | EXR | BX | GOOGL | INTU | AMAT | MRNA | GS | ADBE | NVDA | IDXX | META | SIVB | TGT | MSFT |
| 2021-07-30 | BBWI | INTU | GOOGL | EXR | ADBE | BX | ORCL | MRNA | MS | MSFT | CARR | TGT | CLF | IDXX | MCO |
| 2021-08-31 | GOOGL | BX | EXR | INTU | ADBE | BBWI | DHR | SIVB | META | MSFT | MRNA | GOOG | ISRG | GS | A |
| 2021-09-30 | GOOGL | ORCL | MRNA | DHR | AVGO | MSFT | BBWI | MCD | INTU | BX | JPM | TMO | AON | COST | EXR |
| 2021-10-29 | MSFT | GOOGL | AVGO | ORCL | EXR | AON | EOG | SPG | INTU | NVDA | ADBE | BX | OXY | BAC | BBWI |
| 2021-11-30 | AVGO | MSFT | AAPL | COP | KLAC | EXR | PLD | PFE | BBWI | ADBE | BX | GOOGL | MRNA | NVDA | SPG |
| 2021-12-31 | EXR | PFE | PLD | ABBV | AVGO | AAPL | MSFT | KLAC | COP | CCI | ABT | TMO | MCD | GILD | SPG |
| 2022-01-31 | PFE | COP | GILD | WFC | CVX | MO | WY | AVGO | ABBV | KLAC | AAPL | BX | CB | EOG | MCD |
| 2022-02-28 | COP | ABBV | FCX | CVX | WY | REGN | MO | BMY | CB | WFC | OXY | AVGO | AXP | PFE | EOG |
| 2022-03-31 | COP | ABBV | REGN | PFE | FCX | CVX | CF | BMY | EOG | CB | OXY | PLD | DVN | MOS | AVGO |
| 2022-04-29 | COP | ABBV | REGN | BMY | PFE | WY | GILD | CVX | CF | EOG | FCX | DVN | CB | PLD | OXY |
| 2022-05-31 | PFE | ABBV | EOG | CF | OXY | GILD | CVX | REGN | APA | XOM | BMY | KLAC | T | DVN | MPC |
| 2022-06-30 | ABBV | PFE | GILD | BMY | OXY | EOG | CF | T | KO | MCD | REGN | XOM | JNJ | CVX | MRK |
| 2022-07-29 | OXY | MRNA | KLAC | CF | PFE | ABBV | ON | DVN | CVX | XOM | EOG | MRO | GILD | TXN | MPC |
| 2022-08-31 | CF | DVN | OXY | EOG | VRTX | COP | ON | ABBV | EXR | XOM | CVX | MOS | AMGN | APA | MRO |
| 2022-09-30 | CF | DVN | EOG | COP | VRTX | OXY | ABBV | CVX | PFE | BMY | XOM | ON | AMGN | REGN | MPC |
| 2022-10-31 | DVN | EOG | OXY | CVX | COP | CF | ABBV | MRNA | AMGN | APA | XOM | PFE | BMY | AIG | BKNG |
| 2022-11-30 | AMGN | ABBV | EOG | XOM | CVX | BMY | MRK | VRTX | GILD | AIG | ORLY | GIS | AZO | ANET | EMR |
| 2022-12-30 | CVX | ABBV | XOM | MRNA | BKNG | AIG | AVGO | EOG | APA | MO | KLAC | COP | EMR | PFE | SPG |
| 2023-01-31 | BKNG | VRTX | AVGO | XOM | URI | V | AON | ORCL | T | AIG | EOG | MCHP | ACGL | CAT | REGN |
| 2023-02-28 | BKNG | AVGO | URI | ABBV | ADI | MCHP | ACGL | ORCL | V | CDNS | REGN | JPM | BWA | XOM | ANET |
| 2023-03-31 | BKNG | AVGO | ADI | ORCL | CDNS | MCHP | V | TXN | ANET | CSCO | VRTX | ON | GE | ABBV | MA |
| 2023-04-28 | BKNG | AVGO | V | VRTX | ORCL | ANET | MA | MSFT | MCD | CDNS | ADI | AON | XOM | AAPL | MO |
| 2023-05-31 | BKNG | AVGO | KLAC | GE | NEE | PHM | ADI | ANET | CSCO | AAPL | VRTX | LEN | MO | AON | ORCL |
| 2023-06-30 | AVGO | AAPL | BKNG | KLAC | AON | ADBE | GE | PHM | ORCL | VRTX | LEN | AMAT | ADI | MSFT | MA |
| 2023-07-31 | BKNG | AVGO | ADBE | AAPL | KLAC | MCHP | ON | LRCX | AMAT | ABNB | ADI | GE | JPM | EOG | NXPI |
| 2023-08-31 | AVGO | BKNG | ADBE | CSCO | MA | V | EMR | ANET | AMAT | KLAC | ETN | ORCL | GE | GOOGL | EOG |
| 2023-09-29 | BKNG | EOG | PSX | AMGN | EMR | CF | JPM | MO | MPC | ABNB | CSCO | AVGO | HAL | GE | CAT |
| 2023-10-31 | EOG | KLAC | CSCO | AVGO | BKNG | ANET | GILD | PSX | EMR | MPC | AMGN | V | MSFT | ADBE | AON |
| 2023-11-30 | IBM | ADBE | BKNG | MSFT | ANET | V | META | AVGO | KLAC | NOW | GE | INTU | SPG | JPM | CAH |
| 2023-12-29 | BKNG | AVGO | IBM | ANET | META | SPG | JPM | KLAC | INTU | AMGN | COST | MSFT | QCOM | ADBE | GE |
| 2024-01-31 | BKNG | IBM | AMGN | META | AVGO | NVDA | ANET | MSFT | CRM | MA | GE | V | JPM | NOW | ADBE |
| 2024-02-29 | AVGO | META | NVDA | GE | ANET | KLAC | CRM | CAT | JPM | MSFT | MA | COST | IBM | URI | ETN |
| 2024-03-28 | NVDA | GE | CAT | JPM | PGR | META | ANET | AVGO | ALL | SPG | URI | IBM | ETN | PCAR | MSFT |
| 2024-04-30 | NVDA | GE | PGR | APH | WFC | KLAC | AMAT | AXP | AVGO | JPM | ETN | GOOGL | CMG | MO | BSX |
| 2024-05-31 | NVDA | MO | AMAT | KLAC | ANET | APH | VRTX | BKNG | GOOGL | META | PGR | NEE | JPM | AXP | ETN |
| 2024-06-28 | ANET | NVDA | META | MSFT | BKNG | MO | GOOGL | AMAT | KLAC | T | COST | VRTX | REGN | NFLX | BSX |
| 2024-07-31 | MO | NVDA | AMT | VRTX | IBM | ANET | MCO | GS | AXP | AEP | URI | IRM | T | PM | JPM |
| 2024-08-30 | MO | MCO | IBM | PGR | SPGI | BLK | NVDA | META | ANET | AFL | CTAS | AMT | NFLX | JPM | TMUS |
| 2024-09-30 | IBM | BLK | META | AMT | ANET | NEE | T | MO | TMUS | URI | SPGI | EBAY | AXP | AAPL | NVDA |
| 2024-10-31 | BKNG | MO | NVDA | BLK | META | T | ANET | TMUS | NFLX | FISV | BK | BNY | SPG | DASH | KKR |
| 2024-11-29 | BKNG | TMUS | MO | NFLX | DASH | SPG | BLK | NVDA | GS | FISV | BK | META | BNY | MA | CCL |
| 2024-12-31 | BLK | ANET | BKNG | AAPL | V | META | MA | NFLX | NVDA | FTNT | MO | CRM | AXP | PLTR | PYPL |
| 2025-01-31 | META | V | BLK | NFLX | FTNT | MA | BSX | GOOGL | GS | ANET | PLTR | JPM | DASH | AXP | AMZN |
| 2025-02-28 | V | MA | META | MO | FTNT | TMUS | T | BKNG | PGR | SPG | NFLX | CSCO | SPGI | BSX | FOX |
| 2025-03-31 | MO | PGR | VZ | NEM | AEP | ABT | BKNG | AMT | V | TMUS | DUK | FOX | BRK-B | BMY | JPM |
| 2025-04-30 | BKNG | MO | AMT | NEM | ABT | VZ | AEP | PGR | FTNT | COIN | KLAC | UBER | MCD | V | NFLX |
| 2025-05-30 | BKNG | GILD | MO | NEM | KLAC | CF | META | NVDA | HOOD | UBER | APP | ABT | VZ | C | GOOGL |
| 2025-06-30 | BKNG | NFLX | META | AVGO | NVDA | NEM | GILD | GS | MSFT | JPM | C | MO | CAH | CSCO | APH |
| 2025-07-31 | NVDA | MSFT | AVGO | META | MO | C | APH | BKNG | GILD | GS | BLK | ANET | HOOD | JPM | NEM |
| 2025-08-29 | NVDA | MO | GOOGL | ANET | C | RCL | NEM | AVGO | APH | GS | URI | MS | LRCX | BKNG | MSFT |
| 2025-09-30 | NVDA | NEM | AVGO | GOOGL | C | APH | ANET | MO | KLAC | GS | LRCX | MS | PLTR | MSFT | GE |
| 2025-10-31 | AVGO | NVDA | GOOGL | KLAC | LRCX | ANET | APH | GILD | C | NEM | MS | GOOG | AAPL | PLTR | AEP |
| 2025-11-28 | AVGO | GOOGL | GILD | NEM | AMGN | JNJ | KLAC | C | AAPL | AEP | AMAT | PLD | LRCX | NEE | MU |
| 2025-12-31 | NEM | JNJ | C | KLAC | GOOGL | LRCX | GILD | WDC | GS | MS | PLD | AAPL | AMGN | LLY | ADI |
| 2026-01-30 | GILD | JNJ | GOOGL | NEM | ADI | LRCX | KLAC | WDC | MU | AMGN | AMAT | GOOG | GS | NEE | C |
| 2026-02-27 | JNJ | NEM | ADI | BMY | GILD | AMGN | KLAC | WDC | AEP | MO | MU | LRCX | AMAT | VZ | KO |
| 2026-03-31 | KLAC | GILD | JNJ | WDC | CF | NEM | MU | APA | PSX | AVGO | BMY | DVN | LRCX | SPG | GOOGL |
| 2026-04-30 | ADI | KLAC | MU | AVGO | MO | LRCX | WDC | GOOGL | SPG | AMAT | NEE | NVDA | BMY | FDX | JNJ |
| 2026-05-29 | AVGO | AAPL | KLAC | MU | ADI | NVDA | AMAT | WDC | LRCX | GOOGL | MS | SPG | GS | CSCO | BK |
| 2026-06-26 | SPG | MU | KLAC | LRCX | WDC | MO | AMAT | C | FTNT | APH | ADI | KO | JNJ | ABBV | STX |
Scoring script (python)
FORMULA_NAME = "Contrarian 52-Week Hybrid with Repair-Leadership Arbitration (v1180)"
LOGIC_VARIANT_COUNT = 4
NOTES = """mode=explore; family=contrarian-52w-hybrid
New hybrid family that combines the strongest orthogonal elements of the winning parent families without mechanically averaging them: deep 52-week contrarian repair, quality-filtered recovery durability, and regime-aware momentum leadership. The arbitration is explicit. In damaged tapes, washed-out names only qualify when recovery evidence, balance-sheet durability proxies, and tradability confirm the repair. In strong tapes, momentum leaders can dominate, but only when they are not excessively extended, too volatile, or obviously low-quality. In mixed tapes, the strategy prefers names where short-horizon repair and medium-horizon leadership are converging rather than fighting each other.
Deliberate metric coverage this run: actively use momentum (return_1m_pct, return_3m_pct, return_6m_pct, return_12m_pct, momentum_12_1_pct), trend/recovery (from_200d_ma_pct, from_52w_high_pct), volatility (realized_vol_3m), liquidity (avg_daily_volume_3m, avg_daily_dollar_volume_3m, trading_days_3m), income (dividend_yield_ttm_pct), valuation (pe, forward_pe, peg), growth (eps_growth_pct, operating_income_growth_pct, free_cash_flow_growth_pct, forward_eps), quality (operating_margin_pct, free_cash_flow_margin_pct), and size (market_cap). Deliberately weight dividend_ttm, revenue_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 correlated price-level duplication and to keep the family structurally distinct from prior hybrids. Sparse fundamentals are normalized within each sleeve so missing fields do not automatically dominate or disqualify a stock.
Regime branches: panic-repair, transition, clean-trend, and defensive-carry. The branch count is exactly four."""
ACTIVE_METRICS = (
"return_1m_pct",
"return_3m_pct",
"return_6m_pct",
"return_12m_pct",
"momentum_12_1_pct",
"from_200d_ma_pct",
"from_52w_high_pct",
"realized_vol_3m",
"avg_daily_volume_3m",
"avg_daily_dollar_volume_3m",
"trading_days_3m",
"dividend_yield_ttm_pct",
"pe",
"forward_pe",
"peg",
"eps_growth_pct",
"operating_income_growth_pct",
"free_cash_flow_growth_pct",
"forward_eps",
"operating_margin_pct",
"free_cash_flow_margin_pct",
"market_cap",
)
ZERO_WEIGHT_METRICS = (
"dividend_ttm",
"revenue_growth_pct",
"shares_outstanding",
"close",
"adj_close",
"high_52w",
"ma_200d",
"eps_ttm",
"revenue_ttm",
"operating_income_ttm",
"free_cash_flow_ttm",
)
def score_universe(stocks, regime, ctx):
def get_field(obj, key, default=None):
if isinstance(obj, dict):
return obj.get(key, default)
return getattr(obj, key, default)
def as_number(value):
if value is None or value == "":
return None
if isinstance(value, bool):
return 1.0 if value else 0.0
try:
number = float(value)
except Exception:
return None
if number != number:
return None
if number == float("inf") or number == float("-inf"):
return None
return number
def symbol_of(stock, idx):
sym = get_field(stock, "symbol")
if sym is None:
sym = get_field(stock, "ticker")
if sym is None:
sym = get_field(stock, "name")
if sym is None:
sym = "stock_%s" % idx
return str(sym)
universe = list(stocks or [])
if not universe:
return {}
symbols = [symbol_of(stock, i) for i, stock in enumerate(universe)]
def rank_map(metric, high_is_good=True):
values = []
for i, stock in enumerate(universe):
val = as_number(get_field(stock, metric))
if val is not None:
values.append((i, val))
result = {}
if not values:
return result
values.sort(key=lambda item: item[1], reverse=high_is_good)
n = len(values)
if n == 1:
result[values[0][0]] = 1.0
return result
for rank, (idx, _) in enumerate(values):
result[idx] = 1.0 - (rank / float(n - 1))
return result
ranks = {
"return_1m_pct": rank_map("return_1m_pct", True),
"return_3m_pct": rank_map("return_3m_pct", True),
"return_6m_pct": rank_map("return_6m_pct", True),
"return_12m_pct": rank_map("return_12m_pct", True),
"momentum_12_1_pct": rank_map("momentum_12_1_pct", True),
"from_200d_ma_pct": rank_map("from_200d_ma_pct", True),
"from_52w_high_pct": rank_map("from_52w_high_pct", True),
"deep_drawdown": rank_map("from_52w_high_pct", False),
"realized_vol_3m_low": rank_map("realized_vol_3m", False),
"avg_daily_volume_3m": rank_map("avg_daily_volume_3m", True),
"avg_daily_dollar_volume_3m": rank_map("avg_daily_dollar_volume_3m", True),
"trading_days_3m": rank_map("trading_days_3m", True),
"dividend_yield_ttm_pct": rank_map("dividend_yield_ttm_pct", True),
"pe_low": rank_map("pe", False),
"forward_pe_low": rank_map("forward_pe", False),
"peg_low": rank_map("peg", False),
"eps_growth_pct": rank_map("eps_growth_pct", True),
"operating_income_growth_pct": rank_map("operating_income_growth_pct", True),
"free_cash_flow_growth_pct": rank_map("free_cash_flow_growth_pct", True),
"forward_eps": rank_map("forward_eps", True),
"operating_margin_pct": rank_map("operating_margin_pct", True),
"free_cash_flow_margin_pct": rank_map("free_cash_flow_margin_pct", True),
"market_cap": rank_map("market_cap", True),
"smaller_cap": rank_map("market_cap", False),
}
def present(idx, key):
return 1.0 if idx in ranks[key] else 0.0
def mix(idx, weighted_keys):
total = 0.0
weight = 0.0
for key, w in weighted_keys:
if idx in ranks[key]:
total += ranks[key][idx] * w
weight += w
if weight <= 0.0:
return 0.5
return total / weight
avg_6m = 0.0
avg_200d = 0.0
avg_vol = 0.0
n_6m = 0
n_200d = 0
n_vol = 0
for stock in universe:
v = as_number(get_field(stock, "return_6m_pct"))
if v is not None:
avg_6m += v
n_6m += 1
v = as_number(get_field(stock, "from_200d_ma_pct"))
if v is not None:
avg_200d += v
n_200d += 1
v = as_number(get_field(stock, "realized_vol_3m"))
if v is not None:
avg_vol += v
n_vol += 1
avg_6m = avg_6m / n_6m if n_6m else 0.0
avg_200d = avg_200d / n_200d if n_200d else 0.0
avg_vol = avg_vol / n_vol if n_vol else 0.0
def pull_regime_number(source, keys):
for key in keys:
val = None
if isinstance(source, dict):
val = source.get(key)
else:
val = getattr(source, key, None)
num = as_number(val)
if num is not None:
return num
return None
regime_risk_on = pull_regime_number(regime, ("risk_on", "risk_on_score", "bull", "bullish"))
regime_trend = pull_regime_number(regime, ("trend", "trend_score", "market_trend"))
regime_breadth = pull_regime_number(regime, ("breadth", "breadth_score"))
regime_vol = pull_regime_number(regime, ("volatility", "vol", "vol_score", "stress"))
regime_drawdown = pull_regime_number(regime, ("drawdown", "damage", "damage_score"))
if regime_risk_on is None:
regime_risk_on = 1.0 if avg_6m > 8.0 else (0.0 if avg_6m < -4.0 else 0.5)
if regime_trend is None:
regime_trend = 1.0 if avg_200d > 5.0 else (0.0 if avg_200d < -3.0 else 0.5)
if regime_breadth is None:
regime_breadth = 1.0 if avg_6m > 4.0 and avg_200d > 0.0 else (0.0 if avg_6m < 0.0 and avg_200d < 0.0 else 0.5)
if regime_vol is None:
regime_vol = 1.0 if avg_vol > 45.0 else (0.0 if avg_vol < 25.0 else 0.5)
if regime_drawdown is None:
regime_drawdown = 1.0 if avg_200d < -5.0 else (0.0 if avg_200d > 3.0 else 0.5)
regime_strength = (regime_risk_on + regime_trend + regime_breadth) / 3.0
regime_stress = (regime_vol + regime_drawdown) / 2.0
if regime_strength < 0.38 and regime_stress > 0.58:
branch = 0 # panic-repair
elif regime_strength > 0.68 and regime_stress < 0.48:
branch = 2 # clean-trend
elif regime_stress > 0.62:
branch = 3 # defensive-carry
else:
branch = 1 # transition
scores = {}
for idx, stock in enumerate(universe):
liquidity = mix(
idx,
(
("avg_daily_volume_3m", 0.25),
("avg_daily_dollar_volume_3m", 0.50),
("trading_days_3m", 0.25),
),
)
value = mix(
idx,
(
("pe_low", 0.30),
("forward_pe_low", 0.35),
("peg_low", 0.35),
),
)
quality = mix(
idx,
(
("operating_margin_pct", 0.55),
("free_cash_flow_margin_pct", 0.45),
),
)
growth = mix(
idx,
(
("eps_growth_pct", 0.30),
("operating_income_growth_pct", 0.25),
("free_cash_flow_growth_pct", 0.25),
("forward_eps", 0.20),
),
)
momentum = mix(
idx,
(
("return_1m_pct", 0.18),
("return_3m_pct", 0.24),
("return_6m_pct", 0.22),
("return_12m_pct", 0.10),
("momentum_12_1_pct", 0.26),
),
)
trend = mix(
idx,
(
("from_200d_ma_pct", 0.60),
("from_52w_high_pct", 0.40),
),
)
drawdown = mix(idx, (("deep_drawdown", 1.0),))
low_vol = mix(idx, (("realized_vol_3m_low", 1.0),))
income = mix(idx, (("dividend_yield_ttm_pct", 1.0),))
size = mix(idx, (("market_cap", 1.0),))
smaller = mix(idx, (("smaller_cap", 1.0),))
repair_evidence = mix(
idx,
(
("return_1m_pct", 0.25),
("return_3m_pct", 0.30),
("from_200d_ma_pct", 0.25),
("realized_vol_3m_low", 0.20),
),
)
repair_score = (
0.30 * drawdown
+ 0.26 * repair_evidence
+ 0.16 * quality
+ 0.12 * value
+ 0.08 * growth
+ 0.08 * liquidity
)
leadership_score = (
0.33 * momentum
+ 0.24 * trend
+ 0.14 * quality
+ 0.11 * growth
+ 0.10 * liquidity
+ 0.08 * low_vol
)
defensive_score = (
0.24 * quality
+ 0.20 * low_vol
+ 0.16 * value
+ 0.15 * income
+ 0.15 * liquidity
+ 0.10 * size
)
bridge_score = (
0.28 * repair_evidence
+ 0.20 * momentum
+ 0.16 * quality
+ 0.12 * growth
+ 0.12 * value
+ 0.12 * drawdown
)
repair_gap = repair_score - leadership_score
convergence = 1.0 - repair_gap if repair_gap >= 0.0 else 1.0 + repair_gap
if convergence < 0.0:
convergence = 0.0
extension_penalty = 0.0
broken_penalty = 0.0
junk_penalty = 0.0
raw_from_high = as_number(get_field(stock, "from_52w_high_pct"))
raw_from_200d = as_number(get_field(stock, "from_200d_ma_pct"))
raw_vol = as_number(get_field(stock, "realized_vol_3m"))
raw_pe = as_number(get_field(stock, "pe"))
raw_fpe = as_number(get_field(stock, "forward_pe"))
raw_mom_1m = as_number(get_field(stock, "return_1m_pct"))
raw_mom_3m = as_number(get_field(stock, "return_3m_pct"))
if raw_from_high is not None and raw_from_high > -5.0 and raw_mom_1m is not None and raw_mom_1m > 18.0:
extension_penalty += 0.08
if raw_from_200d is not None and raw_from_200d < -12.0 and raw_mom_3m is not None and raw_mom_3m < 0.0:
broken_penalty += 0.12
if raw_vol is not None and raw_vol > 70.0:
junk_penalty += 0.08
if raw_pe is not None and raw_pe < 0.0:
junk_penalty += 0.06
if raw_fpe is not None and raw_fpe > 60.0:
extension_penalty += 0.04
if quality < 0.30 and growth < 0.30:
junk_penalty += 0.07
if liquidity < 0.22:
junk_penalty += 0.08
if branch == 0:
score = (
1.18 * repair_score
+ 0.32 * defensive_score
+ 0.18 * bridge_score
+ 0.10 * smaller
- 0.85 * broken_penalty
- 0.65 * junk_penalty
- 0.35 * extension_penalty
)
if repair_evidence < 0.42:
score -= 0.10
if drawdown < 0.45:
score -= 0.04
elif branch == 1:
score = (
0.72 * (repair_score if repair_score > leadership_score else leadership_score)
+ 0.44 * (repair_score if repair_score < leadership_score else leadership_score)
+ 0.30 * bridge_score
+ 0.16 * defensive_score
+ 0.06 * value
- 0.35 * junk_penalty
- 0.18 * extension_penalty
- 0.18 * broken_penalty
)
score += 0.10 * convergence
if momentum < 0.35 and repair_evidence < 0.40:
score -= 0.08
elif branch == 2:
score = (
1.14 * leadership_score
+ 0.22 * defensive_score
+ 0.16 * bridge_score
+ 0.08 * quality
- 0.70 * extension_penalty
- 0.25 * junk_penalty
- 0.40 * broken_penalty
)
if trend < 0.40:
score -= 0.10
if drawdown > 0.80 and repair_evidence < 0.50:
score -= 0.06
else:
score = (
1.10 * defensive_score
+ 0.34 * repair_score
+ 0.12 * leadership_score
+ 0.10 * income
+ 0.06 * value
- 0.45 * junk_penalty
- 0.20 * extension_penalty
- 0.24 * broken_penalty
)
if low_vol < 0.35:
score -= 0.08
if size < 0.20 and liquidity < 0.35:
score -= 0.05
score += 0.03 * liquidity
scores[symbols[idx]] = score
return scores