exp_1133

Regime Momentum Recovery Quality Contrarian 52-Week Hybrid (Arbitrated Relay, v1133)

← All V2 experiments
Relative return
1.053x
Excess vs bench
5.29%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
20.25%
Mean benchmark gain
14.08%
Mean excess gain
6.16%
Dispersion (ref)
10.42%
Win-rate vs bench (ref)
75.42%
Worst / best ratio (ref)
0.939x / 1.265x
Logic variants
3
Updated
Jul 21, 2026
Anchored windows (reference — strategy vs benchmark)
Kept from V1 for continuity; the objective ranks on the full rolling set, not these four.
WindowStrategyBenchmarkRatio
2006-07-03 … 2011-06-30 5.89% 2.22% 1.036x
2011-07-01 … 2016-06-30 13.23% 13.74% 0.995x
2016-07-01 … 2021-06-30 32.66% 20.63% 1.100x
2021-07-01 … 2026-06-26 47.56% 15.48% 1.278x
All rolling windows — the objective set (equal-weighted mean ratio)
Strategy Benchmark (CAPW_UNIV) Excess
2006200720082009201020112012201320142015201620172018201920202021 -10%0%10%20%30%40%50%
rolling 5y windows, monthly step — 179 windows · mean ratio 1.053x · beat benchmark in 135/179
#WindowStrategyBenchmarkRatio
1 2006-07-31 … 2011-07-29 4.90% 1.79% 1.031x
2 2006-08-31 … 2011-08-31 4.75% 0.21% 1.045x
3 2006-09-29 … 2011-08-31 4.24% -0.14% 1.044x
4 2006-10-31 … 2011-10-31 3.54% 0.23% 1.033x
5 2006-11-30 … 2011-11-30 3.29% -0.05% 1.033x
6 2006-12-29 … 2011-11-30 2.83% -0.32% 1.032x
7 2007-01-31 … 2012-01-31 0.47% 0.93% 0.995x
8 2007-02-28 … 2012-01-31 0.53% 1.43% 0.991x
9 2007-03-30 … 2012-03-30 3.21% 3.09% 1.001x
10 2007-04-30 … 2012-04-30 2.60% 2.42% 1.002x
11 2007-05-31 … 2012-05-31 0.59% 0.60% 1.000x
12 2007-06-29 … 2012-06-29 1.35% 1.92% 0.994x
13 2007-07-31 … 2012-07-31 2.24% 2.69% 0.996x
14 2007-08-31 … 2012-08-31 1.89% 2.95% 0.990x
15 2007-09-28 … 2012-09-28 0.97% 3.20% 0.978x
16 2007-10-31 … 2012-10-31 -0.85% 2.60% 0.966x
17 2007-11-30 … 2012-11-30 0.62% 3.45% 0.973x
18 2007-12-31 … 2012-12-31 1.32% 3.69% 0.977x
19 2008-01-31 … 2013-01-31 5.48% 5.85% 0.997x
20 2008-02-29 … 2013-02-28 4.82% 6.82% 0.981x
21 2008-03-31 … 2013-03-28 7.14% 7.73% 0.995x
22 2008-04-30 … 2013-04-30 5.29% 7.51% 0.979x
23 2008-05-30 … 2013-04-30 4.43% 7.81% 0.969x
24 2008-06-30 … 2013-06-28 2.64% 9.33% 0.939x
25 2008-07-31 … 2013-07-31 5.03% 10.48% 0.951x
26 2008-08-29 … 2013-07-31 6.40% 10.52% 0.963x
27 2008-09-30 … 2013-09-30 9.95% 11.48% 0.986x
28 2008-10-31 … 2013-10-31 13.44% 15.76% 0.980x
29 2008-11-28 … 2013-10-31 15.14% 17.46% 0.980x
30 2008-12-31 … 2013-12-31 17.22% 18.44% 0.990x
31 2009-01-30 … 2013-12-31 19.17% 20.64% 0.988x
32 2009-02-27 … 2014-01-31 22.01% 21.63% 1.003x
33 2009-03-31 … 2014-03-31 20.94% 20.60% 1.003x
34 2009-04-30 … 2014-04-30 19.35% 19.00% 1.003x
35 2009-05-29 … 2014-04-30 19.97% 18.32% 1.014x
36 2009-06-30 … 2014-06-30 22.15% 19.01% 1.026x
37 2009-07-31 … 2014-07-31 20.53% 17.39% 1.027x
38 2009-08-31 … 2014-08-29 21.11% 17.70% 1.029x
39 2009-09-30 … 2014-09-30 19.16% 16.64% 1.022x
40 2009-10-30 … 2014-09-30 21.66% 17.08% 1.039x
41 2009-11-30 … 2014-11-28 20.99% 16.82% 1.036x
42 2009-12-31 … 2014-12-31 20.46% 16.28% 1.036x
43 2010-01-29 … 2014-12-31 21.85% 17.23% 1.039x
44 2010-02-26 … 2015-01-30 20.89% 15.80% 1.044x
45 2010-03-31 … 2015-03-31 20.29% 15.40% 1.042x
46 2010-04-30 … 2015-04-30 17.94% 15.38% 1.022x
47 2010-05-28 … 2015-04-30 20.18% 17.09% 1.026x
48 2010-06-30 … 2015-06-30 23.87% 17.45% 1.055x
49 2010-07-30 … 2015-06-30 22.17% 16.43% 1.049x
50 2010-08-31 … 2015-08-31 17.82% 15.76% 1.018x
51 2010-09-30 … 2015-09-30 14.85% 13.61% 1.011x
52 2010-10-29 … 2015-09-30 13.64% 13.06% 1.005x
53 2010-11-30 … 2015-11-30 13.90% 15.09% 0.990x
54 2010-12-31 … 2015-12-31 12.15% 13.55% 0.988x
55 2011-01-31 … 2016-01-29 10.52% 11.90% 0.988x
56 2011-02-28 … 2016-01-29 9.38% 11.53% 0.981x
57 2011-03-31 … 2016-03-31 10.75% 12.90% 0.981x
58 2011-04-29 … 2016-04-29 9.89% 12.39% 0.978x
59 2011-05-31 … 2016-05-31 10.91% 12.94% 0.982x
60 2011-06-30 … 2016-06-30 12.48% 13.30% 0.993x
61 2011-07-29 … 2016-07-29 13.42% 14.52% 0.990x
62 2011-08-31 … 2016-08-31 13.78% 15.19% 0.988x
63 2011-09-30 … 2016-09-30 16.58% 16.32% 1.002x
64 2011-10-31 … 2016-10-31 12.51% 14.02% 0.987x
65 2011-11-30 … 2016-11-30 13.67% 14.66% 0.991x
66 2011-12-30 … 2016-12-30 13.45% 14.92% 0.987x
67 2012-01-31 … 2017-01-31 14.23% 14.63% 0.997x
68 2012-02-29 … 2017-02-28 14.46% 14.78% 0.997x
69 2012-03-30 … 2017-02-28 13.54% 14.43% 0.992x
70 2012-04-30 … 2017-04-28 11.73% 14.61% 0.975x
71 2012-05-31 … 2017-05-31 14.39% 15.98% 0.986x
72 2012-06-29 … 2017-05-31 14.18% 15.44% 0.989x
73 2012-07-31 … 2017-07-31 14.05% 15.43% 0.988x
74 2012-08-31 … 2017-08-31 15.41% 15.12% 1.003x
75 2012-09-28 … 2017-08-31 15.31% 14.77% 1.005x
76 2012-10-31 … 2017-10-31 17.97% 16.12% 1.016x
77 2012-11-30 … 2017-11-30 17.75% 16.79% 1.008x
78 2012-12-31 … 2017-12-29 16.74% 16.93% 0.998x
79 2013-01-31 … 2018-01-31 19.37% 17.57% 1.015x
80 2013-02-28 … 2018-02-28 18.35% 16.21% 1.018x
81 2013-03-28 … 2018-02-28 17.29% 15.81% 1.013x
82 2013-04-30 … 2018-04-30 14.79% 14.25% 1.005x
83 2013-05-31 … 2018-05-31 15.90% 14.57% 1.012x
84 2013-06-28 … 2018-05-31 17.80% 14.97% 1.025x
85 2013-07-31 … 2018-07-31 17.99% 14.83% 1.027x
86 2013-08-30 … 2018-07-31 19.53% 15.59% 1.034x
87 2013-09-30 … 2018-09-28 22.41% 15.84% 1.057x
88 2013-10-31 … 2018-10-31 17.38% 12.89% 1.040x
89 2013-11-29 … 2018-10-31 16.79% 12.60% 1.037x
90 2013-12-31 … 2018-12-31 14.51% 9.93% 1.042x
91 2014-01-31 … 2019-01-31 14.38% 12.37% 1.018x
92 2014-02-28 … 2019-02-28 13.66% 12.38% 1.011x
93 2014-03-31 … 2019-03-29 15.33% 12.76% 1.023x
94 2014-04-30 … 2019-04-30 16.49% 13.73% 1.024x
95 2014-05-30 … 2019-04-30 15.82% 13.54% 1.020x
96 2014-06-30 … 2019-06-28 15.64% 12.81% 1.025x
97 2014-07-31 … 2019-07-31 17.08% 13.30% 1.033x
98 2014-08-29 … 2019-07-31 16.46% 12.80% 1.032x
99 2014-09-30 … 2019-09-30 18.49% 12.70% 1.051x
100 2014-10-31 … 2019-10-31 18.61% 12.91% 1.051x
101 2014-11-28 … 2019-10-31 18.23% 12.60% 1.050x
102 2014-12-31 … 2019-12-31 20.99% 14.16% 1.060x
103 2015-01-30 … 2019-12-31 20.36% 14.85% 1.048x
104 2015-02-27 … 2020-01-31 20.31% 14.04% 1.055x
105 2015-03-31 … 2020-03-31 13.70% 8.56% 1.047x
106 2015-04-30 … 2020-04-30 18.57% 11.65% 1.062x
107 2015-05-29 … 2020-05-29 18.54% 12.61% 1.053x
108 2015-06-30 … 2020-06-30 19.45% 13.64% 1.051x
109 2015-07-31 … 2020-07-31 23.05% 14.60% 1.074x
110 2015-08-31 … 2020-08-31 26.15% 18.07% 1.068x
111 2015-09-30 … 2020-09-30 26.32% 17.05% 1.079x
112 2015-10-30 … 2020-10-30 23.00% 14.60% 1.073x
113 2015-11-30 … 2020-11-30 29.29% 17.43% 1.101x
114 2015-12-31 … 2020-12-31 30.87% 18.65% 1.103x
115 2016-01-29 … 2021-01-29 34.24% 19.26% 1.126x
116 2016-02-29 … 2021-02-26 35.28% 19.79% 1.129x
117 2016-03-31 … 2021-03-31 32.96% 19.42% 1.113x
118 2016-04-29 … 2021-03-31 34.05% 19.66% 1.120x
119 2016-05-31 … 2021-05-28 33.71% 20.42% 1.110x
120 2016-06-30 … 2021-06-30 32.51% 21.06% 1.095x
121 2016-07-29 … 2021-06-30 32.66% 20.63% 1.100x
122 2016-08-31 … 2021-08-31 36.50% 21.75% 1.121x
123 2016-09-30 … 2021-09-30 33.65% 20.22% 1.112x
124 2016-10-31 … 2021-10-29 35.78% 22.50% 1.108x
125 2016-11-30 … 2021-11-30 35.02% 21.87% 1.108x
126 2016-12-30 … 2021-11-30 36.47% 21.75% 1.121x
127 2017-01-31 … 2022-01-31 29.83% 20.17% 1.080x
128 2017-02-28 … 2022-02-28 29.48% 18.51% 1.093x
129 2017-03-31 … 2022-03-31 32.18% 19.46% 1.106x
130 2017-04-28 … 2022-03-31 32.40% 19.46% 1.108x
131 2017-05-31 … 2022-05-31 29.63% 15.59% 1.121x
132 2017-06-30 … 2022-06-30 27.02% 13.08% 1.123x
133 2017-07-31 … 2022-07-29 27.82% 15.16% 1.110x
134 2017-08-31 … 2022-08-31 27.71% 13.72% 1.123x
135 2017-09-29 … 2022-08-31 27.44% 13.56% 1.122x
136 2017-10-31 … 2022-10-31 27.87% 11.86% 1.143x
137 2017-11-30 … 2022-11-30 27.47% 12.52% 1.133x
138 2017-12-29 … 2022-11-30 28.12% 12.46% 1.139x
139 2018-01-31 … 2023-01-31 23.75% 11.01% 1.115x
140 2018-02-28 … 2023-02-28 23.52% 11.03% 1.113x
141 2018-03-29 … 2023-02-28 24.77% 11.72% 1.117x
142 2018-04-30 … 2023-04-28 24.71% 13.01% 1.104x
143 2018-05-31 … 2023-05-31 22.64% 12.95% 1.086x
144 2018-06-29 … 2023-05-31 23.12% 13.01% 1.089x
145 2018-07-31 … 2023-07-31 25.17% 14.67% 1.092x
146 2018-08-31 … 2023-08-31 21.23% 13.51% 1.068x
147 2018-09-28 … 2023-08-31 20.96% 13.56% 1.065x
148 2018-10-31 … 2023-10-31 19.00% 12.60% 1.057x
149 2018-11-30 … 2023-11-30 20.99% 14.58% 1.056x
150 2018-12-31 … 2023-12-29 24.11% 17.26% 1.058x
151 2019-01-31 … 2024-01-31 25.84% 16.27% 1.082x
152 2019-02-28 … 2024-01-31 25.48% 15.94% 1.082x
153 2019-03-29 … 2024-03-28 30.99% 17.50% 1.115x
154 2019-04-30 … 2024-04-30 29.42% 15.50% 1.121x
155 2019-05-31 … 2024-05-31 34.09% 18.12% 1.135x
156 2019-06-28 … 2024-06-28 32.43% 17.99% 1.122x
157 2019-07-31 … 2024-07-31 28.81% 17.70% 1.094x
158 2019-08-30 … 2024-08-30 27.73% 18.41% 1.079x
159 2019-09-30 … 2024-09-30 30.22% 18.65% 1.098x
160 2019-10-31 … 2024-10-31 33.04% 17.87% 1.129x
161 2019-11-29 … 2024-11-29 38.32% 18.64% 1.166x
162 2019-12-31 … 2024-12-31 33.31% 17.62% 1.133x
163 2020-01-31 … 2025-01-31 36.14% 18.07% 1.153x
164 2020-02-28 … 2025-02-28 34.21% 19.00% 1.128x
165 2020-03-31 … 2025-03-31 33.26% 19.24% 1.118x
166 2020-04-30 … 2025-04-30 31.37% 16.49% 1.128x
167 2020-05-29 … 2025-04-30 30.47% 15.80% 1.127x
168 2020-06-30 … 2025-06-30 34.57% 18.19% 1.139x
169 2020-07-31 … 2025-07-31 33.90% 17.87% 1.136x
170 2020-08-31 … 2025-08-29 31.95% 16.69% 1.131x
171 2020-09-30 … 2025-09-30 36.24% 18.57% 1.149x
172 2020-10-30 … 2025-09-30 38.27% 19.43% 1.158x
173 2020-11-30 … 2025-11-28 33.94% 17.77% 1.137x
174 2020-12-31 … 2025-12-31 34.14% 16.92% 1.147x
175 2021-01-29 … 2025-12-31 33.16% 17.20% 1.136x
176 2021-02-26 … 2026-01-30 34.88% 17.04% 1.152x
177 2021-03-31 … 2026-03-31 38.71% 14.07% 1.216x
178 2021-04-30 … 2026-04-30 46.14% 16.03% 1.260x
179 2021-05-28 … 2026-04-30 46.99% 16.22% 1.265x
Notes
mode=explore; family=regime-momentum-recovery-quality-contrarian-52w-hybrid New hybrid family that combines three strong but orthogonal parent ideas with explicit arbitration instead of static averaging: regime-aware momentum leadership from the quality-value branch, repaired-drawdown turnarounds from the recovery-quality relay, and shallower 52-week-high contrarian entries from the winner contrarian family. The structure is intentionally distinct from the earlier degrading regime hybrid: bull regimes let repaired leaders outrank, mixed regimes require quality-backed repair before deep pullbacks can score, and risk-off regimes only admit contrarian rebounds when low-vol durability and trading continuity confirm they are not falling knives. When momentum, contrarian depth, and quality disagree, the branch-specific gates choose which sleeve is allowed to lead. Deliberate metric coverage this run: momentum/return uses 1m, 3m, 6m, and 12_1 but thins 12m to zero; trend/recovery uses both 200d distance and 52-week-high drawdown in every branch; volatility is active in all branches but strongest in risk-off; liquidity rotates across trading_days, avg_daily_volume, and avg_daily_dollar_volume instead of leaving the category idle; income uses dividend_yield selectively in pullback and risk-off sleeves; valuation uses forward_pe and peg while pe is deliberately zeroed to avoid redundant value exposure; growth rotates across eps, revenue, operating-income, and free-cash-flow growth rather than repeating one sparse signal; quality keeps both operating_margin and free_cash_flow_margin; size uses market_cap and shares_outstanding as selective tie-breakers. Deliberate weight-0 metrics this run: pe, return_12m_pct, forward_eps, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm.
Lesson notes
#842 · degrade · relative_return Δ -0.3757 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/regime-momentum-recovery-quality-contrarian-52w-hybrid: relative_return 1.0529x (delta -0.3757 vs exp_1123); win-rate 75.419%, worst-window 0.938758, dispersion 10.4212%.
Monthly picks — top stocks selected each month (whole timeline)
timeline — 240 months · top 15 each
Month 123456789101112131415
2006-07-31 MNST ATI GRMN NUE EXPD LVS ADM CMI STLD CME MRK TEX AKAM FTI CSX
2006-08-31 MRK ADM AKAM GRMN LVS ILMN BXP LMT INTU CTSH NUE SLG VNO LH PSKY
2006-09-29 MRK KSS ILMN AKAM LMT CTSH LVS GRMN ANF BXP HOG HUM T TJX BKNG
2006-10-31 AKAM MRK KSS BKNG ANF ATI CTSH HOG GS GRMN M NUE LVS INTU CMI
2006-11-30 AKAM ICE MRK KSS GS AT ATI LVS HOG VNO BKNG CTSH ILMN WYNN HAS
2006-12-29 ICE ATI WYNN HOG AKAM VNO GS LVS MTCH BKNG TEX TPR AT ETR MA
2007-01-31 ICE LVS AT TWX AKAM BKNG ATI WYNN MGM UAL MTCH GS PCAR TEX BXP
2007-02-28 WYNN ICE ATI AKAM BXP MGM GT MAT TEX AT BKNG SLG SPG HAS GS
2007-03-30 ICE MGM ATI NRG CF MAT BKNG WYNN ETR GT VMC MTCH ON PCAR ANDV
2007-04-30 ICE ETR CF ATI GT MAT PEG CMI BAX ANDV PCAR TPR BKNG NRG KR
2007-05-31 ANDV CMI NRG ETR GT PCAR BKNG MRK ATI BAX CI SVU ICE KR CF
2007-06-29 ANDV CLF NRG ICE GT NOV MGM CMI MLM MDR AMZN CF PCAR MA MOS
2007-07-31 CF BKNG MDR ICE MOS NOV CMI CLF EXPE MA FSLR DJ AT WLL VRSN
2007-08-31 FSLR CMI NOV AXON GRMN CF MDR ISRG AL FCX BKNG DE BIIB CMG VRSN
2007-09-28 NOV BIIB WYNN GRMN CMI FLR LVS BKNG ISRG EXPE DE GME CF MDR CMG
2007-10-31 GRMN NOV LVS WYNN EXPE FLR BIIB CMI BKNG ISRG CF DE GOOG MGM GME
2007-11-30 GOOG GRMN NOV FLR WYNN FSLR CF LVS CMG ISRG FTI BIIB GME BKNG MOS
2007-12-31 FSLR GOOG ISRG BKNG CF MRK GRMN NOV CMG VRSN FLR ESRX CME MDR CNX
2008-01-31 FSLR MOS ESRX BKNG CF ADM CMG ISRG CNX J VRSN BG MUR JEC MDR
2008-02-29 CF BKNG MOS FSLR CNX WDC ESRX BG ADM CLF J AFL MA CSX STT
2008-03-31 CF MOS BKNG FSLR CNX WDC AFL CLF CSX ADM ESRX UNP CL RRC OXY
2008-04-30 CF BKNG MOS FSLR CLF RRC CSX WDC CNX HAL AFL STLD UNP MUR OI
2008-05-30 CF MA FSLR MOS BKNG CSX CLF CNX UNP WDC HAL APA NBR FLR RRC
2008-06-30 CF MA MOS WDC CNX CLF CSX NBR X UNP BKNG FSLR FLR NOV HAL
2008-07-31 CLF CF MOS MEE X FSLR BKNG NBR BTUUQ HP APOL NOV ESV MA WWY
2008-08-29 CF CLF FSLR APOL CEPH ESV BCR BTUUQ ATGE NSC UNP RE SRCL WWY CSX
2008-09-30 BCR APOL CEPH NSC ATGE UNP BNI MRSH SRCL ESV RE MCD HAS BAX RTN
2008-10-31 MRSH NSC AON BAX ABT USB BCR MCD UNP MDLZ APOL WWY TFC PNC CEPH
2008-11-28 MRSH AON KR TFC BAX MCD USB ABT ED KMB DLTR CLX MDLZ NSC CPB
2008-12-31 AON KR SHW DLTR MCD ABT CL CLX CHRW SJM MDLZ TFC PCG PM WM
2009-01-30 MCD DLTR MDLZ ABT AON CL BMY SJM WM PCG BAX DRI GILD DGX CHRW
2009-02-27 PCG ABT BAX MCD AON DLTR CL MDLZ DRI BIIB VRTX VTRS BMY WM ED
2009-03-31 BKNG PCG VTRS GOOG AON DLTR BMY DRI BIIB AAP ADM MCD ED BAX AMT
2009-04-30 DRI BKNG VTRS AAP GEN AZO NFLX AON MNST TJX NEM DLTR BIIB BR ILMN
2009-05-29 DRI BKNG CF TJX FSLR NFLX AN GOOG F DPZ AAP EBAY AZO ROST GPS
2009-06-30 BKNG TJX GOOG ICE CME ELV WBD AAPL DRI TPR ESRX F MSI FFIV FSLR
2009-07-31 BKNG TJX TPR AAPL WBD EBAY FFIV CTSH CME F GLW GOOG ELV FISV MSI
2009-08-31 BKNG EBAY F AAPL CTSH GT TJX DD GOOG COF MU TT EXPE TPR WBD
2009-09-30 FNMA FMCC BKNG GNW FITB CTSH AAPL EBAY IP WLL F EXPE TT GOOG MU
2009-10-30 GNW HIG BKNG FMCC WLL FNMA LVS EBAY CTSH TT AAPL FLEX MSI LNC PRU
2009-11-30 LVS BKNG GNW HIG GOOG TT PSKY CTSH WLL DD SLG FLEX MAC JBL STX
2009-12-31 BKNG GOOG DD WLL GNW TT CTSH LVS IP CLF SLG CCI AMD MAC FTR
2010-01-29 BKNG WLL LVS AMD DD CLF SLG MU CTSH GNW FITB PSKY JBL ATI COF
2010-02-26 BKNG WLL DD GNW LVS AMD CLF HUM FITB UAL F DAL AFL JBL CTSH
2010-03-31 BKNG CLF LVS UAL WLL FITB GNW DPZ AAL CTSH CMI XRX AFL F FFIV
2010-04-30 CLF BKNG LVS UAL WLL MTG GNW VIAV BBWI ZION CMI HBAN HST AAL TSN
2010-05-28 ZION UAL LVS WLL CLF MTG RF MGM CMI VIAV DPZ FITB BBWI URI HBAN
2010-06-30 LVS ZION WLL CMI BBWI EQR AKAM NTAP COR CLF AAL KDP AVB HAS CTSH
2010-07-30 AKAM LVS CLF KDP WLL NTAP HAS AIG CMI EQR BBWI CTSH NEM BKNG AVB
2010-08-31 LVS BKNG CMI AKAM NTAP CTSH CLF FFIV WLL NEM BBWI AVB EQR VNO AAL
2010-09-30 LVS BKNG AKAM CTSH CMI NTAP WLL FFIV EQR NEM BBWI AVB SWKS DLTR UNP
2010-10-29 BKNG LVS AKAM WLL CMI CTSH FFIV NTAP LYB BWA UNP SWKS BBWI MBI DLTR
2010-11-30 LVS WLL NTAP FFIV CMI BKNG BBWI URI AKAM BWA SWKS ILMN UNP CLF CTSH
2010-12-31 LVS FFIV DECK WLL TPR CMI BKNG NOV URI BBWI MGM SWKS CLF BWA ILMN
2011-01-31 WLL LVS DECK CLF CIEN BWA NOV CXO CMI PXD XEC SWKS URI JOY ALXN
2011-02-28 WLL NOV VIAV URI LVS ANDV BKR TER FLR SWKS PSKY CXO BWA LYB NVDA
2011-03-31 VIAV NOV CIEN PSKY TER BKR SWKS ANDV COP DECK WLL KLAC WYNN CSX CLF
2011-04-29 VIAV ANDV PSKY BKR NOV BKNG BIIB CIEN NBR LYB MTW CLF LULU HP BWA
2011-05-31 BIIB VIAV BKNG BKR ANDV LYB LULU CXO PXD GR BBWI PSKY CIEN WMB WYNN
2011-06-30 BIIB PSKY BKNG GR WYNN GT HUM NOV DDS CXO BBWI PXD MCO ADS AET
2011-07-29 BIIB PSKY GR ADS BKNG CEPH ACN AET TPR WYNN KSU MNST CTRA HUM TDC
2011-08-31 CF BIIB BKNG WYNN AAPL CTRA PM RRC PSKY VFC EQT ACN RL LVS BBWI
2011-09-30 CTRA BIIB CF AAPL VFC BKNG RL RRC DLTR PM MNST HUM EQT TJX CL
2011-10-31 KLAC DLTR BIIB RRC AAPL DG VFC MNST RL TJX CL KMB CF FE CTRA
2011-11-30 KLAC BIIB VFC DECK RRC DLTR CTRA PM HUM TJX CF RL AAPL ACN BKNG
2011-12-30 KLAC PM CTRA TJX DLTR WMB BIIB HUM VFC GWW PFE MA AEE AAPL CF
2012-01-31 KLAC TJX DLTR CF WMB GWW AAPL MNST ADS MRK HUM PFE GR BIIB PM
2012-02-29 AAPL LYB TJX ADS GR EQIX BKNG TPR PM URI WCG KSU WMB MNST KLAC
2012-03-30 BKNG AAPL LYB LVS EQIX CF ADS PM TPR GR URI TJX PSKY IP KSU
2012-04-30 AAPL BKNG TJX PM PSKY EQIX CF USB SHW TFC MNST URI WMB FFIV WBD
2012-05-31 BKNG AAPL STX TJX WMB SHW USB EQIX PM PSKY ORLY TFC SPG HOG MNST
2012-06-29 SHW MNST BKNG AAPL TJX STX EQIX CF DLTR BIIB USB DAL PM VRTX SBAC
2012-07-31 AAPL SHW TJX MRK KMB BKNG EQIX MNST BIIB STX BUD PM EW USB DG
2012-08-31 STX MRK TJX SHW AAPL ALL BIIB WDC USB EQIX SBAC KMB RF BUD WMB
2012-09-28 STX VLO ALL CF LYB AAPL SHW STZ ESRX TJX EQIX PSKY WMB TWX ANDV
2012-10-31 ANDV ALL LYB MRK TWX SHW EQIX AOS GOOG CF STZ SBAC BUD LEN EBAY
2012-11-30 ALL KBH LYB PHM AMGN MRK DVA LEN SBAC EBAY TWX CMCSA ANDV STZ BAX
2012-12-31 STX LYB ALL PVH BAX APTV TWX EBAY ANDV PPG SBAC KBH STZ LEN PHM
2013-01-31 PPG APTV STX LYB HCA ALL LEN EMN PHM ANDV STT TWX EQIX LPX IP
2013-02-28 LYB HCA STT ALL DAL PHM GS PPG TWX KBH ANDV TRV THC PSKY STZ
2013-03-28 ANDV KKR STT ALL TWX STZ CTRA HCA LYB GEN GS MHK BIIB STX LEG
2013-04-30 TWX ANDV HRB BIIB CTRA GEN KKR PSKY COR ALL STZ KR WDC HCA THC
2013-05-31 FSLR WDC VLO KKR FNMA BIIB TWX STZ STX ANDV KBH MTG PSKY CTRA KR
2013-06-28 FSLR BIIB FNMA WDC STX STZ GOOG BSX STT TWX MCO FMCC KKR REGN HIG
2013-07-31 FSLR WDC FNMA BKNG MET ELV CME AET STX BSX STT PRU APTV STZ BIIB
2013-08-30 BKNG BSX TRIP DAL PRU GNW MET REGN MTG KR ELV TSN META BIIB LNC
2013-09-30 BKNG TRIP META BSX ADS EA FL CPRI MGM DAL MTG REGN DD LNC GT
2013-10-31 BKNG META MGM ADS BSX GT REGN FLT PXD LVS OMX DAL INCY SIVB CIEN
2013-11-29 META BKNG MCK LVS BX OMX REGN GNW DAL TRIP ADS FDX PBI FL URI
2013-12-31 BKNG MCK BX URI DAL PBI DECK BIIB CAH ADS FNMA FDX LVS VTRS AOS
2014-01-31 MGM BKNG URI BX ADS BIIB ILMN GOOG META DECK DAL FNMA MCK STZ PXD
2014-02-28 BKNG ILMN BX BIIB META URI MGM INCY GOOG ADS REGN DD MCK FLT MU
2014-03-31 ILMN MGM FNMA VTRS BX BIIB FSLR META BKNG MCK DD URI WYNN INCY CPRI
2014-04-30 URI ILMN FNMA FSLR VTRS MGM DD TSN GLW HP LYB WLL NXPI META CPRI
2014-05-30 META URI BKR DD LYB WLL GLW HP TSN EOG NXPI MGM NBR BKNG ILMN
2014-06-30 URI META WLL LYB ILMN SWKS DD FRX EOG WMB DAL BKR EA TRIP LUV
2014-07-31 URI MU WMB META WLL EOG SWKS NFX FANG NBR ILMN LYB DD EA TAP
2014-08-29 TWX GILD LYB URI WMB MU HCA LRCX NXPI FANG SWKS FSLR BK BNY DD
2014-09-30 GILD WMB LYB URI NXPI HCA UHS UNP SWKS LRCX DD ELV ANDV LUV LUMN
2014-10-31 GILD MU HCA SWKS WMB UNP SIAL ILMN NXPI RCL ELV MNST LUV META LRCX
2014-11-28 SWKS UNP CSX NXPI HCA TWX MU GILD KR LRCX EA RCL ANDV ELV ILMN
2014-12-31 SWKS ZTS KR ANDV EA EW WELL MNST SIAL RCL LRCX INCY HCA UNP COR
2015-01-30 KR SWKS RCL SHW WELL EA EW DLTR ZTS PCG ANDV ELV KDP ALL NXPI
2015-02-27 KR SWKS EA ANDV SHW COR ELV DLTR WELL ALK RCL MAC STZ PCG NXPI
2015-03-31 SWKS DLTR KR COR ANDV BIIB ELV SHW EA MNST HUM AET CI AAPL ZTS
2015-04-30 SWKS COR KR DLTR HUM CI ELV ANDV AET CNC INCY BX EA MNST DRI
2015-05-29 COR VTRS SWKS BX PRGO KR ELV AET EA BIIB BSX HUM GILD HAS ULTA
2015-06-30 HUM SWKS VTRS BX GILD AET ELV BIIB COR EA HCA KR BSX INCY HAS
2015-07-31 HUM AET EA HCA SWKS VLO CNC SBUX HAS GILD PANW INCY KR ULTA MNST
2015-08-31 EA MDLZ HUM HAS SBUX AET HCA ULTA EQIX ANDV SWKS VLO DRI PANW ACN
2015-09-30 MDLZ EA EQIX INCY HUM ANDV SBUX STZ HAS DXCM VLO AAP HIG AET HSP
2015-10-30 MDLZ EQIX SBUX INCY STZ EA ANDV ACN VLO GOOG AAP MAS AET BKNG HAS
2015-11-30 GOOG EQIX ANDV VLO ACN MAS STZ TAP DD GPN PSX CDNS FISV ORLY MO
2015-12-31 GOOG ANDV VLO EQIX GPN VRSN MAS STZ DD TSN ARG TAP AYI MDLZ KR
2016-01-29 GOOG EQIX TAP TSN STZ KMB VLO KLAC FSLR ABMD ICE PM AVGO KR ADBE
2016-02-29 GOOG KMB KLAC TSN PM EQIX T TAP STZ VZ KDP PPL DLR CLX XEL
2016-03-31 TSN KLAC PM T KMB GOOG MAT VZ EQIX AWK SYY STZ FSLR DLR DD
2016-04-29 TSN PM KLAC MAT T EW EXC SYY DLR ULTA AWK EIX BAX ISRG STZ
2016-05-31 DLR ULTA TSN EQIX BAX PM EW T KLAC AWK BSX ISRG ACN ABMD SYY
2016-06-30 DLR EQIX ULTA ALB EVRG PM T BSX MLM AWK TSN WCG SYY KLAC DXC
2016-07-29 DLR OKE BSX ALB ULTA TSN DXC EQIX NFX T SYY MLM AWK IRM PAYC
2016-08-31 ULTA CLF SPGI BSX VTR ALB SIVB DHR EW PXD HPE DLR WCG XEC TSN
2016-09-30 SPGI GEN DHR SIVB PXD NVDA HPE EW TSN CLF AMAT WCG XEC ULTA ABBV
2016-10-31 SPGI GEN HPE WB DHR NXPI GLW LRCX SIVB NVDA PXD ULTA WCG AMAT HPQ
2016-11-30 TWX HPE GEN SPGI LVS WB KLAC CLF QCOM DXC NVDA MRK STLD YUM JCI
2016-12-30 CSX CLF RF HPE TWX STLD PRU BKR AMAT FDX NUE MS KEY CMI CFG
2017-01-31 KEY CSX RF CFG FITB PRU MS STLD NBR TFC ZION HBAN NSC BKR DD
2017-02-28 CLF CSX RF PNC CFG MTB INCY NSC KEY PRU NVDA GEN MS XRX TWX
2017-03-31 CSX INCY RF PNC PRU KEY CFG GS AMAT KLAC GEN MTB DXC DD USB
2017-04-28 INCY AMAT CSX KLAC DXC SWKS GEN NVDA XRX WCG CHTR ADBE AMP LRCX SIVB
2017-05-31 LRCX CSX KLAC ADSK AMAT PAYC DXC BCR WB ELV GOOG ADBE META TTWO WCG
2017-06-30 WB LRCX ADSK CSX AMAT EA BCR NVDA TTWO XYZ PAYC ELV BX DXC ALGN
2017-07-31 LRCX AMAT XYZ WB ADSK ALGN AET BCR ELV NVDA PAYC TTWO EA VRTX LITE
2017-08-31 XYZ LRCX RCL VRTX ALGN NRG EA BA NVDA BCR TTWO WB AMAT META ELV
2017-09-29 WB VRTX LRCX RCL EA ADSK AMAT ABMD TTWO NRG NVDA BA ALGN MCHP XYZ
2017-10-31 WB AMAT LRCX BA XYZ MU MCHP AET ALGN NRG VRTX RCL TTWO ABBV ABMD
2017-11-30 XYZ LRCX MU ON ANET TTWO ALGN BBBY NVDA AMAT NRG ELV IPGP WB PAYC
2017-12-29 XYZ ALGN BBBY ANET TTWO WB LRCX ELV MU ON IPGP FSLR CBOE NRG NVDA
2018-01-31 BBBY XYZ ANET WB FSLR ELV TROW ON ALGN MU AET NTAP MRVL CBOE DLTR
2018-02-28 BBBY XYZ ANET ON ALGN MU LRCX WB TROW CPRI NTAP ELV ABMD FSLR DLTR
2018-03-29 XYZ ANET MU ALGN WB ON CME ABMD URI NOW BA ZTS ELV WYNN SEDG
2018-04-30 XYZ MU ABMD GWW ANET NKTR CME WYNN KDP ZTS PSX SEDG NOW PANW MSCI
2018-05-31 MU SEDG PSX XYZ ABMD GWW ANDV ETSY ALGN NRG MCO BKNG PANW ANET MSCI
2018-06-29 XYZ MU ALGN PSX ANDV ABMD SEDG GWW MSCI MCO ETSY CPRT TJX GDDY ILMN
2018-07-31 XYZ MU ALGN ETSY TJX TTD ABMD CNC PSX KDP CPRT SEDG CSX UNP GDDY
2018-08-31 ABMD XYZ KDP ALGN TJX GWW CSX ILMN PSX MU CNC NSC ETSY HCA CPRT
2018-09-28 ABMD XYZ TJX ANDV ILMN ALGN CSX HCA GWW ETSY NSC DXCM CNC ESRX ELV
2018-10-31 XYZ ABMD TJX ESRX HCA MRK ETSY MOH ILMN AAP DXCM BSX CSX PFE VEEV
2018-11-30 MRK ESRX ABMD HCA MKC CME ELV BSX XYZ PFE ULTA AET DXCM AAP LW
2018-12-31 MRK ESRX CME HCA MKC ELV PFE AET AAP ABMD NRG ETSY BALL EXC DXCM
2019-01-31 MRK ESRX AVGO NRG EXC RHT CME WCG BALL XEL ETSY WELL CHD ELV PFE
2019-02-28 MRK AVGO RHT ELV BALL WELL NRG EXC UNP ETSY XEL XYZ MTCH KEYS HET
2019-03-29 MRK KMI ULTA AVGO RHT BALL HET KEYS MTCH ETSY VEEV TDG LLY KLAC EXC
2019-04-30 KEYS HET TDG ULTA KLAC NSC VEEV HRS UNP XLNX MTCH FTNT APD MSCI BALL
2019-05-31 MTCH MDLZ HET APD CDNS BALL NSC CVNA MSCI TT HSY MRK TDG ULTA GPN
2019-06-28 MTCH VEEV GPN APD MKTX LHX MDLZ HET HSY BALL FDS XRX ECL WM MSCI
2019-07-31 VEEV APD GPN HET MKTX HSY MTCH BALL MSI TSN FIS ECL ZTS SNPS CSGP
2019-08-30 HET FISV HSY FIS APD VEEV EW GPN TSN SBAC BALL ZTS LHX TER MKTX
2019-09-30 HSY HET ZTS FISV TSN LHX WEC ENPH FIS EQIX KLAC BALL SBAC SNPS CME
2019-10-31 HET PODD EQIX SHW KLAC EW TER LHX MLM ETR ZTS WEC GPN HSY WELL
2019-11-29 HET KLAC TER SHW WU EW QCOM ANSS BMY CDW PODD XRX FISV CPRT LRCX
2019-12-31 HET DXCM ANSS TER WU FTNT CVNA FISV VRTX PODD KLAC QRVO SWKS EW TDG
2020-01-31 HET SWKS ANSS QRVO BMY TDG MSFT TER GPN FLT FTNT CPRT DXCM KLAC KSU
2020-02-28 HET SWKS TDG GPN BMY ANSS FTNT GOOG DXCM MSFT QRVO VRTX TER ZTS CPRT
2020-03-31 ENPH BIIB DXCM GEN NEM GOOG EQIX ABBV MCK KR SBAC CSGP ADSK ZTS MSCI
2020-04-30 KR CLX DLR LLY ENPH DXCM EQIX BIIB NEM HUM SBAC MCK GEN EA ABBV
2020-05-29 DXCM NEM CLX LLY KR ENPH EQIX DLR HUM CDNS GOOG EA CRWD GEN WST
2020-06-30 ENPH DXCM PENN CLX NEM ABBV CDNS EBAY HUM VEEV KR GOOG WST EA ADSK
2020-07-31 DXCM EBAY XYZ ENPH CLX ABBV CDNS ADSK EA PENN NEM WST QCOM EQIX CVNA
2020-08-31 BBBY XYZ CDNS ENPH PENN DXCM EBAY REGN ETSY CVNA SWKS CLX TER EA VEEV
2020-09-30 BBBY XYZ ENPH PENN FDX CDNS CVNA VEEV LOW EBAY ETSY DXCM WST META SWKS
2020-10-30 PENN XYZ ENPH CVNA FDX BBBY ABMD LOW VEEV ETSY CRWD SIVB CZR CDNS ALGN
2020-11-30 FDX XYZ PENN ENPH BBBY ALGN ETSY ABMD GNRC FSLR CVNA NOW CARR TER SIVB
2020-12-31 XYZ FDX CVNA ENPH PENN ETSY MRNA FSLR ALGN ABMD CRWD TER LRCX CDNS KLAC
2021-01-29 XYZ ENPH CVNA ALB ETSY CLF ALGN PENN FDX DD KLAC APTV TER ABMD CRWD
2021-02-26 ENPH PENN CLF XYZ PSKY ALB ETSY ALGN MRNA GNRC CRWD KLAC DD COHR CVNA
2021-03-31 ETSY PENN DVN GNRC MGM TPR FANG PSKY CZR TRIP COF MRNA XYZ KLAC CPRI
2021-04-30 CLF TRIP XYZ ETSY BBWI CZR WSM MGM AMAT GNRC VIAC DVN KLAC TPL COF
2021-05-28 CLF COF BBWI NUE TPL WSM DVN LPX FITB CZR TPR FANG MGM GNRC CAR
2021-06-30 NUE COF CLF GS CZR BX MRNA DVN BBWI GOOG LPX SIVB FCX BBBY STLD
2021-07-30 BX GNRC DVN NUE GOOG COF CLF MRNA GS SIVB BBWI SYF MS SBNY TRGP
2021-08-31 MRNA CLF SIVB BX NUE BBWI GOOG SBNY COF GNRC KKR GS CARR ALB KSU
2021-09-30 MRNA SIVB BX SBNY GOOG NUE ALB KSU COF PKI DASH HCA BBWI EPAM GOOGL
2021-10-29 MRNA SIVB SBNY BX EOG DVN NUE CLF CAR FANG GS KKR ALB RRC GOOG
2021-11-30 CAR MRNA BX DXCM KKR COP SBNY FANG DVN SIVB RRC KLAC GOOG ALB ACN
2021-12-31 CAR BX KLAC AMD PFE KKR DVN SBNY SIVB ODFL ACN ON ALB EPAM MRO
2022-01-31 CAR PFE BLDR ON COP DVN ACN BX EOG KLAC LYV FANG AVGO WFC AZO
2022-02-28 EXC EOG COP MCK ELV WFC DVN FANG REGN PFE BX WY WMB ON DLTR
2022-03-31 COP CF EOG FCX ABBV FANG EXC MCK DVN NUE REGN MRO ADM CAR CB
2022-04-29 CF ABBV MCK BKR COP REGN NUE EXC KR ADM CLF EOG DLTR CAR EQT
2022-05-31 CF EOG APA MRK MCK ABBV ADM ELV REGN NUE KR EXC MOS WMB EQT
2022-06-30 EOG CF EQT APA MRK CTRA MCK DVN ABBV OXY ELV VLO EXC MRO WMB
2022-07-29 CF MCK MRK EOG APA DVN OXY ABBV CTRA EQT ON HUM MRO VLO PXD
2022-08-31 CF DVN MCK VRTX VICI EOG COP APA ON MRK HUM OXY PXD CVX EQT
2022-09-30 DVN CF EQT MCK COP EOG VRTX MRK ON MRO OXY HUM CAH FSLR ALB
2022-10-31 DVN CF COP MCK EOG APA CAH FSLR VRTX HUM MRK ALB OXY CVX MRO
2022-11-30 MRK COP EOG CF HUM FSLR CAH PCG VRTX MCK MPC APA BIIB ABMD XOM
2022-12-30 MRK FSLR APA COP EOG BIIB ABMD STLD PCG CVX MPC PSX CAH TJX AIG
2023-01-31 MRK FSLR ABMD RE EOG ULTA STLD MPC ACGL BIIB TJX COP BKNG HES PCG
2023-02-28 MRK BKNG RE FSLR LVS STLD ULTA URI TJX NUE BIIB MCHP MPC HES ABC
2023-03-31 BKNG URI LVS FSLR MRK RE STLD ULTA VLO MCHP ON PHM PSX MPC TJX
2023-04-28 BKNG FSLR ANET RE ADI ULTA AVGO LVS FDX MRK HCA BSX FICO AXON ALGN
2023-05-31 BKNG PHM FSLR BSX MDLZ HCA MRK LEN LVS ANET SMCI HSY PCG BLDR FICO
2023-06-30 BKNG SMCI PHM AVGO BLDR KLAC HCA CPRT GOOG LEN ANET PLTR LRCX BSX TDG
2023-07-31 BKNG SMCI AVGO PHM BLDR PANW KLAC MCHP FSLR CPRT TDG DECK ORCL CAH HUBB
2023-08-31 SMCI BKNG CVNA PHM DASH BLDR CARR FDX AVGO KLAC PLTR ODFL RCL NOW TJX
2023-09-29 CVNA SMCI BKNG PSX GOOG PHM FDX AVGO VRT DASH NOW ODFL BKR BLDR DELL
2023-10-31 SMCI CVNA BKNG PSX GOOG DELL VRT NOW JBL FDX TJX ANET KLAC APO AVGO
2023-11-30 BKNG SMCI DELL NOW VRT CME MCK VST ANET DASH PGR PHM IBM PANW CRH
2023-12-29 BKNG CVNA NOW DASH DELL VRT PHM CRWD SMCI ANET GOOG DECK FICO IBM AVGO
2024-01-31 BKNG SMCI NOW ANF IBM PHM CRM NVDA ANSS ANET FICO DELL GOOG COIN CRWD
2024-02-29 SMCI CVNA DASH VRT NOW ANET CRWD IBM ANF DELL CRM FLT META GE NVDA
2024-03-28 SMCI DELL ANF CVNA VRT DASH META DECK GE CRWD CRH NVDA VST ANET PLTR
2024-04-30 SMCI NVDA CVNA DELL DASH VRT ANF WSM APP HOOD VST COIN DECK META CRH
2024-05-31 DELL SMCI VRT CVNA VST NVDA WSM ANF TT APP COIN NRG PGR META FANG
2024-06-28 DELL VST VRT SMCI FSLR NVDA NRG CVNA DECK ANF GOOG TT APP PGR META
2024-07-31 NVDA VST CVNA ANF APP HOOD SMCI VRT ANET GDDY DELL COIN KLAC GOOG FICO
2024-08-30 NVDA CVNA VST FICO PGR GDDY IRM PM HWM ANET LUMN KKR WELL TT TRGP
2024-09-30 NVDA CVNA VST PGR PM VRT APP WELL FICO TRGP HCA PLTR KKR TT GEV
2024-10-31 VST NVDA APP CVNA LUMN FICO COHR PLTR META VRT GEV BKNG DASH KKR FISV
2024-11-29 VST CVNA VRT APP GEV FISV DASH NVDA TRGP TPL FICO COHR APO BKNG WMB
2024-12-31 APP VST CVNA AXON TPL VRT APO TRGP DASH FISV FICO HOOD WMB GEV KMI
2025-01-31 APP VST AXON GEV VRT APO CVNA TPL COIN TRGP KMI DASH BSX TPR FISV
2025-02-28 APP HOOD GEV CVNA VST BSX DASH IBKR AXON GS COF PM FOX WSM PLTR
2025-03-31 APP HOOD PM TPR DASH GEV CVNA BSX FOX WELL FISV HWM ETR MO PGR
2025-04-30 APP PM GEV CME TPR MO DASH WELL BKNG BSX MCK HOOD PGR WMB FOX
2025-05-30 APP PM GILD GEV CME HOOD CVNA MCK TTWO DASH COR KR BKNG VRSN CAH
2025-06-30 PM APP CVNA GEV HOOD GILD DASH VST BKNG CME HWM NRG CAH JCI AXON
2025-07-31 HOOD GEV HWM APP CVNA DASH BKNG VST VRT JCI PM GILD NRG GS UBER
2025-08-29 GEV HOOD VST APP CVNA DASH VRT COIN STX TPR NVDA HWM CAR C IBKR
2025-09-30 GEV APP CVNA GOOG HOOD AVGO VST LITE C DASH COIN STX TPR GLW GS
2025-10-31 APP GOOG HOOD LITE GLW KLAC NEM SMCI GEV ECHO VRT STX AVGO C MPWR
2025-11-28 APP HOOD VRT GOOG KLAC GLW MPWR LITE CIEN ECHO LRCX MU TEL STX FIX
2025-12-31 GOOG APP LITE WDC VRT FIX KLAC COHR CVNA CIEN GLW FSLR HCA GEV AVGO
2026-01-30 ECHO WDC LITE GOOG KLAC NEM COHR ALB CIEN GLW MU MPWR GILD FIX C
2026-02-27 GOOG LITE ECHO WDC KLAC COHR GLW GEV CIEN VRT MPWR ALB MU FIX GILD
2026-03-31 COHR LITE GLW WDC VRT CIEN NEM MU KLAC GEV GOOG FDX LRCX ECHO APA
2026-04-30 COHR APA GEV GLW LITE KLAC CIEN PSX VRT MU ECHO WDC GOOG CF NEM
2026-05-29 LITE VRT GEV COHR GLW APA CIEN FIX KLAC GOOG PWR MU DELL ECHO WDC
2026-06-26 DELL LITE CIEN WDC COHR VRT HPE FLEX GLW FIX MU GEV PWR KLAC VIAV
Scoring script (python)
FORMULA_NAME = "Regime Momentum Recovery Quality Contrarian 52-Week Hybrid (Arbitrated Relay, v1133)"
LOGIC_VARIANT_COUNT = 3
NOTES = """mode=explore; family=regime-momentum-recovery-quality-contrarian-52w-hybrid
New hybrid family that combines three strong but orthogonal parent ideas with explicit arbitration instead of static averaging: regime-aware momentum leadership from the quality-value branch, repaired-drawdown turnarounds from the recovery-quality relay, and shallower 52-week-high contrarian entries from the winner contrarian family. The structure is intentionally distinct from the earlier degrading regime hybrid: bull regimes let repaired leaders outrank, mixed regimes require quality-backed repair before deep pullbacks can score, and risk-off regimes only admit contrarian rebounds when low-vol durability and trading continuity confirm they are not falling knives. When momentum, contrarian depth, and quality disagree, the branch-specific gates choose which sleeve is allowed to lead.
Deliberate metric coverage this run: momentum/return uses 1m, 3m, 6m, and 12_1 but thins 12m to zero; trend/recovery uses both 200d distance and 52-week-high drawdown in every branch; volatility is active in all branches but strongest in risk-off; liquidity rotates across trading_days, avg_daily_volume, and avg_daily_dollar_volume instead of leaving the category idle; income uses dividend_yield selectively in pullback and risk-off sleeves; valuation uses forward_pe and peg while pe is deliberately zeroed to avoid redundant value exposure; growth rotates across eps, revenue, operating-income, and free-cash-flow growth rather than repeating one sparse signal; quality keeps both operating_margin and free_cash_flow_margin; size uses market_cap and shares_outstanding as selective tie-breakers. Deliberate weight-0 metrics this run: pe, return_12m_pct, forward_eps, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm."""

BULL_LEADER = {
    "momentum_12_1_pct": (0.27, +1),
    "return_6m_pct": (0.18, +1),
    "from_200d_ma_pct": (0.16, +1),
    "return_3m_pct": (0.08, +1),
    "realized_vol_3m": (0.08, -1),
    "eps_growth_pct": (0.09, +1),
    "free_cash_flow_margin_pct": (0.08, +1),
    "forward_pe": (0.06, -1),
}

BULL_PULLBACK = {
    "from_52w_high_pct": (0.26, -1),
    "from_200d_ma_pct": (0.20, +1),
    "momentum_12_1_pct": (0.10, +1),
    "return_1m_pct": (0.09, -1),
    "market_cap": (0.06, -1),
    "dividend_yield_ttm_pct": (0.05, +1),
    "peg": (0.08, -1),
    "operating_income_growth_pct": (0.08, +1),
    "trading_days_3m": (0.08, +1),
}

TRANSITION_REPAIR = {
    "from_52w_high_pct": (0.24, -1),
    "from_200d_ma_pct": (0.22, +1),
    "return_3m_pct": (0.16, +1),
    "return_1m_pct": (0.10, -1),
    "momentum_12_1_pct": (0.08, +1),
    "realized_vol_3m": (0.08, -1),
    "trading_days_3m": (0.12, +1),
}

TRANSITION_QUALITY = {
    "operating_margin_pct": (0.16, +1),
    "free_cash_flow_margin_pct": (0.14, +1),
    "free_cash_flow_growth_pct": (0.10, +1),
    "operating_income_growth_pct": (0.10, +1),
    "avg_daily_dollar_volume_3m": (0.08, +1),
    "forward_pe": (0.06, -1),
    "peg": (0.06, -1),
    "dividend_yield_ttm_pct": (0.04, +1),
    "shares_outstanding": (0.06, -1),
}

RISK_OFF_DEFENSE = {
    "realized_vol_3m": (0.22, -1),
    "from_200d_ma_pct": (0.18, +1),
    "from_52w_high_pct": (0.10, -1),
    "operating_margin_pct": (0.12, +1),
    "dividend_yield_ttm_pct": (0.10, +1),
    "trading_days_3m": (0.10, +1),
    "forward_pe": (0.08, -1),
    "revenue_growth_pct": (0.05, +1),
    "avg_daily_volume_3m": (0.05, +1),
}

RISK_OFF_REBOUND = {
    "from_52w_high_pct": (0.18, -1),
    "from_200d_ma_pct": (0.16, +1),
    "return_1m_pct": (0.06, -1),
    "return_3m_pct": (0.10, +1),
    "momentum_12_1_pct": (0.06, +1),
    "market_cap": (0.05, -1),
    "free_cash_flow_margin_pct": (0.08, +1),
    "peg": (0.07, -1),
    "avg_daily_dollar_volume_3m": (0.08, +1),
    "realized_vol_3m": (0.06, -1),
}


def score_universe(stocks, regime, ctx):
    def metric_value(stock, metric):
        value = stock.get(metric)
        if value is None:
            return None
        if isinstance(value, bool):
            value = 1.0 if value else 0.0
        elif isinstance(value, (int, float)):
            value = float(value)
        else:
            try:
                value = float(value)
            except Exception:
                return None
        if value != value:
            return None
        return value

    def clamp01(x):
        if x < 0.0:
            return 0.0
        if x > 1.0:
            return 1.0
        return x

    def mean_present(values, default=0.5):
        total = 0.0
        count = 0
        for value in values:
            if value is not None:
                total += value
                count += 1
        if count == 0:
            return default
        return total / count

    def build_metric_ranks(metric_names):
        ranks = {}
        for metric in metric_names:
            observed = []
            for idx, stock in enumerate(stocks):
                value = metric_value(stock, metric)
                if value is not None:
                    observed.append((value, idx))
            observed.sort(key=lambda item: item[0])
            metric_rank = {}
            n = len(observed)
            if n == 1:
                metric_rank[observed[0][1]] = 0.5
            elif n > 1:
                start = 0
                while start < n:
                    end = start
                    current = observed[start][0]
                    while end + 1 < n and observed[end + 1][0] == current:
                        end += 1
                    pct = (start + end) / (2.0 * (n - 1))
                    j = start
                    while j <= end:
                        metric_rank[observed[j][1]] = pct
                        j += 1
                    start = end + 1
            ranks[metric] = metric_rank
        return ranks

    def signal(idx, metric, direction):
        pct = rank_cache.get(metric, {}).get(idx)
        if pct is None:
            return None
        if direction >= 0:
            return pct
        return 1.0 - pct

    def spec_score(idx, spec):
        total = 0.0
        used = 0.0
        for metric, params in spec.items():
            weight, direction = params
            sig = signal(idx, metric, direction)
            if sig is None:
                continue
            total += weight * sig
            used += weight
        if used == 0.0:
            return 0.5
        return total / used

    def detect_branch(regime_obj, ctx_obj):
        text_parts = []
        if regime_obj is not None:
            text_parts.append(str(regime_obj))
            if isinstance(regime_obj, dict):
                for key in ("label", "name", "regime", "state", "market_regime", "trend"):
                    if key in regime_obj and regime_obj.get(key) is not None:
                        text_parts.append(str(regime_obj.get(key)))
        if isinstance(ctx_obj, dict):
            for key in ("regime", "market_regime", "state", "trend", "mode"):
                if key in ctx_obj and ctx_obj.get(key) is not None:
                    text_parts.append(str(ctx_obj.get(key)))
        text = " ".join(text_parts).lower()

        if (
            "risk_off" in text
            or "risk-off" in text
            or "bear" in text
            or "defensive" in text
            or "crash" in text
            or "panic" in text
            or "drawdown" in text
        ):
            return "risk_off"
        if (
            "bull" in text
            or "risk_on" in text
            or "risk-on" in text
            or "uptrend" in text
            or "expansion" in text
            or "recovery" in text
        ):
            return "bull"
        return "transition"

    all_metrics = {}
    for spec in (
        BULL_LEADER,
        BULL_PULLBACK,
        TRANSITION_REPAIR,
        TRANSITION_QUALITY,
        RISK_OFF_DEFENSE,
        RISK_OFF_REBOUND,
    ):
        for metric in spec:
            all_metrics[metric] = True

    rank_cache = build_metric_ranks(all_metrics)
    branch = detect_branch(regime, ctx)
    scores = {}

    for idx, stock in enumerate(stocks):
        leader = spec_score(idx, BULL_LEADER)
        bull_pullback = spec_score(idx, BULL_PULLBACK)
        repair = spec_score(idx, TRANSITION_REPAIR)
        quality = spec_score(idx, TRANSITION_QUALITY)
        defense = spec_score(idx, RISK_OFF_DEFENSE)
        rebound = spec_score(idx, RISK_OFF_REBOUND)

        deep_pullback = signal(idx, "from_52w_high_pct", -1)
        repair_gate = mean_present(
            [
                signal(idx, "from_200d_ma_pct", +1),
                signal(idx, "return_3m_pct", +1),
                signal(idx, "return_1m_pct", -1),
            ]
        )
        quality_gate = mean_present(
            [
                signal(idx, "operating_margin_pct", +1),
                signal(idx, "free_cash_flow_margin_pct", +1),
                signal(idx, "operating_income_growth_pct", +1),
                signal(idx, "free_cash_flow_growth_pct", +1),
            ]
        )
        liquidity_gate = mean_present(
            [
                signal(idx, "trading_days_3m", +1),
                signal(idx, "avg_daily_dollar_volume_3m", +1),
                signal(idx, "avg_daily_volume_3m", +1),
            ]
        )
        value_gate = mean_present(
            [
                signal(idx, "forward_pe", -1),
                signal(idx, "peg", -1),
            ]
        )
        low_vol_gate = signal(idx, "realized_vol_3m", -1)
        if low_vol_gate is None:
            low_vol_gate = 0.5

        if branch == "bull":
            if leader >= 0.58 and repair_gate >= 0.52:
                score = 0.56 * leader + 0.22 * quality + 0.22 * bull_pullback
            elif deep_pullback is not None and deep_pullback >= 0.62 and repair_gate >= 0.48 and quality_gate >= 0.50:
                score = 0.42 * bull_pullback + 0.33 * leader + 0.25 * quality
            else:
                score = 0.42 * leader + 0.38 * quality + 0.20 * bull_pullback
            score += 0.03 * value_gate
            if deep_pullback is not None and deep_pullback >= 0.75 and repair_gate < 0.40:
                score -= 0.06

        elif branch == "risk_off":
            if defense >= 0.58 and liquidity_gate >= 0.52:
                score = 0.56 * defense + 0.24 * quality + 0.20 * rebound
            elif deep_pullback is not None and deep_pullback >= 0.60 and repair_gate >= 0.50 and defense >= 0.48:
                score = 0.42 * rebound + 0.38 * defense + 0.20 * quality
            else:
                score = 0.50 * defense + 0.30 * quality + 0.20 * repair
            score += 0.04 * value_gate
            if low_vol_gate < 0.35:
                score -= 0.08
            if liquidity_gate < 0.35:
                score -= 0.05

        else:
            if deep_pullback is not None and deep_pullback >= 0.60 and repair_gate >= 0.50 and quality_gate >= 0.52:
                score = 0.44 * repair + 0.36 * quality + 0.20 * bull_pullback
            elif leader >= 0.60 and quality_gate >= 0.48:
                score = 0.44 * leader + 0.31 * repair + 0.25 * quality
            else:
                score = 0.40 * repair + 0.40 * quality + 0.20 * bull_pullback
            score += 0.04 * value_gate
            if deep_pullback is not None and deep_pullback >= 0.72 and repair_gate < 0.42 and quality_gate < 0.46:
                score -= 0.08
            if liquidity_gate < 0.30:
                score -= 0.04

        symbol = stock.get("symbol", stock.get("ticker"))
        if symbol is not None:
            scores[symbol] = clamp01(score)

    return scores