exp_1109

Acceleration Relay Into 52-Week Repairs (Explore v1109)

← All V2 experiments
Relative return
1.323x
Excess vs bench
32.31%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
51.54%
Mean benchmark gain
14.08%
Mean excess gain
37.45%
Dispersion (ref)
26.48%
Win-rate vs bench (ref)
100.00%
Worst / best ratio (ref)
1.015x / 1.693x
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 20.98% 2.22% 1.184x
2011-07-01 … 2016-06-30 39.39% 13.74% 1.225x
2016-07-01 … 2021-06-30 88.44% 20.63% 1.562x
2021-07-01 … 2026-06-26 67.48% 15.48% 1.450x
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.323x · beat benchmark in 179/179
#WindowStrategyBenchmarkRatio
1 2006-07-31 … 2011-07-29 18.25% 1.79% 1.162x
2 2006-08-31 … 2011-08-31 16.67% 0.21% 1.164x
3 2006-09-29 … 2011-08-31 14.38% -0.14% 1.145x
4 2006-10-31 … 2011-10-31 13.46% 0.23% 1.132x
5 2006-11-30 … 2011-11-30 11.89% -0.05% 1.119x
6 2006-12-29 … 2011-11-30 12.86% -0.32% 1.132x
7 2007-01-31 … 2012-01-31 12.00% 0.93% 1.110x
8 2007-02-28 … 2012-01-31 11.20% 1.43% 1.096x
9 2007-03-30 … 2012-03-30 12.68% 3.09% 1.093x
10 2007-04-30 … 2012-04-30 11.23% 2.42% 1.086x
11 2007-05-31 … 2012-05-31 7.72% 0.60% 1.071x
12 2007-06-29 … 2012-06-29 7.22% 1.92% 1.052x
13 2007-07-31 … 2012-07-31 6.62% 2.69% 1.038x
14 2007-08-31 … 2012-08-31 6.40% 2.95% 1.034x
15 2007-09-28 … 2012-09-28 5.29% 3.20% 1.020x
16 2007-10-31 … 2012-10-31 4.91% 2.60% 1.022x
17 2007-11-30 … 2012-11-30 5.61% 3.45% 1.021x
18 2007-12-31 … 2012-12-31 5.28% 3.69% 1.015x
19 2008-01-31 … 2013-01-31 10.55% 5.85% 1.044x
20 2008-02-29 … 2013-02-28 12.59% 6.82% 1.054x
21 2008-03-31 … 2013-03-28 16.12% 7.73% 1.078x
22 2008-04-30 … 2013-04-30 16.88% 7.51% 1.087x
23 2008-05-30 … 2013-04-30 16.28% 7.81% 1.079x
24 2008-06-30 … 2013-06-28 24.63% 9.33% 1.140x
25 2008-07-31 … 2013-07-31 28.88% 10.48% 1.167x
26 2008-08-29 … 2013-07-31 29.58% 10.52% 1.172x
27 2008-09-30 … 2013-09-30 37.05% 11.48% 1.229x
28 2008-10-31 … 2013-10-31 40.74% 15.76% 1.216x
29 2008-11-28 … 2013-10-31 42.84% 17.46% 1.216x
30 2008-12-31 … 2013-12-31 44.51% 18.44% 1.220x
31 2009-01-30 … 2013-12-31 46.59% 20.64% 1.215x
32 2009-02-27 … 2014-01-31 52.29% 21.63% 1.252x
33 2009-03-31 … 2014-03-31 50.46% 20.60% 1.248x
34 2009-04-30 … 2014-04-30 48.01% 19.00% 1.244x
35 2009-05-29 … 2014-04-30 48.59% 18.32% 1.256x
36 2009-06-30 … 2014-06-30 50.09% 19.01% 1.261x
37 2009-07-31 … 2014-07-31 44.10% 17.39% 1.228x
38 2009-08-31 … 2014-08-29 44.06% 17.70% 1.224x
39 2009-09-30 … 2014-09-30 41.05% 16.64% 1.209x
40 2009-10-30 … 2014-09-30 45.53% 17.08% 1.243x
41 2009-11-30 … 2014-11-28 43.46% 16.82% 1.228x
42 2009-12-31 … 2014-12-31 41.04% 16.28% 1.213x
43 2010-01-29 … 2014-12-31 42.83% 17.23% 1.218x
44 2010-02-26 … 2015-01-30 40.40% 15.80% 1.212x
45 2010-03-31 … 2015-03-31 40.48% 15.40% 1.217x
46 2010-04-30 … 2015-04-30 40.36% 15.38% 1.216x
47 2010-05-28 … 2015-04-30 43.66% 17.09% 1.227x
48 2010-06-30 … 2015-06-30 47.65% 17.45% 1.257x
49 2010-07-30 … 2015-06-30 47.60% 16.43% 1.268x
50 2010-08-31 … 2015-08-31 44.65% 15.76% 1.249x
51 2010-09-30 … 2015-09-30 40.86% 13.61% 1.240x
52 2010-10-29 … 2015-09-30 38.74% 13.06% 1.227x
53 2010-11-30 … 2015-11-30 39.68% 15.09% 1.214x
54 2010-12-31 … 2015-12-31 38.71% 13.55% 1.222x
55 2011-01-31 … 2016-01-29 35.74% 11.90% 1.213x
56 2011-02-28 … 2016-01-29 36.61% 11.53% 1.225x
57 2011-03-31 … 2016-03-31 36.88% 12.90% 1.212x
58 2011-04-29 … 2016-04-29 37.01% 12.39% 1.219x
59 2011-05-31 … 2016-05-31 36.34% 12.94% 1.207x
60 2011-06-30 … 2016-06-30 36.95% 13.30% 1.209x
61 2011-07-29 … 2016-07-29 43.49% 14.52% 1.253x
62 2011-08-31 … 2016-08-31 45.68% 15.19% 1.265x
63 2011-09-30 … 2016-09-30 47.29% 16.32% 1.266x
64 2011-10-31 … 2016-10-31 43.77% 14.02% 1.261x
65 2011-11-30 … 2016-11-30 47.18% 14.66% 1.284x
66 2011-12-30 … 2016-12-30 45.71% 14.92% 1.268x
67 2012-01-31 … 2017-01-31 45.82% 14.63% 1.272x
68 2012-02-29 … 2017-02-28 42.13% 14.78% 1.238x
69 2012-03-30 … 2017-02-28 42.08% 14.43% 1.242x
70 2012-04-30 … 2017-04-28 40.12% 14.61% 1.223x
71 2012-05-31 … 2017-05-31 42.77% 15.98% 1.231x
72 2012-06-29 … 2017-05-31 43.48% 15.44% 1.243x
73 2012-07-31 … 2017-07-31 42.13% 15.43% 1.231x
74 2012-08-31 … 2017-08-31 42.78% 15.12% 1.240x
75 2012-09-28 … 2017-08-31 42.86% 14.77% 1.245x
76 2012-10-31 … 2017-10-31 46.96% 16.12% 1.266x
77 2012-11-30 … 2017-11-30 47.15% 16.79% 1.260x
78 2012-12-31 … 2017-12-29 46.59% 16.93% 1.254x
79 2013-01-31 … 2018-01-31 46.59% 17.57% 1.247x
80 2013-02-28 … 2018-02-28 46.62% 16.21% 1.262x
81 2013-03-28 … 2018-02-28 43.92% 15.81% 1.243x
82 2013-04-30 … 2018-04-30 40.22% 14.25% 1.227x
83 2013-05-31 … 2018-05-31 32.16% 14.57% 1.154x
84 2013-06-28 … 2018-05-31 34.33% 14.97% 1.168x
85 2013-07-31 … 2018-07-31 32.25% 14.83% 1.152x
86 2013-08-30 … 2018-07-31 32.47% 15.59% 1.146x
87 2013-09-30 … 2018-09-28 34.57% 15.84% 1.162x
88 2013-10-31 … 2018-10-31 27.71% 12.89% 1.131x
89 2013-11-29 … 2018-10-31 27.81% 12.60% 1.135x
90 2013-12-31 … 2018-12-31 24.68% 9.93% 1.134x
91 2014-01-31 … 2019-01-31 24.28% 12.37% 1.106x
92 2014-02-28 … 2019-02-28 23.07% 12.38% 1.095x
93 2014-03-31 … 2019-03-29 25.67% 12.76% 1.115x
94 2014-04-30 … 2019-04-30 28.25% 13.73% 1.128x
95 2014-05-30 … 2019-04-30 27.74% 13.54% 1.125x
96 2014-06-30 … 2019-06-28 28.37% 12.81% 1.138x
97 2014-07-31 … 2019-07-31 30.80% 13.30% 1.154x
98 2014-08-29 … 2019-07-31 30.12% 12.80% 1.154x
99 2014-09-30 … 2019-09-30 29.96% 12.70% 1.153x
100 2014-10-31 … 2019-10-31 30.62% 12.91% 1.157x
101 2014-11-28 … 2019-10-31 30.31% 12.60% 1.157x
102 2014-12-31 … 2019-12-31 34.47% 14.16% 1.178x
103 2015-01-30 … 2019-12-31 34.52% 14.85% 1.171x
104 2015-02-27 … 2020-01-31 34.24% 14.04% 1.177x
105 2015-03-31 … 2020-03-31 30.93% 8.56% 1.206x
106 2015-04-30 … 2020-04-30 35.48% 11.65% 1.213x
107 2015-05-29 … 2020-05-29 35.63% 12.61% 1.204x
108 2015-06-30 … 2020-06-30 37.97% 13.64% 1.214x
109 2015-07-31 … 2020-07-31 45.63% 14.60% 1.271x
110 2015-08-31 … 2020-08-31 50.96% 18.07% 1.279x
111 2015-09-30 … 2020-09-30 50.31% 17.05% 1.284x
112 2015-10-30 … 2020-10-30 45.60% 14.60% 1.270x
113 2015-11-30 … 2020-11-30 53.70% 17.43% 1.309x
114 2015-12-31 … 2020-12-31 55.38% 18.65% 1.310x
115 2016-01-29 … 2021-01-29 91.39% 19.26% 1.605x
116 2016-02-29 … 2021-02-26 88.00% 19.79% 1.569x
117 2016-03-31 … 2021-03-31 91.68% 19.42% 1.605x
118 2016-04-29 … 2021-03-31 92.14% 19.66% 1.606x
119 2016-05-31 … 2021-05-28 90.39% 20.42% 1.581x
120 2016-06-30 … 2021-06-30 91.37% 21.06% 1.581x
121 2016-07-29 … 2021-06-30 88.44% 20.63% 1.562x
122 2016-08-31 … 2021-08-31 90.27% 21.75% 1.563x
123 2016-09-30 … 2021-09-30 86.46% 20.22% 1.551x
124 2016-10-31 … 2021-10-29 92.56% 22.50% 1.572x
125 2016-11-30 … 2021-11-30 92.40% 21.87% 1.579x
126 2016-12-30 … 2021-11-30 94.64% 21.75% 1.599x
127 2017-01-31 … 2022-01-31 81.83% 20.17% 1.513x
128 2017-02-28 … 2022-02-28 84.05% 18.51% 1.553x
129 2017-03-31 … 2022-03-31 87.67% 19.46% 1.571x
130 2017-04-28 … 2022-03-31 89.57% 19.46% 1.587x
131 2017-05-31 … 2022-05-31 85.08% 15.59% 1.601x
132 2017-06-30 … 2022-06-30 80.86% 13.08% 1.599x
133 2017-07-31 … 2022-07-29 82.53% 15.16% 1.585x
134 2017-08-31 … 2022-08-31 80.24% 13.72% 1.585x
135 2017-09-29 … 2022-08-31 80.15% 13.56% 1.586x
136 2017-10-31 … 2022-10-31 75.20% 11.86% 1.566x
137 2017-11-30 … 2022-11-30 73.63% 12.52% 1.543x
138 2017-12-29 … 2022-11-30 74.87% 12.46% 1.555x
139 2018-01-31 … 2023-01-31 71.09% 11.01% 1.541x
140 2018-02-28 … 2023-02-28 69.05% 11.03% 1.523x
141 2018-03-29 … 2023-02-28 69.66% 11.72% 1.519x
142 2018-04-30 … 2023-04-28 66.79% 13.01% 1.476x
143 2018-05-31 … 2023-05-31 69.96% 12.95% 1.505x
144 2018-06-29 … 2023-05-31 70.71% 13.01% 1.511x
145 2018-07-31 … 2023-07-31 77.24% 14.67% 1.546x
146 2018-08-31 … 2023-08-31 75.14% 13.51% 1.543x
147 2018-09-28 … 2023-08-31 74.86% 13.56% 1.540x
148 2018-10-31 … 2023-10-31 74.29% 12.60% 1.548x
149 2018-11-30 … 2023-11-30 77.01% 14.58% 1.545x
150 2018-12-31 … 2023-12-29 85.30% 17.26% 1.580x
151 2019-01-31 … 2024-01-31 83.84% 16.27% 1.581x
152 2019-02-28 … 2024-01-31 83.80% 15.94% 1.585x
153 2019-03-29 … 2024-03-28 94.02% 17.50% 1.651x
154 2019-04-30 … 2024-04-30 89.12% 15.50% 1.637x
155 2019-05-31 … 2024-05-31 93.27% 18.12% 1.636x
156 2019-06-28 … 2024-06-28 89.83% 17.99% 1.609x
157 2019-07-31 … 2024-07-31 87.20% 17.70% 1.591x
158 2019-08-30 … 2024-08-30 89.95% 18.41% 1.604x
159 2019-09-30 … 2024-09-30 91.89% 18.65% 1.617x
160 2019-10-31 … 2024-10-31 93.31% 17.87% 1.640x
161 2019-11-29 … 2024-11-29 100.84% 18.64% 1.693x
162 2019-12-31 … 2024-12-31 95.03% 17.62% 1.658x
163 2020-01-31 … 2025-01-31 97.79% 18.07% 1.675x
164 2020-02-28 … 2025-02-28 95.90% 19.00% 1.646x
165 2020-03-31 … 2025-03-31 93.44% 19.24% 1.622x
166 2020-04-30 … 2025-04-30 88.28% 16.49% 1.616x
167 2020-05-29 … 2025-04-30 87.76% 15.80% 1.621x
168 2020-06-30 … 2025-06-30 86.48% 18.19% 1.578x
169 2020-07-31 … 2025-07-31 78.96% 17.87% 1.518x
170 2020-08-31 … 2025-08-29 77.42% 16.69% 1.520x
171 2020-09-30 … 2025-09-30 81.41% 18.57% 1.530x
172 2020-10-30 … 2025-09-30 84.95% 19.43% 1.549x
173 2020-11-30 … 2025-11-28 75.37% 17.77% 1.489x
174 2020-12-31 … 2025-12-31 78.80% 16.92% 1.529x
175 2021-01-29 … 2025-12-31 53.64% 17.20% 1.311x
176 2021-02-26 … 2026-01-30 60.37% 17.04% 1.370x
177 2021-03-31 … 2026-03-31 56.81% 14.07% 1.375x
178 2021-04-30 … 2026-04-30 64.39% 16.03% 1.417x
179 2021-05-28 … 2026-04-30 64.32% 16.22% 1.414x
Notes
mode=explore; family=acceleration-contrarian-52w-hybrid New hybrid family that combines the acceleration ladder with the contrarian 52-week recovery leader, but not as a flat blend: each regime computes separate acceleration and repair sleeves, then explicitly arbitrates between them so strong tapes prefer improving trend-continuation unless price is already overheated, while choppier or risk-off tapes only admit rebounds when the 52-week drawdown sits in a repairable band and liquidity/fundamental confirmation is good enough. Deliberate metric coverage this run: actively use one momentum cluster (1m, 3m, 6m, 12m, and 12_1 through acceleration and repair-confirmation relationships), one recovery cluster (from_52w_high_pct plus from_200d_ma_pct), one volatility check, one liquidity cluster (dollar volume plus trading days), one income check, one valuation check, one growth cluster, one quality cluster, and one size tilt. Deliberately weight avg_daily_volume_3m, dividend_ttm, pe, peg, eps_growth_pct, operating_income_growth_pct, free_cash_flow_growth_pct, free_cash_flow_margin_pct, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, and free_cash_flow_ttm at zero this run so the backtest can isolate whether the acceleration-versus-repair arbitration adds value beyond the parent families.
Lesson notes
#825 · degrade · relative_return Δ -0.1026 · parent exp_758 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/acceleration-contrarian-52w-hybrid: relative_return 1.3231x (delta -0.1026 vs exp_758); win-rate 100.0%, worst-window 1.015292, dispersion 26.4776%.
Monthly picks — top stocks selected each month (whole timeline)
timeline — 240 months · top 15 each
Month 123456789101112131415
2006-07-31 GOOGL GOOG XOM MSFT BAC GS AAPL MO T MRK CVX CMCSA C JPM ORCL
2006-08-31 MAY ILMN GOOG GRMN ADM XOM GOOGL STLD ICE FTI AAPL MTW TEX LVS FCX
2006-09-29 MAY AAPL GOOG GOOGL ILMN LVS ATI AAL MO MTW KMX GRMN AKAM TEX INTC
2006-10-31 MAY GOOG GOOGL AAPL AT BMET APCC GS BKNG UAL LVLT ALGN OMX ALXN HAS
2006-11-30 MAY GOOG MA AAPL GOOGL ICE CSCO ATI UAL MTCH CF NDAQ INCLF GS TPR
2006-12-29 MAY CF ICE AT GT GOOG UAL CE BMET GOOGL KMX AAPL MGM ALGN TEX
2007-01-31 MAY GT ICE MGM CF GOOG WYNN MA INCY GOOGL LVS EOP UIS DOC AAPL
2007-02-28 MAY CF ICE FSLR ON VMC GT CE WY BKNG ALGN MGM MLM DLX OI
2007-03-30 MAY CF ICE GT GOOG GOOGL AAPL WYNN QCOM ON HP WY DLX UIS CSCO
2007-04-30 MAY CF GT ICE ANDV HP AAPL MGM TTWO DLX MNST WYNN WY NRG UIS
2007-05-31 AAPL AMZN CLF GT AL DLX OI DJ ALXN MDR MA MHS JEC ATGE CF
2007-06-29 KMG FSLR CF AL AXON AAPL MA DECK NOV MOS GOOG ANDW JEC AMZN GOOGL
2007-07-31 AAPL FSLR CF AMZN AL AXON KMG MAY DLX MLM BKNG INTC CE VRSN CLF
2007-08-31 AAPL ALGN KMG MA AXON FSLR AL DECK AMZN CF FCX DJ CE COP CLF
2007-09-28 AAPL CF GRMN AMZN AXON AL MA MOS NOV GME ALGN KMG MPWR VRTX CMG
2007-10-31 AAPL ISRG GRMN MOS CF MPWR AMZN GOOG FTI SLB FSLR AXON GOOGL CMG ILMN
2007-11-30 FSLR AAPL ISRG GOOG CF GRMN FTI GOOGL NOV FLR MOS FCX WYNN AMZN LVS
2007-12-31 AAPL GOOG GOOGL MSFT XOM MCD PG ISRG GS KO INTC MRK JNJ NEE MO
2008-01-31 AAPL MSFT GOOG GOOGL MOS MO ADM BRK-B GS ABT HUM KO SO CRL BAX
2008-02-29 AAPL GOOG XOM MOS GS CF BRK-B PRGO GOOGL MA MO HAL BLK NEM MUR
2008-03-31 AAPL GOOG MOS MO WMT GS CAT OXY BDX EQT XOM MSFT NBR GOOGL APA
2008-04-30 AAPL GOOG MOS XOM WMT CVX GOOGL MA MEE DVN SLB RRC CF CSX ESV
2008-05-30 FSLR MOS MEE CF ESV CLF AAPL RRC SWN APA EOG PRGO BTUUQ NFLX BCR
2008-06-30 AAPL MEE WMT IBM ESV CVX TTWO MOS OXY COP BCR BTUUQ XOM HP MA
2008-07-31 AAPL ESV MEE SWN BCR IBM XOM GOOG SLB DF HAL GS BTUUQ WMT GE
2008-08-29 SWN ESV AAPL CLF BCR BTUUQ DF FSLR HP CF MEE FFIV MA FDO CELG
2008-09-30 AAPL BCR DF SWN FDO AMGN CEPH ACS BIG BNI COG BLL HCBK LEG CELG
2008-10-31 AAPL WFC CLX WWY GOOG MRSH ED AMGN XOM DLTR WMT BRL TFC CHD GE
2008-11-28 AAPL XOM GOOG WMT SHW AMGN CHD BRL GE MCD DLTR CLX GOOGL KR WFC
2008-12-31 XOM AAPL AMGN GOOG DGX BRL WFC BMY GE MCD DLTR PG SHW AJG GOOGL
2009-01-30 XOM AAPL GOOG BMY LDOS GILD SJM DISCA BRL ROH PNW AWK AMGN NFLX CVX
2009-02-27 XOM AAPL GOOG NFLX PCG VTRS CVX GOOGL AZO VRTX WMT MNST DLTR JNJ GE
2009-03-31 XOM AAPL AZO NEM GOOG AAP BR EW MNST BMY CVX PCG VTRS NFLX DRI
2009-04-30 AAPL GOOG XOM F GS GOOGL NFLX IBM BR AZO DRI VTRS AN AMZN BBY
2009-05-29 AAPL GS GOOG IBM F AZO FCX XOM GOOGL MS FFIV AN DRI WBD MNST
2009-06-30 CAR AAPL F GS WDC GOOG EXPE IBM JPM NFLX DRI GLW TSN TJX GOOGL
2009-07-31 CAR ASH STX F AAPL GT BAC GOOG EBAY LULU JPM CBRE DDS ISRG TT
2009-08-31 CAR F GNW BAC THC IP GT LULU CBRE PALM WHR GGP FCX MTG WFC
2009-09-30 CAR GNW PALM UIS SLG MTG F SSP FITB HIG BAC C COF GE MEE
2009-10-30 SW GNW UIS AIG KMG GGP LULU HIG AAPL FCX MAC LVS JBL GOOG FFIV
2009-11-30 KMG GGP BKNG INCY AMD AAPL CLF UIS WFM FCX AMZN WLL SLG GOOG DDS
2009-12-31 UAL SANM AMD GGP NYT INCY WFM UIS WLL JBL MU SLG BKNG GOOG ALK
2010-01-29 SANM ACS UAL INCY LYV DAL F AAL NYT REGN GNW ELV HUM HBAN DPZ
2010-02-26 UAL SANM ACS AAL LYV CLF RX AXON AAPL VIAV GNW GGP SMCI ETFC DPZ
2010-03-31 ETFC UAL CLF MTG INCY LYV RX SMCI VIAV GNW AAPL LULU WLL TSN F
2010-04-30 ETFC UAL MBI BC SANM AAPL URI LPX LYV WLL LVS ZION CMI VIAV NFLX
2010-05-28 UAL BC MTG SANM ETFC LYV MBI SSP INCY ZION WLL F BBWI AIV AAPL
2010-06-30 AAPL ETFC GS C HSY NFLX AKAM BMY UHS WLL SHW PRGO AZO ORLY CMG
2010-07-30 AAPL C GS ETFC HSY WY KDP AZO DG NEM DLTR AAP CCU COR MO
2010-08-31 AAPL LVS GS ETFC AZO KDP LYB HSY CTSH PRGO PM GPC DLR CASY ILMN
2010-09-30 ETFC NFLX AAPL LVS AAL MBI FFIV AKAM CASY CRM BKNG DDS CCU AIV CMI
2010-10-29 ETFC LVS AAPL NFLX BKNG FTNT EC FFIV WLL ACAS URI LYB VRTS CMG FCX
2010-11-30 ETFC LVS TSLA VRTS DECK AAPL NOV CMG FFIV FTNT URI NFLX BKNG WLL ACAS
2010-12-31 ETFC URI NXPI ACAS WLL AIG NOV AAPL VRTS LYB FCX RCL BWA DDS LVS
2011-01-31 MAY AAPL ETFC AIG C F NVDA URI BKNG MOS ON JPM VIAV NOV CMG
2011-02-28 MAY IPGP VIAV NXPI URI MTW AAPL CIEN TER ECHO LULU VLO SWKS ANDV NOV
2011-03-31 MAY AAPL URI ANDV ECHO IPGP MTW CTRA ULTA BKNG LULU NFLX EP WCG JEF
2011-04-29 MAY IPGP BIIB ABMD LULU CHTR ADS EP KSU REGN AAPL WCG ULTA COG GMCR
2011-05-31 IPGP REGN EP DPZ COG WCG DDS CEPH NFLX EA GME ABMD AAPL PSKY ANF
2011-06-30 MAY CEPH COG WCG EP ULTA BIIB MNST ABMD CTRA ADS KSU CBS GR HFC
2011-07-29 IPGP EP COG WCG ULTA AAPL REGN CEPH KSU ADS GMCR GR NFLX CBS PETM
2011-08-31 AAPL IBM MSFT AZO BIIB MDLZ CL CVX BBWI KMB MCD DLTR IRM PPL UST
2011-09-30 AAPL AZO VFC KMB NEM DLTR INTC BIIB V IBM PPL CL DUK BBWI UST
2011-10-31 AAPL GOOG KLAC IBM AZO DLTR INTC BIIB GOOGL VFC DG MDLZ KMB DUK MCD
2011-11-30 AAPL GOOG GOOGL XOM INTC DLTR KLAC CSCO AZO MCD IBM DG PM VZ PPL
2011-12-30 AAPL GOOG GOOGL XOM PM VZ INTC DLTR AZO VFC MDLZ MCD TJX CSCO IBM
2012-01-31 AAPL GNRC URI CF AAL MBI COG WCG FTNT MHK FBHS MNST ROK CERN TRMB
2012-02-29 URI AAPL REGN STX HCA SANM NXPI MOH GILD GNRC SWKS TIN MBI DD SIAL
2012-03-30 AAPL BLDR MOH NXPI PHM STX BAC URI COG BKNG FLS EQIX TT OI AKAM
2012-04-30 AAPL BLDR REGN FAST URI BKNG EQIX NXPI ITT KMI WCG EC MNST JBL FLT
2012-05-31 AAPL AAL BKNG REGN BLDR EC STX DDS GRMN ORLY MNST PHM KMI GPS HOG
2012-06-29 AAPL AAL BKNG MNST REGN BLDR VRTX STX EC EXPE ROST DDS EQIX EBAY INCY
2012-07-31 AAPL AAL MNST BKNG VRTX DG EXPE DLTR LEN DDS TDC TDG EQIX SHW LPX
2012-08-31 AAPL AAL STX EXPE VRTX PHM LPX EQIX UIS DG SHW INCY WOR DHI ANDV
2012-09-28 PHM AAPL VRTX LPX STX AAL ANDV KBH EQT DHI DDS EXPE UIS STZ IPGP
2012-10-31 BBBY PHM AAPL ANDV KBH REGN TMUS VRTX LPX AAL SHW STZ VLO GNRC DXCM
2012-11-30 KBH GNRC AAPL BBBY PHM TMUS LPX DHI ANDV GOOG STZ BKNG NRG REGN IRM
2012-12-31 LPX FSLR GNRC NFLX AXON MTG THC GNW BAC STX TEX BBBY LYB APTV KBH
2013-01-31 NFLX OMX THC VRTS META APO GNW BC TEX PHM MPC KBH BSX VLO HCA
2013-02-28 NFLX OMX APO VRTS MTG CPAY MPC HRB ANDV SW CTRA DXC THC HPQ LPX
2013-03-28 FNMA FMCC MTG OMX NFLX SVU VRTS GNW THC HRB ALK KKR CPAY BBY MPC
2013-04-30 FNMA FMCC OMX MTG FSLR NFLX BBBY TSLA SVU BBY ENPH KKR GME TMUS BIIB
2013-05-31 FNMA FMCC TSLA OMX MTG SVU REGN FSLR BKNG AAPL TMUS NFLX BBY ENPH KKR
2013-06-28 TSLA OMX BBBY FNMA MU FMCC GME TMUS CBOE LYV MTG CME DXCM GOOG SVU
2013-07-31 OMX TSLA FNMA MTG FMCC BBBY GME SVU META BSX EA BKNG TRIP FANG CSGP
2013-08-30 OMX TSLA META INCY BBY AAPL GME BKNG GT EPAM DXCM CPAY WEN AXON FL
2013-09-30 OMX TSLA META AXON KATE GT INCY MGM REGN BKNG RRD WEN CELG ETFC FLT
2013-10-31 OMX FMCC FNMA AXON TSLA META AAPL FANG PBI WST GOOG BBY TYL INCY EPAM
2013-11-29 OMX FNMA FMCC META MU IBKR INCY TKO BKNG PBI AAPL MKTX KATE HII NFLX
2013-12-31 FNMA FMCC META INCY TKO AAPL KATE HII RRD ILMN ETFC CELG FLT GOOG VLO
2014-01-31 TKO INCY ILMN META AAL FRX DXCM TSLA FMCC SMCI AYI FNMA NFLX SWY WYNN
2014-02-28 FMCC FNMA TSLA ILMN META AAL FRX TKO MGM TPL DXCM BKNG WYNN GOOG NBR
2014-03-31 TKO AAL NBR TSN HP FSLR ALK FMCC SWKS META URI EXC FRX GLW EIX
2014-04-30 CAR TSLA SWKS FANG AAPL NBR SANM META TRGP FRX DAL ATI MU EQT BKR
2014-05-30 WLL TPL AAPL META CAR AAL DAL EA MU NRG NFX EXC NCC SWKS TRGP
2014-06-30 NFX WMB MU FANG MMI TSLA TRGP SMCI WLL META AAPL NBR SWKS ILMN AAL
2014-07-31 SWKS AAPL META SVU TWX HCA TPL UHS DLR CMG LYB UAA INTC MU LUMN
2014-08-29 ENPH MMI AAPL SWKS GILD NFX TSLA THC MU TPL PAYC UHS HCA STLD CAR
2014-09-30 ENPH TPL AAPL TRGP CAR SWKS GILD TSLA META UHS MU FL STLD BBY TWX
2014-10-31 AAPL ENPH MNST BBBY EW INCY PANW CNC WDAY AMGN AXON EA EPAM NOW STE
2014-11-28 PAYC AAPL PANW SAPE MNST INCY EW AXON SWKS ZTS BBBY GMCR COV DXCM NCLH
2014-12-31 AXON AAPL KMX UAL AAL SWKS DXCM NCLH EA KR CASY BBWI PNW ENPH RCL
2015-01-30 SWKS AAPL AXON GILD CSGP INCY MNST RCL EA SIAL AAL NCLH PAYC KR KMX
2015-02-27 MAY AAPL CNC PANW IPGP MNST BSX SBUX SWKS DLTR HSP HII ON ANDV EPAM
2015-03-31 BTUUQ CNC SWKS AAPL INCY KMG COR CNXT VTSS SSP RMD KR FIX LII MSCI
2015-04-30 BLDR CZR BTUUQ CNXT KMG AAPL ABMD INCY VTRS NFX LYB AMZN DXCM NFLX VTSS
2015-05-29 BTUUQ CZR CNXT BLDR NFLX HUM SWKS INCY MMI CNC GILD PANW NXPI TSLA AAPL
2015-06-30 BTUUQ PAYC AAPL NFLX ANET SWKS BIIB NXPI GILD HUM AVGO CNC VMC VTRS LYB
2015-07-31 BTUUQ BLDR CNC COTY META PAYC CI AET INCY NFLX SWKS AAPL IBKR HUM ABMD
2015-08-31 AAPL META BKNG NFLX AMZN MDLZ GOOG GOOGL SBUX AYI AIZ HSP ACGL PSA GILD
2015-09-30 AAPL META BKNG AMZN GOOG GOOGL MDLZ CASY WEC EQIX HSP V ACN WRB PNW
2015-10-30 AAPL META GOOG AMZN BKNG GOOGL GILD AZO NFLX KLAC CCI WEC MDLZ EVRG PNW
2015-11-30 ABMD AMZN NFLX GOOG META FIX BLDR DXCM PODD FSLR EXPE ATVI LUV TYL VRSN
2015-12-31 AMZN AAPL META GOOG BKNG GE GOOGL ABMD AZO NFLX VRSN MSFT ATVI CASY DD
2016-01-29 AMZN AAPL META GOOG GE GOOGL ABMD MSFT CASY MCD AIZ T PSA HD TAP
2016-02-29 META GOOG AAPL AMZN GOOGL TSN T ABMD MSFT EVRG VZ TPR UAL KR ATVI
2016-03-31 TSN FSLR WB ARG ATVI NEM META AMZN MAT BMS ABMD GOOG DD LDOS GNRC
2016-04-29 CLF CNX RRC META TSN HCA WPX MAT TPR ARG PM MUR CPRI LITE DPZ
2016-05-31 RRC EW META NAVI CTRA CNX IRM CLF X PM BAX CMI NEM CZR MTW
2016-06-30 CNX CLF X WPX AXON OKE MTW JOY STLD MUR PXD DLR NVDA PAYC JCI
2016-07-29 CLF AMD X WB WLL SWN NVDA CNX BLDR OKE CHTR CAR WPX ATI AMZN
2016-08-31 WB AMD X GNW ETSY JOY NVDA OKE LITE GEN WMB DHR VEEV DXCM XYZ
2016-09-30 WB X GNW WMB LITE TPL NVDA ETSY WPX NAV JOY AMD TRGP AMZN STX
2016-10-31 WB X TPL LITE AMD JOY WMB NVDA ETSY CNX VRTS DHR MKTX DXC GNW
2016-11-30 CLF WB X FMCC AMD LITE NVDA WOR FNMA ETSY DHR XYZ TPL EME NBR
2016-12-30 NVDA AMD FMCC FNMA X SLM CFG RF UIS GS ZION BAC MTG MU KEY
2017-01-31 FMCC FNMA CSX SLM NVDA WDC TPL MTW MU COHR CHTR TSLA URI X ATI
2017-02-28 AMD TTD HWM CLF INCY CSX AAPL BAC NRG HPQ XYZ LPX NVDA VIAV TSLA
2017-03-31 NRG AMD TSLA MU BLDR LITE ANET PENN KMG INCY VRTX VIAV BKNG WDC VEEV
2017-04-28 KMG ALGN TSLA BLDR APO CSX VRTX HPQ ANET BCR LRCX TER IDXX WDC BKNG
2017-05-31 TTD TSLA NVDA XYZ KMG WB ALGN TTWO MOH VEEV AAPL ADSK BCR GOOG MU
2017-06-30 TSLA CVNA XYZ HRB NVDA ETSY MOH KBH FSLR WB PENN REGN VRTX ALGN TTD
2017-07-31 NVDA NRG XYZ FSLR VRTX WB LITE ALGN SEDG TTD NCC CHTR NYT TTWO META
2017-08-31 WB SEDG MTW TSLA TTWO BBBY IPGP PODD NVDA NRG CAR TPL VRTX ALGN ATI
2017-09-29 BBBY ENPH WB MTW NVDA XYZ TTWO TTD SEDG ATI ALB MU LRCX TEX CPRI
2017-10-31 BBBY XYZ NVDA MU ALGN IPGP TTWO MTW TWTR SEDG GNRC KORS NVR AAPL MTCH
2017-11-30 ENPH BBBY MAY XYZ ALGN IPGP SEDG KBH ANET FSLR CPRI MU TWTR MTCH BBWI
2017-12-29 BBBY FSLR EC MAY ENPH CPRI FCX CZR PENN FANG TKO MTCH BF-B BF.B MU
2018-01-31 MAY NKTR BBBY EC TWTR XYZ GWW NFLX TKO ANF IPGP ANET KORS NVDA WB
2018-02-28 NKTR BBBY EC ANET PENN FSLR XYZ WB ENPH HP WYNN LRCX CBOE GWW MAY
2018-03-29 NKTR XYZ MU AMZN ENPH NFLX MAY ANET WB IBKR ALGN SEDG BKNG MOH EC
2018-04-30 AMZN NKTR MU NFLX META GE HET GWW BKNG AAPL NVDA BA KDP EC BLK
2018-05-31 NKTR MU ENPH AXON SEDG THC HET TKO EC ANET NFLX IBKR AMZN ETSY CVNA
2018-06-29 NKTR ENPH MU TKO THC HET AXON XYZ NFLX CVNA EC SEDG NVDA DXCM ETSY
2018-07-31 ENPH AXON HET TKO CVNA ETSY NFLX MU XYZ SEDG TTD THC DXCM UA NKTR
2018-08-31 HET CVNA TKO AXON NFLX XYZ DXCM AMD ENPH TTD AMZN THC ETSY ABMD REGN
2018-09-28 HET CVNA TKO AMD XYZ AXON TTD NFLX DXCM ABMD AMZN ETSY UIS MOH UA
2018-10-31 HET AMZN AAPL DXCM MSFT CHTR ABMD MOH BSX META EXR UIS AMD CCI LLY
2018-11-30 HET AMZN AAPL TSLA MOH MRK EXR UNP EOG ABMD CCI AMD LW CIEN MKC
2018-12-31 HET AMZN AAPL EXR MKC TSLA SCG MRK KDP WCG NRG WELL VZ CCI CLX
2019-01-31 HET AMZN EXR AAPL RHT PFE SCG CCI MSFT PAYC CHD XLNX ESRX NFLX MTCH
2019-02-28 HET FNMA FMCC AMD ENPH CLF CAR RHT MKC TTD INCY ETSY NFLX OI CIEN
2019-03-29 HET CIEN CVNA FNMA ENPH SSP FMCC TTD LRCX GEN CAR AMZN AMD EXR KLAC
2019-04-30 HET CVNA QCOM ENPH AVP AMZN ALGN TTD AMD SMCI MSCI META VEEV CDNS CPRT
2019-05-31 AMZN HET EXR META ENPH TSN MSFT AAPL BR AZO CSCO CPAY TDG MKTX ADBE
2019-06-28 HET ENPH FNMA FMCC AVP CVNA TTD AMD ERIE QCOM META AMZN MTCH AXON VEEV
2019-07-31 ENPH HET BBBY TTD CSGP FICO AAPL HSY AVP FISV EW SBUX ARES TTWO XYZ
2019-08-30 HET ENPH QCOM ERIE AAPL VEEV AVP META MRVL EXR LIN KMX CPRT TTD MKTX
2019-09-30 HET ENPH MKTX AVP QCOM BALL VEEV EXR SBAC PRGO SEDG HWM RMD MTCH NCC
2019-10-31 HET GNRC TSLA BLDR AAPL MKTX BMY BIIB MAA WU KBH APO KLAC EW PHM
2019-11-29 HET DXCM AAPL TSLA QRVO BLDR LITE UIS THC PODD AXON CI CVNA AMD STT
2019-12-31 HET TSLA THC QRVO AAPL SWKS AMD NBR HUM LITE CZR BMY STT CI PENN
2020-01-31 HET TSLA PCG AAPL PENN DXCM TDG PODD LM SMCI GEN LLY GOOG ADSK DVA
2020-02-28 HET TSLA AAPL AMZN MSFT LLY GOOG LM GOOGL TYL GEN DXCM DVA FII BMY
2020-03-31 TSLA AMZN AAPL MSFT GEN KR DXCM CLX DVA TYL NEM BIIB JKHY ODFL EXR
2020-04-30 TSLA AMZN AAPL MSFT KR CI REGN AMT LM META GOOG EXR DXCM AMD GEN
2020-05-29 TSLA AMZN AAPL GOOG MSFT DXCM NFLX ENPH META NEM AMD GEN CHRW CRWD CI
2020-06-30 TSLA AMZN AAPL META MSFT NEM BBBY GOOG AZO DDOG GOOGL NFLX AMD CLX DXCM
2020-07-31 BBBY TSLA MRNA ENPH RRC NFLX CNX DXCM AMZN VRTX PD AAPL EXR ILMN CRWD
2020-08-31 BBBY TSLA ETSY RRC MRNA PENN AAPL CNX CVNA LRCX XYZ AMZN BC DD AMT
2020-09-30 BBBY TSLA TUP PENN AAPL CZR ETSY AMZN RRC AM META AMD CVNA XYZ LULU
2020-10-30 TUP TSLA BBBY PENN ENPH XYZ AAPL SEDG ETSY FDX NVDA TTD CVNA AMZN AMD
2020-11-30 TUP TSLA BBBY MRNA PBI VIAC EXR ENPH UA AMZN AAPL SEDG XYZ PCG SLM
2020-12-31 TUP TSLA CLF CPRI GME ENPH TPR UIS DDS CRWD TEX KSS GP PENN NBR
2021-01-29 GME TSLA MRNA AAPL ALB AMD GOOG IBKR ETSY BLK TUP LDOS ENPH CVNA WPX
2021-02-26 GME VIAC NBR TSLA TRIP QEP DISCA DISCK PSKY PENN TPR IAC TPL GT TDC
2021-03-31 GME VIAC TPL DISCA DVN DISCK QEP TSLA CLF TRIP CAR KSS FANG WSM CPRI
2021-04-30 QEP CAR DVN GME MTW XEC TPL COTY FANG TSLA LPX ANF TDC TPR NAVI
2021-05-28 GME DDS DVN XEC NUE MTW RRD NAVI STLD DXC CLF RRC ASO ANF MDP
2021-06-30 GME MRNA DDS RRD MAC MDP RRC TSLA TRGP MUR DVN ASO NAVI SBNY FANG
2021-07-30 MRNA RRD MDP DDS NUE SBNY ARES IT MBI CLF FTNT RMD BX WAT MAA
2021-08-31 MRNA RRD MDP SBNY DDS SIVB NAVI IT TSLA NUE DRE EPAM NVDA PXD FTNT
2021-09-30 MRNA RRD GME TSLA DDS SBNY BX MDP AMD RRC MAC XEC SIVB NUE GOOG
2021-10-29 CAR TSLA RRD RRC DDS DVN MDP MRNA APP M DDOG KKR MRO DXCM ARES
2021-11-30 CAR DDS MRNA TSLA RRD RRC M DDOG DVN DXCM GME JWN ARES MDP EPAM
2021-12-31 BLDR TSLA RRD DVN ANET ON UCL CIEN ACN FLR AZO XLNX F AAPL MCK
2022-01-31 TSLA EXR AAPL DVN MSFT RRD AZO XOM CVX EIX CTSH FDS XLNX GILD NVDA
2022-02-28 AAPL TSLA DVN EXR AZO RRD CVX XOM PSX MSFT MCK WFC VLO MKC AFL
2022-03-31 TSLA EXR AAPL MSFT COP RRD CVX MRK MCK DVN XOM BRK-B NVDA EXC SRE
2022-04-29 TSLA CVX EQT MCK EXR DLTR ADM BRK-B SRE EXC DVN TRGP WRB COR EOG
2022-05-31 TSLA APA EXR ADM ABBV EQT FE COR PFE WY BRK-B AIZ XOM PNW JKHY
2022-06-30 TSLA EXR FHN EXC WEC MRK ABBV BMY XOM APA PM TKO MCK ATO T
2022-07-29 TSLA XOM AAPL EXR CVX AMT BMY LW APA EXC ERIE WMB CTVA MCK MRK
2022-08-31 EXR TSLA DVN HRB AZO CVX XOM VICI HES NLSN ODP CAH MCK AIV LW
2022-09-30 TSLA EXR HRB LW GPC DVN MCK HES NLSN COP ODP XOM HII WM RSG
2022-10-31 TSLA EXR DVN AZO AAPL FSLR ERIE TKO GPC CVX IEX HES XOM CBOE G
2022-11-30 UCL FSLR UNM HRB DYN HES DXCM TPL SMCI COP AIV KEYS NUE ODP OXY
2022-12-30 FSLR SMCI TPL UCL AXON SANM MUR STLD HES COP ABMD FTI MPC NOV UNM
2023-01-31 UCL SMCI NFLX CEG RCL BKR FCX UNM FSLR HES ABMD ERIE MUR SANM FTI
2023-02-28 UCL HES ODP NVDA FTI DDS BKR LYB FCX ANF DOW ATGE CAR KBH BEN
2023-03-31 UCL FTI TEX MTW STLD SMCI HES GNW URI RCL ALGN AN NUE PVH FSLR
2023-04-28 UCL SMCI FSLR MTW FTI AMD IPGP NVDA JBL ATI COTY NFLX FDX DVA PSKY
2023-05-31 TSLA BKNG NVDA EXR MSFT SMCI AAPL MDLZ WST META NVR AMZN MRK CLX FDX
2023-06-30 SMCI TSLA CVNA NVDA RCL BLDR FSLR CCL VRT IAC AXON GOOG BKNG EW APP
2023-07-31 SMCI CVNA TSLA APP NVDA RCL VRT META BLDR CRWD NFLX BKNG THC PLTR EQT
2023-08-31 CVNA SMCI TSLA APP VRT NVDA RCL PLTR CCL META TDC NCLH TTD BLDR BKNG
2023-09-29 TSLA NVDA BKNG EXR MSFT APP AZO META VRT COP EME MTG JPM PNR NRG
2023-10-31 TSLA NVDA BKNG VRT EXR CNX PSX META ERIE BR MTG BRK-B CDW HRB COP
2023-11-30 TSLA CVNA VRT SMCI APP ANF NVDA CCL JBL CLF FNMA CPRI CARR CNX BKNG
2023-12-29 CVNA COIN TSLA APP VRT ANF SMCI FNMA KEY PLTR NVDA GPS TFC EPAM CFG
2024-01-31 FNMA VRT CVNA SMCI ANF NVDA FMCC APP EXR X CRWD GPS WSM KEY COIN
2024-02-29 ADCT SMCI CVNA DYN NVDA COIN HOOD ANF VST FIX KKR CRWD BBBY VRT PVH
2024-03-28 SMCI ADCT NVDA VST COIN DYN WSM VRT APP FNMA CVNA EME HOOD FMCC GE
2024-04-30 ADCT NVDA VST VRT CVNA GE SMCI DELL NRG APP THC ATI DYN EME CMG
2024-05-31 NVDA VST FSLR ANF CVNA DELL APP NRG DYN VRT THC OGN HOOD EME FMCC
2024-06-28 NVDA CVNA DYN ANF HOOD COHR VST PANW DELL THC KKR TRGP APP LU ANET
2024-07-31 LUMN NVDA CVNA DYN LU THC TPL KKR TSLA NBR JEF IRM PBI HWM COIN
2024-08-30 LUMN NVDA CVNA DYN THC PBI IRM FICO VTR NEM ERIE GDDY TRGP PLTR AFL
2024-09-30 LUMN APP NVDA LU CVNA VST GEV TSLA CNX ECHO FICO VNO ERIE PLTR FSLR
2024-10-31 CVNA LUMN APP NVDA GEV LB PLTR TPL UAL VST BKNG ETR TRGP MIR MKTX
2024-11-29 APP FMCC FNMA LUMN PLTR TPL NVDA AXON TSLA CVNA HOOD LB GEV VST UAL
2024-12-31 APP LUMN TSLA PLTR CVNA NVDA VST AXON HOOD TPL FMCC TRGP VRT FIX FICO
2025-01-31 APP FMCC FNMA TSLA VST PLTR TPL HOOD GEV CVNA NVDA LUMN TRGP VRT LITE
2025-02-28 FNMA FMCC APP HOOD PLTR TPL IBKR TSLA CVNA TKO UAL KMI TPR CIEN MIR
2025-03-31 NVDA AZO BKNG VRSN TSLA G JPM SLM FISV NFLX KMI DFS BRK-B DASH CME
2025-04-30 NVDA AZO TSLA CNP PLTR PM VRSN CME COR G PSKY MCK TKO EXE BRK-B
2025-05-30 NVDA TSLA FNMA AZO AMT PLTR PM META WDC EXC KR HCA CME VRSN UBER
2025-06-30 FNMA FMCC HOOD CAR APP PLTR GEV HII LDOS HWM BUD TSLA F COIN LB
2025-07-31 FNMA HOOD FMCC CAR APP PLTR GEV WDC NFLX SMCI VRSN NVDA ATI MU AXON
2025-08-29 HOOD PLTR CAR FNMA UCL FMCC COIN GEV NVDA AMD APP VRT VST AXON TPR
2025-09-30 FNMA FMCC HOOD ECHO APP CAR COIN WDC LITE NVDA STX AVGO AMD PLTR ORCL
2025-10-31 FMCC FNMA TE HOOD APP LITE ECHO WDC AMD NEM COIN NVDA CIEN MPWR MU
2025-11-28 ECHO LITE TE HOOD NVDA WDC AMD CIEN APP MPWR PLTR LUMN MU SANM HP
2025-12-31 TE LITE ECHO CIEN NVDA WDC STX HOOD AMD HP MU PLTR APP FMCC FNMA
2026-01-30 TE ECHO WDC LITE MU ALB STX NEM LUMN CIEN WBD KLAC APH VFC AVGO
2026-02-27 LITE CIEN WDC GLW MU VIAV ATI COHR TPL NBR TER KEYS IPGP AMAT FIX
2026-03-31 NVDA LITE GOOG GOOGL MU GILD CCI FDX CIEN EXR FTI VTR SEE CME GS
2026-04-30 LITE CIEN MU COHR VIAV WDC ECHO TER ALB STX NBR NEM SEDG KLAC BWA
2026-05-29 LITE MU VIAV CIEN WDC INTC GLW DELL COHR NVDA ECHO NBR VRT FIX STX
2026-06-26 MU DD INTC MRVL DELL WDC AMD STX FLEX CNC GLW HUM HPE VIAV PBI
Scoring script (python)
FORMULA_NAME = "Acceleration Relay Into 52-Week Repairs (Explore v1109)"
LOGIC_VARIANT_COUNT = 3
NOTES = """mode=explore; family=acceleration-contrarian-52w-hybrid
New hybrid family that combines the acceleration ladder with the contrarian 52-week recovery leader, but not as a flat blend: each regime computes separate acceleration and repair sleeves, then explicitly arbitrates between them so strong tapes prefer improving trend-continuation unless price is already overheated, while choppier or risk-off tapes only admit rebounds when the 52-week drawdown sits in a repairable band and liquidity/fundamental confirmation is good enough.
Deliberate metric coverage this run: actively use one momentum cluster (1m, 3m, 6m, 12m, and 12_1 through acceleration and repair-confirmation relationships), one recovery cluster (from_52w_high_pct plus from_200d_ma_pct), one volatility check, one liquidity cluster (dollar volume plus trading days), one income check, one valuation check, one growth cluster, one quality cluster, and one size tilt. Deliberately weight avg_daily_volume_3m, dividend_ttm, pe, peg, eps_growth_pct, operating_income_growth_pct, free_cash_flow_growth_pct, free_cash_flow_margin_pct, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, and free_cash_flow_ttm at zero this run so the backtest can isolate whether the acceleration-versus-repair arbitration adds value beyond the parent families."""

# Deliberate weight-0 metrics this run:
# - Liquidity: avg_daily_volume_3m
# - Income: dividend_ttm
# - Valuation: pe, peg
# - Growth: eps_growth_pct, operating_income_growth_pct, free_cash_flow_growth_pct
# - Quality: free_cash_flow_margin_pct
# - Size/raw levels: shares_outstanding, close, adj_close, high_52w, ma_200d,
#   eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm

OPEN_THRUST = {
    "return_1m_pct": 0.12,
    "return_3m_pct": 0.15,
    "return_6m_pct": 0.12,
    "from_200d_ma_pct": 0.12,
    "realized_vol_3m": -0.09,
    "avg_daily_dollar_volume_3m": 0.09,
    "trading_days_3m": 0.05,
    "revenue_growth_pct": 0.07,
    "forward_eps": 0.05,
    "forward_pe": -0.06,
    "dividend_yield_ttm_pct": 0.03,
    "market_cap": -0.05,
}

REPAIR_BULL = {
    "from_52w_high_pct": -0.15,
    "from_200d_ma_pct": 0.14,
    "return_6m_pct": 0.10,
    "momentum_12_1_pct": 0.08,
    "realized_vol_3m": -0.10,
    "avg_daily_dollar_volume_3m": 0.08,
    "trading_days_3m": 0.05,
    "operating_margin_pct": 0.08,
    "revenue_growth_pct": 0.05,
    "forward_eps": 0.04,
    "forward_pe": -0.05,
    "dividend_yield_ttm_pct": 0.04,
    "market_cap": -0.04,
}

SHELTER = {
    "from_52w_high_pct": -0.08,
    "from_200d_ma_pct": 0.15,
    "realized_vol_3m": -0.16,
    "avg_daily_dollar_volume_3m": 0.10,
    "trading_days_3m": 0.08,
    "operating_margin_pct": 0.10,
    "revenue_growth_pct": 0.06,
    "forward_eps": 0.06,
    "forward_pe": -0.07,
    "dividend_yield_ttm_pct": 0.08,
}


def _branch(regime):
    if regime.get("bull"):
        if regime.get("breadth", 0.0) >= 0.64 and regime.get("median_momentum_12_1_pct", 0.0) >= 6:
            return OPEN_THRUST, "open_thrust"
        return REPAIR_BULL, "repair_bull"
    return SHELTER, "shelter"


def _bounded(value, low, high):
    if value < low:
        return low
    if value > high:
        return high
    return value


def score_universe(stocks, regime, ctx):
    book, branch = _branch(regime)
    zmaps = {}
    for metric in book:
        zmaps[metric] = ctx.z(metric)

    scores = {}

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

        base_total = 0.0
        base_weight = 0.0
        for metric, weight in book.items():
            z = zmaps[metric].get(sym)
            if z is not None:
                base_total += weight * z
                base_weight += abs(weight)
        total = base_total / base_weight if base_weight > 0 else 0.0

        ret1 = row.get("return_1m_pct")
        ret3 = row.get("return_3m_pct")
        ret6 = row.get("return_6m_pct")
        ret12 = row.get("return_12m_pct")
        mom = row.get("momentum_12_1_pct")
        drawdown = row.get("from_52w_high_pct")
        trend = row.get("from_200d_ma_pct")
        vol = row.get("realized_vol_3m")
        dollar_vol = row.get("avg_daily_dollar_volume_3m")
        trading_days = row.get("trading_days_3m")
        div_yield = row.get("dividend_yield_ttm_pct")
        forward_pe = row.get("forward_pe")
        revenue_growth = row.get("revenue_growth_pct")
        forward_eps = row.get("forward_eps")
        op_margin = row.get("operating_margin_pct")
        cap = row.get("market_cap")

        accel = 0.0
        accel_count = 0.0
        if ret1 is not None and ret3 is not None:
            accel += ret1 - (ret3 / 3.0)
            accel_count += 1.0
        if ret3 is not None and ret6 is not None:
            accel += ret3 - (ret6 / 2.0)
            accel_count += 1.0
        if ret6 is not None and ret12 is not None:
            accel += ret6 - (ret12 / 2.0)
            accel_count += 1.0
        if mom is not None and ret6 is not None:
            accel += mom - (ret6 * 0.4)
            accel_count += 1.0
        accel_value = accel / accel_count if accel_count > 0 else None

        accel_score = 0.0
        accel_weight = 0.0

        if accel_value is not None:
            accel_weight += 1.2
            if branch == "open_thrust":
                if accel_value > 8:
                    accel_score += 1.05
                elif accel_value > 3:
                    accel_score += 0.55
                elif accel_value > 0:
                    accel_score += 0.18
                elif accel_value < -5:
                    accel_score -= 0.95
                elif accel_value < -1:
                    accel_score -= 0.30
            elif branch == "repair_bull":
                if accel_value > 5:
                    accel_score += 0.80
                elif accel_value > 1:
                    accel_score += 0.35
                elif accel_value < -4:
                    accel_score -= 0.85
                elif accel_value < -1:
                    accel_score -= 0.25
            else:
                if accel_value > 4 and accel_value < 12:
                    accel_score += 0.40
                elif accel_value >= 12:
                    accel_score -= 0.18
                elif accel_value < -3:
                    accel_score -= 0.70

        if ret1 is not None:
            accel_weight += 0.7
            if branch == "open_thrust":
                if ret1 > 6 and ret1 < 18:
                    accel_score += 0.45
                elif ret1 >= 18:
                    accel_score -= 0.20
                elif ret1 < -8:
                    accel_score -= 0.55
            elif branch == "repair_bull":
                if ret1 > 4 and ret1 < 15:
                    accel_score += 0.28
                elif ret1 < -9:
                    accel_score -= 0.50
            else:
                if ret1 > 8:
                    accel_score -= 0.12
                elif ret1 < -8:
                    accel_score -= 0.25

        if ret3 is not None:
            accel_weight += 0.8
            if ret3 > 10:
                accel_score += 0.35
            elif ret3 > 3:
                accel_score += 0.18
            elif ret3 < -10:
                accel_score -= 0.55
            elif ret3 < 0:
                accel_score -= 0.15

        if trend is not None:
            accel_weight += 1.0
            if branch == "open_thrust":
                if trend > 5 and trend < 24:
                    accel_score += 0.55
                elif trend >= 24:
                    accel_score -= 0.18
                elif trend < -2:
                    accel_score -= 0.85
            elif branch == "repair_bull":
                if trend > 3 and trend < 18:
                    accel_score += 0.42
                elif trend < -2:
                    accel_score -= 0.80
            else:
                if trend > 1 and trend < 14:
                    accel_score += 0.28
                elif trend < 0:
                    accel_score -= 0.75

        if vol is not None:
            accel_weight += 0.7
            if vol < 22:
                accel_score += 0.20
            elif vol > 46:
                accel_score -= 0.50
            elif vol > 34:
                accel_score -= 0.15

        if accel_weight > 0:
            accel_score = accel_score / accel_weight

        recovery_score = 0.0
        recovery_weight = 0.0

        if drawdown is not None:
            recovery_weight += 1.3
            if branch == "open_thrust":
                if drawdown < -40:
                    recovery_score -= 0.75
                elif drawdown < -26:
                    recovery_score += 0.20
                elif drawdown < -12:
                    recovery_score += 0.48
                elif drawdown < -4:
                    recovery_score -= 0.04
                else:
                    recovery_score -= 0.38
            elif branch == "repair_bull":
                if drawdown < -45:
                    recovery_score -= 0.70
                elif drawdown < -32:
                    recovery_score += 0.12
                elif drawdown < -18:
                    recovery_score += 1.05
                elif drawdown < -8:
                    recovery_score += 0.60
                elif drawdown < -3:
                    recovery_score += 0.08
                else:
                    recovery_score -= 0.30
            else:
                if drawdown < -34:
                    recovery_score -= 0.62
                elif drawdown < -18:
                    recovery_score -= 0.05
                elif drawdown < -6:
                    recovery_score += 0.78
                else:
                    recovery_score -= 0.18

        if trend is not None:
            recovery_weight += 1.0
            if branch == "open_thrust":
                if trend > 8:
                    recovery_score += 0.45
                elif trend < 0:
                    recovery_score -= 0.62
            elif branch == "repair_bull":
                if trend > 10:
                    recovery_score += 0.78
                elif trend > 2:
                    recovery_score += 0.34
                elif trend < -2:
                    recovery_score -= 0.92
            else:
                if trend > 6:
                    recovery_score += 0.62
                elif trend > 1:
                    recovery_score += 0.28
                elif trend < 0:
                    recovery_score -= 0.90

        if ret6 is not None:
            recovery_weight += 0.9
            if ret6 > 16:
                recovery_score += 0.40
            elif ret6 > 6:
                recovery_score += 0.24
            elif ret6 < -8:
                recovery_score -= 0.62
            elif ret6 < 0:
                recovery_score -= 0.20

        if mom is not None:
            recovery_weight += 0.8
            if mom >= 3 and mom <= 24:
                recovery_score += 0.42
            elif mom > 24:
                recovery_score += 0.10
            elif mom < -12:
                recovery_score -= 0.65
            elif mom < 0:
                recovery_score -= 0.18

        if vol is not None:
            recovery_weight += 0.6
            if vol < 24:
                recovery_score += 0.22
            elif vol > 42:
                recovery_score -= 0.42

        if recovery_weight > 0:
            recovery_score = recovery_score / recovery_weight

        confirm_score = 0.0
        confirm_weight = 0.0

        if dollar_vol is not None:
            confirm_weight += 0.8
            if dollar_vol > 30000000:
                confirm_score += 0.50
            elif dollar_vol > 10000000:
                confirm_score += 0.25
            elif dollar_vol < 2500000:
                confirm_score -= 0.70
            elif dollar_vol < 6000000:
                confirm_score -= 0.25

        if trading_days is not None:
            confirm_weight += 0.7
            if trading_days >= 62:
                confirm_score += 0.28
            elif trading_days <= 57:
                confirm_score -= 0.55

        if revenue_growth is not None:
            confirm_weight += 0.7
            if revenue_growth > 14:
                confirm_score += 0.45
            elif revenue_growth > 5:
                confirm_score += 0.18
            elif revenue_growth < -10:
                confirm_score -= 0.55
            elif revenue_growth < 0:
                confirm_score -= 0.18

        if forward_eps is not None:
            confirm_weight += 0.5
            if forward_eps > 0:
                confirm_score += 0.22
            else:
                confirm_score -= 0.70

        if op_margin is not None:
            confirm_weight += 0.7
            if op_margin > 16:
                confirm_score += 0.42
            elif op_margin > 6:
                confirm_score += 0.16
            elif op_margin < 0:
                confirm_score -= 0.70
            elif op_margin < 4:
                confirm_score -= 0.15

        if forward_pe is not None:
            confirm_weight += 0.6
            if forward_pe > 0 and forward_pe < 18:
                confirm_score += 0.26
            elif forward_pe > 40:
                confirm_score -= 0.42

        if div_yield is not None:
            confirm_weight += 0.4
            if div_yield >= 0.7 and div_yield <= 4.0:
                confirm_score += 0.18
            elif div_yield > 5.5:
                confirm_score -= 0.20
            elif div_yield == 0 and branch == "shelter":
                confirm_score -= 0.10

        if confirm_weight > 0:
            confirm_score = confirm_score / confirm_weight

        if branch == "open_thrust":
            if accel_weight > 0 and accel_score > 0.30:
                if recovery_weight > 0 and drawdown is not None and drawdown > -4:
                    total += 0.52 * accel_score - 0.10
                else:
                    total += 0.62 * accel_score

            if recovery_weight > 0 and recovery_score > 0.18:
                total += 0.22 * recovery_score

            if accel_weight > 0 and recovery_weight > 0:
                if accel_score > 0.35 and recovery_score > 0.12:
                    total += 0.22
                elif accel_score > 0.35 and recovery_score < -0.12:
                    total -= 0.26
                elif recovery_score > 0.30 and accel_score < -0.10:
                    total -= 0.16

            if cap is not None:
                if cap < 3000000000:
                    total += 0.14
                elif cap > 180000000000:
                    total -= 0.10

        elif branch == "repair_bull":
            if recovery_weight > 0:
                total += 0.52 * recovery_score

            if accel_weight > 0:
                if recovery_weight > 0 and recovery_score > 0.22:
                    total += 0.30 * accel_score
                else:
                    total += 0.16 * accel_score

            if recovery_weight > 0 and accel_weight > 0:
                if recovery_score > 0.35 and accel_score > 0.12:
                    total += 0.28
                elif recovery_score > 0.45 and accel_score < -0.12:
                    total -= 0.42
                elif accel_score > 0.32 and recovery_score < -0.08:
                    total -= 0.30

            if drawdown is not None and trend is not None:
                if drawdown < -12 and drawdown > -30 and trend > 4:
                    total += 0.20

            if cap is not None:
                if cap < 6000000000:
                    total += 0.10
                elif cap > 180000000000:
                    total -= 0.08

        else:
            if recovery_weight > 0:
                total += 0.34 * recovery_score
            if accel_weight > 0 and accel_score > 0.10:
                total += 0.12 * accel_score

            if recovery_weight > 0 and accel_weight > 0:
                if recovery_score > 0.25 and accel_score > 0.08:
                    total += 0.12
                elif recovery_score > 0.30 and accel_score < -0.15:
                    total -= 0.22

            if vol is not None:
                if vol < 24:
                    total += 0.12
                elif vol > 36:
                    total -= 0.24

            if trend is not None and trend < 0:
                total -= 0.22

        if confirm_weight > 0:
            if branch == "open_thrust":
                total += 0.18 * confirm_score
            elif branch == "repair_bull":
                total += 0.26 * confirm_score
            else:
                total += 0.34 * confirm_score

        if recovery_weight > 0 and confirm_weight > 0:
            if recovery_score > 0.35 and confirm_score > 0.18:
                total += 0.18
            elif recovery_score > 0.40 and confirm_score < -0.18:
                total -= 0.38
            elif recovery_score < -0.20 and confirm_score > 0.35 and branch == "shelter":
                total += 0.06

        if accel_weight > 0 and confirm_weight > 0:
            if accel_score > 0.35 and confirm_score < -0.18:
                total -= 0.24
            elif accel_score < -0.20 and confirm_score > 0.25 and branch != "open_thrust":
                total += 0.05

        if accel_weight > 0 and recovery_weight > 0:
            total += 0.08 * _bounded(accel_score - recovery_score, -1.5, 1.5) * (0.55 if branch == "open_thrust" else -0.45 if branch == "shelter" else 0.10)

        scores[sym] = total

    return scores