exp_1119

Recovery Quality Regime Momentum Fundamental Hybrid (Explore, v1119)

← All V2 experiments
Relative return
1.083x
Excess vs bench
8.34%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
23.57%
Mean benchmark gain
14.08%
Mean excess gain
9.49%
Dispersion (ref)
6.29%
Win-rate vs bench (ref)
100.00%
Worst / best ratio (ref)
1.022x / 1.215x
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 18.83% 2.22% 1.162x
2011-07-01 … 2016-06-30 20.39% 13.74% 1.058x
2016-07-01 … 2021-06-30 30.80% 20.63% 1.084x
2021-07-01 … 2026-06-26 47.55% 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.083x · beat benchmark in 179/179
#WindowStrategyBenchmarkRatio
1 2006-07-31 … 2011-07-29 17.44% 1.79% 1.154x
2 2006-08-31 … 2011-08-31 18.08% 0.21% 1.178x
3 2006-09-29 … 2011-08-31 17.15% -0.14% 1.173x
4 2006-10-31 … 2011-10-31 14.34% 0.23% 1.141x
5 2006-11-30 … 2011-11-30 14.13% -0.05% 1.142x
6 2006-12-29 … 2011-11-30 14.07% -0.32% 1.144x
7 2007-01-31 … 2012-01-31 14.70% 0.93% 1.136x
8 2007-02-28 … 2012-01-31 15.13% 1.43% 1.135x
9 2007-03-30 … 2012-03-30 17.78% 3.09% 1.143x
10 2007-04-30 … 2012-04-30 16.41% 2.42% 1.137x
11 2007-05-31 … 2012-05-31 11.98% 0.60% 1.113x
12 2007-06-29 … 2012-06-29 11.82% 1.92% 1.097x
13 2007-07-31 … 2012-07-31 11.49% 2.69% 1.086x
14 2007-08-31 … 2012-08-31 11.89% 2.95% 1.087x
15 2007-09-28 … 2012-09-28 10.78% 3.20% 1.073x
16 2007-10-31 … 2012-10-31 8.89% 2.60% 1.061x
17 2007-11-30 … 2012-11-30 9.79% 3.45% 1.061x
18 2007-12-31 … 2012-12-31 8.85% 3.69% 1.050x
19 2008-01-31 … 2013-01-31 12.21% 5.85% 1.060x
20 2008-02-29 … 2013-02-28 11.53% 6.82% 1.044x
21 2008-03-31 … 2013-03-28 13.96% 7.73% 1.058x
22 2008-04-30 … 2013-04-30 12.59% 7.51% 1.047x
23 2008-05-30 … 2013-04-30 11.66% 7.81% 1.036x
24 2008-06-30 … 2013-06-28 12.80% 9.33% 1.032x
25 2008-07-31 … 2013-07-31 16.48% 10.48% 1.054x
26 2008-08-29 … 2013-07-31 16.64% 10.52% 1.055x
27 2008-09-30 … 2013-09-30 18.27% 11.48% 1.061x
28 2008-10-31 … 2013-10-31 21.63% 15.76% 1.051x
29 2008-11-28 … 2013-10-31 23.33% 17.46% 1.050x
30 2008-12-31 … 2013-12-31 24.48% 18.44% 1.051x
31 2009-01-30 … 2013-12-31 25.71% 20.64% 1.042x
32 2009-02-27 … 2014-01-31 28.74% 21.63% 1.058x
33 2009-03-31 … 2014-03-31 25.51% 20.60% 1.041x
34 2009-04-30 … 2014-04-30 24.14% 19.00% 1.043x
35 2009-05-29 … 2014-04-30 26.08% 18.32% 1.066x
36 2009-06-30 … 2014-06-30 29.10% 19.01% 1.085x
37 2009-07-31 … 2014-07-31 26.25% 17.39% 1.075x
38 2009-08-31 … 2014-08-29 27.12% 17.70% 1.080x
39 2009-09-30 … 2014-09-30 25.67% 16.64% 1.077x
40 2009-10-30 … 2014-09-30 28.49% 17.08% 1.097x
41 2009-11-30 … 2014-11-28 27.65% 16.82% 1.093x
42 2009-12-31 … 2014-12-31 25.83% 16.28% 1.082x
43 2010-01-29 … 2014-12-31 28.16% 17.23% 1.093x
44 2010-02-26 … 2015-01-30 26.48% 15.80% 1.092x
45 2010-03-31 … 2015-03-31 26.08% 15.40% 1.093x
46 2010-04-30 … 2015-04-30 24.82% 15.38% 1.082x
47 2010-05-28 … 2015-04-30 26.39% 17.09% 1.079x
48 2010-06-30 … 2015-06-30 28.65% 17.45% 1.095x
49 2010-07-30 … 2015-06-30 27.25% 16.43% 1.093x
50 2010-08-31 … 2015-08-31 25.51% 15.76% 1.084x
51 2010-09-30 … 2015-09-30 22.88% 13.61% 1.082x
52 2010-10-29 … 2015-09-30 21.59% 13.06% 1.075x
53 2010-11-30 … 2015-11-30 21.83% 15.09% 1.059x
54 2010-12-31 … 2015-12-31 21.95% 13.55% 1.074x
55 2011-01-31 … 2016-01-29 21.06% 11.90% 1.082x
56 2011-02-28 … 2016-01-29 19.84% 11.53% 1.075x
57 2011-03-31 … 2016-03-31 19.61% 12.90% 1.059x
58 2011-04-29 … 2016-04-29 18.01% 12.39% 1.050x
59 2011-05-31 … 2016-05-31 19.94% 12.94% 1.062x
60 2011-06-30 … 2016-06-30 19.43% 13.30% 1.054x
61 2011-07-29 … 2016-07-29 21.36% 14.52% 1.060x
62 2011-08-31 … 2016-08-31 21.56% 15.19% 1.055x
63 2011-09-30 … 2016-09-30 25.12% 16.32% 1.076x
64 2011-10-31 … 2016-10-31 21.53% 14.02% 1.066x
65 2011-11-30 … 2016-11-30 23.38% 14.66% 1.076x
66 2011-12-30 … 2016-12-30 23.47% 14.92% 1.074x
67 2012-01-31 … 2017-01-31 22.93% 14.63% 1.072x
68 2012-02-29 … 2017-02-28 22.07% 14.78% 1.063x
69 2012-03-30 … 2017-02-28 21.39% 14.43% 1.061x
70 2012-04-30 … 2017-04-28 22.10% 14.61% 1.065x
71 2012-05-31 … 2017-05-31 26.17% 15.98% 1.088x
72 2012-06-29 … 2017-05-31 26.18% 15.44% 1.093x
73 2012-07-31 … 2017-07-31 25.43% 15.43% 1.087x
74 2012-08-31 … 2017-08-31 25.86% 15.12% 1.093x
75 2012-09-28 … 2017-08-31 25.54% 14.77% 1.094x
76 2012-10-31 … 2017-10-31 28.77% 16.12% 1.109x
77 2012-11-30 … 2017-11-30 28.34% 16.79% 1.099x
78 2012-12-31 … 2017-12-29 27.18% 16.93% 1.088x
79 2013-01-31 … 2018-01-31 29.44% 17.57% 1.101x
80 2013-02-28 … 2018-02-28 28.98% 16.21% 1.110x
81 2013-03-28 … 2018-02-28 27.65% 15.81% 1.102x
82 2013-04-30 … 2018-04-30 26.12% 14.25% 1.104x
83 2013-05-31 … 2018-05-31 23.77% 14.57% 1.080x
84 2013-06-28 … 2018-05-31 26.00% 14.97% 1.096x
85 2013-07-31 … 2018-07-31 24.14% 14.83% 1.081x
86 2013-08-30 … 2018-07-31 25.46% 15.59% 1.085x
87 2013-09-30 … 2018-09-28 27.66% 15.84% 1.102x
88 2013-10-31 … 2018-10-31 22.86% 12.89% 1.088x
89 2013-11-29 … 2018-10-31 22.54% 12.60% 1.088x
90 2013-12-31 … 2018-12-31 18.07% 9.93% 1.074x
91 2014-01-31 … 2019-01-31 18.85% 12.37% 1.058x
92 2014-02-28 … 2019-02-28 20.34% 12.38% 1.071x
93 2014-03-31 … 2019-03-29 22.34% 12.76% 1.085x
94 2014-04-30 … 2019-04-30 24.15% 13.73% 1.092x
95 2014-05-30 … 2019-04-30 22.92% 13.54% 1.083x
96 2014-06-30 … 2019-06-28 20.67% 12.81% 1.070x
97 2014-07-31 … 2019-07-31 22.54% 13.30% 1.082x
98 2014-08-29 … 2019-07-31 21.46% 12.80% 1.077x
99 2014-09-30 … 2019-09-30 19.09% 12.70% 1.057x
100 2014-10-31 … 2019-10-31 19.33% 12.91% 1.057x
101 2014-11-28 … 2019-10-31 18.61% 12.60% 1.053x
102 2014-12-31 … 2019-12-31 20.83% 14.16% 1.058x
103 2015-01-30 … 2019-12-31 21.28% 14.85% 1.056x
104 2015-02-27 … 2020-01-31 21.17% 14.04% 1.062x
105 2015-03-31 … 2020-03-31 14.44% 8.56% 1.054x
106 2015-04-30 … 2020-04-30 18.78% 11.65% 1.064x
107 2015-05-29 … 2020-05-29 19.90% 12.61% 1.065x
108 2015-06-30 … 2020-06-30 20.40% 13.64% 1.059x
109 2015-07-31 … 2020-07-31 21.92% 14.60% 1.064x
110 2015-08-31 … 2020-08-31 27.79% 18.07% 1.082x
111 2015-09-30 … 2020-09-30 26.42% 17.05% 1.080x
112 2015-10-30 … 2020-10-30 24.76% 14.60% 1.089x
113 2015-11-30 … 2020-11-30 29.23% 17.43% 1.100x
114 2015-12-31 … 2020-12-31 30.57% 18.65% 1.100x
115 2016-01-29 … 2021-01-29 31.62% 19.26% 1.104x
116 2016-02-29 … 2021-02-26 32.78% 19.79% 1.108x
117 2016-03-31 … 2021-03-31 30.14% 19.42% 1.090x
118 2016-04-29 … 2021-03-31 31.09% 19.66% 1.096x
119 2016-05-31 … 2021-05-28 31.03% 20.42% 1.088x
120 2016-06-30 … 2021-06-30 31.37% 21.06% 1.085x
121 2016-07-29 … 2021-06-30 30.80% 20.63% 1.084x
122 2016-08-31 … 2021-08-31 33.46% 21.75% 1.096x
123 2016-09-30 … 2021-09-30 31.11% 20.22% 1.091x
124 2016-10-31 … 2021-10-29 35.81% 22.50% 1.109x
125 2016-11-30 … 2021-11-30 37.07% 21.87% 1.125x
126 2016-12-30 … 2021-11-30 37.30% 21.75% 1.128x
127 2017-01-31 … 2022-01-31 29.23% 20.17% 1.075x
128 2017-02-28 … 2022-02-28 30.41% 18.51% 1.100x
129 2017-03-31 … 2022-03-31 32.68% 19.46% 1.111x
130 2017-04-28 … 2022-03-31 32.42% 19.46% 1.109x
131 2017-05-31 … 2022-05-31 30.60% 15.59% 1.130x
132 2017-06-30 … 2022-06-30 24.91% 13.08% 1.105x
133 2017-07-31 … 2022-07-29 25.33% 15.16% 1.088x
134 2017-08-31 … 2022-08-31 25.56% 13.72% 1.104x
135 2017-09-29 … 2022-08-31 25.28% 13.56% 1.103x
136 2017-10-31 … 2022-10-31 23.68% 11.86% 1.106x
137 2017-11-30 … 2022-11-30 22.90% 12.52% 1.092x
138 2017-12-29 … 2022-11-30 23.69% 12.46% 1.100x
139 2018-01-31 … 2023-01-31 18.17% 11.01% 1.064x
140 2018-02-28 … 2023-02-28 18.55% 11.03% 1.068x
141 2018-03-29 … 2023-02-28 19.28% 11.72% 1.068x
142 2018-04-30 … 2023-04-28 17.79% 13.01% 1.042x
143 2018-05-31 … 2023-05-31 18.20% 12.95% 1.047x
144 2018-06-29 … 2023-05-31 18.09% 13.01% 1.045x
145 2018-07-31 … 2023-07-31 20.37% 14.67% 1.050x
146 2018-08-31 … 2023-08-31 16.49% 13.51% 1.026x
147 2018-09-28 … 2023-08-31 16.00% 13.56% 1.022x
148 2018-10-31 … 2023-10-31 15.34% 12.60% 1.024x
149 2018-11-30 … 2023-11-30 19.20% 14.58% 1.040x
150 2018-12-31 … 2023-12-29 22.13% 17.26% 1.042x
151 2019-01-31 … 2024-01-31 21.08% 16.27% 1.041x
152 2019-02-28 … 2024-01-31 19.19% 15.94% 1.028x
153 2019-03-29 … 2024-03-28 22.62% 17.50% 1.044x
154 2019-04-30 … 2024-04-30 19.73% 15.50% 1.037x
155 2019-05-31 … 2024-05-31 24.45% 18.12% 1.054x
156 2019-06-28 … 2024-06-28 25.39% 17.99% 1.063x
157 2019-07-31 … 2024-07-31 21.55% 17.70% 1.033x
158 2019-08-30 … 2024-08-30 22.20% 18.41% 1.032x
159 2019-09-30 … 2024-09-30 26.10% 18.65% 1.063x
160 2019-10-31 … 2024-10-31 27.70% 17.87% 1.083x
161 2019-11-29 … 2024-11-29 31.79% 18.64% 1.111x
162 2019-12-31 … 2024-12-31 30.36% 17.62% 1.108x
163 2020-01-31 … 2025-01-31 31.10% 18.07% 1.110x
164 2020-02-28 … 2025-02-28 29.86% 19.00% 1.091x
165 2020-03-31 … 2025-03-31 30.16% 19.24% 1.092x
166 2020-04-30 … 2025-04-30 29.02% 16.49% 1.108x
167 2020-05-29 … 2025-04-30 27.45% 15.80% 1.101x
168 2020-06-30 … 2025-06-30 32.18% 18.19% 1.118x
169 2020-07-31 … 2025-07-31 32.23% 17.87% 1.122x
170 2020-08-31 … 2025-08-29 27.80% 16.69% 1.095x
171 2020-09-30 … 2025-09-30 31.86% 18.57% 1.112x
172 2020-10-30 … 2025-09-30 32.50% 19.43% 1.109x
173 2020-11-30 … 2025-11-28 29.54% 17.77% 1.100x
174 2020-12-31 … 2025-12-31 28.88% 16.92% 1.102x
175 2021-01-29 … 2025-12-31 29.13% 17.20% 1.102x
176 2021-02-26 … 2026-01-30 33.06% 17.04% 1.137x
177 2021-03-31 … 2026-03-31 31.87% 14.07% 1.156x
178 2021-04-30 … 2026-04-30 40.92% 16.03% 1.215x
179 2021-05-28 … 2026-04-30 40.58% 16.22% 1.210x
Notes
mode=explore; family=recovery-quality-regime-momentum-fundamental-mom-hybrid This hybrid keeps three distinct jobs instead of one blended average: a trend-following bull branch, a repaired-rebound recovery branch, and a low-volatility defensive branch. The arbitration mechanism is explicit: each branch changes which evidence can dominate, and branch-specific conflict haircuts prevent pure price strength from outranking weak fundamentals or low-quality rebounds. Deliberate metric coverage: momentum uses return_1m_pct, return_3m_pct, return_6m_pct, and momentum_12_1_pct across branches; 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 in defense only; valuation uses forward_pe and peg; growth uses eps_growth_pct, revenue_growth_pct, operating_income_growth_pct, and free_cash_flow_growth_pct; quality uses operating_margin_pct and free_cash_flow_margin_pct; size uses shares_outstanding as a light small-cap tilt only in recovery. Raw level metrics are deliberately zero-weighted this run to avoid collapsing into another large-cap fundamental screen. Deliberate weight-0 metrics this run: return_12m_pct, pe, forward_eps, dividend_ttm, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm.
Lesson notes
#832 · degrade · relative_return Δ -0.2837 · parent exp_992 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/recovery-quality-regime-momentum-fundamental-mom-hybrid: relative_return 1.0834x (delta -0.2837 vs exp_992); win-rate 100.0%, worst-window 1.021507, dispersion 6.2944%.
Monthly picks — top stocks selected each month (whole timeline)
timeline — 240 months · top 15 each
Month 123456789101112131415
2006-07-31 AKAM ADM MNST ILMN FTI ATI CMI NUE GRMN CTSH MRK DECK BXP AMT ANDV
2006-08-31 AT NVDA AKAM CTSH BKNG LVS INCLF AES AMT BMET MRK FCX BLS ADM EME
2006-09-29 AKAM BKNG AT AAPL ANF BMET INCLF CTSH ORCL BLS DECK AIV ALXN MRK MAY
2006-10-31 AT BKNG NVDA BMET ANF ALXN ALGN INCLF ATI ILMN LVLT BLS ADS ALB DECK
2006-11-30 ATI ICE AKAM NVDA LVS CSCO CBRE AAPL AAL CTSH GME DECK INCLF MTW FFIV
2006-12-29 ICE AT BMET ALXN AKAM ADS BKNG ATI KMX LVLT TEX CF NVDA CSCO DECK
2007-01-31 ATI ICE AKAM LVS CBRE MGM GT WYNN CF ALGN EOP BXP KMX DE DOC
2007-02-28 ICE BKNG ANDV CF ATI MGM DE GT DECK CTSH TEX ALB EOP AT ON
2007-03-30 ANDV GT ATI AAPL CLF BKNG DECK STLD ALXN TEX NRG CE AEP MOS AT
2007-04-30 ANDV CMI GT ALGN AMZN PCAR CLF BKNG MOS AAPL NRG CF DECK TEX CE
2007-05-31 AMZN AAPL MA CLF ANDV GT ALXN MOS AT CF DECK BKNG CMI DLX OI
2007-06-29 MA CF BKNG AAPL AMZN CMI AL MOS DECK FCX ALXN ALGN NOV ICE MGM
2007-07-31 AMZN AAPL CMI FCX AXON AL NVDA GRMN NOV DECK ALXN ISRG MA GME CMG
2007-08-31 AAPL AMZN BKNG CF GRMN GME ISRG NOV NVDA CMG CMI MOS AL EXPE DE
2007-09-28 AMZN AAPL CF GRMN FCX CMI BKNG NOV CMG GME MOS ISRG CLF AXON LVS
2007-10-31 AAPL CF ISRG FCX CMG MOS MA BKNG DECK CIEN GME MNST BIIB FLR ICE
2007-11-30 FSLR BKNG CF DE AAPL MA ISRG AMZN DECK ESRX ALXN MOS CNX JEC GRMN
2007-12-31 CRM GME AAPL CF DE FSLR CNX MOS CMG BKNG MA DECK ESRX J APA
2008-01-31 CNX CF BKNG DE MOS CLF MA BG ADM APOL OI FSLR ILMN RRC ATGE
2008-02-29 CF CRM MOS ISRG CNX CLF BKNG APA LKQ EOG DE ILMN FLS ADM FCX
2008-03-31 ISRG BKNG MA APA CSX LKQ EOG FSLR CLF ILMN GILD DVN NFLX BLK NKE
2008-04-30 FSLR CF CLF MOS MA APA CNX EOG FLS CSX AAPL BKNG CRM HAL DVN
2008-05-30 CLF MA CNX APOL BTUUQ ATGE BCR CSX AAPL ESV MEE FLR HP FLS CF
2008-06-30 CLF CNX CF MOS CTRA EOG BCR APA APOL BTUUQ HP HAL ATGE FTI ESV
2008-07-31 CF BCR APOL ATGE CLF CEPH ISRG ACS CELG QCOM CSX FSLR HAS DF ANSS
2008-08-29 BCR APOL ATGE CEPH ACS CELG DF ROH BNI BRL FDO ROST AMGN BIG CLF
2008-09-30 BCR APOL AMGN SCHW ATGE CEPH ROH BRL DF DOC MRSH BNI CELG ACS ESRX
2008-10-31 GIS AMGN ABT BCR WFC BRL WMT TFC CPB MRSH APOL MCD ATGE CEPH BAX
2008-11-28 AMGN GIS DLTR MCD WMT BRL ABT BCR ADP PG SO FAST AON BMY KR
2008-12-31 AMGN AZO BMY ALK MCD GILD ABT CMCSA DLTR HRB BRL NFLX GIS CHRW AON
2009-01-30 NFLX ABT AMGN AZO DLTR BMY BRL GILD MCD ROH ADP AMZN BCR ALK GIS
2009-02-27 AMZN AZO NFLX ORLY AAP AMGN DRI DLTR ABT ROST MCD BMY GILD AMT WMT
2009-03-31 AMZN NFLX AZO DRI BBY BMY DLTR ROST NEM AAP KSS BR ORLY ORCL INTU
2009-04-30 AMZN AN DRI CMG NFLX BBY ORLY AZO DHI AAP MRVL GEN CRM MNST HD
2009-05-29 AMZN F GS DRI CMG GPS AAPL AN JPM ROST NEM MPWR FFIV ICE PALM
2009-06-30 F AMZN AN AAPL FFIV ICE BLK NFLX ESRX GS PALM BKNG DXCM MPWR MSI
2009-07-31 F AAPL CMG CAR MU AN BKNG BLDR SWKS PALM BEN SBUX ISRG KMX TJX
2009-08-31 CAR MU BKNG BLDR AAPL CRM F CTSH ISRG LEN LULU WDC PALM CBRE EXPE
2009-09-30 ISRG AAPL GNW CAR ASH CRM CIEN BKNG MU CTSH JBL AES BEN NTAP FMCC
2009-10-30 AMZN AAPL ISRG CRM BEN HIG CTSH GNW FCX BKNG NTAP LULU MSI CAT FFIV
2009-11-30 AMZN ISRG BKNG AMD CRM F AXP AAPL CCI CLF CTSH DD SBUX DDR NFLX
2009-12-31 CRM ISRG AMD MU F AAPL MRVL AMZN BKNG LULU NTAP JBL CCI MAC CLF
2010-01-29 ISRG GNW F FITB INCY RCL AMD CRM DAL DD AFL EL BKNG AMZN AMT
2010-02-26 ISRG CLF GNW F ACS UAL EL DECK AAL AMD ASH DAL BBWI BKNG CRM
2010-03-31 CLF GNW AAPL BKNG ISRG DAL FITB LVS UAL F MTG LULU INCY ATI DECK
2010-04-30 AAPL CRM LVS NFLX AIV CAR HBAN UAL BC ASH CMI FITB CBRE BKNG HST
2010-05-28 NFLX CRM AAPL AAL LULU CMG LVS AKAM ALK DECK DDS DAL CMI FFIV EQR
2010-06-30 CRM NFLX AAPL ISRG AKAM AAL CMG LVS NTAP CMI DECK UAL ALK FFIV AIV
2010-07-30 CRM AAPL AAL NFLX LVS NTAP CMI LULU BBWI CMG FFIV AIG AXP ALK AVB
2010-08-31 CRM NFLX BKNG AMT INTU AKAM CMG AAPL LVS CCI FFIV NTAP CLF CTSH NEM
2010-09-30 NFLX BKNG AMZN AAPL CRM NTAP INTU LVS CMG CMI AMT FFIV BWA AKAM WLL
2010-10-29 NFLX BKNG CMG INTU CRM AAPL LVS NTAP FFIV AMZN AKAM AAL ADI AMT BWA
2010-11-30 NFLX CMG AAPL CRM BBWI LULU LVS FFIV DECK BKNG CMI UAA CAT AMZN BWA
2010-12-31 LULU AIG BWA FCX CIEN ACAS CAT CMI WLL CXO DDS CMG ETFC DECK ALXN
2011-01-31 NFLX LULU AAPL CLF BKNG NOV UAA TER FTNT SWKS CAT CIEN DDS ADI VIAV
2011-02-28 LULU QCOM TER CIEN ANDV AAPL BWA KLAC AVGO DECK CLF CAT VIAV SWKS DDS
2011-03-31 LULU NFLX CMG ANDV WYNN BKNG CAT FTNT HAL BKR SBUX MTW TSCO HP BC
2011-04-29 LULU WYNN BBWI ANDV BIIB BKNG CIEN CAT CXO FTNT IPGP MCO LYB CTRA FDO
2011-05-31 CF NFLX WYNN LULU MCO ADS DDS CTRA ABMD GR PSKY EP IPGP ARG ANF
2011-06-30 LULU CMG NFLX BIIB WYNN FTNT ADS CTRA GR ARG ABMD CBS COG EP KSU
2011-07-29 LULU CF NFLX CMG WYNN BKNG AAPL CTRA ANF MA DDS HAL CE DECK AMZN
2011-08-31 CF WYNN AAPL LULU MA BKNG CMG CTRA ISRG BBWI NFLX EXPE V SBUX MNST
2011-09-30 AAPL MA CMG ISRG V DECK BBWI MNST CF ANF DLTR AZO SBUX BIIB COST
2011-10-31 CF AAPL ISRG MA KLAC DECK CMG CTRA V BIIB ANF FAST COG SBUX SPG
2011-11-30 MA ISRG FAST EL CTRA V KLAC AAPL COG SBUX BMY EP BIIB EXR ABMD
2011-12-30 ISRG MA KLAC AAPL V FAST CMG SBUX BMY EL CF MCD PFE SPG ORLY
2012-01-31 AAPL CF FAST ADS KLAC CMG ISRG GR V COG MA CBS ABMD HFC KSU
2012-02-29 AAPL ISRG V FAST MA BKNG URI CMG CMCSA FTNT ADS EQIX CF TSCO DPZ
2012-03-30 AAPL BKNG ISRG CF FTNT EQIX QCOM FAST URI LULU ADS CMG LEN CMCSA FFIV
2012-04-30 AAPL BKNG ISRG V MA CF URI ORLY CMCSA TSCO EQIX EL CMG EXR EBAY
2012-05-31 AAPL CMG ISRG BKNG EBAY LULU CMCSA V AMT MNST EQIX GILD UAA DG SBUX
2012-06-29 AAPL CF AMT ISRG CMCSA V BKNG DG EBAY EQIX STX EXR EXPE LEN DHI
2012-07-31 AAPL V AMT CMCSA STX EBAY CF EXR AMGN UAA MA CCI BKNG EXPE ROST
2012-08-31 AAPL STX EBAY CMCSA GILD PHM AMT HD AMGN UAA EQIX EXR CDNS LPX STZ
2012-09-28 CF AAPL CMCSA GILD ANDV EBAY STX PHM HD KBH EXPE LYB EQIX AMGN ALGN
2012-10-31 CMCSA AMT GILD LEN PHM EBAY KBH EXPE LPX AMGN HD LYB BAC CCI EOG
2012-11-30 GILD EBAY AMGN BAC EXPE CF CCI CMCSA ANDV HD LPX LEN MAS AMT URI
2012-12-31 LULU BAC CCI URI GILD PHM STX APTV LYB EMN LPX KBH C ANDV DXC
2013-01-31 ANDV GILD HCA EBAY STX PHM URI KBH LYB THC BC DAL MHK LEN TEX
2013-02-28 GILD ANDV DAL CTRA URI HRB CPAY DXC APO MHK STZ CAR LPX GS HCA
2013-03-28 GILD AMGN AAL DAL CTRA HRB MHK KBH ANDV CAR HCA ALK STX LUV STZ
2013-04-30 GILD AMGN FSLR MCO BIIB DAL WDC BX FNMA APO MTG CAR CTRA FMCC APTV
2013-05-31 GILD MCO STX FSLR WDC FNMA MTG BIIB BAC ANDV CAR CSCO C FMCC CPAY
2013-06-28 STX GILD CSCO SCHW BKNG AET GNW WDC GPS BSX EA APTV BBBY HIG ILMN
2013-07-31 GILD BSX CSCO MCO EA FNMA MTG GNW CMG BKNG BAC SBUX GPS LNC BBY
2013-08-30 META GILD BKNG BBY MA CMG FL CPAY EA MGM SBUX BSX GT APTV DXCM
2013-09-30 META BKNG REGN DAL GILD MA MCO BSX MGM SBUX GT INCY CIEN ADS AXON
2013-10-31 GILD CMG BKNG DAL META MA FL BA FNMA AXON ALGN SBUX BMY FMCC OMX
2013-11-29 BKNG GILD NFLX MA DAL CMG DECK MU BX INCY META AOS CELG AAL URI
2013-12-31 MA GILD META URI BX BKNG NFLX CMG WYNN FNMA AAL FMCC ADS INCY CELG
2014-01-31 GILD META NFLX MU WYNN AAL URI DAL BIIB ILMN CMG UAA BX LUV BKNG
2014-02-28 BKNG META WYNN GILD NFLX URI AAL REGN DAL MU FNMA ILMN AVGO LUV BIIB
2014-03-31 URI FSLR DAL CMG LUV WYNN AVGO MSFT UAA AAL NXPI CAR MPWR MU GLW
2014-04-30 MU URI DAL CAR LUV FNMA FRX AVGO NXPI FANG SWKS DD FMCC META BKR
2014-05-30 MU URI META EOG AVGO AAL DAL LUV CAR DD GD MPWR SWKS HAL GMCR
2014-06-30 META MU EOG URI PANW NFLX GILD HAL AAL ILMN AVGO MPWR FANG SLB LRCX
2014-07-31 META GILD CMG URI LUV LRCX UAA MU EXPE AAPL EOG SWKS HCA AVGO MPWR
2014-08-29 GILD URI META MU AVGO LUV MPWR AMT AAPL CMG INTC HCA CAR AMAT SWKS
2014-09-30 META GILD MU LUV EXPE CMG AVGO AAPL LRCX AMGN INTC MNST RCL HCA SWKS
2014-10-31 GILD AMGN META MU ABBV LUV AAPL LRCX GD EW MNST ILMN REGN EA CNC
2014-11-28 MU AMGN LUV ABBV META AAPL LRCX AAL SWKS V RCL AVGO REGN INTC MNST
2014-12-31 RCL LUV AAL AMAT DAL AVGO META EA SWKS AMGN AXON MPWR BBWI ORLY UAL
2015-01-30 AAPL LUV EA ANDV AVGO SWKS AXON ALK PANW BBWI KR MNST LOW NXPI REGN
2015-02-27 AAPL AVGO ANDV MNST BBWI PANW EA CNC ABMD HSP DLTR LOW TXN CI SWKS
2015-03-31 AAPL NXPI EA SWKS ANDV ORLY AVGO BBWI LUV COR KR CNC PANW CI INCY
2015-04-30 AAPL NFLX PANW FTNT NXPI ORLY INTU AXON BSX ABMD HAS INCY DIS AET CRM
2015-05-29 GILD EXPE NFLX NXPI AVGO AAPL PANW SWKS HAS CNC CI HUM AET EA INCY
2015-06-30 GILD HAS META NFLX CI AAPL PANW AET EXPE CNC EA AXON DXCM HCA SBUX
2015-07-31 META NFLX EXPE AMGN HAS CCL GILD PANW NCLH EA V MNST ABMD FTNT NKE
2015-08-31 META HAS CCL SBUX ORLY DXCM NKE AMZN INCY V COTY ALK CDNS CI ADBE
2015-09-30 ADBE SBUX NKE ORLY META PANW CDNS CCL AAP HAS ANDV ALK EXR AMZN CMG
2015-10-30 META ADBE SBUX ORLY AMZN GOOGL NVDA AOS CCL NKE BKNG EXPE ANDV ABMD CDNS
2015-11-30 ADBE AMZN GOOGL META NVDA ANDV ABMD AOS NKE V PANW VLO GOOG HD SBUX
2015-12-31 ADBE GOOGL AMZN META NVDA PSA GOOG REGN ABMD HRL EXR FSLR V AVGO ATVI
2016-01-29 META ADBE GOOGL EXR PSA HRL FSLR SBUX MO ORLY MSFT MCD GOOG V AVGO
2016-02-29 META ISRG HRL ADBE DPZ DAL TSN FSLR MO PSA MAT EW NVDA T O
2016-03-31 META ISRG ADBE PSA NVDA LRCX FAST AVGO VZ DLR EQIX HRL EXR ALB CDNS
2016-04-29 META ISRG EW ADBE AMZN IDXX NVDA AWK ABMD CZR BSX NEM BAX TSN AYI
2016-05-31 META NVDA ISRG ADBE AMZN ABMD AMAT ULTA DG DXC ALB EVRG BSX DLR CPRT
2016-06-30 ISRG NVDA NEM DLR MO ALB IDXX AWK DXC AMAT BSX META K T EQIX
2016-07-29 NVDA PAYC AMAT CLF NEM ALB TXN ISRG DHR ABMD AMD AMZN SPGI EW CMA
2016-08-31 AMAT NVDA DHR IDXX PAYC META AOS MPWR AMZN EBAY TXN GEN SPGI AMD WB
2016-09-30 NVDA AMAT ANET ISRG AMZN EBAY ADBE META CNX IDXX SPGI MPWR AOS DHR ADSK
2016-10-31 NVDA ANET AMAT META ADBE PAYC LRCX DPZ DXC IDXX GEN HPE DHR AMZN ADSK
2016-11-30 NVDA AMAT ANET CLF IDXX CHTR LRCX CNX BBY STLD AMD APA LVS DXC CMI
2016-12-30 NVDA AMAT ANET ADI RF CFG AMD KEY CHTR BAC BKR FITB GS SLM ZION
2017-01-31 NVDA AMAT CHTR CSX LRCX ANET ADI FNMA IDXX URI SCHW CFG ATI BAC ADSK
2017-02-28 ANET IDXX AMAT ADI CLF CSX NVDA BAC INCY ADBE AMD LRCX DXC MS ADSK
2017-03-31 AMAT ANET IDXX NVDA ADBE LRCX ADI NFLX CHTR CSX INCY TMUS AMZN PAYC AMD
2017-04-28 AMAT LRCX ANET IDXX ADBE ISRG CSX DXC CHTR NVDA ALGN BBY BCR FMC AMZN
2017-05-31 AMAT NVDA ADBE LRCX ANET ISRG NFLX ADSK GOOGL AMZN AMT ADI IDXX CSX PAYC
2017-06-30 ADBE ANET NVDA ISRG REGN AMAT META PAYC LRCX ALGN CSX AMT VRTX PYPL AMZN
2017-07-31 NVDA ADBE AMAT LRCX META NFLX ANET ISRG CHTR ADSK ALGN AMT PYPL BA PAYC
2017-08-31 ANET ADBE NVDA LRCX META ISRG AMT PYPL AMAT RCL BA VRTX ALGN CHTR MU
2017-09-29 AMAT ANET LRCX NVDA BA MU ISRG PYPL META MA ABBV NFLX ADBE ALGN ON
2017-10-31 AMAT NVDA ADBE LRCX ANET MU ISRG PYPL ON ABBV ALGN MA META CDNS XYZ
2017-11-30 ANET ADBE PYPL ISRG ABBV NVDA BA MU ALGN LRCX EL FSLR AMAT MA XYZ
2017-12-29 ANET ADBE BA BBBY CAT PYPL NVDA MAR WYNN FSLR ON MU EL V URI
2018-01-31 ANET ADBE NVDA BA PYPL ABBV ISRG ON NFLX MA BBBY MU MAR NTAP MSFT
2018-02-28 ANET ADBE MU NVDA BA NFLX ABBV AMAT MA MSFT ISRG NOW INTC TXN V
2018-03-29 ADBE ANET MU NVDA NFLX PAYC LRCX INTC FTNT MA NOW SEDG EL CRM WYNN
2018-04-30 ANET ADBE NFLX ANF AMZN CRM PAYC FTNT INTU V MA BA WYNN PANW NTAP
2018-05-31 ADBE MU FTNT AMZN NFLX NVDA ETSY CRM MA INTU INTC BA SEDG ALGN NOW
2018-06-29 CRM ADBE ETSY AMZN NFLX FTNT LULU ANET MA NTAP META ISRG INTU ABMD V
2018-07-31 ADBE CRM MU FTNT AMZN ABMD ISRG ETSY MSFT MA LULU IDXX ILMN ALGN AXON
2018-08-31 FTNT CRM ADBE AMZN PAYC LULU ETSY NTAP ISRG MA ABMD NVDA TTD INTU XYZ
2018-09-28 FTNT CRM ADBE LULU PAYC AMZN ISRG ETSY MA INTU ABMD AAPL TTD NVDA XYZ
2018-10-31 FTNT ADBE AAPL LULU ABT ISRG CRM NTAP DXCM AAP ESRX INTU MSFT DECK CMG
2018-11-30 ETSY ABT TTD AAP VRTX AMD PFE FTNT ADBE PAYC HET MOS CRM MRK CHD
2018-12-31 FTNT ABT CRM AVGO ETSY CIEN SBUX PFE PYPL ADBE AMT PAYC MRK ORLY CME
2019-01-31 PAYC ETSY LULU CRM AVGO AMD CMG NOW MTCH TTD VRTX REGN ADI FTNT DXCM
2019-02-28 ETSY PAYC CRM CMG FTNT AVGO ADI TTD INTU NOW CDNS BA CIEN ABT DHR
2019-03-29 AVGO CDNS TTD PAYC ETSY INTU LULU CMG CCI ADI NOW PYPL HET DHR MA
2019-04-30 TTD CDNS AVGO ADI PAYC ETSY LULU MA NOW PYPL MSFT CVNA AMD ADBE FTNT
2019-05-31 PAYC LULU CDNS CCI MTCH MA AMD TTD PYPL MSFT ETSY NOW HET VEEV FNMA
2019-06-28 TTD CDNS PAYC AMD LULU HET MA ADBE MSFT ADI BALL MTCH BX AVP NOW
2019-07-31 TTD PAYC CDNS MTCH LULU MA INTU SBUX ETSY HET MSFT CMG BX ADBE CCI
2019-08-30 CCI PAYC CMG MTCH TTD MA SBUX EL INTU HET BALL MSFT ENPH CDNS QCOM
2019-09-30 HET CCI CMG LRCX KLAC TER FNMA CTAS AVP FMCC EL NEE MSFT CDW PODD
2019-10-31 LRCX HET KLAC CCI BX CVNA EW AMAT LULU APO MSFT GNRC T MA TER
2019-11-29 LULU TTD PAYC FTNT HET AAPL CVNA QCOM AMAT PODD APO MSFT ANSS BLDR LRCX
2019-12-31 FTNT AAPL LRCX QCOM HET LULU TER ADBE MSFT KLAC AMAT ENPH SEDG APO TTD
2020-01-31 FTNT PAYC MSFT ADBE AAPL CCI DXCM LULU MA SPGI BMY HET V QCOM CPRT
2020-02-28 ADBE MSFT TTD CCI ENPH LRCX DXCM BMY SEDG NOW GOOGL PAYC FTNT HET AAPL
2020-03-31 ADBE MSFT AMT CCI AMD ENPH VRTX AAPL ABBV SPGI CHTR FTNT MCO DPZ BMY
2020-04-30 ENPH ADBE MSFT AMT CCI SPGI AMZN AMD SEDG NEM AAPL CMG ABBV ABT DXCM
2020-05-29 ENPH ADBE CCI AMT CMG LULU FTNT SPGI VRTX MSFT ETSY PYPL CDNS SEDG ABBV
2020-06-30 ADBE MSFT AAPL ABBV NVDA CMG TTD PYPL ENPH AMT TER SPGI FTNT ETSY LULU
2020-07-31 AMD ENPH AAPL QCOM ADBE SEDG NVDA PYPL CMG META TTD CDNS CVNA ETSY ISRG
2020-08-31 ADBE AMD AAPL ETSY ENPH NVDA AMZN META SEDG MSFT PYPL BBBY LULU CVNA TTD
2020-09-30 ETSY ENPH NVDA SEDG ADBE AMD TTD AAPL CRWD CVNA MPWR PYPL PENN LOW DHR
2020-10-30 ENPH ETSY SEDG MPWR NVDA TTD DHR AAPL ADBE AMD PAYC FDX IDXX NOW META
2020-11-30 ETSY ENPH TTD MRNA AMD LRCX TER CRWD CVNA PENN XYZ AMAT MPWR NVDA ALB
2020-12-31 ENPH ETSY MPWR CRWD SEDG AAPL CDNS TTD ALGN AVGO TSLA AMAT TER IDXX LRCX
2021-01-29 ETSY ENPH MRNA AMAT CRWD AVGO PENN TTD CVNA CLF ALB TSLA AAPL LRCX GME
2021-02-26 ETSY ENPH AMAT LRCX PSKY MPWR AVGO DE TER CRWD WBD PENN PYPL GNRC FCX
2021-03-31 AMAT CLF ETSY LRCX CAR ENPH DVN FCX DE GME GM CPRI WSM FANG FLR
2021-04-30 BBWI AMAT FCX FTNT MRNA CAR CZR LRCX COF ETSY DVN CPRI TPR LPX ATI
2021-05-28 BBWI AMAT FCX CLF DVN LRCX FTNT COF CZR NUE DDS GME IVZ DXC CAR
2021-06-30 MRNA NVDA AMAT BBWI DVN GNRC INTU F LRCX GOOGL CLF BBBY CRWD FANG DDS
2021-07-30 MRNA BBWI INTU CLF NVDA GOOGL FTNT AMAT BX FCX NUE IDXX ADBE COF CARR
2021-08-31 MRNA BBWI GOOGL FTNT NVDA BX INTU CRWD DHR ALB MPWR NUE DVN IT CLF
2021-09-30 MRNA DVN CAR PANW GOOGL MPWR FTNT NVDA BBWI TSLA BX COP AN DHR ALB
2021-10-29 TSLA ETSY NVDA ENPH FTNT BX CAR EOG CRWD DVN AMD GOOGL INTU COP OXY
2021-11-30 NVDA ETSY TSLA AMD ON MRNA ENPH DVN INTU CAR BX BBWI AVGO ADBE ANET
2021-12-31 AVGO ON AMD NVDA ANET PFE TSLA FTNT DVN BLDR CF AAPL FCX EXR KLAC
2022-01-31 COP DVN AVGO APA EOG MRO ON PFE AAPL FANG OXY ABBV NVDA CF ANET
2022-02-28 COP DVN OXY ABBV CF AVGO MRO APA ON EOG FANG FCX PANW CVX AMD
2022-03-31 CF ABBV FCX OXY COP AVGO MOS NVDA APA TSLA CVX DVN AAPL ANET BKR
2022-04-29 CF COP OXY ABBV DVN MRO MOS EQT APA CVX CTRA CAR EOG BMY NUE
2022-05-31 CF OXY APA DVN EOG MRO CVX COP EQT CTRA VLO ABBV AVGO BKR MOS
2022-06-30 ABBV CF OXY BMY EOG KO LLY PFE DVN ENPH DLTR AZO MRO VLO HRB
2022-07-29 CF ON ENPH OXY DVN MRO CDNS EQT SNPS CTRA CVX EXE XOM RRC MPC
2022-08-31 CF ENPH OXY ON VRTX DVN MRO COP EOG CDNS EQT EXE MPC ANET APA
2022-09-30 ENPH CF VRTX ON CDNS MPC COP DVN EOG FSLR OXY MRO ALB EXE CAH
2022-10-31 MRO DVN CF EOG OXY COP ENPH APA SLB VRTX AMGN CVX XOM MPC FANG
2022-11-30 ENPH FSLR ANET AMGN FTI ON CF BIIB ABBV MPC VRTX FICO HES GILD SMCI
2022-12-30 SLB APA ENPH HAL ACGL CVX AVGO CAT XOM FTI HES MPC PCG COP LVS
2023-01-31 FSLR MPC BKNG URI STLD FTI ATI AVGO SLB LVS ASO AXON NUE VLO ON
2023-02-28 BKNG ADI CDNS AVGO URI MCHP FTI STLD ON SMCI ASO ACGL ATI AXON LIN
2023-03-31 ADI BKNG CDNS AVGO ANET ON MCHP FSLR MPC GE AXON SNPS ORCL SMCI ASO
2023-04-28 CDNS BKNG CMG ANET AVGO ADI GE MSFT BLDR LVS ACGL DHI ORCL CRM DECK
2023-05-31 AVGO CDNS ANET CMG CRM ORCL NOW SNPS BKNG MSFT BLDR FTNT SMCI ON TTD
2023-06-30 AVGO ABNB ADBE ORCL CMG ON CDNS MCHP PANW BKNG AMAT BLDR MPWR FTNT NOW
2023-07-31 AVGO ABNB ADBE BKNG ON TTD NOW MCHP LRCX PLTR AMAT SMCI FTNT ORCL BLDR
2023-08-31 AVGO ADBE BKNG ANET ORCL LLY AMAT CAT ETN CVNA TTD LRCX CDNS NOW BLDR
2023-09-29 BKNG AVGO ADBE ABNB NVDA HAL ANET TTD ANF LLY CAT DELL PLTR SLB INTU
2023-10-31 ANET AVGO ADBE CDNS NOW LLY NVDA ANF PANW MSFT AMZN DELL SNPS ETN FTI
2023-11-30 ADBE ANET CRWD CRM NOW INTU PANW PLTR AVGO CDNS ANF NVDA BKNG DELL META
2023-12-29 AVGO ANET CRM BKNG INTU CRWD CVNA ANF COIN MPWR META NOW LULU ADBE RCL
2024-01-31 NVDA AVGO ANET CRM CRWD NOW META PANW ANF INTU CDNS ADBE SMCI NFLX CMG
2024-02-29 NVDA META AVGO CRM ANET NFLX CRWD CMG PLTR AMAT ANF CVNA COIN SMCI CDNS
2024-03-28 NVDA AVGO META ANET CMG CVNA NFLX DELL COIN SMCI APP HOOD AMAT CRWD CAT
2024-04-30 NVDA AVGO CMG DELL AMAT META ETN ANF APP VRT GE CVNA PLTR VST APH
2024-05-31 NVDA ANF ANET META CVNA DELL COIN APP NFLX HOOD AMAT AVGO APH DECK VST
2024-06-28 NVDA ANET META AVGO NFLX CRWD AMAT GOOGL CVNA ANF LLY CMG TTD HOOD APP
2024-07-31 NVDA ANET AVGO KKR CVNA HWM ANF DYN MPWR URI META PLTR COIN CTAS AMT
2024-08-30 NVDA ANET CVNA PLTR AVGO MCO APP LLY MPWR META CTAS LUMN ISRG COHR NFLX
2024-09-30 ANET PLTR META NVDA APP CVNA ORCL AVGO CEG LUMN VST GE COHR AMT KKR
2024-10-31 NVDA ANET PLTR NFLX META CVNA APP TTD BX ORCL CCL BKNG NOW AVGO COHR
2024-11-29 PLTR NFLX APP FTNT HOOD TTD NVDA ORCL BX ANET AXON CCL KKR NOW CVNA
2024-12-31 PLTR NFLX ANET AVGO FTNT CRM NVDA NOW APP HOOD META MRVL APO PYPL FNMA
2025-01-31 PLTR META NFLX ANET APP HOOD FTNT COIN CCL AMZN AVGO AXON KKR CEG CRM
2025-02-28 PLTR NFLX META FTNT TMUS HOOD V AVGO FNMA ALK DASH TPR HWM NVDA ETR
2025-03-31 PLTR NFLX FTNT TMUS AJG V EQT PM MO FNMA GILD HOOD AMT KMI ETR
2025-04-30 PLTR NFLX FTNT AMT BKNG AVGO HOOD V GEV APH PM HWM DASH AXON MA
2025-05-30 PLTR AVGO NFLX HOOD APH CVNA APP GEV GILD BKNG INTU META HWM GE CRWD
2025-06-30 AVGO PLTR NFLX APH META HOOD COIN NVDA RCL GEV DASH FTNT CVNA BKNG CEG
2025-07-31 PLTR AVGO NVDA COIN APH META HOOD AMD CVNA CDNS GEV STX ANET ORCL MSFT
2025-08-29 AVGO PLTR ANET NVDA APH RCL AMD CCL APP HOOD STX COIN NEM LRCX ECHO
2025-09-30 PLTR AVGO NVDA APH ANET LRCX HOOD APP STX COIN GOOGL NEM ECHO WDC CIEN
2025-10-31 AVGO PLTR LRCX NVDA APH ANET AMD MU GOOGL STX HOOD KLAC WDC COIN CIEN
2025-11-28 AVGO GOOGL LRCX AMD APH PLTR MU STX NEM AMAT LITE IDXX CIEN NVDA GOOG
2025-12-31 LRCX AMD PLTR WDC MU AVGO NEM APH GOOGL EXPE STX ADI CIEN NVDA LITE
2026-01-30 LRCX ADI MU STX WDC AMD GOOGL APH AMAT NEM KLAC GILD COHR ALB MPWR
2026-02-27 ADI LRCX WDC MU AMAT NEM STX APH CIEN COHR LITE GLW KLAC AMGN GEV
2026-03-31 LRCX WDC STX ADI AMD CIEN AMAT CF MU LITE KLAC ALB APA TER ECHO
2026-04-30 AMD ADI LRCX STX WDC MU AVGO AMAT GOOGL CIEN COHR MPWR LITE KLAC MRVL
2026-05-29 AMD LRCX MU STX ADI WDC AVGO CSCO AMAT NVDA MRVL KLAC DELL COHR CIEN
2026-06-26 LRCX AMD MU STX WDC AMAT ADI TER APH PANW FTNT KLAC MRVL GLW CSCO
Scoring script (python)
FORMULA_NAME = "Recovery Quality Regime Momentum Fundamental Hybrid (Explore, v1119)"
LOGIC_VARIANT_COUNT = 3
NOTES = """mode=explore; family=recovery-quality-regime-momentum-fundamental-mom-hybrid
This hybrid keeps three distinct jobs instead of one blended average: a trend-following bull branch, a repaired-rebound recovery branch, and a low-volatility defensive branch. The arbitration mechanism is explicit: each branch changes which evidence can dominate, and branch-specific conflict haircuts prevent pure price strength from outranking weak fundamentals or low-quality rebounds.
Deliberate metric coverage: momentum uses return_1m_pct, return_3m_pct, return_6m_pct, and momentum_12_1_pct across branches; 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 in defense only; valuation uses forward_pe and peg; growth uses eps_growth_pct, revenue_growth_pct, operating_income_growth_pct, and free_cash_flow_growth_pct; quality uses operating_margin_pct and free_cash_flow_margin_pct; size uses shares_outstanding as a light small-cap tilt only in recovery. Raw level metrics are deliberately zero-weighted this run to avoid collapsing into another large-cap fundamental screen.
Deliberate weight-0 metrics this run: return_12m_pct, pe, forward_eps, dividend_ttm, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm."""

BULL = {
    "momentum_12_1_pct": (0.20, +1),
    "return_6m_pct": (0.17, +1),
    "from_200d_ma_pct": (0.10, +1),
    "avg_daily_dollar_volume_3m": (0.07, +1),
    "trading_days_3m": (0.05, +1),
    "eps_growth_pct": (0.10, +1),
    "operating_income_growth_pct": (0.11, +1),
    "free_cash_flow_margin_pct": (0.11, +1),
    "forward_pe": (0.06, -1),
    "realized_vol_3m": (0.03, -1),
}

RECOVERY = {
    "return_1m_pct": (0.10, +1),
    "return_3m_pct": (0.16, +1),
    "from_200d_ma_pct": (0.18, +1),
    "from_52w_high_pct": (0.14, +1),
    "momentum_12_1_pct": (0.08, +1),
    "avg_daily_volume_3m": (0.05, +1),
    "avg_daily_dollar_volume_3m": (0.05, +1),
    "operating_margin_pct": (0.08, +1),
    "free_cash_flow_growth_pct": (0.07, +1),
    "peg": (0.05, -1),
    "shares_outstanding": (0.04, -1),
}

DEFENSE = {
    "realized_vol_3m": (0.18, -1),
    "from_200d_ma_pct": (0.14, +1),
    "from_52w_high_pct": (0.10, +1),
    "momentum_12_1_pct": (0.08, +1),
    "trading_days_3m": (0.07, +1),
    "dividend_yield_ttm_pct": (0.06, +1),
    "revenue_growth_pct": (0.08, +1),
    "operating_margin_pct": (0.11, +1),
    "free_cash_flow_margin_pct": (0.08, +1),
    "forward_pe": (0.05, -1),
    "peg": (0.05, -1),
}

def _safe_float(value):
    if value is None:
        return None
    try:
        value = float(value)
    except (TypeError, ValueError):
        return None
    if value != value:
        return None
    return value

def _get_field(obj, key):
    if isinstance(obj, dict):
        return obj.get(key)
    return getattr(obj, key, None)

def _symbol(stock):
    sym = _get_field(stock, "symbol")
    if sym is None:
        sym = _get_field(stock, "ticker")
    return sym

def _rank_metric(stocks, metric, higher_is_better):
    values = []
    for stock in stocks:
        sym = _symbol(stock)
        if not sym:
            continue
        val = _safe_float(_get_field(stock, metric))
        if val is None:
            continue
        values.append((sym, val))
    ranks = {}
    if not values:
        for stock in stocks:
            sym = _symbol(stock)
            if sym:
                ranks[sym] = 0.5
        return ranks
    values.sort(key=lambda item: item[1], reverse=higher_is_better)
    count = len(values)
    if count == 1:
        ranks[values[0][0]] = 1.0
    else:
        for idx, (sym, _) in enumerate(values):
            ranks[sym] = idx / float(count - 1)
            if higher_is_better:
                ranks[sym] = 1.0 - ranks[sym]
    for stock in stocks:
        sym = _symbol(stock)
        if sym and sym not in ranks:
            ranks[sym] = 0.5
    return ranks

def _weighted_score(symbol, metric_defs, cache):
    total = 0.0
    weight_sum = 0.0
    for metric, (weight, direction) in metric_defs.items():
        total += weight * cache[(metric, direction)].get(symbol, 0.5)
        weight_sum += weight
    if weight_sum <= 0.0:
        return 0.0
    return total / weight_sum

def _avg_score(symbol, cache, metric_pairs):
    total = 0.0
    count = 0
    for metric, direction in metric_pairs:
        total += cache[(metric, direction)].get(symbol, 0.5)
        count += 1
    if count == 0:
        return 0.5
    return total / float(count)

def _regime_text(regime):
    parts = []
    if isinstance(regime, str):
        return regime.lower()
    for key in ("regime", "state", "name", "label", "market_regime", "phase"):
        value = _get_field(regime, key)
        if isinstance(value, str):
            parts.append(value.lower())
    return " ".join(parts)

def _regime_value(regime, key):
    return _safe_float(_get_field(regime, key))

def _pick_branch(regime):
    text = _regime_text(regime)
    if any(token in text for token in ("risk_off", "risk-off", "defensive", "defense", "bear", "stress", "crash", "panic")):
        return "defense"
    if any(token in text for token in ("recovery", "rebound", "repair", "mean_reversion", "mean-reversion")):
        return "recovery"
    if any(token in text for token in ("bull", "risk_on", "risk-on", "trend", "expansion")):
        return "bull"

    risk_off = 0.0
    recovery = 0.0
    for key in ("risk_off_prob", "bear_prob", "stress_prob", "defensive_prob"):
        value = _regime_value(regime, key)
        if value is not None and value > risk_off:
            risk_off = value
    for key in ("recovery_prob", "rebound_prob", "repair_prob"):
        value = _regime_value(regime, key)
        if value is not None and value > recovery:
            recovery = value

    if risk_off >= 0.55:
        return "defense"
    if recovery >= 0.50:
        return "recovery"
    return "bull"

def score_universe(stocks, regime, ctx):
    branch = _pick_branch(regime)

    metric_defs = {}
    for defs in (BULL, RECOVERY, DEFENSE):
        for metric, (_, direction) in defs.items():
            metric_defs[(metric, direction)] = True

    cache = {}
    for metric, direction in metric_defs:
        cache[(metric, direction)] = _rank_metric(stocks, metric, direction > 0)

    scores = {}
    for stock in stocks:
        sym = _symbol(stock)
        if not sym:
            continue

        momentum = _avg_score(sym, cache, [
            ("return_1m_pct", +1),
            ("return_3m_pct", +1),
            ("return_6m_pct", +1),
            ("momentum_12_1_pct", +1),
        ])
        recovery = _avg_score(sym, cache, [
            ("return_1m_pct", +1),
            ("return_3m_pct", +1),
            ("from_200d_ma_pct", +1),
            ("from_52w_high_pct", +1),
        ])
        growth = _avg_score(sym, cache, [
            ("eps_growth_pct", +1),
            ("revenue_growth_pct", +1),
            ("operating_income_growth_pct", +1),
            ("free_cash_flow_growth_pct", +1),
        ])
        quality = _avg_score(sym, cache, [
            ("operating_margin_pct", +1),
            ("free_cash_flow_margin_pct", +1),
        ])
        value = _avg_score(sym, cache, [
            ("forward_pe", -1),
            ("peg", -1),
        ])
        liquidity = _avg_score(sym, cache, [
            ("avg_daily_volume_3m", +1),
            ("avg_daily_dollar_volume_3m", +1),
            ("trading_days_3m", +1),
        ])
        stability = _avg_score(sym, cache, [
            ("realized_vol_3m", -1),
            ("from_200d_ma_pct", +1),
            ("from_52w_high_pct", +1),
        ])
        income = _avg_score(sym, cache, [
            ("dividend_yield_ttm_pct", +1),
        ])
        size = _avg_score(sym, cache, [
            ("shares_outstanding", -1),
        ])

        if branch == "bull":
            base = _weighted_score(sym, BULL, cache)
            fundamental_confirm = 0.45 * growth + 0.35 * quality + 0.20 * value
            implementation = 0.65 * liquidity + 0.35 * stability
            conflict = 0.0
            if momentum > 0.68 and fundamental_confirm < 0.46:
                conflict -= 0.12 * (0.46 - fundamental_confirm)
            if fundamental_confirm > 0.66 and momentum < 0.42:
                conflict -= 0.08 * (0.42 - momentum)
            score = 0.48 * base + 0.24 * momentum + 0.18 * fundamental_confirm + 0.10 * implementation + conflict
        elif branch == "recovery":
            base = _weighted_score(sym, RECOVERY, cache)
            repaired_rebound = 0.60 * recovery + 0.25 * momentum + 0.15 * stability
            durable_confirm = 0.40 * quality + 0.30 * growth + 0.15 * value + 0.15 * liquidity
            conflict = 0.0
            if repaired_rebound > 0.65 and durable_confirm < 0.44:
                conflict -= 0.14 * (0.44 - durable_confirm)
            if durable_confirm > 0.64 and repaired_rebound < 0.43:
                conflict -= 0.10 * (0.43 - repaired_rebound)
            score = 0.44 * base + 0.30 * repaired_rebound + 0.18 * durable_confirm + 0.08 * size + conflict
        else:
            base = _weighted_score(sym, DEFENSE, cache)
            resilience = 0.40 * stability + 0.25 * quality + 0.20 * value + 0.15 * liquidity
            carry = 0.55 * income + 0.45 * growth
            conflict = 0.0
            if momentum > 0.70 and stability < 0.45:
                conflict -= 0.12 * (0.45 - stability)
            if value > 0.68 and growth < 0.38:
                conflict -= 0.08 * (0.38 - growth)
            score = 0.46 * base + 0.28 * resilience + 0.14 * carry + 0.12 * momentum + conflict

        scores[sym] = score

    return scores