exp_1106

Recovery Quality Regime Momentum Handoff (v1106)

← All V2 experiments
Relative return
1.273x
Excess vs bench
27.31%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
45.81%
Mean benchmark gain
14.08%
Mean excess gain
31.73%
Dispersion (ref)
29.22%
Win-rate vs bench (ref)
98.32%
Worst / best ratio (ref)
0.984x / 1.707x
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 15.31% 2.22% 1.128x
2011-07-01 … 2016-06-30 27.01% 13.74% 1.117x
2016-07-01 … 2021-06-30 92.77% 20.63% 1.598x
2021-07-01 … 2026-06-26 61.36% 15.48% 1.397x
All rolling windows — the objective set (equal-weighted mean ratio)
Strategy Benchmark (CAPW_UNIV) Excess
2006200720082009201020112012201320142015201620172018201920202021 -20%0%20%40%60%80%100%120%
rolling 5y windows, monthly step — 179 windows · mean ratio 1.273x · beat benchmark in 176/179
#WindowStrategyBenchmarkRatio
1 2006-07-31 … 2011-07-29 13.23% 1.79% 1.112x
2 2006-08-31 … 2011-08-31 11.90% 0.21% 1.117x
3 2006-09-29 … 2011-08-31 9.38% -0.14% 1.095x
4 2006-10-31 … 2011-10-31 8.23% 0.23% 1.080x
5 2006-11-30 … 2011-11-30 6.34% -0.05% 1.064x
6 2006-12-29 … 2011-11-30 7.32% -0.32% 1.077x
7 2007-01-31 … 2012-01-31 7.31% 0.93% 1.063x
8 2007-02-28 … 2012-01-31 7.00% 1.43% 1.055x
9 2007-03-30 … 2012-03-30 9.54% 3.09% 1.063x
10 2007-04-30 … 2012-04-30 9.19% 2.42% 1.066x
11 2007-05-31 … 2012-05-31 4.40% 0.60% 1.038x
12 2007-06-29 … 2012-06-29 4.24% 1.92% 1.023x
13 2007-07-31 … 2012-07-31 4.43% 2.69% 1.017x
14 2007-08-31 … 2012-08-31 4.76% 2.95% 1.018x
15 2007-09-28 … 2012-09-28 4.48% 3.20% 1.012x
16 2007-10-31 … 2012-10-31 2.57% 2.60% 1.000x
17 2007-11-30 … 2012-11-30 2.36% 3.45% 0.989x
18 2007-12-31 … 2012-12-31 2.08% 3.69% 0.984x
19 2008-01-31 … 2013-01-31 6.55% 5.85% 1.007x
20 2008-02-29 … 2013-02-28 8.63% 6.82% 1.017x
21 2008-03-31 … 2013-03-28 10.49% 7.73% 1.026x
22 2008-04-30 … 2013-04-30 9.61% 7.51% 1.020x
23 2008-05-30 … 2013-04-30 9.29% 7.81% 1.014x
24 2008-06-30 … 2013-06-28 15.12% 9.33% 1.053x
25 2008-07-31 … 2013-07-31 19.08% 10.48% 1.078x
26 2008-08-29 … 2013-07-31 19.30% 10.52% 1.079x
27 2008-09-30 … 2013-09-30 24.07% 11.48% 1.113x
28 2008-10-31 … 2013-10-31 27.41% 15.76% 1.101x
29 2008-11-28 … 2013-10-31 29.35% 17.46% 1.101x
30 2008-12-31 … 2013-12-31 30.83% 18.44% 1.105x
31 2009-01-30 … 2013-12-31 33.41% 20.64% 1.106x
32 2009-02-27 … 2014-01-31 37.64% 21.63% 1.132x
33 2009-03-31 … 2014-03-31 37.41% 20.60% 1.139x
34 2009-04-30 … 2014-04-30 35.37% 19.00% 1.138x
35 2009-05-29 … 2014-04-30 35.61% 18.32% 1.146x
36 2009-06-30 … 2014-06-30 38.25% 19.01% 1.162x
37 2009-07-31 … 2014-07-31 33.42% 17.39% 1.137x
38 2009-08-31 … 2014-08-29 34.66% 17.70% 1.144x
39 2009-09-30 … 2014-09-30 32.82% 16.64% 1.139x
40 2009-10-30 … 2014-09-30 36.00% 17.08% 1.162x
41 2009-11-30 … 2014-11-28 34.94% 16.82% 1.155x
42 2009-12-31 … 2014-12-31 32.52% 16.28% 1.140x
43 2010-01-29 … 2014-12-31 34.78% 17.23% 1.150x
44 2010-02-26 … 2015-01-30 33.20% 15.80% 1.150x
45 2010-03-31 … 2015-03-31 31.85% 15.40% 1.142x
46 2010-04-30 … 2015-04-30 29.97% 15.38% 1.126x
47 2010-05-28 … 2015-04-30 32.12% 17.09% 1.128x
48 2010-06-30 … 2015-06-30 33.80% 17.45% 1.139x
49 2010-07-30 … 2015-06-30 33.48% 16.43% 1.146x
50 2010-08-31 … 2015-08-31 32.13% 15.76% 1.141x
51 2010-09-30 … 2015-09-30 28.19% 13.61% 1.128x
52 2010-10-29 … 2015-09-30 26.90% 13.06% 1.122x
53 2010-11-30 … 2015-11-30 27.64% 15.09% 1.109x
54 2010-12-31 … 2015-12-31 26.67% 13.55% 1.116x
55 2011-01-31 … 2016-01-29 24.99% 11.90% 1.117x
56 2011-02-28 … 2016-01-29 26.06% 11.53% 1.130x
57 2011-03-31 … 2016-03-31 27.07% 12.90% 1.125x
58 2011-04-29 … 2016-04-29 25.17% 12.39% 1.114x
59 2011-05-31 … 2016-05-31 25.46% 12.94% 1.111x
60 2011-06-30 … 2016-06-30 25.33% 13.30% 1.106x
61 2011-07-29 … 2016-07-29 29.16% 14.52% 1.128x
62 2011-08-31 … 2016-08-31 29.26% 15.19% 1.122x
63 2011-09-30 … 2016-09-30 30.90% 16.32% 1.125x
64 2011-10-31 … 2016-10-31 29.00% 14.02% 1.131x
65 2011-11-30 … 2016-11-30 30.85% 14.66% 1.141x
66 2011-12-30 … 2016-12-30 30.63% 14.92% 1.137x
67 2012-01-31 … 2017-01-31 30.84% 14.63% 1.141x
68 2012-02-29 … 2017-02-28 29.40% 14.78% 1.127x
69 2012-03-30 … 2017-02-28 29.09% 14.43% 1.128x
70 2012-04-30 … 2017-04-28 26.63% 14.61% 1.105x
71 2012-05-31 … 2017-05-31 31.12% 15.98% 1.131x
72 2012-06-29 … 2017-05-31 31.19% 15.44% 1.136x
73 2012-07-31 … 2017-07-31 29.95% 15.43% 1.126x
74 2012-08-31 … 2017-08-31 30.84% 15.12% 1.137x
75 2012-09-28 … 2017-08-31 30.30% 14.77% 1.135x
76 2012-10-31 … 2017-10-31 34.11% 16.12% 1.155x
77 2012-11-30 … 2017-11-30 33.84% 16.79% 1.146x
78 2012-12-31 … 2017-12-29 33.15% 16.93% 1.139x
79 2013-01-31 … 2018-01-31 33.34% 17.57% 1.134x
80 2013-02-28 … 2018-02-28 34.45% 16.21% 1.157x
81 2013-03-28 … 2018-02-28 33.34% 15.81% 1.151x
82 2013-04-30 … 2018-04-30 30.38% 14.25% 1.141x
83 2013-05-31 … 2018-05-31 25.54% 14.57% 1.096x
84 2013-06-28 … 2018-05-31 27.76% 14.97% 1.111x
85 2013-07-31 … 2018-07-31 24.56% 14.83% 1.085x
86 2013-08-30 … 2018-07-31 24.95% 15.59% 1.081x
87 2013-09-30 … 2018-09-28 27.56% 15.84% 1.101x
88 2013-10-31 … 2018-10-31 20.75% 12.89% 1.070x
89 2013-11-29 … 2018-10-31 20.57% 12.60% 1.071x
90 2013-12-31 … 2018-12-31 19.44% 9.93% 1.086x
91 2014-01-31 … 2019-01-31 19.70% 12.37% 1.065x
92 2014-02-28 … 2019-02-28 17.97% 12.38% 1.050x
93 2014-03-31 … 2019-03-29 20.89% 12.76% 1.072x
94 2014-04-30 … 2019-04-30 22.60% 13.73% 1.078x
95 2014-05-30 … 2019-04-30 21.65% 13.54% 1.071x
96 2014-06-30 … 2019-06-28 22.26% 12.81% 1.084x
97 2014-07-31 … 2019-07-31 25.74% 13.30% 1.110x
98 2014-08-29 … 2019-07-31 24.90% 12.80% 1.107x
99 2014-09-30 … 2019-09-30 26.38% 12.70% 1.121x
100 2014-10-31 … 2019-10-31 27.31% 12.91% 1.128x
101 2014-11-28 … 2019-10-31 26.55% 12.60% 1.124x
102 2014-12-31 … 2019-12-31 28.76% 14.16% 1.128x
103 2015-01-30 … 2019-12-31 28.49% 14.85% 1.119x
104 2015-02-27 … 2020-01-31 30.48% 14.04% 1.144x
105 2015-03-31 … 2020-03-31 28.56% 8.56% 1.184x
106 2015-04-30 … 2020-04-30 33.80% 11.65% 1.198x
107 2015-05-29 … 2020-05-29 33.21% 12.61% 1.183x
108 2015-06-30 … 2020-06-30 35.70% 13.64% 1.194x
109 2015-07-31 … 2020-07-31 42.99% 14.60% 1.248x
110 2015-08-31 … 2020-08-31 48.56% 18.07% 1.258x
111 2015-09-30 … 2020-09-30 47.54% 17.05% 1.261x
112 2015-10-30 … 2020-10-30 43.00% 14.60% 1.248x
113 2015-11-30 … 2020-11-30 50.52% 17.43% 1.282x
114 2015-12-31 … 2020-12-31 52.96% 18.65% 1.289x
115 2016-01-29 … 2021-01-29 90.58% 19.26% 1.598x
116 2016-02-29 … 2021-02-26 87.27% 19.79% 1.563x
117 2016-03-31 … 2021-03-31 88.94% 19.42% 1.582x
118 2016-04-29 … 2021-03-31 91.46% 19.66% 1.600x
119 2016-05-31 … 2021-05-28 91.43% 20.42% 1.590x
120 2016-06-30 … 2021-06-30 93.71% 21.06% 1.600x
121 2016-07-29 … 2021-06-30 92.77% 20.63% 1.598x
122 2016-08-31 … 2021-08-31 97.62% 21.75% 1.623x
123 2016-09-30 … 2021-09-30 93.48% 20.22% 1.609x
124 2016-10-31 … 2021-10-29 100.49% 22.50% 1.637x
125 2016-11-30 … 2021-11-30 101.49% 21.87% 1.653x
126 2016-12-30 … 2021-11-30 102.72% 21.75% 1.665x
127 2017-01-31 … 2022-01-31 94.27% 20.17% 1.617x
128 2017-02-28 … 2022-02-28 94.75% 18.51% 1.643x
129 2017-03-31 … 2022-03-31 97.35% 19.46% 1.652x
130 2017-04-28 … 2022-03-31 99.53% 19.46% 1.670x
131 2017-05-31 … 2022-05-31 97.30% 15.59% 1.707x
132 2017-06-30 … 2022-06-30 91.53% 13.08% 1.694x
133 2017-07-31 … 2022-07-29 92.21% 15.16% 1.669x
134 2017-08-31 … 2022-08-31 90.11% 13.72% 1.672x
135 2017-09-29 … 2022-08-31 91.30% 13.56% 1.685x
136 2017-10-31 … 2022-10-31 85.12% 11.86% 1.655x
137 2017-11-30 … 2022-11-30 84.26% 12.52% 1.638x
138 2017-12-29 … 2022-11-30 86.14% 12.46% 1.655x
139 2018-01-31 … 2023-01-31 84.00% 11.01% 1.657x
140 2018-02-28 … 2023-02-28 78.30% 11.03% 1.606x
141 2018-03-29 … 2023-02-28 79.34% 11.72% 1.605x
142 2018-04-30 … 2023-04-28 76.39% 13.01% 1.561x
143 2018-05-31 … 2023-05-31 73.79% 12.95% 1.539x
144 2018-06-29 … 2023-05-31 75.17% 13.01% 1.550x
145 2018-07-31 … 2023-07-31 80.98% 14.67% 1.578x
146 2018-08-31 … 2023-08-31 74.44% 13.51% 1.537x
147 2018-09-28 … 2023-08-31 73.53% 13.56% 1.528x
148 2018-10-31 … 2023-10-31 72.39% 12.60% 1.531x
149 2018-11-30 … 2023-11-30 75.44% 14.58% 1.531x
150 2018-12-31 … 2023-12-29 79.68% 17.26% 1.532x
151 2019-01-31 … 2024-01-31 77.61% 16.27% 1.528x
152 2019-02-28 … 2024-01-31 77.26% 15.94% 1.529x
153 2019-03-29 … 2024-03-28 83.64% 17.50% 1.563x
154 2019-04-30 … 2024-04-30 80.36% 15.50% 1.562x
155 2019-05-31 … 2024-05-31 84.47% 18.12% 1.562x
156 2019-06-28 … 2024-06-28 82.80% 17.99% 1.549x
157 2019-07-31 … 2024-07-31 77.72% 17.70% 1.510x
158 2019-08-30 … 2024-08-30 78.72% 18.41% 1.509x
159 2019-09-30 … 2024-09-30 80.12% 18.65% 1.518x
160 2019-10-31 … 2024-10-31 79.95% 17.87% 1.527x
161 2019-11-29 … 2024-11-29 87.03% 18.64% 1.576x
162 2019-12-31 … 2024-12-31 80.59% 17.62% 1.535x
163 2020-01-31 … 2025-01-31 83.32% 18.07% 1.553x
164 2020-02-28 … 2025-02-28 80.72% 19.00% 1.519x
165 2020-03-31 … 2025-03-31 80.59% 19.24% 1.515x
166 2020-04-30 … 2025-04-30 75.63% 16.49% 1.508x
167 2020-05-29 … 2025-04-30 75.38% 15.80% 1.515x
168 2020-06-30 … 2025-06-30 77.33% 18.19% 1.500x
169 2020-07-31 … 2025-07-31 70.66% 17.87% 1.448x
170 2020-08-31 … 2025-08-29 64.86% 16.69% 1.413x
171 2020-09-30 … 2025-09-30 72.85% 18.57% 1.458x
172 2020-10-30 … 2025-09-30 76.34% 19.43% 1.477x
173 2020-11-30 … 2025-11-28 68.58% 17.77% 1.431x
174 2020-12-31 … 2025-12-31 70.07% 16.92% 1.455x
175 2021-01-29 … 2025-12-31 44.35% 17.20% 1.232x
176 2021-02-26 … 2026-01-30 52.52% 17.04% 1.303x
177 2021-03-31 … 2026-03-31 50.67% 14.07% 1.321x
178 2021-04-30 … 2026-04-30 59.12% 16.03% 1.371x
179 2021-05-28 … 2026-04-30 58.67% 16.22% 1.365x
Notes
mode=explore; family=recovery-quality-regime-momentum-hybrid New hybrid family built by combining the recovery-quality champion's repaired-rebound architecture with the regime-momentum-quality-value family's explicit bull-vs-defense arbitration, but turning them into a three-stage handoff instead of a flat blend: leadership branch rewards already-confirmed winners, repair branch promotes mid-stage recoveries only when durability agrees, and defense branch keeps low-vol profitable survivors in charge unless a rebound is unusually well-supported. The conflict resolver is explicit: rebound without quality is capped in repair/defense, while strong quality plus trend can outrank a deeper drawdown even if the raw rebound sleeve looks tempting. Deliberate metric coverage this run: actively use one momentum cluster (return_1m_pct, return_3m_pct, return_6m_pct, momentum_12_1_pct), one trend/recovery cluster (from_200d_ma_pct plus from_52w_high_pct), one volatility check, two liquidity checks, one income check, one valuation check, one growth cluster, one quality cluster, and one size tilt via direct market-cap thresholds. Deliberate weight-0 metrics this run are return_12m_pct, avg_daily_volume_3m, dividend_ttm, forward_pe, peg, operating_income_growth_pct, free_cash_flow_growth_pct, forward_eps, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, and free_cash_flow_ttm so the backtest can test a different information mix from the recent recovery-quality degradations without silently forgetting the full menu.
Lesson notes
#823 · degrade · relative_return Δ -0.0940 · parent exp_992 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/recovery-quality-regime-momentum-hybrid: relative_return 1.2731x (delta -0.0940 vs exp_992); win-rate 98.324%, worst-window 0.984472, dispersion 29.2213%.
Monthly picks — top stocks selected each month (whole timeline)
timeline — 240 months · top 15 each
Month 123456789101112131415
2006-07-31 GOOGL GOOG XOM MSFT AAPL BAC MO C T PFE GS CVX JNJ JPM MRK
2006-08-31 MAY GOOGL GOOG XOM AAPL MSFT MO CSCO PFE T JNJ BAC INTC ORCL JPM
2006-09-29 MAY AAPL XOM GOOGL GOOG AKAM ORCL PFE BAC CSCO T MRK GS HPQ MS
2006-10-31 MAY GOOGL GOOG AAPL XOM MSFT GS CSCO ORCL T CMCSA MCD BAC NVDA AKAM
2006-11-30 MAY GOOG GOOGL AAPL XOM MSFT CSCO MA GS ICE ATI ORCL PFE CVX MCD
2006-12-29 MAY GOOG GOOGL AAPL MSFT XOM CSCO ICE GS T TWX MO IBM MA AT
2007-01-31 MAY AAPL GOOG GOOGL ICE MSFT MA CSCO T GS WYNN GT MGM C XOM
2007-02-28 MAY ICE AAPL CF GOOG GOOGL MSFT MGM MA GS GT ALGN T ATI WY
2007-03-30 MAY AAPL GT GS GOOG GOOGL XOM T CF MO ANDV DLX ATI DD MLM
2007-04-30 MAY AAPL GT XOM ANDV GS GOOG MO AMZN GOOGL T CVX IBM MSFT HON
2007-05-31 AAPL MAY GT GS FCX GOOG GOOGL VLO AMZN XOM MA ANDV T FSLR IBM
2007-06-29 MAY AAPL FSLR KMG GOOG CF GOOGL MA XOM INTC FCX VLO AL T GT
2007-07-31 AAPL FSLR GOOG GOOGL XOM INTC GE AL CSCO IBM AMZN CVX FCX COP VZ
2007-08-31 AAPL GOOG GOOGL XOM INTC CSCO FSLR AMZN GRMN GE FCX IBM NOV SLB ISRG
2007-09-28 AAPL XOM GOOG GS GE GOOGL CSCO GRMN WYNN INTC FCX AMZN COP NOV CVX
2007-10-31 AAPL GOOG CF ISRG FSLR GOOGL MOS GS INTC FCX XOM MSFT WYNN CSCO NOV
2007-11-30 FSLR AAPL GOOG GOOGL MSFT GS ISRG XOM CF MO AMZN JNJ GRMN FCX INTC
2007-12-31 AAPL FSLR GOOG GOOGL MOS MSFT XOM ISRG CF GS INTC FCX SLB UNH MA
2008-01-31 AAPL MOS MSFT GOOG GOOGL XOM MO WMT JPM KO DE INCY JNJ LMT MA
2008-02-29 MOS CF AAPL WMT XOM DVN OXY IBM APA HAL FCX KO GOOG CVX CNX
2008-03-31 AAPL MOS WMT CF MA IBM DVN PG APA XOM KO HAL ABT MEE PRGO
2008-04-30 AAPL GOOG MOS FSLR XOM WMT MA CF GOOGL CVX HAL IBM APA MEE CLF
2008-05-30 AAPL MOS MA CF GOOG FSLR CLF MEE GOOGL CVX BKNG ESV IBM WMT OXY
2008-06-30 AAPL MEE MA MOS ESV CLF XOM WMT CVX HAL SWN IBM NBR OXY BTUUQ
2008-07-31 AAPL SWN MA WMT CF IBM ESV BCR JNJ QCOM DF MOS MEE FSLR ABT
2008-08-29 AAPL CF FSLR BCR JNJ WMT MCD SWN PG WFC ADBE CLF APOL QCOM SCHW
2008-09-30 WMT SWN JNJ PG BCR MCD WFC DF ABT JPM GIS LMT PEP IBM MDLZ
2008-10-31 WMT WFC GIS PG JPM MCD ABT CPB ED AAPL AMGN SWN AZO BCR KR
2008-11-28 XOM WMT MCD PG AON ED ABT DLTR GIS AAPL SO KR AMGN CASY CLX
2008-12-31 XOM MCD WMT AMGN BMY PG AON VZ WFC SO GILD ABT AZO AAPL DLTR
2009-01-30 XOM ABT AMGN BMY MCD GILD AZO ED NFLX DLTR AAPL ROH SWN SO VRTX
2009-02-27 XOM AZO NFLX AAPL PCG VTRS VRTX DLTR ORLY AAP WMT NEM MNST LDOS EW
2009-03-31 AZO XOM NFLX WMT BMY DRI ED IBM AMZN NEM MCD AAPL ROST DLTR VTRS
2009-04-30 AAPL GOOG GS F GOOGL NFLX IBM AZO AN DRI ORCL AMZN JPM ROST XOM
2009-05-29 AAPL GS GOOG IBM XOM F JPM GOOGL MS MCD ORCL AZO DRI ROST BKNG
2009-06-30 CAR AAPL F GS GOOG IBM CAG MCHP ORCL HPQ PEG GOOGL JPM NEE INTC
2009-07-31 CAR F AAPL GOOG MCHP JNJ JPM GILD EOG GS GOOGL EBAY ISRG PG PFE
2009-08-31 CAR SSP AAPL BAC GS GOOG JPM WBD F GNW JNJ EBAY PFE PALM GIS
2009-09-30 CAR GNW SSP AAPL SANM GOOG HIG BKNG WBD WYNN PG F GS ABT PALM
2009-10-30 CAR GNW SW AAPL KMG HIG GS BKNG GOOG MSFT GGP F UIS FCX GOOGL
2009-11-30 KMG CAR GGP GNW BKNG GOOG AAPL FCX UIS WLL F GOOGL DDS MSFT SW
2009-12-31 CAR GGP AMD SANM UAL F AAPL GOOG WLL BKNG MU UIS GOOGL WFM STX
2010-01-29 SANM CAR F GNW UAL ACS INCY FITB GGP AAPL WLL ISRG SW RCL MA
2010-02-26 SANM UAL CAR GNW ACS F CLF WLL AAL GGP AAPL ISRG BAC LYV DAL
2010-03-31 GNW SANM UAL CLF INCY WLL F AAPL ETFC LVS BKNG LYV MTG GGP DPZ
2010-04-30 UAL ETFC SANM WLL GNW INCY AAPL LYV BKNG BBWI LVS DPZ GGP F VSTNQ
2010-05-28 NFLX UAL ETFC AAPL AAL C BBWI CMG LVS NTAP CMCSA ROST HON LULU CMI
2010-06-30 AAPL ETFC NEM C NFLX UAL BMY MO GIS MCD AZO HAS CMG BRK-B CB
2010-07-30 AAPL C UAL AAL GS LVS ETFC SBUX CMG MO NTAP AIG MCHP CRM AZO
2010-08-31 AAPL ETFC NEM LVS KO MCD MO BMY NFLX PEP CCU T AZO AKAM CB
2010-09-30 ETFC NFLX AAPL BKNG LVS CB NTAP PFE MCHP KO PGR LEG MO MCD AKAM
2010-10-29 ETFC LVS NFLX AAPL BKNG FFIV WLL UAL NTAP FCX AAL AKAM CMG EBAY FTNT
2010-11-30 ETFC LVS NFLX CMG FFIV VRTS AAPL BKNG UAL WLL AIG FCX BBWI NOV TXN
2010-12-31 ETFC LVS FCX WLL AIG VRTS ACAS AAPL LYB BKNG URI NOV FFIV NFLX CMI
2011-01-31 MAY ETFC AAPL LVS AIG WLL GOOG NFLX FCX BKNG C XOM GOOGL COP CMI
2011-02-28 MAY ETFC AAPL URI IPGP VIAV LVS TER NXPI XOM NOV LULU KLAC COP GOOG
2011-03-31 MAY IPGP URI AAPL ETFC LULU BKNG XOM ANDV COP NFLX NOV CAT BKR TER
2011-04-29 MAY IPGP LULU AAPL XOM BKNG CAT MCO MCHP ETFC BBWI ANDV ORCL IBM WYNN
2011-05-31 MAY IPGP BKNG MCO NFLX CF AAPL CAT EP HAL PM PSKY XOM DPZ BBWI
2011-06-30 MAY IPGP BKNG LULU EP BIIB WCG COG GR PSKY ULTA FTNT ABMD HAL NFLX
2011-07-29 AAPL LULU NFLX GOOG MCD IBM EXPE MSFT CF GOOGL WYNN SPG CTRA MTCH V
2011-08-31 AAPL IBM KO MSFT MCD CF JNJ ED NEM DPZ VZ ABT GOOG XOM AEP
2011-09-30 AAPL IBM KO MCD NEM ED JNJ VZ V GIS MA AZO AEP D INTC
2011-10-31 AAPL GOOG IBM GOOGL INTC MSFT KO MCD XOM V NEM KLAC ED VZ MA
2011-11-30 AAPL XOM GOOG IBM GOOGL INTC MA V VZ MCD PFE KO MSFT ED KLAC
2011-12-30 AAPL GOOG XOM GOOGL IBM V PFE MSFT VZ MCD MA INTC GE KO KLAC
2012-01-31 AAPL URI GE WFC IBM KLAC CF EOG PFE AMGN MCO INTC GOOG ADI MCD
2012-02-29 AAPL URI VLO V GE STX BEN CAT MSFT XOM GOOG CF INTC WBD WFC
2012-03-30 AAPL VLO BLDR URI BKNG V GILD CF INTC ADI STX KLAC GE ISRG WFC
2012-04-30 AAPL URI BKNG WYNN CF VLO V STX MA WBD ISRG BLDR AOS GE EXR
2012-05-31 AAPL AAL VRTX GILD NEE ISRG SPG DIS ROST DAL V WBD PFE WFC ORLY
2012-06-29 AAPL AAL VRTX GILD V DIS EQIX BKNG CF DG EBAY BMY EXPE VLO AOS
2012-07-31 AAPL EXPE PFE GE V AMGN GOOGL AEP GOOG EBAY DIS DG LEN VLO STX
2012-08-31 AAPL STX DHI GOOG GOOGL VRTX LEN EBAY QCOM VLO ANDV XOM AMGN WFC PHM
2012-09-28 PHM AAPL DHI STX LEN ANDV GOOG GOOGL BLDR VLO EXPE CF GILD EQIX LYB
2012-10-31 DHI BBBY PHM AAPL GOOG LEN VLO GOOGL MCO KBH CMCSA ALL AEP GILD BEN
2012-11-30 PHM BBBY REGN GILD WHR LEN LPX ALL PSX STZ CMCSA ANDV AMGN BLDR MCO
2012-12-31 PHM LPX REGN BAC EXPE WHR KBH LEN GILD LYB ANDV BBBY PSX MCO JPM
2013-01-31 NFLX OMX PHM KBH VLO THC LPX EXPE WHR VRTS ANDV APO GS GOOG PSX
2013-02-28 NFLX OMX VRTS VLO APO GILD GOOG LUV MPC GOOGL ANDV THC JPM LPX WBD
2013-03-28 OMX KKR NFLX VRTS GILD THC HRB PHM LUV VLO MPC ANDV CTRA MA AMGN
2013-04-30 OMX KKR NFLX FNMA MTG FMCC GOOG FSLR GILD VRTS LUV JNJ GOOGL THC APO
2013-05-31 FNMA FMCC OMX TSLA FSLR KKR MTG NFLX GOOG WDC GILD MCO C VRTS PSX
2013-06-28 OMX TSLA FNMA FMCC BBBY KKR GOOG GOOGL BKNG MU WDC MSFT STX MTG WFC
2013-07-31 OMX TSLA FNMA BBBY MTG KKR FMCC GME GOOG SVU GILD BKNG JNJ MCO C
2013-08-30 OMX TSLA MTG NFLX FL META BBY GME BKNG GOOG BBBY BAC CPRI GILD FNMA
2013-09-30 OMX TSLA NFLX META MU REGN BX MTG BKNG FL AXON DAL GOOG GILD MA
2013-10-31 OMX TSLA META MU FMCC FNMA GOOG AXON FL DAL NFLX BKNG NXPI GOOGL FANG
2013-11-29 OMX MU DAL NFLX FNMA META BX BKNG GOOG INCY MA INTU TSLA MCK MTG
2013-12-31 FNMA FMCC META MU INCY NFLX BX GOOG AAPL URI TSLA VLO KATE MA WYNN
2014-01-31 FMCC FNMA INCY TKO ILMN TSLA GOOG META AAL MU GOOGL BX WYNN NFLX VLO
2014-02-28 FMCC FNMA TSLA ILMN AAL META GOOG TKO WYNN MU BX GOOGL BKNG MGM INCY
2014-03-31 TKO FMCC FNMA TSLA ILMN URI GOOG RCL DAL META AAL WFC ORCL FSLR BAC
2014-04-30 TSLA MU FMCC AAPL DAL FNMA URI RCL PSX META FANG MRK ORCL DD FRX
2014-05-30 META MU AAPL DAL WLL URI FRX TPL SWKS AVGO AAL EOG TSLA NBR ORCL
2014-06-30 META MU AAPL WLL ILMN FANG TSLA WMB SWKS URI NBR NFX FRX SLB AAL
2014-07-31 META MU AAPL SWKS URI INTC WMB TPL FRX LRCX TWX EOG PANW GILD AVGO
2014-08-29 GILD AAPL MU MMI SWKS LUV URI ENPH INTC NXPI TPL META LYB LRCX RCL
2014-09-30 AAPL GILD META LUV MU ENPH RCL LRCX MSFT PANW INTC MO INTU SWKS KLAC
2014-10-31 AAPL PANW GILD MMI AMGN MU LUV ABBV META SWKS MO RCL MCO ENPH MSFT
2014-11-28 PAYC AAPL PANW LUV SWKS ABBV LRCX META MU AMGN NXPI RCL V KLAC MSFT
2014-12-31 SWKS AAPL PANW LUV AXON DAL EA V KMI RCL AMGN KR INTC WBA HD
2015-01-30 AAPL SWKS GILD PANW SBUX V SO KMI BX KR ED CCI LUV ORCL MMM
2015-02-27 AAPL SWKS PANW SBUX MO EA LULU KR V DLTR BX AVGO TXN ANDV WBA
2015-03-31 SWKS AAPL PANW SBUX CNC EA KR MNST ANDV COR MDT PFE LEN ELV VLO
2015-04-30 AAPL SWKS PANW SBUX CZR CNXT KMG HAS PAYC EA CI BLDR DIS VTRS NFLX
2015-05-29 SWKS CNXT AAPL CZR BTUUQ PANW SBUX GILD AVGO NFLX HUM INCY BX CI ELV
2015-06-30 GILD AAPL NFLX BTUUQ JPM PANW CI SBUX MA META HAS VTRS GS AET CMCSA
2015-07-31 GILD PLD NFLX SBUX JPM MA META BLDR AMGN LEN V HAS PANW EBAY CMCSA
2015-08-31 META AAPL V GILD CCI JPM EBAY BLDR MA SBUX BKNG GOOGL GOOG HAS CZR
2015-09-30 META AAPL V SBUX PSA BKNG GOOG MO GOOGL PGR ED NKE PEG PLD CCI
2015-10-30 AAPL GILD META GOOG V BKNG CCI PLD GOOGL MA MO PSA JPM DIS INTC
2015-11-30 GOOG GE V EXPE EBAY META GOOGL BAC AMZN VLO AAPL DHI PLD AMGN MO
2015-12-31 GOOG GE BKNG GOOGL V CCI AVGO PLD MO LUV AMGN AMZN VLO ISRG PSA
2016-01-29 GE GOOG META GOOGL V PSA MCD CCI MSFT MO NEE SO TXN JNJ AMZN
2016-02-29 GE GOOG META T VZ GOOGL TSN KLAC SPG MO ED PSA CCI MCD JNJ
2016-03-31 GOOG META YUM KLAC SPG AAPL T MO HAS TXN LRCX ORCL TSN IBM VZ
2016-04-29 CLF ABBV META HAS KLAC EBAY BKNG GE NEM MA RTX YUM UNP MDT JPM
2016-05-31 META NVDA TXN GOOG NXPI T CSCO LEG ABBV LRCX CDNS PFE PAYC DG KLAC
2016-06-30 NVDA CLF T CCI X JNJ OKE K ULTA EQIX VZ MO AMAT NEM AMD
2016-07-29 CLF AMD DHR NVDA META AAPL GOOG CSCO AMGN MDT T ABBV X SPG SPGI
2016-08-31 AMD WB NVDA X SPGI DHR AMAT GEN TXN CSCO LRCX QCOM INTC META CHTR
2016-09-30 WB AMD NVDA X SPGI AMAT DHR LITE HPQ QCOM CHTR WPX APA INTC JOY
2016-10-31 NVDA AAPL SPGI MA X META C JPM WB BAC BKNG MSFT TPL PANW DHR
2016-11-30 NVDA AMD X CLF FMCC WB FNMA AMAT BAC DHR LRCX TXN JPM CHTR TPL
2016-12-30 NVDA AMD X CLF BAC FMCC GS FNMA JPM MS RF KEY URI MSFT C
2017-01-31 NVDA FMCC FNMA X URI BAC AMD CLF CSX JPM AAPL AMAT MS GS TPL
2017-02-28 AMD CLF BAC NVDA URI X CSX AAPL GS JPM MS INCY HPQ RF BKNG
2017-03-31 AMD NVDA AAPL BAC URI JPM CSX ANET AMAT X HAS CHTR HPQ KLAC META
2017-04-28 AMD NVDA AAPL LRCX ANET CSX HPQ KMG BAC AMAT JPM META KLAC IDXX BKNG
2017-05-31 NVDA TTD LRCX AAPL KMG BX GOOG CSX AMAT META XYZ KHC ANET TSLA CHTR
2017-06-30 NVDA XYZ CSX AAPL TSLA BX ANET META ORCL BAC MCD ALGN BKNG HAS VRTX
2017-07-31 NVDA XYZ META ALGN WB SPGI AAPL CHTR VRTX LRCX HPQ BKNG AMAT ANET SEDG
2017-08-31 NVDA WB TTWO AAPL META VRTX BA NRG ALGN LRCX RCL V XYZ SEDG ANET
2017-09-29 NVDA WB TTWO LRCX MU XYZ BA BBBY SEDG ABBV META ANET V ALGN NRG
2017-10-31 BBBY NVDA XYZ MU ALGN LRCX TTWO SEDG AAPL TTD AMAT MSFT INTC TXN META
2017-11-30 ENPH BBBY XYZ ALGN SEDG NVDA ANET AAPL MU ABBV META LRCX JPM V BAC
2017-12-29 BBBY SEDG ENPH ANET BAC URI AAPL XYZ JPM MSFT KKR BA INTC META CSCO
2018-01-31 BBBY NKTR XYZ ANET NVDA KKR SEDG ALGN ABBV BAC JPM BA EC AMZN GOOG
2018-02-28 NKTR BBBY ENPH XYZ NVDA SEDG AMZN MU MA BA MSFT ABBV MTCH CSCO JPM
2018-03-29 NKTR ENPH MU LRCX XYZ SEDG NFLX BKNG AMZN CCI NVDA NEE ON NXPI YUM
2018-04-30 NKTR AMZN BKNG MU ENPH NFLX EXR SEDG MRVL V MA META SPGI EC NVDA
2018-05-31 MU MRVL AXON SEDG ENPH AMZN META V AAPL NFLX THC EXR LRCX TTD CCI
2018-06-29 TKO MU AMZN CCI META ENPH TTD NFLX V AAPL ETSY CVNA HET EXR NVDA
2018-07-31 HET CCI TKO MU AMZN AAPL GOOG V XYZ AXON NVDA SPG SVU CVNA PFE
2018-08-31 HET CVNA TKO XYZ TTD AMD DXCM ABMD AMZN ETSY ENPH AAPL CCI LULU AXON
2018-09-28 HET AMD TKO XYZ CVNA TTD ABMD CCI ETSY DXCM AMZN LULU UIS AAPL MTCH
2018-10-31 CCI HET AAPL EXR DXCM PFE PGR DIS SPG AMZN MSFT MRK ABMD VZ CI
2018-11-30 HET CCI EXR ETSY TSLA MRK AVGO PFE CI DUK AET RHT ESRX CMCSA NEE
2018-12-31 CCI HET EXR PFE MRK SBUX AVGO AET AZO NEE YUM DIS VZ DUK CME
2019-01-31 HET CCI FNMA EXR FMCC MTCH LRCX AMZN SBUX AVGO RHT NEE AZO ETSY NOW
2019-02-28 HET CCI FNMA FMCC ETSY NFLX LRCX EXR XYZ AVGO MTCH V SBUX NOW ENPH
2019-03-29 HET TTD CCI EXR ENPH FNMA AVGO LLY ETSY FMCC KLAC XRX MRK PEP PAYC
2019-04-30 HET TTD EXR ENPH CCI CVNA ANF MSFT AVP CSCO DIS KLAC PEP HON PGR
2019-05-31 HET CCI EXR ENPH META AMZN MTCH AMD PEP PAYC MSFT XRX LEN DIS LIN
2019-06-28 HET ENPH EXR CCI AMZN GD AAPL META NXPI TTD SEDG PEP AXP BKNG PAYC
2019-07-31 HET ENPH EXR CCI TTD SEDG MSFT PAYC AVP AAPL FISV MTCH DIS FIS SBUX
2019-08-30 ENPH HET CCI EXR AAPL SEDG GD QCOM PEP CVS GOOG BKNG LIN MSFT MRK
2019-09-30 HET CCI EXR SEDG AAPL BMY ENPH GOOG JPM INTC MSFT CVS PEP KLAC KKR
2019-10-31 HET CCI AAPL SEDG EXR AVP KLAC T BMY TER COST GNRC LRCX NEE MSFT
2019-11-29 HET AAPL JPM XRX KLAC BAC PODD GOOG AVP BMY VRTX TGT MSFT C CCI
2019-12-31 HET AAPL TSLA CCI AMD ENPH BMY GOOG THC XRX AMGN SEDG JPM AVP SWKS
2020-01-31 HET TSLA CCI AAPL ENPH LLY GOOG MSFT PAYC BMY AMD XRX NEM JPM MS
2020-02-28 HET CCI TSLA AAPL LLY EXR MSFT GOOG AMZN BMY NEM DXCM GOOGL LM VRTX
2020-03-31 CCI AAPL TSLA MSFT AMZN EXR LLY NEM GILD DXCM AMT REGN GEN UST NFLX
2020-04-30 TSLA CCI AMZN AAPL MSFT AMT NEM DXCM LLY GILD EXR GOOG REGN GEN PGR
2020-05-29 TSLA CCI AAPL AMZN AMT EXR MSFT DXCM ENPH NEM GOOG LLY DDOG REGN NVDA
2020-06-30 TSLA CCI BBBY AAPL AMZN AMT MSFT DDOG NVDA NEM ETSY DXCM EXR META REGN
2020-07-31 BBBY TSLA EXR CCI AMT NEM ETSY AAPL ENPH NFLX XYZ URI GOOG REGN AMZN
2020-08-31 BBBY TSLA AAPL XYZ NVDA CVNA AMD ENPH AMZN SEDG ETSY PGR GOOG TSCO CCI
2020-09-30 BBBY TSLA PENN ENPH CVNA XYZ NVDA SEDG FDX AAPL GME TTD GNRC CCI PGR
2020-10-30 TUP TSLA ENPH EXR SEDG XYZ TTD NVDA AAPL FDX KLAC LOW ETSY MPWR URI
2020-11-30 MRNA TUP TSLA ENPH EXR TTD CCI CPRI GME SEDG XYZ AAPL ETSY MPWR NOW
2020-12-31 TSLA TUP ENPH GME MRNA EXR XYZ CRWD PENN CLF ETSY SEDG AAPL MS TTD
2021-01-29 GME TSLA MRNA EXR ENPH AAPL TUP ETSY CRWD GOOG XYZ PENN NOW CDNS LRCX
2021-02-26 GME EXR PSKY VIAC WBD MRNA TSLA KSS QEP DVN IVZ TUP TPR GS AMAT
2021-03-31 GME DVN TUP VIAC EXR QEP TPL CLF DISCA TSLA DISCK CCI CAR AMAT KSS
2021-04-30 GME DVN QEP EXR CAR MRNA BBWI TUP XEC TPL CCI IVZ TSLA GS STX
2021-05-28 GME DVN EXR DDS MRNA XEC NUE CAR CCI IVZ BBWI GS MS COF BAC
2021-06-30 GME MRNA DDS ANF BX RRD BBWI GOOG MRO EXR NVDA RRC GS KKR GNRC
2021-07-30 MRNA GME BX RRD DDS BBWI MDP GOOG EXR NUE KKR CLF TGT FTNT MS
2021-08-31 GME MRNA RRD DDS BX KKR MDP SBNY SIVB GOOG GS NVDA FTNT EXR MSFT
2021-09-30 MRNA KKR TSLA BX RRD RRC JWN MRO GOOG CAR WFC AMD JPM PFE SIVB
2021-10-29 MRNA KKR GME CAR TSLA RRD MRO DDS BX DVN M RRC GOOG NVDA MDP
2021-11-30 CAR DVN TSLA MRNA EXR WFC BX NVDA KKR AMD MRO GM AAPL KLAC MU
2021-12-31 DVN RRD EXR CAR BLDR ON AAPL TSLA MRO PFE NVDA QCOM AVGO KKR AMD
2022-01-31 DVN WFC EXR MRO BX KLAC F RRD COP MO AAPL WY EOG APA KKR
2022-02-28 DVN EXR WFC MRO AAPL CVX COP RRD EOG CB TSLA MOS BAC MPC BRK-B
2022-03-31 EXR OXY DVN CF MOS MRO COP TSLA CAR APA FCX NVDA AAPL ABBV CVX
2022-04-29 EXR DVN CCI CVX XOM COP MRO CF EQT OXY BMY APA EOG ABBV MPC
2022-05-31 APA AMT OXY CCI EXR DVN MRO CVX XOM COP EQT EOG CF VLO MPC
2022-06-30 AMT APA EXR OXY BMY XOM PFE ABBV CCI JNJ MRK PEP NOC MCK ED
2022-07-29 EXR AMT APA CCI OXY XOM AAPL CVX CF BMY HRB PEP TSLA JNJ MCD
2022-08-31 EXR AMT DVN OXY CCI COP CF XOM MRO CVX HRB AAPL MCK GIS EQT
2022-09-30 EXR COP AMT XOM FSLR OXY DVN VRTX HRB GIS CF MPC CEG REGN AZO
2022-10-31 EXR DVN COP XOM CVX AMT OXY MRO FSLR AAPL CEG PEP AMGN BMY MPC
2022-11-30 UCL T CF APA SPG BMY VRTX SCHW XOM KLAC CSCO BRK-B COP V HAL
2022-12-30 UCL COP EOG PFE AVGO FSLR VLO T KLAC SPG PHM CSCO SYK APA ABBV
2023-01-31 UCL CCI T AMT EXR RCL SPGI CSCO SPG APA NFLX AIG XOM KLAC V
2023-02-28 UCL EXR RCL URI BKNG MTW MO AVGO NVDA STLD CSCO ON PANW ADI SPG
2023-03-31 EXR NVDA VLO UCL KLAC QCOM TXN BKNG ADBE NXPI INTU SMCI PSX AAPL ADI
2023-04-28 PHM UCL GOOG BKNG AAPL PSX META MO VRTX NVDA MSFT EXR PEP XOM LEN
2023-05-31 EXR NVDA SMCI AAPL AVGO TSLA META MSFT PHM GOOG BKNG RCL GE V CSCO
2023-06-30 SMCI NVDA RCL CCL META BLDR NCLH H AVGO PLTR PHM VRT BKNG DAL KLAC
2023-07-31 CVNA SMCI RCL TSLA NVDA PLTR H NCLH EXR CCL BKNG VLO SPG PSX AAPL
2023-08-31 CVNA VRT SMCI NVDA APP TSLA DAL AVGO CCL RCL EMR V GOOG ANET BKNG
2023-09-29 EXR NVDA TSLA ANF META JPM AVGO PSX AAPL MSFT APP AMGN EMR BKNG VRT
2023-10-31 EXR NVDA VRT ANF MSFT AMT AVGO META PSX CSCO V MPC AMGN AAPL COP
2023-11-30 EXR CCI ANF KKR VRT NVDA CRWD AMT CB META ANET CCL GPS SPG MSFT
2023-12-29 CVNA COIN ANF EXR VRT NVDA FNMA CRWD GPS KKR RCL META APP AVGO URI
2024-01-31 ANF SMCI VRT NVDA CRWD EXR FNMA KKR META IBM AVGO ANET RCL FMCC UBER
2024-02-29 SMCI ANF CVNA NVDA ADCT KKR VRT CRWD COIN GE META EXR DYN AMD AVGO
2024-03-28 SMCI CVNA NVDA ADCT VRT COIN KKR ANF VST EXR GE DYN HOOD APP WSM
2024-04-30 CVNA SMCI ADCT VRT NVDA ANF VST GE KKR EXR APP DYN DELL WSM NRG
2024-05-31 CVNA ANF NVDA VST VRT SMCI KKR EXR APP HOOD COIN DYN DELL GPS NRG
2024-06-28 NVDA ANF CVNA VST KKR SMCI DYN EXR APP VRT HOOD DELL GOOG CRWD RCL
2024-07-31 NVDA CVNA EXR KKR DYN ANF LUMN BX PGR VST THC ANET HWM URI APP
2024-08-30 LUMN EXR NVDA DYN CVNA KKR CCI PGR AMT NEM GS THC ANF GDDY JPM
2024-09-30 LUMN EXR CVNA NVDA CCI APP KKR VST PGR AMT DYN GEV IBM PLTR RCL
2024-10-31 CVNA LUMN APP NVDA EXR VST GEV KKR PLTR RCL CCI PGR FICO TPL META
2024-11-29 APP CVNA LUMN PLTR NVDA TPL VST HOOD AXON EXR GEV FMCC UAL VRT RCL
2024-12-31 APP PLTR NVDA TSLA FMCC FNMA HOOD VST AIG GM UAL GOOG AXON WDAY GEV
2025-01-31 APP FMCC PLTR FNMA HOOD CVNA VST TSLA UAL AXON RCL GS GEV JPM MMM
2025-02-28 FNMA FMCC AIG PLTR CCI HOOD APP WYNN EXR MMM UBER PGR AMT TPR NVDA
2025-03-31 EXR AMT PGR JPM BRK-B WFC T FOX PLTR NEM TRV AEP MO FNMA ALL
2025-04-30 PLTR AMT FNMA EXR PGR PM VRSN NFLX JPM NEM BRK-B AEP TRV T MO
2025-05-30 FNMA PLTR HOOD WDC FMCC APP EXR NVDA KLAC ALL PM AMT GEV C UBER
2025-06-30 HOOD PLTR WDC FNMA CAR FMCC EXR GEV URI CF COIN GILD AMT NVDA JPM
2025-07-31 HOOD WDC PLTR GEV NVDA COIN SMCI GILD GOOG CAR UBER STX CVNA GOOGL NEM
2025-08-29 ECHO HOOD PLTR WDC NVDA EXR STX APP UCL NEM AAPL FNMA MPWR FMCC GEV
2025-09-30 HOOD APP WDC FMCC FNMA STX PLTR ECHO LITE MU NVDA NEM LRCX GOOG TSLA
2025-10-31 HOOD WDC MU NVDA STX TE APP ECHO CIEN PLTR LITE AMD EXR LUMN LRCX
2025-11-28 LITE WDC MU HOOD ECHO CIEN STX GOOG TE NEM GOOGL LRCX EXR AVGO GILD
2025-12-31 LITE TE ECHO WDC MU CIEN STX GOOG NEM WBD LRCX NKTR ALB GOOGL COHR
2026-01-30 TE MU LITE WDC ECHO STX CIEN LRCX GILD GOOG NEM ALB COHR GOOGL NVDA
2026-02-27 LITE WDC MU CIEN COHR STX GILD LRCX FIX NEM GLW ECHO VIAV TER GOOG
2026-03-31 LITE CIEN WDC GILD EXR APA MU STX CCI ECHO KLAC VIAV COHR GLW TER
2026-04-30 LITE EXR CCI MU WDC CIEN STX VIAV INTC NVDA MRVL APA COHR GOOG GILD
2026-05-29 MU CCI DELL LITE WDC STX NVDA INTC AMD EXR MRVL CIEN SEDG AMT GLW
2026-06-26 MU WDC INTC STX LITE DELL MRVL AMD GLW EXR CIEN LRCX TER KLAC FLEX
Scoring script (python)
FORMULA_NAME = "Recovery Quality Regime Momentum Handoff (v1106)"
LOGIC_VARIANT_COUNT = 3
NOTES = """mode=explore; family=recovery-quality-regime-momentum-hybrid
New hybrid family built by combining the recovery-quality champion's repaired-rebound architecture with the regime-momentum-quality-value family's explicit bull-vs-defense arbitration, but turning them into a three-stage handoff instead of a flat blend: leadership branch rewards already-confirmed winners, repair branch promotes mid-stage recoveries only when durability agrees, and defense branch keeps low-vol profitable survivors in charge unless a rebound is unusually well-supported. The conflict resolver is explicit: rebound without quality is capped in repair/defense, while strong quality plus trend can outrank a deeper drawdown even if the raw rebound sleeve looks tempting.
Deliberate metric coverage this run: actively use one momentum cluster (return_1m_pct, return_3m_pct, return_6m_pct, momentum_12_1_pct), one trend/recovery cluster (from_200d_ma_pct plus from_52w_high_pct), one volatility check, two liquidity checks, one income check, one valuation check, one growth cluster, one quality cluster, and one size tilt via direct market-cap thresholds. Deliberate weight-0 metrics this run are return_12m_pct, avg_daily_volume_3m, dividend_ttm, forward_pe, peg, operating_income_growth_pct, free_cash_flow_growth_pct, forward_eps, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, and free_cash_flow_ttm so the backtest can test a different information mix from the recent recovery-quality degradations without silently forgetting the full menu."""

RECOVERY_SLEEVE = {
    "from_200d_ma_pct": (0.34, +1),
    "from_52w_high_pct": (0.28, +1),
    "return_3m_pct": (0.24, +1),
    "return_1m_pct": (0.14, +1),
}

QUALITY_SLEEVE = {
    "operating_margin_pct": (0.22, +1),
    "free_cash_flow_margin_pct": (0.24, +1),
    "revenue_growth_pct": (0.18, +1),
    "eps_growth_pct": (0.14, +1),
    "trading_days_3m": (0.10, +1),
    "avg_daily_dollar_volume_3m": (0.12, +1),
}

MOMENTUM_SLEEVE = {
    "momentum_12_1_pct": (0.36, +1),
    "return_6m_pct": (0.30, +1),
    "from_200d_ma_pct": (0.20, +1),
    "realized_vol_3m": (0.14, -1),
}

DEFENSE_SLEEVE = {
    "realized_vol_3m": (0.28, -1),
    "from_200d_ma_pct": (0.16, +1),
    "operating_margin_pct": (0.18, +1),
    "free_cash_flow_margin_pct": (0.20, +1),
    "trading_days_3m": (0.08, +1),
    "avg_daily_dollar_volume_3m": (0.10, +1),
}


def _coverage_weighted_score(symbol, zmaps, weights):
    total = 0.0
    seen = 0.0
    for metric, (weight, sign) in weights.items():
        z = zmaps[metric].get(symbol)
        if z is not None:
            total += weight * sign * z
            seen += weight
    if seen <= 0.0:
        return 0.0
    return total / seen


def _avg_present(*values):
    total = 0.0
    count = 0
    for value in values:
        if value is not None:
            total += value
            count += 1
    if count == 0:
        return None
    return total / count


def _branch(regime):
    breadth = regime.get("breadth", 0.0) or 0.0
    med_trend = regime.get("median_from_200d_ma_pct", 0.0) or 0.0
    med_mom = regime.get("median_momentum_12_1_pct", 0.0) or 0.0
    avg_vol = regime.get("avg_realized_vol_3m", 0.0) or 0.0

    if regime.get("bull") and breadth >= 0.60 and med_trend >= 3.0 and med_mom >= 4.0:
        return "leadership"
    if breadth <= 0.46 or med_trend <= -2.0 or avg_vol >= 31.0:
        return "defense"
    return "repair"


def score_universe(stocks, regime, ctx):
    metrics = {}
    for book in (RECOVERY_SLEEVE, QUALITY_SLEEVE, MOMENTUM_SLEEVE, DEFENSE_SLEEVE):
        for metric in book:
            metrics[metric] = True

    zmaps = {}
    for metric in metrics:
        zmaps[metric] = ctx.z(metric)

    branch = _branch(regime)
    scores = {}

    for row in stocks:
        sym = row["symbol"]

        recovery = _coverage_weighted_score(sym, zmaps, RECOVERY_SLEEVE)
        quality = _coverage_weighted_score(sym, zmaps, QUALITY_SLEEVE)
        momentum = _coverage_weighted_score(sym, zmaps, MOMENTUM_SLEEVE)
        defense = _coverage_weighted_score(sym, zmaps, DEFENSE_SLEEVE)

        trend = row.get("from_200d_ma_pct")
        drawdown = row.get("from_52w_high_pct")
        ret1 = row.get("return_1m_pct")
        ret3 = row.get("return_3m_pct")
        ret6 = row.get("return_6m_pct")
        mom = row.get("momentum_12_1_pct")
        vol = row.get("realized_vol_3m")
        trading_days = row.get("trading_days_3m")
        dollar_vol = row.get("avg_daily_dollar_volume_3m")
        div_yield = row.get("dividend_yield_ttm_pct")
        pe = row.get("pe")
        rev_growth = row.get("revenue_growth_pct")
        eps_growth = row.get("eps_growth_pct")
        op_margin = row.get("operating_margin_pct")
        fcf_margin = row.get("free_cash_flow_margin_pct")
        market_cap = row.get("market_cap")

        durability_gate = _avg_present(op_margin, fcf_margin, rev_growth, eps_growth)
        repair_gate = _avg_present(trend, drawdown, ret3, ret1)

        if branch == "leadership":
            total = 0.44 * momentum + 0.28 * quality + 0.18 * recovery + 0.10 * defense

            if trend is not None:
                if trend > 10:
                    total += 0.26
                elif trend > 4:
                    total += 0.14
                elif trend < 0:
                    total -= 0.55

            if drawdown is not None:
                if drawdown > -10:
                    total += 0.24
                elif drawdown > -20:
                    total += 0.10
                elif drawdown < -35:
                    total -= 0.34

            if mom is not None:
                if mom >= 8 and mom <= 30:
                    total += 0.22
                elif mom > 30:
                    total += 0.08
                elif mom < -6:
                    total -= 0.28

            if ret6 is not None:
                if ret6 >= 10 and ret6 <= 34:
                    total += 0.18
                elif ret6 < -6:
                    total -= 0.24

            if vol is not None:
                if vol < 24:
                    total += 0.10
                elif vol > 42:
                    total -= 0.20

            if pe is not None:
                if pe > 0 and pe < 28:
                    total += 0.12
                elif pe > 45:
                    total -= 0.18

            if div_yield is not None and div_yield >= 0.8 and div_yield <= 4.5:
                total += 0.05

            if market_cap is not None:
                if market_cap < 9000000000:
                    total += 0.07
                elif market_cap > 250000000000:
                    total -= 0.06

            if recovery > 0.35 and quality < -0.05:
                total -= 0.24
            elif momentum > 0.25 and quality > 0.10 and trend is not None and trend > 6:
                total += 0.14

        elif branch == "repair":
            total = 0.39 * recovery + 0.31 * quality + 0.18 * momentum + 0.12 * defense

            if drawdown is not None:
                if drawdown < -55:
                    total -= 0.82
                elif drawdown < -38:
                    total -= 0.24
                elif drawdown >= -32 and drawdown <= -10:
                    total += 0.30
                elif drawdown > -6:
                    total -= 0.08

            if trend is not None:
                if trend > 2 and trend <= 14:
                    total += 0.24
                elif trend < -8:
                    total -= 0.44

            if ret3 is not None:
                if ret3 >= 4 and ret3 <= 22:
                    total += 0.18
                elif ret3 > 30:
                    total -= 0.08
                elif ret3 < -8:
                    total -= 0.20

            if ret1 is not None:
                if ret1 >= 1 and ret1 <= 10:
                    total += 0.10
                elif ret1 > 16:
                    total -= 0.08
                elif ret1 < -10:
                    total -= 0.12

            if durability_gate is not None:
                if durability_gate > 12:
                    total += 0.14
                elif durability_gate < 1:
                    total -= 0.18

            if pe is not None:
                if pe > 0 and pe < 22:
                    total += 0.10
                elif pe > 40:
                    total -= 0.16

            if div_yield is not None and div_yield > 0.5:
                total += 0.05

            if trading_days is not None:
                if trading_days >= 61:
                    total += 0.08
                elif trading_days < 56:
                    total -= 0.12

            if dollar_vol is not None and dollar_vol < 2500000:
                total -= 0.10

            if market_cap is not None:
                if market_cap < 20000000000:
                    total += 0.08
                elif market_cap > 200000000000:
                    total -= 0.08

            if recovery > 0.18 and quality > 0.08:
                total += 0.18
            elif recovery > 0.20 and quality < -0.10:
                total -= 0.32

            if momentum > 0.30 and recovery < 0.00 and quality < 0.00:
                total -= 0.16

        else:
            total = 0.43 * defense + 0.29 * quality + 0.16 * momentum + 0.12 * recovery

            if vol is not None:
                if vol < 22:
                    total += 0.24
                elif vol > 40:
                    total -= 0.34

            if trend is not None:
                if trend > 1:
                    total += 0.18
                elif trend < -6:
                    total -= 0.48

            if drawdown is not None:
                if drawdown > -18:
                    total += 0.10
                elif drawdown < -40:
                    total -= 0.30

            if trading_days is not None:
                if trading_days >= 62:
                    total += 0.10
                elif trading_days < 57:
                    total -= 0.14

            if div_yield is not None:
                if div_yield >= 1.2 and div_yield <= 5.5:
                    total += 0.10
                elif div_yield == 0:
                    total -= 0.04

            if pe is not None:
                if pe > 0 and pe < 20:
                    total += 0.12
                elif pe > 35:
                    total -= 0.18

            if durability_gate is not None:
                if durability_gate > 10:
                    total += 0.12
                elif durability_gate < 0:
                    total -= 0.18

            if market_cap is not None and market_cap > 12000000000:
                total += 0.05

            if recovery > 0.20 and defense < 0.00:
                total -= 0.26
            elif defense > 0.12 and quality > 0.08 and trend is not None and trend > 0:
                total += 0.12

        if repair_gate is not None and repair_gate < -8:
            total -= 0.12

        scores[sym] = total

    return scores