← All V2 experiments
Relative return
1.064x
Excess vs bench
6.40%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
21.43%
Mean benchmark gain
14.08%
Mean excess gain
7.34%
Dispersion (ref)
7.85%
Win-rate vs bench (ref)
96.65%
Worst / best ratio (ref)
0.987x / 1.198x
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 | 9.45% | 2.22% | 1.071x |
| 2011-07-01 … 2016-06-30 | 17.72% | 13.74% | 1.035x |
| 2016-07-01 … 2021-06-30 | 29.79% | 20.63% | 1.076x |
| 2021-07-01 … 2026-06-26 | 44.41% | 15.48% | 1.251x |
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.064x · beat benchmark in 173/179
| # | Window | Strategy | Benchmark | Ratio |
|---|---|---|---|---|
| 1 | 2006-07-31 … 2011-07-29 | 9.08% | 1.79% | 1.072x |
| 2 | 2006-08-31 … 2011-08-31 | 8.85% | 0.21% | 1.086x |
| 3 | 2006-09-29 … 2011-08-31 | 8.63% | -0.14% | 1.088x |
| 4 | 2006-10-31 … 2011-10-31 | 6.86% | 0.23% | 1.066x |
| 5 | 2006-11-30 … 2011-11-30 | 6.02% | -0.05% | 1.061x |
| 6 | 2006-12-29 … 2011-11-30 | 6.09% | -0.32% | 1.064x |
| 7 | 2007-01-31 … 2012-01-31 | 6.57% | 0.93% | 1.056x |
| 8 | 2007-02-28 … 2012-01-31 | 7.49% | 1.43% | 1.060x |
| 9 | 2007-03-30 … 2012-03-30 | 9.74% | 3.09% | 1.065x |
| 10 | 2007-04-30 … 2012-04-30 | 9.49% | 2.42% | 1.069x |
| 11 | 2007-05-31 … 2012-05-31 | 7.19% | 0.60% | 1.066x |
| 12 | 2007-06-29 … 2012-06-29 | 8.18% | 1.92% | 1.061x |
| 13 | 2007-07-31 … 2012-07-31 | 8.55% | 2.69% | 1.057x |
| 14 | 2007-08-31 … 2012-08-31 | 8.89% | 2.95% | 1.058x |
| 15 | 2007-09-28 … 2012-09-28 | 8.42% | 3.20% | 1.051x |
| 16 | 2007-10-31 … 2012-10-31 | 6.72% | 2.60% | 1.040x |
| 17 | 2007-11-30 … 2012-11-30 | 8.18% | 3.45% | 1.046x |
| 18 | 2007-12-31 … 2012-12-31 | 7.65% | 3.69% | 1.038x |
| 19 | 2008-01-31 … 2013-01-31 | 11.17% | 5.85% | 1.050x |
| 20 | 2008-02-29 … 2013-02-28 | 10.27% | 6.82% | 1.032x |
| 21 | 2008-03-31 … 2013-03-28 | 12.46% | 7.73% | 1.044x |
| 22 | 2008-04-30 … 2013-04-30 | 11.23% | 7.51% | 1.035x |
| 23 | 2008-05-30 … 2013-04-30 | 10.49% | 7.81% | 1.025x |
| 24 | 2008-06-30 … 2013-06-28 | 11.88% | 9.33% | 1.023x |
| 25 | 2008-07-31 … 2013-07-31 | 15.41% | 10.48% | 1.045x |
| 26 | 2008-08-29 … 2013-07-31 | 15.97% | 10.52% | 1.049x |
| 27 | 2008-09-30 … 2013-09-30 | 17.83% | 11.48% | 1.057x |
| 28 | 2008-10-31 … 2013-10-31 | 19.80% | 15.76% | 1.035x |
| 29 | 2008-11-28 … 2013-10-31 | 20.87% | 17.46% | 1.029x |
| 30 | 2008-12-31 … 2013-12-31 | 23.11% | 18.44% | 1.039x |
| 31 | 2009-01-30 … 2013-12-31 | 24.86% | 20.64% | 1.035x |
| 32 | 2009-02-27 … 2014-01-31 | 27.73% | 21.63% | 1.050x |
| 33 | 2009-03-31 … 2014-03-31 | 27.18% | 20.60% | 1.054x |
| 34 | 2009-04-30 … 2014-04-30 | 26.37% | 19.00% | 1.062x |
| 35 | 2009-05-29 … 2014-04-30 | 25.35% | 18.32% | 1.059x |
| 36 | 2009-06-30 … 2014-06-30 | 28.41% | 19.01% | 1.079x |
| 37 | 2009-07-31 … 2014-07-31 | 24.73% | 17.39% | 1.062x |
| 38 | 2009-08-31 … 2014-08-29 | 25.29% | 17.70% | 1.064x |
| 39 | 2009-09-30 … 2014-09-30 | 23.94% | 16.64% | 1.063x |
| 40 | 2009-10-30 … 2014-09-30 | 25.49% | 17.08% | 1.072x |
| 41 | 2009-11-30 … 2014-11-28 | 24.46% | 16.82% | 1.065x |
| 42 | 2009-12-31 … 2014-12-31 | 23.32% | 16.28% | 1.061x |
| 43 | 2010-01-29 … 2014-12-31 | 24.99% | 17.23% | 1.066x |
| 44 | 2010-02-26 … 2015-01-30 | 23.30% | 15.80% | 1.065x |
| 45 | 2010-03-31 … 2015-03-31 | 21.57% | 15.40% | 1.053x |
| 46 | 2010-04-30 … 2015-04-30 | 19.20% | 15.38% | 1.033x |
| 47 | 2010-05-28 … 2015-04-30 | 21.27% | 17.09% | 1.036x |
| 48 | 2010-06-30 … 2015-06-30 | 24.01% | 17.45% | 1.056x |
| 49 | 2010-07-30 … 2015-06-30 | 23.85% | 16.43% | 1.064x |
| 50 | 2010-08-31 … 2015-08-31 | 21.64% | 15.76% | 1.051x |
| 51 | 2010-09-30 … 2015-09-30 | 20.30% | 13.61% | 1.059x |
| 52 | 2010-10-29 … 2015-09-30 | 19.48% | 13.06% | 1.057x |
| 53 | 2010-11-30 … 2015-11-30 | 20.66% | 15.09% | 1.048x |
| 54 | 2010-12-31 … 2015-12-31 | 19.27% | 13.55% | 1.050x |
| 55 | 2011-01-31 … 2016-01-29 | 19.07% | 11.90% | 1.064x |
| 56 | 2011-02-28 … 2016-01-29 | 17.93% | 11.53% | 1.057x |
| 57 | 2011-03-31 … 2016-03-31 | 18.38% | 12.90% | 1.048x |
| 58 | 2011-04-29 … 2016-04-29 | 17.17% | 12.39% | 1.042x |
| 59 | 2011-05-31 … 2016-05-31 | 17.46% | 12.94% | 1.040x |
| 60 | 2011-06-30 … 2016-06-30 | 17.36% | 13.30% | 1.036x |
| 61 | 2011-07-29 … 2016-07-29 | 17.25% | 14.52% | 1.024x |
| 62 | 2011-08-31 … 2016-08-31 | 16.88% | 15.19% | 1.015x |
| 63 | 2011-09-30 … 2016-09-30 | 19.09% | 16.32% | 1.024x |
| 64 | 2011-10-31 … 2016-10-31 | 17.11% | 14.02% | 1.027x |
| 65 | 2011-11-30 … 2016-11-30 | 18.41% | 14.66% | 1.033x |
| 66 | 2011-12-30 … 2016-12-30 | 18.33% | 14.92% | 1.030x |
| 67 | 2012-01-31 … 2017-01-31 | 18.38% | 14.63% | 1.033x |
| 68 | 2012-02-29 … 2017-02-28 | 18.19% | 14.78% | 1.030x |
| 69 | 2012-03-30 … 2017-02-28 | 17.45% | 14.43% | 1.026x |
| 70 | 2012-04-30 … 2017-04-28 | 15.91% | 14.61% | 1.011x |
| 71 | 2012-05-31 … 2017-05-31 | 18.40% | 15.98% | 1.021x |
| 72 | 2012-06-29 … 2017-05-31 | 17.97% | 15.44% | 1.022x |
| 73 | 2012-07-31 … 2017-07-31 | 17.68% | 15.43% | 1.020x |
| 74 | 2012-08-31 … 2017-08-31 | 17.85% | 15.12% | 1.024x |
| 75 | 2012-09-28 … 2017-08-31 | 17.68% | 14.77% | 1.025x |
| 76 | 2012-10-31 … 2017-10-31 | 21.04% | 16.12% | 1.042x |
| 77 | 2012-11-30 … 2017-11-30 | 20.06% | 16.79% | 1.028x |
| 78 | 2012-12-31 … 2017-12-29 | 19.90% | 16.93% | 1.025x |
| 79 | 2013-01-31 … 2018-01-31 | 20.91% | 17.57% | 1.028x |
| 80 | 2013-02-28 … 2018-02-28 | 21.28% | 16.21% | 1.044x |
| 81 | 2013-03-28 … 2018-02-28 | 20.34% | 15.81% | 1.039x |
| 82 | 2013-04-30 … 2018-04-30 | 18.94% | 14.25% | 1.041x |
| 83 | 2013-05-31 … 2018-05-31 | 19.02% | 14.57% | 1.039x |
| 84 | 2013-06-28 … 2018-05-31 | 20.18% | 14.97% | 1.045x |
| 85 | 2013-07-31 … 2018-07-31 | 18.22% | 14.83% | 1.030x |
| 86 | 2013-08-30 … 2018-07-31 | 19.37% | 15.59% | 1.033x |
| 87 | 2013-09-30 … 2018-09-28 | 19.67% | 15.84% | 1.033x |
| 88 | 2013-10-31 … 2018-10-31 | 16.92% | 12.89% | 1.036x |
| 89 | 2013-11-29 … 2018-10-31 | 15.82% | 12.60% | 1.029x |
| 90 | 2013-12-31 … 2018-12-31 | 12.93% | 9.93% | 1.027x |
| 91 | 2014-01-31 … 2019-01-31 | 12.72% | 12.37% | 1.003x |
| 92 | 2014-02-28 … 2019-02-28 | 11.88% | 12.38% | 0.996x |
| 93 | 2014-03-31 … 2019-03-29 | 13.18% | 12.76% | 1.004x |
| 94 | 2014-04-30 … 2019-04-30 | 14.80% | 13.73% | 1.009x |
| 95 | 2014-05-30 … 2019-04-30 | 14.17% | 13.54% | 1.006x |
| 96 | 2014-06-30 … 2019-06-28 | 11.35% | 12.81% | 0.987x |
| 97 | 2014-07-31 … 2019-07-31 | 12.66% | 13.30% | 0.994x |
| 98 | 2014-08-29 … 2019-07-31 | 11.99% | 12.80% | 0.993x |
| 99 | 2014-09-30 … 2019-09-30 | 12.44% | 12.70% | 0.998x |
| 100 | 2014-10-31 … 2019-10-31 | 13.11% | 12.91% | 1.002x |
| 101 | 2014-11-28 … 2019-10-31 | 12.42% | 12.60% | 0.998x |
| 102 | 2014-12-31 … 2019-12-31 | 14.57% | 14.16% | 1.004x |
| 103 | 2015-01-30 … 2019-12-31 | 14.88% | 14.85% | 1.000x |
| 104 | 2015-02-27 … 2020-01-31 | 14.54% | 14.04% | 1.004x |
| 105 | 2015-03-31 … 2020-03-31 | 10.43% | 8.56% | 1.017x |
| 106 | 2015-04-30 … 2020-04-30 | 14.67% | 11.65% | 1.027x |
| 107 | 2015-05-29 … 2020-05-29 | 15.32% | 12.61% | 1.024x |
| 108 | 2015-06-30 … 2020-06-30 | 16.15% | 13.64% | 1.022x |
| 109 | 2015-07-31 … 2020-07-31 | 17.85% | 14.60% | 1.028x |
| 110 | 2015-08-31 … 2020-08-31 | 23.42% | 18.07% | 1.045x |
| 111 | 2015-09-30 … 2020-09-30 | 21.72% | 17.05% | 1.040x |
| 112 | 2015-10-30 … 2020-10-30 | 19.81% | 14.60% | 1.045x |
| 113 | 2015-11-30 … 2020-11-30 | 24.15% | 17.43% | 1.057x |
| 114 | 2015-12-31 … 2020-12-31 | 25.44% | 18.65% | 1.057x |
| 115 | 2016-01-29 … 2021-01-29 | 27.62% | 19.26% | 1.070x |
| 116 | 2016-02-29 … 2021-02-26 | 29.68% | 19.79% | 1.083x |
| 117 | 2016-03-31 … 2021-03-31 | 27.33% | 19.42% | 1.066x |
| 118 | 2016-04-29 … 2021-03-31 | 28.15% | 19.66% | 1.071x |
| 119 | 2016-05-31 … 2021-05-28 | 29.85% | 20.42% | 1.078x |
| 120 | 2016-06-30 … 2021-06-30 | 29.26% | 21.06% | 1.068x |
| 121 | 2016-07-29 … 2021-06-30 | 29.79% | 20.63% | 1.076x |
| 122 | 2016-08-31 … 2021-08-31 | 34.07% | 21.75% | 1.101x |
| 123 | 2016-09-30 … 2021-09-30 | 31.65% | 20.22% | 1.095x |
| 124 | 2016-10-31 … 2021-10-29 | 35.04% | 22.50% | 1.102x |
| 125 | 2016-11-30 … 2021-11-30 | 34.31% | 21.87% | 1.102x |
| 126 | 2016-12-30 … 2021-11-30 | 34.44% | 21.75% | 1.104x |
| 127 | 2017-01-31 … 2022-01-31 | 29.87% | 20.17% | 1.081x |
| 128 | 2017-02-28 … 2022-02-28 | 30.09% | 18.51% | 1.098x |
| 129 | 2017-03-31 … 2022-03-31 | 32.35% | 19.46% | 1.108x |
| 130 | 2017-04-28 … 2022-03-31 | 32.66% | 19.46% | 1.111x |
| 131 | 2017-05-31 … 2022-05-31 | 32.38% | 15.59% | 1.145x |
| 132 | 2017-06-30 … 2022-06-30 | 28.28% | 13.08% | 1.134x |
| 133 | 2017-07-31 … 2022-07-29 | 28.00% | 15.16% | 1.111x |
| 134 | 2017-08-31 … 2022-08-31 | 28.50% | 13.72% | 1.130x |
| 135 | 2017-09-29 … 2022-08-31 | 28.23% | 13.56% | 1.129x |
| 136 | 2017-10-31 … 2022-10-31 | 28.56% | 11.86% | 1.149x |
| 137 | 2017-11-30 … 2022-11-30 | 28.43% | 12.52% | 1.141x |
| 138 | 2017-12-29 … 2022-11-30 | 29.02% | 12.46% | 1.147x |
| 139 | 2018-01-31 … 2023-01-31 | 25.77% | 11.01% | 1.133x |
| 140 | 2018-02-28 … 2023-02-28 | 24.32% | 11.03% | 1.120x |
| 141 | 2018-03-29 … 2023-02-28 | 24.78% | 11.72% | 1.117x |
| 142 | 2018-04-30 … 2023-04-28 | 23.64% | 13.01% | 1.094x |
| 143 | 2018-05-31 … 2023-05-31 | 21.88% | 12.95% | 1.079x |
| 144 | 2018-06-29 … 2023-05-31 | 22.80% | 13.01% | 1.087x |
| 145 | 2018-07-31 … 2023-07-31 | 25.93% | 14.67% | 1.098x |
| 146 | 2018-08-31 … 2023-08-31 | 23.23% | 13.51% | 1.086x |
| 147 | 2018-09-28 … 2023-08-31 | 22.93% | 13.56% | 1.083x |
| 148 | 2018-10-31 … 2023-10-31 | 20.43% | 12.60% | 1.070x |
| 149 | 2018-11-30 … 2023-11-30 | 23.08% | 14.58% | 1.074x |
| 150 | 2018-12-31 … 2023-12-29 | 26.52% | 17.26% | 1.079x |
| 151 | 2019-01-31 … 2024-01-31 | 26.74% | 16.27% | 1.090x |
| 152 | 2019-02-28 … 2024-01-31 | 26.19% | 15.94% | 1.088x |
| 153 | 2019-03-29 … 2024-03-28 | 30.13% | 17.50% | 1.107x |
| 154 | 2019-04-30 … 2024-04-30 | 27.54% | 15.50% | 1.104x |
| 155 | 2019-05-31 … 2024-05-31 | 30.93% | 18.12% | 1.108x |
| 156 | 2019-06-28 … 2024-06-28 | 31.36% | 17.99% | 1.113x |
| 157 | 2019-07-31 … 2024-07-31 | 29.65% | 17.70% | 1.102x |
| 158 | 2019-08-30 … 2024-08-30 | 29.87% | 18.41% | 1.097x |
| 159 | 2019-09-30 … 2024-09-30 | 30.76% | 18.65% | 1.102x |
| 160 | 2019-10-31 … 2024-10-31 | 30.30% | 17.87% | 1.105x |
| 161 | 2019-11-29 … 2024-11-29 | 33.69% | 18.64% | 1.127x |
| 162 | 2019-12-31 … 2024-12-31 | 30.56% | 17.62% | 1.110x |
| 163 | 2020-01-31 … 2025-01-31 | 32.07% | 18.07% | 1.119x |
| 164 | 2020-02-28 … 2025-02-28 | 31.99% | 19.00% | 1.109x |
| 165 | 2020-03-31 … 2025-03-31 | 31.59% | 19.24% | 1.104x |
| 166 | 2020-04-30 … 2025-04-30 | 29.55% | 16.49% | 1.112x |
| 167 | 2020-05-29 … 2025-04-30 | 28.33% | 15.80% | 1.108x |
| 168 | 2020-06-30 … 2025-06-30 | 30.65% | 18.19% | 1.105x |
| 169 | 2020-07-31 … 2025-07-31 | 29.47% | 17.87% | 1.098x |
| 170 | 2020-08-31 … 2025-08-29 | 26.91% | 16.69% | 1.088x |
| 171 | 2020-09-30 … 2025-09-30 | 32.23% | 18.57% | 1.115x |
| 172 | 2020-10-30 … 2025-09-30 | 33.11% | 19.43% | 1.115x |
| 173 | 2020-11-30 … 2025-11-28 | 31.38% | 17.77% | 1.116x |
| 174 | 2020-12-31 … 2025-12-31 | 31.03% | 16.92% | 1.121x |
| 175 | 2021-01-29 … 2025-12-31 | 30.14% | 17.20% | 1.110x |
| 176 | 2021-02-26 … 2026-01-30 | 34.05% | 17.04% | 1.145x |
| 177 | 2021-03-31 … 2026-03-31 | 32.86% | 14.07% | 1.165x |
| 178 | 2021-04-30 … 2026-04-30 | 39.02% | 16.03% | 1.198x |
| 179 | 2021-05-28 … 2026-04-30 | 38.26% | 16.22% | 1.190x |
Notes
mode=explore; family=contrarian-52w-regime-momentum-recovery-quality-hybrid
New hybrid family built as an escrow-referee structure rather than a static blend: each stock first earns evidence inside three distinct sleeves, a washed-out 52-week contrarian sleeve, a trend-respecting momentum sleeve, and a recovery-quality sleeve, and then a branch-specific referee decides which edge is allowed to cash out. The arbitration is explicit and non-mechanical: deep drawdowns cannot win without repair evidence, momentum cannot dominate when extension outruns durability, and recovery candidates receive only partial credit unless quality, liquidity, and stabilization unlock the escrow. This makes the family structurally distinct from the parent relay/admission designs because sleeve conflict is settled through admissibility gates, conflict taxes, and branch-level release multipliers instead of simple dominance weights.
Deliberate metric coverage this run: momentum uses return_1m_pct, return_3m_pct, return_6m_pct, return_12m_pct, and momentum_12_1_pct; trend/recovery uses from_200d_ma_pct and from_52w_high_pct; volatility uses realized_vol_3m; liquidity uses avg_daily_volume_3m, avg_daily_dollar_volume_3m, and trading_days_3m; income uses dividend_yield_ttm_pct and dividend_ttm; valuation uses pe, forward_pe, and peg; growth uses eps_growth_pct, revenue_growth_pct, operating_income_growth_pct, free_cash_flow_growth_pct, and forward_eps; quality uses operating_margin_pct and free_cash_flow_margin_pct; size uses market_cap as a stability and crowding moderator rather than a raw rank target. Deliberate weight-0 metrics this run: shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, and free_cash_flow_ttm. Sparse fundamentals are normalized inside each sleeve so missing fields reduce confidence rather than forcing large-cap-only selection.
Lesson notes
explore/contrarian-52w-regime-momentum-recovery-quality-hybrid: relative_return 1.0640x (delta -0.3193 vs exp_1174); win-rate 96.648%, worst-window 0.98704, dispersion 7.8497%.
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 | T | WFC | MO | JPM | OXY | BAC | MRK | SLB | XOM | PEP | MS | CVX | VLO | CMCSA | DIS |
| 2006-08-31 | T | MO | XOM | BAC | JPM | ORCL | CMCSA | PFE | PEP | FCX | VZ | WFC | CSCO | PG | MRK |
| 2006-09-29 | T | ORCL | MS | BAC | AAPL | JPM | CMCSA | VZ | PFE | LMT | WFC | GS | MRK | GILD | CSCO |
| 2006-10-31 | T | GS | MS | CMCSA | GOOGL | AAPL | ORCL | CSCO | VZ | ATI | MRK | NVDA | AAL | NEE | XOM |
| 2006-11-30 | CSCO | XOM | GS | T | MS | GOOGL | ORCL | AAPL | VNO | CVX | CMCSA | NEE | SPG | MCD | AAL |
| 2006-12-29 | XOM | T | CVX | GS | CSCO | CMCSA | MS | TWX | MCD | NEE | IBM | BRK-B | C | MSFT | ATI |
| 2007-01-31 | T | GS | SPG | HPQ | PSA | CMCSA | MS | NEE | VZ | TWX | MSFT | IBM | MO | DIS | BMY |
| 2007-02-28 | T | WY | NEE | SYK | GS | SPG | ABT | MAT | ICE | DE | SRE | ETR | NRG | TEX | TAP |
| 2007-03-30 | T | NRG | NEE | GS | TAP | VLO | MAT | KR | ETR | SYK | AEP | GT | MO | FCX | BAX |
| 2007-04-30 | NEE | CI | HON | ETR | T | CVX | MCD | XOM | MO | BAX | VLO | NRG | SRE | PEG | FSLR |
| 2007-05-31 | FCX | CVX | NRG | VZ | T | VLO | MCD | HON | EIX | XOM | ETR | AAPL | GS | COP | CI |
| 2007-06-29 | FCX | XOM | CVX | ICE | COP | SLB | NRG | HON | AMZN | T | VLO | MCD | NOV | WBD | APA |
| 2007-07-31 | COP | FCX | CVX | XOM | SLB | IBM | AAPL | VZ | MDR | HON | X | RTX | WBD | NOV | AXON |
| 2007-08-31 | COP | CVX | XOM | IBM | SLB | OXY | HPQ | FCX | CSCO | BIIB | INTC | VRSN | MMM | RTX | DE |
| 2007-09-28 | CVX | COP | FCX | XOM | SLB | OXY | RTX | HAL | FLR | APA | IBM | GE | DE | CSCO | WYNN |
| 2007-10-31 | OXY | FCX | APA | GOOG | GOOGL | DVN | XOM | CVX | COP | HAL | BIIB | MSFT | KO | GRMN | BRK-B |
| 2007-11-30 | OXY | BRK-B | VRSN | SCHW | FCX | MRK | MO | KO | PEP | XOM | PG | CVX | GOOGL | RTX | MDR |
| 2007-12-31 | OXY | SCHW | BRK-B | APA | FCX | HPQ | XOM | CVX | COP | DE | RTX | MO | AAPL | MCD | GOOGL |
| 2008-01-31 | MOS | MO | NEM | BRK-B | OXY | GILD | WMT | FSLR | PFE | HUM | ESRX | KO | XOM | RTX | CL |
| 2008-02-29 | OXY | MOS | HAL | DVN | WDC | CF | BRK-B | CVX | BKNG | APA | XOM | FCX | IBM | COP | SLB |
| 2008-03-31 | HAL | DVN | OXY | MOS | BKNG | APA | IBM | WMT | CSX | ABT | MO | CF | PG | GE | KO |
| 2008-04-30 | MOS | HAL | OXY | CVX | CF | DVN | WDC | SLB | BKNG | FCX | IBM | WMT | UNP | XOM | APA |
| 2008-05-30 | MA | OXY | HAL | WDC | MOS | APA | DVN | UNP | X | BKNG | CVX | CF | IBM | CSX | COP |
| 2008-06-30 | HAL | MOS | OXY | MA | CF | DVN | APA | WDC | COP | NBR | CVX | D | X | IBM | XOM |
| 2008-07-31 | CF | MOS | ABT | HAL | IBM | OXY | SRCL | QCOM | BCR | APOL | CEPH | MA | SWN | RTN | RE |
| 2008-08-29 | CF | MCD | SCHW | BCR | SWN | SRCL | CEPH | APOL | ABT | JNJ | RTN | STJ | ATGE | OXY | RE |
| 2008-09-30 | MCD | SCHW | ABT | WMT | JNJ | CPB | ED | D | GIS | PG | MRSH | BRK-B | LMT | IBM | BCR |
| 2008-10-31 | ABT | MCD | ED | AON | CPB | MRSH | PG | WWY | JNJ | MO | WMT | BRK-B | KR | MDLZ | KMB |
| 2008-11-28 | MCD | ABT | AON | D | ED | XOM | PG | KR | CVX | SHW | DLTR | TRV | JNJ | SJM | MMM |
| 2008-12-31 | MCD | ABT | BMY | XOM | AON | AMGN | JNJ | SHW | VZ | ED | PG | WM | RTX | T | WMT |
| 2009-01-30 | ABT | XOM | MCD | BMY | CVX | ED | JNJ | OXY | AMGN | VZ | MDLZ | SJM | PCG | WEC | IBM |
| 2009-02-27 | XOM | MCD | ABT | IBM | BMY | AON | ED | V | DRI | VTRS | PCG | OXY | VZ | JNJ | AMGN |
| 2009-03-31 | BMY | MS | IBM | ED | DRI | CVX | OXY | MCD | VTRS | AAPL | AON | UPS | XOM | AZO | ORCL |
| 2009-04-30 | DRI | BKNG | IBM | WBD | AAPL | WDC | EBAY | UPS | OXY | MS | AZO | MNST | CVX | YUM | PH |
| 2009-05-29 | MS | WDC | EBAY | BKNG | OXY | WBD | MOS | IBM | AAPL | RTX | FCX | MCD | DRI | GPS | F |
| 2009-06-30 | BKNG | F | AAPL | MS | WBD | MSFT | IBM | ORCL | EBAY | TJX | ELV | MSI | OXY | FFIV | ICE |
| 2009-07-31 | F | BKNG | EBAY | AAPL | WBD | TJX | MOS | IBM | FCX | MS | MMM | WDC | OXY | WLL | ADBE |
| 2009-08-31 | BKNG | AAPL | COF | WDC | EBAY | WBD | F | WHR | FITB | TGT | ISRG | MU | CTSH | IP | PALM |
| 2009-09-30 | BKNG | AAPL | WBD | GE | GS | EBAY | GNW | F | WLL | ISRG | FCX | EOG | FMCC | CTSH | MU |
| 2009-10-30 | AAPL | BKNG | WBD | MSFT | EBAY | GOOG | GNW | HIG | TT | FCX | GOOGL | MA | EOG | HAL | IBM |
| 2009-11-30 | BKNG | WBD | F | WLL | AAPL | MSFT | FCX | ISRG | TT | GOOG | FLEX | RTX | PSKY | CCI | GOOGL |
| 2009-12-31 | BKNG | F | MSFT | WLL | GOOG | CI | SPG | FCX | ISRG | GOOGL | AAPL | WBD | MAC | SLG | WDC |
| 2010-01-29 | BKNG | F | ISRG | DD | WBD | MSFT | CI | SLG | MTW | TXT | WLL | SYK | RTX | GIS | PFE |
| 2010-02-26 | BKNG | F | WLL | ISRG | SPG | AMD | UIS | GNW | CRM | PXD | CLF | MTW | BRK-B | WBD | SNDK |
| 2010-03-31 | BKNG | F | WLL | LVS | ISRG | GE | ZION | XRX | WSM | CLF | DDR | EBAY | DPZ | FFIV | UAL |
| 2010-04-30 | BKNG | BBWI | XRX | WBD | AAPL | WLL | NFLX | UAL | LVS | HBAN | LPX | VIAV | ZION | F | CMI |
| 2010-05-28 | WBD | AAPL | NTAP | BBWI | HAS | UAL | HON | WLL | NFLX | ZION | HBAN | LVS | MTG | COR | CRM |
| 2010-06-30 | NEM | NTAP | AAPL | HAS | BRK-B | WBD | COR | BMY | BBWI | MO | ZION | KDP | GIS | SBUX | ISRG |
| 2010-07-30 | NTAP | HAS | NEM | ETN | WBD | AIG | MO | AAPL | INTU | BBWI | AZO | BMY | BKNG | LVS | C |
| 2010-08-31 | NEM | BKNG | BMY | NTAP | CCI | MCD | ED | NI | MO | BRK-B | AAPL | CB | INTU | SO | T |
| 2010-09-30 | BKNG | NTAP | AAPL | NEM | VZ | QCOM | MO | NFLX | WLL | LVS | BMY | INTU | AMZN | TXN | CCI |
| 2010-10-29 | BKNG | AAPL | NTAP | FCX | LVS | TXN | MBI | MO | INTU | NEM | LYB | VRSN | WLL | VZ | NFLX |
| 2010-11-30 | TXN | AAPL | BBWI | NTAP | BKNG | XOM | FCX | COP | F | WLL | LVS | MCHP | INTC | PH | RCL |
| 2010-12-31 | AIG | TXN | FCX | WLL | LULU | BKNG | MGM | COP | DECK | LVS | RCL | ADI | NTAP | MBI | BBWI |
| 2011-01-31 | MOS | TER | WLL | TXN | LULU | COP | CIEN | XOM | CLF | AAPL | DE | BKNG | ADI | QCOM | ON |
| 2011-02-28 | COP | VIAV | QCOM | MU | TER | KLAC | LULU | PSKY | MOS | XOM | TXN | ANDV | WMB | VLO | CVX |
| 2011-03-31 | COP | XOM | WYNN | BKNG | CAT | TER | PSKY | CVX | NOV | LULU | KLAC | TXN | NFLX | CBRE | DE |
| 2011-04-29 | WYNN | BKNG | COP | BBWI | LULU | BIIB | PSKY | MCO | ANDV | XOM | OXY | LYB | HUM | CIEN | KKR |
| 2011-05-31 | WYNN | BKNG | BBWI | MCO | LULU | REGN | BIIB | TMUS | XOM | ELV | AET | PSKY | CVX | CAT | MSI |
| 2011-06-30 | WYNN | BKNG | MCO | BBWI | LULU | COP | MNST | XOM | UNH | TDC | CAT | MA | PSKY | BIIB | GR |
| 2011-07-29 | WYNN | BKNG | AAPL | CF | IBM | SPG | COP | XOM | LULU | D | CVX | HAL | MA | PM | AXP |
| 2011-08-31 | CF | AAPL | WYNN | BKNG | MA | IBM | MCD | KO | VFC | V | XOM | COP | BBWI | MSFT | SPG |
| 2011-09-30 | AAPL | IBM | DUK | V | MA | MCD | VZ | KO | TJX | VFC | DLTR | INTC | SPG | XOM | KMB |
| 2011-10-31 | CF | KLAC | AAPL | SPG | INTC | V | DUK | IBM | MA | XOM | MCD | ISRG | NEM | BIIB | RL |
| 2011-11-30 | MA | KLAC | V | INTC | IBM | PM | XOM | TJX | WMB | AAPL | PFE | MCD | ISRG | OXY | DUK |
| 2011-12-30 | KLAC | PFE | V | XOM | MA | ISRG | AAPL | PM | MCD | LLY | SPG | TJX | WMB | VZ | INTC |
| 2012-01-31 | AAPL | CF | LYB | CAT | KLAC | INTC | TJX | PFE | YUM | GILD | HD | V | XOM | SPG | MA |
| 2012-02-29 | AAPL | V | ISRG | BKNG | MSFT | TJX | CMCSA | MA | M | HD | CF | URI | CAT | WFC | EQIX |
| 2012-03-30 | AAPL | BKNG | QCOM | TJX | PSKY | WBD | ISRG | WFC | CF | EQIX | MSFT | HD | INTC | YUM | V |
| 2012-04-30 | AAPL | BKNG | WBD | V | SPG | ISRG | WFC | TJX | SHW | WMB | MSFT | AXP | EBAY | PM | SBAC |
| 2012-05-31 | AAPL | BKNG | SPG | WBD | YUM | EBAY | WFC | SHW | TJX | DIS | NEE | V | STX | SRE | DAL |
| 2012-06-29 | STX | AAPL | BKNG | WBD | SPG | CF | V | CMCSA | EBAY | DIS | NEE | GE | SRE | VRTX | WFC |
| 2012-07-31 | AAPL | STX | V | SPG | CMCSA | NEE | DIS | EBAY | MRK | WFC | BKNG | KMB | CF | SHW | PM |
| 2012-08-31 | STX | AAPL | WDC | VLO | EBAY | CMCSA | ALL | GILD | SPG | DIS | CF | WBD | TWX | PSKY | HD |
| 2012-09-28 | STX | AAPL | CF | VLO | WBD | DIS | ALL | GILD | CMCSA | EBAY | GE | WMB | GOOGL | TWX | GOOG |
| 2012-10-31 | CMCSA | ALL | LEN | EBAY | WBD | LLY | SBAC | GE | GILD | JPM | XOM | MDT | VLO | CF | HD |
| 2012-11-30 | META | EBAY | AMGN | ALL | CMCSA | TWX | GILD | LLY | V | GE | HD | WBD | JPM | GS | TRV |
| 2012-12-31 | STX | GS | WDC | PPG | AMGN | GILD | WBD | JPM | EBAY | CCI | ORCL | ALL | ETN | APTV | CMCSA |
| 2013-01-31 | STX | META | WDC | GS | DAL | WBD | EBAY | PHM | LEN | BLK | STT | GILD | KKR | V | PPG |
| 2013-02-28 | GS | KKR | WBD | ALL | BRK-B | STX | GILD | DAL | JPM | WDC | TRV | CMCSA | TSN | STT | TWX |
| 2013-03-28 | STX | KKR | GS | AMGN | ALL | VLO | GILD | TWX | HON | TRV | BLK | DAL | WDC | WBD | STT |
| 2013-04-30 | AMGN | WDC | KKR | TWX | REGN | DIS | GILD | VRTX | STX | ALL | FNMA | WBD | COR | JNJ | FMCC |
| 2013-05-31 | STX | WDC | GS | VLO | TSLA | JPM | REGN | MCO | FNMA | GILD | BX | BKNG | DIS | STT | BLK |
| 2013-06-28 | STX | WDC | JPM | KKR | GILD | CSCO | MCO | WFC | DIS | BKNG | REGN | GS | HON | TSLA | BRK-B |
| 2013-07-31 | WDC | BKNG | WFC | REGN | CSCO | JPM | GILD | FNMA | RTX | GS | TSLA | TYL | FSLR | BX | MCO |
| 2013-08-30 | BKNG | MA | META | CI | TSLA | TSN | DAL | JNJ | WFC | RTX | TRIP | GILD | MU | MTG | PRU |
| 2013-09-30 | BKNG | META | REGN | MA | TSLA | RTX | DAL | GILD | MCO | MGM | WYNN | TRIP | OMX | BX | NOC |
| 2013-10-31 | BKNG | META | MA | BX | MU | VLO | NXPI | FNMA | DAL | GILD | FMCC | WYNN | BA | SBUX | OMX |
| 2013-11-29 | BKNG | MA | REGN | BX | MS | BA | MCK | META | DAL | PBI | FNMA | GILD | FSLR | MU | INCY |
| 2013-12-31 | BKNG | MA | URI | BX | VLO | META | WYNN | ABBV | MU | FNMA | LVS | FMCC | DAL | MCK | BA |
| 2014-01-31 | BKNG | MU | META | BX | URI | DAL | V | GOOG | MGM | WYNN | FNMA | GILD | TSLA | FMCC | VLO |
| 2014-02-28 | REGN | BKNG | MU | META | URI | BX | V | WYNN | TSLA | MA | MTCH | DAL | TMO | ILMN | MGM |
| 2014-03-31 | BX | URI | WYNN | MSFT | EOG | MU | DAL | TSN | WFC | VLO | GLW | META | BAC | RCL | FSLR |
| 2014-04-30 | EOG | MU | URI | VLO | DAL | VTRS | LYB | TSLA | PSX | DD | WFC | BKR | SLB | FNMA | MSFT |
| 2014-05-30 | META | MU | EOG | URI | DAL | COP | SLB | LYB | WLL | WMB | WFC | LUV | BKNG | VLO | GD |
| 2014-06-30 | META | MU | URI | SLB | EOG | COP | DVN | WLL | TSLA | HAL | DAL | AAL | TRGP | JNJ | LYB |
| 2014-07-31 | MU | META | URI | EOG | COP | GILD | BX | MSFT | SLB | HAL | AAPL | BKNG | DAL | V | LUV |
| 2014-08-29 | MU | GILD | META | NXPI | URI | WDC | LYB | MSFT | AAPL | DAL | LUV | INTC | EOG | TRGP | DIS |
| 2014-09-30 | GILD | META | MU | NXPI | MSFT | MS | UNP | LRCX | URI | LUV | VZ | BRK-B | MO | RCL | WDC |
| 2014-10-31 | GILD | MU | META | AMGN | ABBV | NXPI | AAPL | MSFT | LUV | GD | MO | MS | REGN | MCO | UNH |
| 2014-11-28 | MU | META | NXPI | ABBV | DAL | V | LUV | RCL | AAPL | AMGN | ZTS | BRK-B | MSFT | TWX | MO |
| 2014-12-31 | RCL | AEP | DAL | KR | AMGN | WDC | REGN | AAPL | ED | SHW | META | SO | WELL | WEC | MU |
| 2015-01-30 | KR | NXPI | WELL | PCG | SHW | RCL | GILD | VTR | STZ | BX | MO | AAPL | BRK-B | DAL | LUV |
| 2015-02-27 | CI | VLO | TXN | AAPL | KR | DIS | BX | RCL | MO | LOW | LUV | DLTR | NOC | BBWI | MAC |
| 2015-03-31 | AAPL | SBUX | CI | KR | COR | DRI | NXPI | VLO | TXN | META | REGN | BX | BIIB | UAL | SWKS |
| 2015-04-30 | SBUX | AAPL | BX | DIS | CI | NXPI | INCY | COR | SWKS | PANW | LOW | VMC | MCO | HAS | CRM |
| 2015-05-29 | GILD | SBUX | BX | CI | PANW | AAPL | DIS | NXPI | SWKS | GS | JPM | EXPE | REGN | HAS | NCLH |
| 2015-06-30 | GILD | SBUX | JPM | BX | GS | PANW | DIS | VLO | DRI | AAPL | CI | NKE | HAS | MA | META |
| 2015-07-31 | SBUX | GILD | VLO | DIS | META | JPM | PANW | NKE | AMGN | KR | CI | MDLZ | GS | HAS | V |
| 2015-08-31 | SBUX | NKE | VLO | STZ | MO | HD | PGR | CI | JPM | GILD | META | PANW | V | HAS | PSA |
| 2015-09-30 | SBUX | MO | PSA | PANW | NKE | VLO | PGR | JPM | BKNG | ORLY | HD | V | PEG | HUM | AZO |
| 2015-10-30 | SBUX | BKNG | MO | META | VLO | PSA | COST | GE | PSX | INTC | GOOG | V | PGR | NKE | EXPE |
| 2015-11-30 | VLO | PSA | GOOGL | MO | SBUX | HD | PSX | PANW | META | V | AMZN | MCD | PLD | COST | INTC |
| 2015-12-31 | PSA | VLO | GOOGL | GE | MO | GOOG | HD | AVGO | MCD | META | AMZN | PLD | V | COST | ADBE |
| 2016-01-29 | PSA | MO | META | GOOGL | VLO | NEE | GOOG | STZ | SBUX | MCD | PM | GE | JNJ | SO | HD |
| 2016-02-29 | T | VZ | KLAC | META | TSN | MO | PSA | JNJ | ISRG | XEL | SYY | MCD | AEP | SPG | NEE |
| 2016-03-31 | T | VZ | PSA | KLAC | META | PM | EXC | MCD | ISRG | AEP | ED | ETN | SPG | GE | EMR |
| 2016-04-29 | T | ISRG | META | VZ | ABBV | JNJ | BAX | EMR | MCD | RTX | EW | TSN | ETN | AWK | PM |
| 2016-05-31 | T | META | ABBV | NXPI | SPGI | VZ | DLR | NVDA | WCG | ULTA | ISRG | EQIX | AMZN | ADBE | IBM |
| 2016-06-30 | T | MO | CCI | DLR | JNJ | ISRG | VZ | WM | EQIX | NEE | SYK | K | IRM | AWK | ULTA |
| 2016-07-29 | T | TXN | DLR | VZ | DHR | ABBV | SPGI | META | ISRG | TSN | OKE | NVDA | PLD | WCG | JNJ |
| 2016-08-31 | SPGI | T | GEN | DHR | META | TXN | ULTA | NVDA | VTR | OKE | CSCO | AMAT | TSN | AMZN | CHTR |
| 2016-09-30 | SPGI | NVDA | AMZN | GEN | META | ISRG | QCOM | DHR | AMAT | HPQ | TXN | ABBV | EBAY | BKNG | T |
| 2016-10-31 | META | NXPI | NVDA | SPGI | DHR | QCOM | GEN | MSFT | JPM | TXN | LRCX | BAC | C | AMAT | ADBE |
| 2016-11-30 | JPM | MS | NVDA | TXN | SPGI | QCOM | AMAT | DHR | T | UNH | KLAC | CLF | BKNG | MSFT | GS |
| 2016-12-30 | JPM | MS | GS | NVDA | PNC | TWX | T | BAC | DHR | BRK-B | MSFT | TMUS | AMAT | TFC | C |
| 2017-01-31 | MS | JPM | AMAT | NVDA | GS | CHTR | TXN | SCHW | BBY | UAL | TMUS | IBM | CSX | URI | BAC |
| 2017-02-28 | JPM | MS | CLF | NVDA | XRX | GS | AAPL | AMAT | BAC | BKNG | HWM | PNC | LUV | ADI | CHTR |
| 2017-03-31 | AMAT | KLAC | NVDA | ADBE | BKNG | JPM | INCY | META | GEN | BAC | TXN | URI | GS | LRCX | AXP |
| 2017-04-28 | AMAT | KLAC | ADBE | BKNG | CHTR | META | ISRG | VRTX | MSFT | CCL | JPM | LRCX | NVDA | BAC | GOOGL |
| 2017-05-31 | META | GOOGL | AMAT | NVDA | ADBE | LRCX | KLAC | ISRG | VRTX | BX | MSFT | PYPL | AAPL | BKNG | WB |
| 2017-06-30 | NVDA | VRTX | BX | REGN | SPGI | AMAT | LRCX | META | PAYC | TSLA | MSFT | ADBE | ANET | ISRG | CCL |
| 2017-07-31 | AMAT | VRTX | META | NVDA | LRCX | ADBE | BKNG | CHTR | PYPL | SPGI | REGN | ISRG | MSFT | MA | LITE |
| 2017-08-31 | META | RCL | MU | NVDA | VRTX | ADBE | AMAT | LRCX | BA | UNH | AMT | V | REGN | MSFT | MA |
| 2017-09-29 | MU | NVDA | AMAT | LRCX | BA | META | ABBV | VRTX | MA | MCHP | RCL | V | WB | TXN | MSFT |
| 2017-10-31 | MU | AMAT | NVDA | LRCX | ADBE | TXN | RCL | ABBV | MSFT | BA | MA | MCHP | JPM | XYZ | GM |
| 2017-11-30 | MU | INTC | XYZ | BA | NVDA | TXN | LRCX | ANET | ADBE | ON | PYPL | AMAT | MA | META | WB |
| 2017-12-29 | MU | TXN | INTC | BA | MAR | WYNN | ON | NVDA | BBBY | META | ADBE | PYPL | PGR | MSFT | ANET |
| 2018-01-31 | TXN | MU | BA | NVDA | ABBV | MAR | ON | ADBE | MSFT | BLK | JPM | TROW | BBBY | HD | ISRG |
| 2018-02-28 | MU | TXN | MA | MSFT | ADBE | INTC | BA | NVDA | JPM | NOW | ANET | ON | AMAT | BAC | WYNN |
| 2018-03-29 | MU | WYNN | ADBE | ON | PGR | MA | ANET | XYZ | MPC | NOW | BA | NEE | LRCX | PSX | URI |
| 2018-04-30 | MU | PSX | WYNN | VLO | ADBE | PANW | MPC | COP | V | ANET | MA | BKNG | PGR | PFE | XYZ |
| 2018-05-31 | MU | PSX | OXY | ADBE | V | PANW | MA | VLO | SEDG | XYZ | NVDA | NOW | INTU | INTC | PGR |
| 2018-06-29 | MU | PSX | V | MA | OXY | INTU | TJX | META | EOG | ADBE | CRM | VLO | PFE | M | COP |
| 2018-07-31 | MU | PSX | V | PFE | MA | ADBE | MSFT | SEDG | CSX | XYZ | INTU | CRM | ISRG | TJX | M |
| 2018-08-31 | PFE | TJX | V | XYZ | MA | AAPL | MSFT | ISRG | AMZN | ADBE | COST | CRM | INTU | REGN | PSX |
| 2018-09-28 | PFE | V | PGR | XYZ | MA | TJX | INTU | ADBE | MSFT | AAPL | MTCH | ISRG | DIS | CRM | ABMD |
| 2018-10-31 | PFE | VZ | MRK | PGR | TJX | ESRX | DIS | MKC | XYZ | AAPL | SPG | ROST | NEE | CMCSA | COST |
| 2018-11-30 | PFE | VZ | MRK | SBUX | DELL | NEE | CMCSA | ESRX | MCD | ETSY | UAL | BRK-B | MKC | HCA | PG |
| 2018-12-31 | PFE | VZ | SBUX | MRK | AVGO | NEE | CME | NRG | YUM | BRK-B | AET | EXC | XEL | ABBV | DUK |
| 2019-01-31 | AVGO | SBUX | REGN | AMD | PFE | VRTX | NOW | MTCH | PAYC | ETSY | WELL | PG | BALL | LULU | VZ |
| 2019-02-28 | AVGO | PGR | SBUX | ETSY | PFE | BA | MRK | AZO | INTU | PAYC | ADI | NEE | NOW | PANW | XYZ |
| 2019-03-29 | AVGO | MA | PEP | TTD | INTU | SBUX | V | MTCH | MSFT | AZO | CDNS | PG | PGR | PYPL | INTC |
| 2019-04-30 | MSFT | META | MA | ADI | KLAC | PEP | V | HON | PYPL | CSCO | AVGO | PGR | TTD | AMD | SBUX |
| 2019-05-31 | PEP | MA | PGR | MTCH | MSFT | SO | HSY | PAYX | WELL | LLY | V | LIN | PYPL | SBUX | CCI |
| 2019-06-28 | MSFT | LIN | QCOM | MTCH | PEP | TTD | META | MA | V | SBUX | LULU | PGR | XRX | AXP | BALL |
| 2019-07-31 | MTCH | MSFT | HSY | MA | V | SBUX | FISV | PEP | LIN | GS | PG | DIS | PGR | SYK | SNPS |
| 2019-08-30 | QCOM | PEP | MSFT | TSN | KLAC | LMT | ZTS | CCI | KO | MA | V | SYK | SO | WEC | SBUX |
| 2019-09-30 | SO | KLAC | T | NXPI | BMY | PEP | QCOM | MSFT | SBUX | NEE | SPGI | TXN | LMT | JPM | HET |
| 2019-10-31 | BMY | T | QCOM | WU | SO | KLAC | NXPI | MSFT | PEP | JPM | PLD | PHM | VRTX | AMGN | NEE |
| 2019-11-29 | QCOM | BMY | JPM | MSFT | HET | XRX | VRTX | URI | TER | KLAC | AMGN | AAPL | AMAT | PSX | T |
| 2019-12-31 | QCOM | JPM | MSFT | BMY | URI | HET | VRTX | AMGN | BAC | ENPH | AAPL | TER | KLAC | MTCH | MU |
| 2020-01-31 | MSFT | BMY | QCOM | SO | SPGI | HET | LLY | JPM | LMT | TSLA | INTC | VRTX | V | MA | NEM |
| 2020-02-28 | MSFT | BMY | VRTX | TSLA | QCOM | NEM | HET | LLY | ADBE | GOOGL | ZTS | NEE | INTC | MA | PEP |
| 2020-03-31 | NEM | MSFT | LLY | PGR | VRTX | ADBE | QCOM | ABBV | GEN | KR | ENPH | COST | TSLA | AMT | SPGI |
| 2020-04-30 | NEM | LLY | MSFT | ENPH | SPGI | ADBE | CDNS | ABBV | NOW | TMO | GIS | UNH | VEEV | QCOM | REGN |
| 2020-05-29 | NEM | LLY | MSFT | VRTX | SPGI | CDNS | ABBV | META | ENPH | ADBE | VEEV | REGN | QCOM | LULU | MA |
| 2020-06-30 | MSFT | NEM | ABBV | EBAY | SPGI | ADBE | AAPL | TSLA | CDNS | VRTX | LOW | QCOM | META | ENPH | XYZ |
| 2020-07-31 | QCOM | NEM | TSLA | EBAY | CDNS | LOW | ENPH | MSFT | META | ABBV | SPGI | ADBE | XYZ | AAPL | NVDA |
| 2020-08-31 | META | MSFT | ADBE | ENPH | AAPL | LOW | EBAY | XYZ | REGN | SPGI | AMD | CDNS | NEM | BBBY | ETSY |
| 2020-09-30 | META | LOW | ENPH | TGT | DHI | LEN | DHR | ADBE | FDX | AAPL | NVDA | ETSY | SPGI | CHTR | SEDG |
| 2020-10-30 | ENPH | META | LOW | ETSY | SEDG | AAPL | VIAC | TSLA | DHR | NVDA | PENN | XYZ | TMO | PGR | NOW |
| 2020-11-30 | MRNA | ENPH | ETSY | TER | XYZ | MS | VIAC | QCOM | TSLA | LRCX | TTD | SEDG | TGT | PLTR | KLAC |
| 2020-12-31 | ETSY | ENPH | TSLA | MS | AMAT | TER | LRCX | XYZ | TTD | PENN | QCOM | MRNA | PANW | CRWD | CDNS |
| 2021-01-29 | ENPH | AMAT | MS | KLAC | MRNA | ETSY | PLTR | GS | TSLA | LRCX | PSKY | CLF | FCX | TTD | CVNA |
| 2021-02-26 | ENPH | ETSY | AMAT | MS | GS | TER | FCX | PENN | KLAC | WBD | PYPL | CRWD | TUP | PSKY | GNRC |
| 2021-03-31 | GS | MS | AMAT | JPM | DVN | TRIP | ETSY | GME | GM | FANG | SPG | CPRI | VIAC | FCX | MO |
| 2021-04-30 | AMAT | GS | MS | MRNA | DVN | FCX | LRCX | DELL | LPX | JPM | CZR | STX | URI | DE | BBWI |
| 2021-05-28 | GS | MS | DVN | AMAT | FCX | CLF | STX | GME | LPX | NUE | JPM | KKR | BBWI | ORCL | BRK-B |
| 2021-06-30 | BX | GS | MRNA | TGT | NVDA | MS | KKR | CRWD | GOOGL | F | CLF | TRGP | MAC | PYPL | DVN |
| 2021-07-30 | BX | MRNA | GS | ORCL | MS | TGT | GOOGL | INTU | META | NVDA | SIVB | KKR | SBNY | GOOG | FCX |
| 2021-08-31 | MRNA | BX | GS | GOOGL | KKR | SIVB | SBNY | MS | INTU | DHR | GOOG | CRWD | PFE | NUE | TGT |
| 2021-09-30 | MRNA | BX | WFC | GOOGL | PANW | GS | KKR | JPM | TSLA | DHR | SIVB | AMD | PFE | TMO | MS |
| 2021-10-29 | BX | KKR | GS | NVDA | TSLA | GOOGL | WFC | EOG | ETSY | MSFT | COIN | ORCL | AMD | SIVB | MS |
| 2021-11-30 | MRNA | BX | KKR | PFE | AMD | KLAC | NVDA | PANW | DVN | COP | MSFT | ON | TMO | AAPL | AVGO |
| 2021-12-31 | AMD | PFE | BX | KKR | AVGO | KLAC | DVN | NVDA | FCX | TMO | QCOM | TSLA | AAPL | MSFT | ON |
| 2022-01-31 | PFE | WFC | CVX | BX | COP | EOG | DVN | XOM | OXY | BRK-B | ABBV | AAPL | AVGO | ON | WY |
| 2022-02-28 | WFC | CVX | COP | EOG | OXY | ABBV | DVN | XOM | AXP | FCX | BRK-B | RTX | BX | WMB | EXC |
| 2022-03-31 | PFE | COP | CVX | ABBV | XOM | REGN | FCX | EOG | BRK-B | OXY | CF | DVN | TSLA | MOS | MPC |
| 2022-04-29 | PFE | COP | CVX | XOM | ABBV | EOG | DVN | REGN | BMY | OXY | CF | MPC | WMB | VLO | MCK |
| 2022-05-31 | XOM | PFE | EOG | CVX | OXY | DVN | COP | ABBV | CF | APA | MOS | MPC | PSX | VLO | REGN |
| 2022-06-30 | PFE | XOM | ABBV | DVN | EOG | BMY | OXY | CVX | COP | MRK | KO | T | CF | MCK | PEP |
| 2022-07-29 | XOM | OXY | DVN | CVX | ON | COP | EOG | CF | PFE | VICI | ABBV | MRO | MPC | VLO | MOS |
| 2022-08-31 | COP | DVN | XOM | OXY | VRTX | CF | ON | EOG | MPC | CVX | MCK | MRO | VLO | PSX | MOS |
| 2022-09-30 | COP | VRTX | XOM | DVN | CF | EOG | OXY | MPC | ON | CVX | REGN | PCG | AZO | MRK | PFE |
| 2022-10-31 | COP | DVN | XOM | CVX | EOG | OXY | VRTX | PSX | MRO | MPC | APA | AZO | VLO | CF | AMGN |
| 2022-11-30 | XOM | COP | MPC | MRNA | EOG | MRK | PSX | CVX | AMGN | ABBV | VRTX | JPM | MCHP | GS | TJX |
| 2022-12-30 | XOM | CVX | COP | MRNA | PSX | APA | MRK | MPC | AIG | PCG | SLB | EOG | URI | TJX | JPM |
| 2023-01-31 | BKNG | MPC | URI | XOM | COP | FCX | JPM | AVGO | MRNA | VRTX | VLO | EOG | MS | CAT | LVS |
| 2023-02-28 | BKNG | URI | ON | XOM | JPM | MCHP | AVGO | ADI | ORCL | MPC | ULTA | ABBV | CAT | ACGL | STLD |
| 2023-03-31 | BKNG | MPC | ADI | ON | AVGO | LEN | MCHP | VLO | ORCL | XOM | URI | PHM | DHI | GE | ULTA |
| 2023-04-28 | BKNG | XOM | DHI | AVGO | LEN | PHM | MSFT | ORCL | MDLZ | MRK | HCA | VRTX | ADI | V | CVX |
| 2023-05-31 | AVGO | ORCL | PHM | MSFT | BKNG | LEN | PANW | KLAC | UBER | VRTX | GE | AAPL | ANET | DHI | LLY |
| 2023-06-30 | AVGO | PHM | LEN | PANW | BKNG | DAL | KLAC | MCHP | ORCL | TSLA | ON | URI | ABNB | MSFT | RCL |
| 2023-07-31 | BKNG | AVGO | ABNB | PHM | ON | KLAC | PLTR | UBER | JPM | MCHP | ORCL | NXPI | MSFT | ADBE | EOG |
| 2023-08-31 | BKNG | AVGO | ORCL | CAT | PH | PHM | MPC | TJX | ADBE | BRK-B | ETN | JPM | PSX | CSCO | EOG |
| 2023-09-29 | PSX | BKNG | MPC | CAT | HAL | SLB | PLTR | SMCI | JPM | XOM | AVGO | BRK-B | CVNA | EOG | COP |
| 2023-10-31 | AVGO | MPC | NOW | ANET | PSX | MSFT | PANW | KLAC | JPM | ADBE | CSCO | BRK-B | ORCL | V | VRTX |
| 2023-11-30 | NOW | IBM | META | PANW | CRWD | RCL | PHM | MSFT | KKR | UBER | PGR | JPM | BKNG | AVGO | ADBE |
| 2023-12-29 | BKNG | AVGO | RCL | PHM | META | JPM | IBM | CVNA | UBER | WFC | SPG | CRWD | INTU | ADBE | COST |
| 2024-01-31 | NVDA | IBM | CRM | META | NOW | JPM | PANW | CRWD | BKNG | SMCI | KKR | AVGO | UBER | COST | MSFT |
| 2024-02-29 | META | NVDA | PGR | GE | CRM | IBM | JPM | PLTR | URI | KKR | AVGO | SMCI | PH | UBER | WFC |
| 2024-03-28 | META | NVDA | GE | PGR | SMCI | IBM | JPM | URI | WFC | CAT | AVGO | ANET | DELL | CRM | ANF |
| 2024-04-30 | NVDA | META | WFC | PGR | GE | JPM | PLTR | AXP | PH | CAT | ANF | DAL | VRT | SMCI | ETN |
| 2024-05-31 | META | NVDA | WFC | COIN | PGR | JPM | DELL | GS | CVNA | ANF | CAT | QCOM | GOOGL | ANET | ETN |
| 2024-06-28 | NVDA | META | PANW | GOOGL | COST | WFC | NFLX | PGR | JPM | PLTR | AMZN | QCOM | AVGO | DELL | MSFT |
| 2024-07-31 | NVDA | GS | KKR | JPM | AVGO | URI | META | MO | ANF | AXP | PLTR | ANET | IBM | PGR | COST |
| 2024-08-30 | NVDA | PGR | PLTR | META | TMUS | JPM | PANW | MO | KKR | GS | MCO | AVGO | PM | LUMN | IBM |
| 2024-09-30 | NVDA | PGR | IBM | META | PLTR | KKR | AMT | T | ORCL | URI | MO | TMUS | PM | SPGI | AVGO |
| 2024-10-31 | NVDA | META | PLTR | BKNG | KKR | TMUS | T | BLK | NFLX | IBM | PGR | WMB | ORCL | MO | VST |
| 2024-11-29 | NVDA | COIN | GS | PLTR | TMUS | MS | NFLX | BKNG | CRM | ORCL | VRT | META | FTNT | LUMN | BX |
| 2024-12-31 | NVDA | PLTR | GS | NFLX | META | TMUS | CRM | BLK | PYPL | AXP | BKNG | MS | APP | TSLA | V |
| 2025-01-31 | COIN | META | GS | JPM | PLTR | NFLX | MS | WFC | AMZN | TPL | CEG | VST | PGR | V | TSLA |
| 2025-02-28 | PLTR | META | PGR | GS | TMUS | T | V | NFLX | JPM | PM | HOOD | WELL | MA | WFC | BRK-B |
| 2025-03-31 | PGR | MO | PLTR | TMUS | BRK-B | V | JPM | PM | WELL | VZ | HOOD | GS | TRV | FTNT | META |
| 2025-04-30 | PGR | BRK-B | MO | BKNG | NFLX | PLTR | PM | FTNT | JPM | V | UBER | NEM | AMT | TRV | GS |
| 2025-05-30 | HOOD | UBER | GILD | META | BKNG | PLTR | NFLX | PM | JPM | NEM | V | MO | GE | MA | RCL |
| 2025-06-30 | GS | HOOD | JPM | META | UBER | MS | NEM | RCL | NFLX | BKNG | AVGO | STX | C | NVDA | PLTR |
| 2025-07-31 | NVDA | HOOD | GS | C | META | RCL | STX | AVGO | PLTR | JPM | WDC | UBER | MSFT | SCHW | GE |
| 2025-08-29 | NVDA | GS | NEM | HOOD | C | RCL | STX | WDC | PLTR | MS | GOOGL | LRCX | MPWR | MU | UBER |
| 2025-09-30 | AVGO | COIN | NEM | GS | NVDA | HOOD | C | MS | STX | GOOGL | WDC | PLTR | KLAC | LRCX | MU |
| 2025-10-31 | NEM | MU | AVGO | NVDA | KLAC | WDC | GOOGL | STX | HOOD | MPWR | LRCX | PLTR | MS | GS | C |
| 2025-11-28 | MU | AVGO | NEM | STX | GOOGL | WDC | LLY | KLAC | GS | MS | HOOD | C | MPWR | WELL | GOOG |
| 2025-12-31 | WDC | MU | C | AVGO | NEM | STX | GS | MS | LLY | GOOGL | KLAC | LRCX | NVDA | JNJ | AMD |
| 2026-01-30 | NEM | WDC | KLAC | MU | JNJ | STX | GILD | GS | GOOGL | C | LRCX | LLY | MPWR | ADI | MS |
| 2026-02-27 | WDC | KLAC | MU | NEM | JNJ | STX | GILD | MPWR | ADI | GOOGL | LRCX | VZ | AMGN | APH | MRK |
| 2026-03-31 | MU | WDC | NEM | JNJ | KLAC | STX | PSX | LRCX | CF | GILD | APA | GOOGL | GS | AMD | ADI |
| 2026-04-30 | MU | WDC | KLAC | NEM | STX | ADI | AVGO | GOOGL | AMD | LRCX | VRT | GOOG | NVDA | JNJ | TER |
| 2026-05-29 | MU | WDC | NVDA | KLAC | STX | GS | LRCX | AMD | ADI | MS | AVGO | MRVL | GOOGL | TXN | LITE |
| 2026-06-26 | WDC | MU | STX | KLAC | LRCX | SPG | MS | C | MRVL | TXN | ADI | HPE | LLY | AMD | CSCO |
Scoring script (python)
FORMULA_NAME = "Contrarian 52-Week Regime Momentum Recovery Quality Hybrid (Escrow Referee, v1185)"
LOGIC_VARIANT_COUNT = 4
NOTES = """mode=explore; family=contrarian-52w-regime-momentum-recovery-quality-hybrid
New hybrid family built as an escrow-referee structure rather than a static blend: each stock first earns evidence inside three distinct sleeves, a washed-out 52-week contrarian sleeve, a trend-respecting momentum sleeve, and a recovery-quality sleeve, and then a branch-specific referee decides which edge is allowed to cash out. The arbitration is explicit and non-mechanical: deep drawdowns cannot win without repair evidence, momentum cannot dominate when extension outruns durability, and recovery candidates receive only partial credit unless quality, liquidity, and stabilization unlock the escrow. This makes the family structurally distinct from the parent relay/admission designs because sleeve conflict is settled through admissibility gates, conflict taxes, and branch-level release multipliers instead of simple dominance weights.
Deliberate metric coverage this run: momentum uses return_1m_pct, return_3m_pct, return_6m_pct, return_12m_pct, and momentum_12_1_pct; trend/recovery uses from_200d_ma_pct and from_52w_high_pct; volatility uses realized_vol_3m; liquidity uses avg_daily_volume_3m, avg_daily_dollar_volume_3m, and trading_days_3m; income uses dividend_yield_ttm_pct and dividend_ttm; valuation uses pe, forward_pe, and peg; growth uses eps_growth_pct, revenue_growth_pct, operating_income_growth_pct, free_cash_flow_growth_pct, and forward_eps; quality uses operating_margin_pct and free_cash_flow_margin_pct; size uses market_cap as a stability and crowding moderator rather than a raw rank target. Deliberate weight-0 metrics this run: shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, and free_cash_flow_ttm. Sparse fundamentals are normalized inside each sleeve so missing fields reduce confidence rather than forcing large-cap-only selection."""
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",
"dividend_ttm",
"pe",
"forward_pe",
"peg",
"eps_growth_pct",
"revenue_growth_pct",
"operating_income_growth_pct",
"free_cash_flow_growth_pct",
"forward_eps",
"operating_margin_pct",
"free_cash_flow_margin_pct",
"market_cap",
)
def score_universe(stocks, regime, ctx):
def _get(stock, key, default=None):
if isinstance(stock, dict):
return stock.get(key, default)
return default
def _num(x):
return isinstance(x, (int, float)) and x == x
def _symbol(stock, idx):
sym = _get(stock, "symbol", None)
if sym is None:
sym = _get(stock, "ticker", None)
if sym is None:
sym = "STK_" + str(idx)
return sym
def _clamp(x, lo, hi):
if x < lo:
return lo
if x > hi:
return hi
return x
def _avg(vals):
total = 0.0
count = 0
for v in vals:
if _num(v):
total += v
count += 1
if count == 0:
return None
return total / count
def _metric_rank(stock, metric, higher_is_better, cache):
ranks = cache.get(metric)
if ranks is None:
vals = []
for j, s in enumerate(stocks):
v = _get(s, metric, None)
if _num(v):
vals.append((v, j))
vals.sort(key=lambda x: x[0])
n = len(vals)
ranks = {}
if n == 1:
ranks[vals[0][1]] = 0.5
elif n > 1:
for pos, pair in enumerate(vals):
ranks[pair[1]] = pos / float(n - 1)
cache[metric] = ranks
r = ranks.get(stock["_idx"])
if r is None:
return None
return r if higher_is_better else (1.0 - r)
def _blend(stock, metric_defs, cache):
total = 0.0
weight = 0.0
for metric, w, sign in metric_defs:
r = _metric_rank(stock, metric, sign > 0, cache)
if r is not None:
total += w * r
weight += w
if weight <= 0.0:
return None
return total / weight
def _coverage(stock, metrics):
seen = 0
for metric in metrics:
if _num(_get(stock, metric, None)):
seen += 1
if not metrics:
return 0.0
return seen / float(len(metrics))
def _regime_branch(regime_obj):
text = ""
risk_off = False
high_vol = False
weak_trend = False
if isinstance(regime_obj, str):
text = regime_obj.lower()
elif isinstance(regime_obj, dict):
for key in (
"regime",
"label",
"state",
"market_regime",
"trend_regime",
"vol_regime",
"risk_regime",
):
val = regime_obj.get(key)
if isinstance(val, str):
text += " " + val.lower()
risk_off = bool(regime_obj.get("risk_off")) or bool(regime_obj.get("defensive"))
high_vol = bool(regime_obj.get("high_vol")) or bool(regime_obj.get("volatile"))
weak_trend = bool(regime_obj.get("weak_trend")) or bool(regime_obj.get("bearish"))
vix_like = regime_obj.get("volatility", None)
if _num(vix_like) and vix_like > 0.6:
high_vol = True
breadth = regime_obj.get("breadth", None)
if _num(breadth) and breadth < -0.15:
weak_trend = True
trend = regime_obj.get("trend", None)
if _num(trend) and trend < -0.1:
weak_trend = True
if "stress" in text or "panic" in text or "crash" in text:
return "stressed"
if "bear" in text or "defensive" in text or "risk-off" in text or risk_off:
return "defensive"
if "recovery" in text or "repair" in text or "transition" in text:
return "recovery"
if "bull" in text or "uptrend" in text or "risk-on" in text:
return "bull"
if high_vol and weak_trend:
return "stressed"
if weak_trend or risk_off:
return "defensive"
if high_vol:
return "recovery"
return "bull"
stocks = list(stocks)
for i, stock in enumerate(stocks):
stock["_idx"] = i
cache = {}
momentum_cluster = (
("momentum_12_1_pct", 0.27, +1),
("return_6m_pct", 0.24, +1),
("return_3m_pct", 0.18, +1),
("return_1m_pct", 0.11, +1),
("return_12m_pct", 0.08, +1),
("from_200d_ma_pct", 0.12, +1),
)
contrarian_cluster = (
("from_52w_high_pct", 0.34, -1),
("from_200d_ma_pct", 0.22, -1),
("return_1m_pct", 0.10, -1),
("return_3m_pct", 0.08, -1),
("realized_vol_3m", 0.08, -1),
("avg_daily_dollar_volume_3m", 0.08, +1),
("trading_days_3m", 0.10, +1),
)
repair_cluster = (
("return_1m_pct", 0.16, +1),
("return_3m_pct", 0.16, +1),
("from_200d_ma_pct", 0.20, +1),
("from_52w_high_pct", 0.14, +1),
("eps_growth_pct", 0.08, +1),
("revenue_growth_pct", 0.08, +1),
("operating_income_growth_pct", 0.08, +1),
("free_cash_flow_growth_pct", 0.10, +1),
)
quality_cluster = (
("operating_margin_pct", 0.22, +1),
("free_cash_flow_margin_pct", 0.22, +1),
("dividend_yield_ttm_pct", 0.08, +1),
("dividend_ttm", 0.05, +1),
("pe", 0.09, -1),
("forward_pe", 0.10, -1),
("peg", 0.09, -1),
("forward_eps", 0.07, +1),
("market_cap", 0.08, +1),
)
liquidity_cluster = (
("avg_daily_volume_3m", 0.28, +1),
("avg_daily_dollar_volume_3m", 0.44, +1),
("trading_days_3m", 0.28, +1),
)
stability_cluster = (
("realized_vol_3m", 0.35, -1),
("avg_daily_dollar_volume_3m", 0.20, +1),
("market_cap", 0.20, +1),
("operating_margin_pct", 0.12, +1),
("free_cash_flow_margin_pct", 0.13, +1),
)
branch = _regime_branch(regime)
scores = {}
for i, stock in enumerate(stocks):
sym = _symbol(stock, i)
mom = _blend(stock, momentum_cluster, cache)
contra = _blend(stock, contrarian_cluster, cache)
repair = _blend(stock, repair_cluster, cache)
quality = _blend(stock, quality_cluster, cache)
liquid = _blend(stock, liquidity_cluster, cache)
stable = _blend(stock, stability_cluster, cache)
if mom is None:
mom = 0.5
if contra is None:
contra = 0.5
if repair is None:
repair = 0.5
if quality is None:
quality = 0.5
if liquid is None:
liquid = 0.5
if stable is None:
stable = 0.5
drawdown = _metric_rank(stock, "from_52w_high_pct", False, cache)
above_200 = _metric_rank(stock, "from_200d_ma_pct", True, cache)
cheapness = _avg(
(
_metric_rank(stock, "pe", False, cache),
_metric_rank(stock, "forward_pe", False, cache),
_metric_rank(stock, "peg", False, cache),
)
)
growth = _avg(
(
_metric_rank(stock, "eps_growth_pct", True, cache),
_metric_rank(stock, "revenue_growth_pct", True, cache),
_metric_rank(stock, "operating_income_growth_pct", True, cache),
_metric_rank(stock, "free_cash_flow_growth_pct", True, cache),
_metric_rank(stock, "forward_eps", True, cache),
)
)
if drawdown is None:
drawdown = 0.5
if above_200 is None:
above_200 = 0.5
if cheapness is None:
cheapness = 0.5
if growth is None:
growth = 0.5
contrarian_admissible = (
0.55 * drawdown
+ 0.25 * repair
+ 0.10 * liquid
+ 0.10 * stable
)
momentum_admissible = (
0.58 * mom
+ 0.17 * above_200
+ 0.15 * stable
+ 0.10 * quality
)
recovery_admissible = (
0.34 * repair
+ 0.22 * quality
+ 0.14 * growth
+ 0.15 * stable
+ 0.15 * liquid
)
extension_tax = _clamp(mom - drawdown - 0.18, 0.0, 0.35)
broken_tax = _clamp(drawdown - repair - 0.10, 0.0, 0.35)
junk_tax = _clamp(0.52 - quality, 0.0, 0.25) + _clamp(0.48 - liquid, 0.0, 0.20)
conflict_tax = 0.0
if mom > 0.62 and contra > 0.62:
conflict_tax += 0.08
if drawdown > 0.70 and above_200 < 0.35:
conflict_tax += 0.08
contrarian_edge = (
0.48 * contra
+ 0.22 * repair
+ 0.12 * cheapness
+ 0.10 * quality
+ 0.08 * liquid
- 0.55 * broken_tax
)
momentum_edge = (
0.56 * mom
+ 0.14 * above_200
+ 0.12 * quality
+ 0.10 * growth
+ 0.08 * liquid
- 0.60 * extension_tax
)
recovery_edge = (
0.30 * repair
+ 0.24 * quality
+ 0.16 * growth
+ 0.10 * cheapness
+ 0.10 * liquid
+ 0.10 * stable
- 0.30 * broken_tax
)
contra_release = _clamp((contrarian_admissible - 0.45) / 0.35, 0.0, 1.0)
mom_release = _clamp((momentum_admissible - 0.48) / 0.32, 0.0, 1.0)
repair_release = _clamp((recovery_admissible - 0.46) / 0.34, 0.0, 1.0)
released_contra = contrarian_edge * (0.35 + 0.65 * contra_release)
released_mom = momentum_edge * (0.35 + 0.65 * mom_release)
released_recovery = recovery_edge * (0.35 + 0.65 * repair_release)
if branch == "bull":
branch_score = (
0.52 * released_mom
+ 0.22 * released_recovery
+ 0.16 * released_contra
+ 0.10 * stable
)
branch_score -= 0.10 * broken_tax + 0.06 * conflict_tax
elif branch == "recovery":
branch_score = (
0.41 * released_recovery
+ 0.29 * released_mom
+ 0.20 * released_contra
+ 0.10 * cheapness
)
branch_score -= 0.07 * extension_tax + 0.05 * conflict_tax
elif branch == "stressed":
branch_score = (
0.39 * released_contra
+ 0.31 * released_recovery
+ 0.18 * stable
+ 0.12 * quality
)
branch_score -= 0.12 * junk_tax + 0.05 * extension_tax
else:
branch_score = (
0.37 * released_recovery
+ 0.25 * released_contra
+ 0.20 * quality
+ 0.10 * stable
+ 0.08 * cheapness
)
branch_score -= 0.10 * junk_tax + 0.06 * extension_tax
primary = released_mom
secondary = released_recovery
if released_contra > primary:
secondary = primary
primary = released_contra
elif released_contra > secondary:
secondary = released_contra
if released_recovery > primary:
secondary = primary
primary = released_recovery
elif released_recovery > secondary:
secondary = released_recovery
agreement_bonus = 0.0
if primary > 0.58 and secondary > 0.54:
agreement_bonus = 0.06
if released_mom > 0.60 and released_recovery > 0.55 and above_200 > 0.55:
agreement_bonus += 0.04
if released_contra > 0.60 and repair > 0.55 and quality > 0.52:
agreement_bonus += 0.04
metric_coverage = _coverage(stock, ACTIVE_METRICS)
coverage_bonus = 0.05 * _clamp((metric_coverage - 0.35) / 0.45, 0.0, 1.0)
sparse_penalty = 0.08 * _clamp(0.28 - metric_coverage, 0.0, 0.28) / 0.28
final_score = branch_score + agreement_bonus + coverage_bonus - conflict_tax - sparse_penalty
scores[sym] = final_score
for stock in stocks:
if "_idx" in stock:
del stock["_idx"]
return scores