exp_1193

Regime Momentum Contrarian 52W Recovery Quality Hybrid (Conflict-Arbitrated, v1193)

← All V2 experiments
Relative return
1.256x
Excess vs bench
25.63%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
43.66%
Mean benchmark gain
14.08%
Mean excess gain
29.58%
Dispersion (ref)
16.74%
Win-rate vs bench (ref)
100.00%
Worst / best ratio (ref)
1.089x / 1.540x
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.41% 2.22% 1.178x
2011-07-01 … 2016-06-30 33.60% 13.74% 1.175x
2016-07-01 … 2021-06-30 74.34% 20.63% 1.445x
2021-07-01 … 2026-06-26 50.74% 15.48% 1.305x
All rolling windows — the objective set (equal-weighted mean ratio)
Strategy Benchmark (CAPW_UNIV) Excess
2006200720082009201020112012201320142015201620172018201920202021 -20%0%20%40%60%80%100%
rolling 5y windows, monthly step — 179 windows · mean ratio 1.256x · beat benchmark in 179/179
#WindowStrategyBenchmarkRatio
1 2006-07-31 … 2011-07-29 20.30% 1.79% 1.182x
2 2006-08-31 … 2011-08-31 20.16% 0.21% 1.199x
3 2006-09-29 … 2011-08-31 20.38% -0.14% 1.205x
4 2006-10-31 … 2011-10-31 18.18% 0.23% 1.179x
5 2006-11-30 … 2011-11-30 16.77% -0.05% 1.168x
6 2006-12-29 … 2011-11-30 16.32% -0.32% 1.167x
7 2007-01-31 … 2012-01-31 15.72% 0.93% 1.147x
8 2007-02-28 … 2012-01-31 14.99% 1.43% 1.134x
9 2007-03-30 … 2012-03-30 16.97% 3.09% 1.135x
10 2007-04-30 … 2012-04-30 15.45% 2.42% 1.127x
11 2007-05-31 … 2012-05-31 12.55% 0.60% 1.119x
12 2007-06-29 … 2012-06-29 11.83% 1.92% 1.097x
13 2007-07-31 … 2012-07-31 12.98% 2.69% 1.100x
14 2007-08-31 … 2012-08-31 13.08% 2.95% 1.098x
15 2007-09-28 … 2012-09-28 12.35% 3.20% 1.089x
16 2007-10-31 … 2012-10-31 12.11% 2.60% 1.093x
17 2007-11-30 … 2012-11-30 14.17% 3.45% 1.104x
18 2007-12-31 … 2012-12-31 16.29% 3.69% 1.122x
19 2008-01-31 … 2013-01-31 21.60% 5.85% 1.149x
20 2008-02-29 … 2013-02-28 19.49% 6.82% 1.119x
21 2008-03-31 … 2013-03-28 20.92% 7.73% 1.122x
22 2008-04-30 … 2013-04-30 20.13% 7.51% 1.117x
23 2008-05-30 … 2013-04-30 19.65% 7.81% 1.110x
24 2008-06-30 … 2013-06-28 26.20% 9.33% 1.154x
25 2008-07-31 … 2013-07-31 30.40% 10.48% 1.180x
26 2008-08-29 … 2013-07-31 32.23% 10.52% 1.196x
27 2008-09-30 … 2013-09-30 38.35% 11.48% 1.241x
28 2008-10-31 … 2013-10-31 44.06% 15.76% 1.244x
29 2008-11-28 … 2013-10-31 46.07% 17.46% 1.244x
30 2008-12-31 … 2013-12-31 47.13% 18.44% 1.242x
31 2009-01-30 … 2013-12-31 48.84% 20.64% 1.234x
32 2009-02-27 … 2014-01-31 52.71% 21.63% 1.256x
33 2009-03-31 … 2014-03-31 52.65% 20.60% 1.266x
34 2009-04-30 … 2014-04-30 48.99% 19.00% 1.252x
35 2009-05-29 … 2014-04-30 49.75% 18.32% 1.266x
36 2009-06-30 … 2014-06-30 52.08% 19.01% 1.278x
37 2009-07-31 … 2014-07-31 49.69% 17.39% 1.275x
38 2009-08-31 … 2014-08-29 49.32% 17.70% 1.269x
39 2009-09-30 … 2014-09-30 46.20% 16.64% 1.253x
40 2009-10-30 … 2014-09-30 51.86% 17.08% 1.297x
41 2009-11-30 … 2014-11-28 48.21% 16.82% 1.269x
42 2009-12-31 … 2014-12-31 44.36% 16.28% 1.241x
43 2010-01-29 … 2014-12-31 45.24% 17.23% 1.239x
44 2010-02-26 … 2015-01-30 44.00% 15.80% 1.244x
45 2010-03-31 … 2015-03-31 41.71% 15.40% 1.228x
46 2010-04-30 … 2015-04-30 39.54% 15.38% 1.209x
47 2010-05-28 … 2015-04-30 41.08% 17.09% 1.205x
48 2010-06-30 … 2015-06-30 48.60% 17.45% 1.265x
49 2010-07-30 … 2015-06-30 47.05% 16.43% 1.263x
50 2010-08-31 … 2015-08-31 43.34% 15.76% 1.238x
51 2010-09-30 … 2015-09-30 39.72% 13.61% 1.230x
52 2010-10-29 … 2015-09-30 37.96% 13.06% 1.220x
53 2010-11-30 … 2015-11-30 36.41% 15.09% 1.185x
54 2010-12-31 … 2015-12-31 34.08% 13.55% 1.181x
55 2011-01-31 … 2016-01-29 29.39% 11.90% 1.156x
56 2011-02-28 … 2016-01-29 28.40% 11.53% 1.151x
57 2011-03-31 … 2016-03-31 29.79% 12.90% 1.150x
58 2011-04-29 … 2016-04-29 29.38% 12.39% 1.151x
59 2011-05-31 … 2016-05-31 30.94% 12.94% 1.159x
60 2011-06-30 … 2016-06-30 33.33% 13.30% 1.177x
61 2011-07-29 … 2016-07-29 35.88% 14.52% 1.187x
62 2011-08-31 … 2016-08-31 36.88% 15.19% 1.188x
63 2011-09-30 … 2016-09-30 40.40% 16.32% 1.207x
64 2011-10-31 … 2016-10-31 36.44% 14.02% 1.197x
65 2011-11-30 … 2016-11-30 39.66% 14.66% 1.218x
66 2011-12-30 … 2016-12-30 38.36% 14.92% 1.204x
67 2012-01-31 … 2017-01-31 37.78% 14.63% 1.202x
68 2012-02-29 … 2017-02-28 38.03% 14.78% 1.203x
69 2012-03-30 … 2017-02-28 38.06% 14.43% 1.207x
70 2012-04-30 … 2017-04-28 35.99% 14.61% 1.187x
71 2012-05-31 … 2017-05-31 39.81% 15.98% 1.205x
72 2012-06-29 … 2017-05-31 40.60% 15.44% 1.218x
73 2012-07-31 … 2017-07-31 40.63% 15.43% 1.218x
74 2012-08-31 … 2017-08-31 40.92% 15.12% 1.224x
75 2012-09-28 … 2017-08-31 40.65% 14.77% 1.225x
76 2012-10-31 … 2017-10-31 41.85% 16.12% 1.222x
77 2012-11-30 … 2017-11-30 44.78% 16.79% 1.240x
78 2012-12-31 … 2017-12-29 43.13% 16.93% 1.224x
79 2013-01-31 … 2018-01-31 45.30% 17.57% 1.236x
80 2013-02-28 … 2018-02-28 46.47% 16.21% 1.260x
81 2013-03-28 … 2018-02-28 45.43% 15.81% 1.256x
82 2013-04-30 … 2018-04-30 40.80% 14.25% 1.232x
83 2013-05-31 … 2018-05-31 35.24% 14.57% 1.180x
84 2013-06-28 … 2018-05-31 37.44% 14.97% 1.195x
85 2013-07-31 … 2018-07-31 34.00% 14.83% 1.167x
86 2013-08-30 … 2018-07-31 35.77% 15.59% 1.175x
87 2013-09-30 … 2018-09-28 36.18% 15.84% 1.176x
88 2013-10-31 … 2018-10-31 29.56% 12.89% 1.148x
89 2013-11-29 … 2018-10-31 29.36% 12.60% 1.149x
90 2013-12-31 … 2018-12-31 25.19% 9.93% 1.139x
91 2014-01-31 … 2019-01-31 27.43% 12.37% 1.134x
92 2014-02-28 … 2019-02-28 27.07% 12.38% 1.131x
93 2014-03-31 … 2019-03-29 27.83% 12.76% 1.134x
94 2014-04-30 … 2019-04-30 30.80% 13.73% 1.150x
95 2014-05-30 … 2019-04-30 29.89% 13.54% 1.144x
96 2014-06-30 … 2019-06-28 30.32% 12.81% 1.155x
97 2014-07-31 … 2019-07-31 31.03% 13.30% 1.156x
98 2014-08-29 … 2019-07-31 30.19% 12.80% 1.154x
99 2014-09-30 … 2019-09-30 28.50% 12.70% 1.140x
100 2014-10-31 … 2019-10-31 29.12% 12.91% 1.144x
101 2014-11-28 … 2019-10-31 28.87% 12.60% 1.144x
102 2014-12-31 … 2019-12-31 31.72% 14.16% 1.154x
103 2015-01-30 … 2019-12-31 31.89% 14.85% 1.148x
104 2015-02-27 … 2020-01-31 31.38% 14.04% 1.152x
105 2015-03-31 … 2020-03-31 25.24% 8.56% 1.154x
106 2015-04-30 … 2020-04-30 32.07% 11.65% 1.183x
107 2015-05-29 … 2020-05-29 33.04% 12.61% 1.181x
108 2015-06-30 … 2020-06-30 33.96% 13.64% 1.179x
109 2015-07-31 … 2020-07-31 38.82% 14.60% 1.211x
110 2015-08-31 … 2020-08-31 44.78% 18.07% 1.226x
111 2015-09-30 … 2020-09-30 44.70% 17.05% 1.236x
112 2015-10-30 … 2020-10-30 42.41% 14.60% 1.243x
113 2015-11-30 … 2020-11-30 48.75% 17.43% 1.267x
114 2015-12-31 … 2020-12-31 50.68% 18.65% 1.270x
115 2016-01-29 … 2021-01-29 82.17% 19.26% 1.527x
116 2016-02-29 … 2021-02-26 84.46% 19.79% 1.540x
117 2016-03-31 … 2021-03-31 79.94% 19.42% 1.507x
118 2016-04-29 … 2021-03-31 81.51% 19.66% 1.517x
119 2016-05-31 … 2021-05-28 78.30% 20.42% 1.481x
120 2016-06-30 … 2021-06-30 75.70% 21.06% 1.451x
121 2016-07-29 … 2021-06-30 74.34% 20.63% 1.445x
122 2016-08-31 … 2021-08-31 72.20% 21.75% 1.414x
123 2016-09-30 … 2021-09-30 70.53% 20.22% 1.419x
124 2016-10-31 … 2021-10-29 75.87% 22.50% 1.436x
125 2016-11-30 … 2021-11-30 72.02% 21.87% 1.412x
126 2016-12-30 … 2021-11-30 74.73% 21.75% 1.435x
127 2017-01-31 … 2022-01-31 65.37% 20.17% 1.376x
128 2017-02-28 … 2022-02-28 62.81% 18.51% 1.374x
129 2017-03-31 … 2022-03-31 64.25% 19.46% 1.375x
130 2017-04-28 … 2022-03-31 66.16% 19.46% 1.391x
131 2017-05-31 … 2022-05-31 59.89% 15.59% 1.383x
132 2017-06-30 … 2022-06-30 54.65% 13.08% 1.368x
133 2017-07-31 … 2022-07-29 55.81% 15.16% 1.353x
134 2017-08-31 … 2022-08-31 56.87% 13.72% 1.379x
135 2017-09-29 … 2022-08-31 57.20% 13.56% 1.384x
136 2017-10-31 … 2022-10-31 56.77% 11.86% 1.401x
137 2017-11-30 … 2022-11-30 54.13% 12.52% 1.370x
138 2017-12-29 … 2022-11-30 55.02% 12.46% 1.378x
139 2018-01-31 … 2023-01-31 47.91% 11.01% 1.332x
140 2018-02-28 … 2023-02-28 45.99% 11.03% 1.315x
141 2018-03-29 … 2023-02-28 47.74% 11.72% 1.322x
142 2018-04-30 … 2023-04-28 46.70% 13.01% 1.298x
143 2018-05-31 … 2023-05-31 48.21% 12.95% 1.312x
144 2018-06-29 … 2023-05-31 50.17% 13.01% 1.329x
145 2018-07-31 … 2023-07-31 53.57% 14.67% 1.339x
146 2018-08-31 … 2023-08-31 49.18% 13.51% 1.314x
147 2018-09-28 … 2023-08-31 50.64% 13.56% 1.327x
148 2018-10-31 … 2023-10-31 49.51% 12.60% 1.328x
149 2018-11-30 … 2023-11-30 53.08% 14.58% 1.336x
150 2018-12-31 … 2023-12-29 62.05% 17.26% 1.382x
151 2019-01-31 … 2024-01-31 59.52% 16.27% 1.372x
152 2019-02-28 … 2024-01-31 57.56% 15.94% 1.359x
153 2019-03-29 … 2024-03-28 62.49% 17.50% 1.383x
154 2019-04-30 … 2024-04-30 58.23% 15.50% 1.370x
155 2019-05-31 … 2024-05-31 63.60% 18.12% 1.385x
156 2019-06-28 … 2024-06-28 63.03% 17.99% 1.382x
157 2019-07-31 … 2024-07-31 59.05% 17.70% 1.351x
158 2019-08-30 … 2024-08-30 58.58% 18.41% 1.339x
159 2019-09-30 … 2024-09-30 64.46% 18.65% 1.386x
160 2019-10-31 … 2024-10-31 63.95% 17.87% 1.391x
161 2019-11-29 … 2024-11-29 69.50% 18.64% 1.429x
162 2019-12-31 … 2024-12-31 64.38% 17.62% 1.398x
163 2020-01-31 … 2025-01-31 68.03% 18.07% 1.423x
164 2020-02-28 … 2025-02-28 63.68% 19.00% 1.375x
165 2020-03-31 … 2025-03-31 63.82% 19.24% 1.374x
166 2020-04-30 … 2025-04-30 60.55% 16.49% 1.378x
167 2020-05-29 … 2025-04-30 57.80% 15.80% 1.363x
168 2020-06-30 … 2025-06-30 64.72% 18.19% 1.394x
169 2020-07-31 … 2025-07-31 61.82% 17.87% 1.373x
170 2020-08-31 … 2025-08-29 59.53% 16.69% 1.367x
171 2020-09-30 … 2025-09-30 62.43% 18.57% 1.370x
172 2020-10-30 … 2025-09-30 65.31% 19.43% 1.384x
173 2020-11-30 … 2025-11-28 56.72% 17.77% 1.331x
174 2020-12-31 … 2025-12-31 56.54% 16.92% 1.339x
175 2021-01-29 … 2025-12-31 38.81% 17.20% 1.184x
176 2021-02-26 … 2026-01-30 40.24% 17.04% 1.198x
177 2021-03-31 … 2026-03-31 38.50% 14.07% 1.214x
178 2021-04-30 … 2026-04-30 46.75% 16.03% 1.265x
179 2021-05-28 … 2026-04-30 48.30% 16.22% 1.276x
Notes
mode=explore; family=regime-momentum-contrarian-52w-recovery-quality-hybrid New hybrid family built by combining the shallower 52-week-high recovery sweet spot from the contrarian winner, the regime sleeve discipline of regime-momentum-quality-value, and the stock-level conflict arbitration idea from recovery-quality-regime-momentum-hybrid. The structure is intentionally not a mechanical average: strong tapes reward repaired leaders only when momentum confirms, mixed tapes buy recoveries only when quality and trading continuity de-risk the bounce, and risk-off rotates toward durable low-vol franchises with valuation and income support while explicitly penalizing unresolved momentum/recovery conflict. Deliberate metric coverage this run: momentum uses 12_1 plus 6m and 3m; trend/recovery uses both 200d distance and 52-week-high distance; volatility is active in all branches; liquidity uses trading_days and avg_daily_dollar_volume only; income uses dividend_yield only in defensive branches; valuation uses forward_pe and peg but leaves pe at zero deliberately; growth uses eps_growth and revenue_growth selectively while operating-income/free-cash-flow growth and forward_eps are zeroed; quality uses free_cash_flow_margin and operating_margin; size uses market_cap only in bull as a modest small-cap tilt. Deliberate weight-0 metrics this run: return_1m_pct, return_12m_pct, avg_daily_volume_3m, dividend_ttm, pe, 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, free_cash_flow_ttm.
Lesson notes
#892 · degrade · relative_return Δ -0.1694 · parent exp_758 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/regime-momentum-contrarian-52w-recovery-quality-hybrid: relative_return 1.2563x (delta -0.1694 vs exp_758); win-rate 100.0%, worst-window 1.088657, dispersion 16.7418%.
Monthly picks — top stocks selected each month (whole timeline)
timeline — 240 months · top 15 each
Month 123456789101112131415
2006-07-31 EXPD ATI MNST GRMN LVS FTI STLD TEX NUE MTW AAL ODFL CHRW CSX AT
2006-08-31 ILMN ICE MTW GRMN ADM LVS STLD ODFL FCX NUE FTI ATI FIX TEX CRM
2006-09-29 ILMN AAPL LVS CRM GRMN AAL ADM TEX T KSS MTW HUM CSX R ALB
2006-10-31 AKAM COHR ALGN CRM AAL HUM KSS ATI VRTX BKNG MAY ILMN ANF CTSH AIV
2006-11-30 ALGN ILMN REGN UAL AAL APCC AKAM ICE AT CRM SWKS BMET MAT SLG GS
2006-12-29 MAY REGN ILMN EQIX ATI ICE SWKS MA ALGN NVDA WYNN EOP HOG AKAM MOS
2007-01-31 MAY UAL TEX ICE REGN LVS LVLT AT AAL MGM OMX TTWO NVDA ADS MOS
2007-02-28 WYNN KMX AKAM CBRE DOC ALGN ON UIS ICE BXP COHR SPG INCY CRM UAL
2007-03-30 ICE MAY ON CF ALGN WYNN FSLR MGM UIS SLG SPG CBRE BXP LVS CRM
2007-04-30 CF MAY ICE TPR MGM MOS TTWO ATI GT WYNN PEG ALGN CMI MAT ETR
2007-05-31 ICE ALGN INCY ON CMI BKNG STLD PWR ETR CF TDG FSLR PEG AMZN PCAR
2007-06-29 CLF ANDV ICE NRG DLX AMZN RRC CTRA MGM GT MLM NOV ON ETR STLD
2007-07-31 KMG CF AXON CLF AMZN AAPL CE BKNG MTW VRSN ICE DLX TEX PWR EXPE
2007-08-31 AXON FSLR DECK KMG ALGN FCX MA CE CLF TEX DJ PCAR MTW SWKS AT
2007-09-28 AXON MA ALGN UAA VRTX ICE UAL WYNN CMI GME LVS PCAR FCX FAST PPL
2007-10-31 GRMN MPWR FTI AMZN BIIB NVDA AXON CMI MGM NOV LVS ILMN SLB FLR WYNN
2007-11-30 FTI WYNN GRMN FLR NOV LVS FCX AMZN CIEN BIIB CMI CLF JEF TRMB APA
2007-12-31 NVDA ISRG FTI FLR GRMN VRSN AMZN CMI FCX CF FSLR PODD IDXX GOOG CRM
2008-01-31 MOS GME CRM FSLR ESRX PRGO CMG CF LKQ ISRG WDC FLS J MUR VRSN
2008-02-29 ISRG FSLR BKNG J INCY IVZ ESRX BLK CF BG MA WDC NDAQ APH FTI
2008-03-31 CF WDC MOS GME CMG ISRG FSLR CNX WHR INCY ESRX FCX AAPL BLK BKNG
2008-04-30 CF MOS WDC ISRG AAPL NFLX LKQ DECK J MPWR TKO HAL SLB GME BKNG
2008-05-30 CF MOS APA OXY FSLR DVN EOG RRC MA FTI NFLX NUE PRGO BKNG HAL
2008-06-30 CF MOS MA WDC BBBY FSLR RRC BKNG DFS HAS VRTX TRMB OXY MPWR APA
2008-07-31 MOS MA HAL MEE HP OXY CLF X WDC CF NBR APA FLR VRTX NDSN
2008-08-29 CF NFLX ESV CLF BTUUQ MEE HAS HP FFIV ODFL CNC APH MPWR AMZN HAL
2008-09-30 NFLX ESV AOS WWY HAS ROST IT CNC LUV PHM BTUUQ COHR APOL FAST ADBE
2008-10-31 MCD ED NFLX AON WMT CPB AZO ROST BCR ROH MRSH GIS WWY SWN DF
2008-11-28 MCD AON ED ABT GIS WMT TSCO CPB ADP PG KR DAL AMGN SJM SWN
2008-12-31 AMGN BMY MCD NFLX ABT AON ED VZ AZO WMT GIS XOM PG FHN DAL
2009-01-30 NFLX BMY MCD AMGN ED ABT XOM AZO UNH SJM GILD ROH DGX EW LDOS
2009-02-27 NFLX AZO DRI MCD AMZN BMY PCG ED VTRS VRTX DLTR AAP AMGN ORLY EW
2009-03-31 BKNG BMY SNPS CMG ROST NFLX ED AMZN MPWR DRI AZO ADM CF KSS NEE
2009-04-30 BKNG AAPL CRM NFLX MPWR WDC DRI DPZ CMG AMZN SNPS MRVL AZO LKQ MCO
2009-05-29 DPZ MS WDC DRI NFLX CMG ADBE MPWR SW BKNG AAPL FSLR AMZN EBAY IDXX
2009-06-30 MS ADBE AAPL MSI DPZ SPGI IDXX WDC MPWR DDS NFLX BLDR BEN LKQ EXPE
2009-07-31 EBAY ADBE AAPL SW LULU ULTA MS DDS IVZ IDXX CBRE MSI CI MPWR STT
2009-08-31 LULU ISRG CAR GT CBRE WHR COF IP EBAY MTG ULTA MAS FITB DD IVZ
2009-09-30 FMCC FNMA MTG GNW PALM F FITB SSP LEN IP WHR UIS INCY NFX COF
2009-10-30 BKNG GNW EBAY HIG WBD SANM BC RCL FLEX SSP CRM ASH LVS INCY LULU
2009-11-30 LVS GNW BC JBL HIG FLEX MAC LULU CAR KMX ULTA SANM CRM STX NFLX
2009-12-31 BKNG KMG NFLX CI GNW SSP LPX DDS LVS THC AMZN LULU DDR FCX SPG
2010-01-29 BKNG CRM AMD LULU MU BC CI DDS CAR SLG JBL MRVL ATI MTW SSP
2010-02-26 AMD LULU CRM MTW NYT JBL MU BKNG ULTA UIS ATI CI BC MRVL DDS
2010-03-31 F ISRG SANM DPZ XRX AAL CI PODD UAL CLF DDR MTW SSP KMG DXCM
2010-04-30 LULU MTG NFLX CLF BKNG UAL MRVL DDS F AAL LPX DECK BBWI INCY GNW
2010-05-28 DPZ BC ZION LULU MTG BBWI UAL XRX PVH ISRG F VIAV MRVL SSP URI
2010-06-30 NFLX LULU BBWI ZION DPZ AAL EL LVS DDS UAL WHR WLL HBAN CMG AIV
2010-07-30 NFLX LULU AIG BBWI AKAM BKNG EL DPZ CLF BC BBBY NEM MBI SMCI VIAV
2010-08-31 DPZ BBWI AAL CLF NTAP NFLX UAL URI ALK AAPL AIV AOS MBI BKNG HAS
2010-09-30 CRM NFLX INTU AAL MBI DPZ BBWI WYNN CCU AKAM NTAP BKNG CMG CLF AIV
2010-10-29 MBI NFLX AAPL TPL IPGP CRM LULU DPZ UAA EXPE CMI TMUS AKAM BKNG CLF
2010-11-30 NTAP AIG BKNG INTU MBI EC SPGI MCO EBAY WYNN TER LVS TPL CRM UAL
2010-12-31 CMG UAA LVS LULU NFLX FFIV DECK AIG VRTS CRM BKNG MGM BBWI EBAY NTAP
2011-01-31 LULU WLL CMG AIG CIEN DECK BWA LVS RCL FCX MOS ETFC ANF CF TMUS
2011-02-28 LULU MAY VIAV NVDA CMG ETFC TEX NFLX WLL ANDV URI KLAC RCL UAA MOS
2011-03-31 TER VIAV CIEN MOS KLAC SWKS MAY NFLX CF WYNN ON ETFC PSKY NVDA UAA
2011-04-29 LULU UAA VIAV REGN URI TER TSCO CMG ANDV CBRE DECK NFLX MAY COP MTW
2011-05-31 LULU BX CAT REGN KKR BKNG ANDV BBWI BIIB MTW URI VIAV ECHO CHTR NXPI
2011-06-30 MCO REGN ANF WYNN NFLX BX BKNG CF BBWI GT CHTR DDS VRTX CAT TMUS
2011-07-29 NFLX REGN TSCO MCO IPGP WCG WYNN COG CEPH EP ADS KSU ABMD GR GMCR
2011-08-31 LULU NFLX TSCO BIIB WCG CEPH COG ULTA EP ANF VRTS ABMD ADS CF KSU
2011-09-30 LULU CTRA CF MA CMG REGN ISRG AVGO AAPL SPG CEPH BBWI COG TSCO V
2011-10-31 CF FTNT LULU MCO REGN MAY TIN COG WCG CEPH EP AVGO KLAC DDS RRC
2011-11-30 URI FTNT LULU EQT KLAC ISRG CSCO ADS AAPL MA GR KSU REGN TIN CBS
2011-12-30 URI CTRA CF TIN AXON FTNT KLAC MA ISRG V EXR FICO TRMB LYB SPG
2012-01-31 CF MHK M WCG COG GWW DPZ ABMD FICO HII EP KLAC MA TIN MBI
2012-02-29 URI REGN GILD HCA LYB MOH FTNT WCG STX COG TRGP AAPL V GRMN POOL
2012-03-30 AAPL BKNG MOH STX DPZ LYB COG DHI MA PHM WCG ADS BBWI ITT CF
2012-04-30 AAPL CMG FAST SBUX LULU FTNT KMI GILD IVZ CCU ITT BKNG EQIX ISRG ULTA
2012-05-31 BKNG AAPL STX ISRG TSCO ORLY LULU GILD URI SBUX EC GPS BLDR INCY HOG
2012-06-29 STX AAPL BKNG VRTX DAL ROST GILD MNST REGN EC SBUX URI DDS EXPE UAA
2012-07-31 DG AAL LEN VRTX BKNG AAPL STX MNST TSCO BLDR ROST LPX DLTR DHI EC
2012-08-31 STX WDC DG EXPE BLDR CMCSA AAL WOR CF MO KBH AAPL INCY FTNT EXR
2012-09-28 STX VLO PHM LPX AAPL LEN WDC EXR EBAY DHI DDS CHTR UAA TEX AAL
2012-10-31 VLO ANDV CF ALL AAPL TMUS GOOGL URI AAL EBAY GE VRTX LULU SHW DXCM
2012-11-30 KBH GNRC URI PHM ALL BLDR DHI LULU AXON IRM TEX MTW JPM REGN TMUS
2012-12-31 STX REGN GNRC BBBY GILD PHM LEN EBAY LULU KBH WDC ALL URI NFLX PVH
2013-01-31 STX PHM MHK META LEN WDC BAC LPX AXON BBBY GILD RMD DAL REGN V
2013-02-28 PHM GS MHK BAC DAL STX GNRC LEN MCO URI KBH WDC VLO BX LYB
2013-03-28 KKR BX APO GS MHK PHM VLO DAL BC STX GNRC TEX WBD MPC BLK
2013-04-30 FNMA AMGN FMCC GILD VRTX MPC ANDV VLO MHK BX HRB PSX MTW MU SW
2013-05-31 REGN PHM BX TSLA KKR KBH VLO GILD MCO FNMA MPC FMCC GME APO AMGN
2013-06-28 BX MCO FSLR REGN GILD GS FNMA BIIB NFLX APO CAR BLK FMCC KKR CPAY
2013-07-31 WDC STX FSLR FNMA BX BKNG DXCM MBI FMCC NFLX GILD MU REGN DPZ VRTX
2013-08-30 DAL REGN MCO BBBY MTG SVU BX TRIP GNW MU LYV CHTR CIEN TSN CSGP
2013-09-30 META MTG FL CI BBBY NXPI EA FANG GILD BBY TRIP DAL GME ENPH APO
2013-10-31 META TSLA REGN BX BKNG FNMA FMCC GT NFLX MGM CIEN MU GILD DXCM INCY
2013-11-29 META FL CMG BBY FANG FNMA REGN APO AOS NOW DAL EPAM FMCC INCY ALGN
2013-12-31 FMCC META FNMA BKNG DAL AOS CMG MU NFLX AXON AAL PBI FANG BBY DECK
2014-01-31 FNMA FMCC MA BKNG DAL DECK STX SMCI MGM GT AXON TMUS V MTCH CAR
2014-02-28 META SMCI MU REGN UAL INCY MA STX TKO RRD TMUS ILMN FSLR UAA NFLX
2014-03-31 META WYNN ILMN BKNG FNMA FMCC MTCH DXCM BX INCY VTRS FRX PANW TPL MGM
2014-04-30 META FNMA WYNN FMCC TSLA BX BKNG VTRS PANW MTCH FSLR MGM EOG TPL ILMN
2014-05-30 META WYNN FNMA FMCC ILMN BX TSLA UAA PANW MGM NFLX DAL GNW HP URI
2014-06-30 META DAL URI TRGP FNMA LUV FMCC TSLA NFLX VTRS WYNN SWKS FANG BX UAA
2014-07-31 MU URI TRGP NFX EOG FANG AMAT AVGO FNMA SLB DAL FMCC NBR EA BKNG
2014-08-29 MU TWX HAL SMCI EOG NBR META TRGP FANG UAA EXPE DAL ATI ZBRA CAR
2014-09-30 TPL URI NXPI UHS MPWR ENPH STLD TRGP LUV ISRG TSLA ANDV WDC TWX AMT
2014-10-31 GILD META MU NXPI ISRG ENPH URI LUV UAA MPWR DXCM PANW RCL REGN THC
2014-11-28 GILD NXPI META AAPL ISRG SMCI MCO SWKS IDXX CSX URI DXCM NOW MSFT ANDV
2014-12-31 AMGN AAPL PANW PAYC REGN LRCX GILD INCY GHC EW META GD ENPH ABBV DXCM
2015-01-30 RCL AMGN AMAT LRCX AAL DAL KMX KLAC PAYC LUV NCLH SAPE ABBV MS SIAL
2015-02-27 AXON RCL ALK UAL EXR AAPL LUV KR DPZ PCG ED MAC IDXX NOC AEP
2015-03-31 NXPI AAPL BIIB UAL PAYC MO ON LULU MAC TXN REGN SBUX LUV MPWR INCY
2015-04-30 NXPI CNC CI INCY SWKS ON NCLH MAY PAYC AVGO KSS LOW MOH UAA SSP
2015-05-29 BLDR AXON PAYC EXPE LULU UAA BBWI ORLY NOW DPZ MNST SSP NCLH NFX BIIB
2015-06-30 PAYC BX ANET HUM AVGO CNXT PANW HAS VTRS CI KMG ZTS CRM NXPI CZR
2015-07-31 CI ANET BTUUQ COTY PANW HAS CNC PAYC HUM AVGO INCY IBKR BX AET MTCH
2015-08-31 PANW CI HAS VLO EXPE FTNT REGN EA ANET AOS IBKR ANDV AET TKO MMI
2015-09-30 PANW HAS AVGO VLO BLDR PAYC CI NFLX FTNT DXCM INCY TKO HUM AYI MLM
2015-10-30 PAYC PANW AVGO DXCM INCY NFLX COTY TKO CI UAA TMUS AET IBKR EVHC MLM
2015-11-30 EXPE REGN META BKNG PGR MO PANW PAYC DXCM FSLR VLO BLDR GOOGL SBUX KLAC
2015-12-31 EXPE LUV GPN BKNG NFLX MPWR ANDV PAYC PANW FIX ANET VRSN NKE CI ARG
2016-01-29 NVDA ABMD ATVI ARG AVGO AMZN VRSN CI CVC TYL LDOS MWW TKO GPN GOOGL
2016-02-29 MPWR ATVI AMZN ARG META GOOGL AVGO GMCR PSA CZR ADBE GPN RMD KLAC CI
2016-03-31 EMR ETN LUV CPRI ATVI SMCI FSLR META WB AMAT NEM AMZN TEX LVS MPWR
2016-04-29 AVGO DPZ MAT AMD NVDA EMR HRL O ETN FAST ANF AMAT ARG DG CPRI
2016-05-31 NEM CLF EW IDXX MTW DLR TSN DXC STLD CHTR ISRG O ALB CPB FAST
2016-06-30 MTW NVDA ALB EW PAYC DXC STJ AMD WCG MDR QLGC STLD LLTC SANM CMA
2016-07-29 DXC AMAT OKE TXN DLR ALB DG CLF WB NFX AMD LRCX CNP AWK WOR
2016-08-31 CLF ULTA NEM DXC GRMN NVDA DLR NFX AXON ALB O OKE AMD STLD ALGN
2016-09-30 AMD DHR CLF PAYC URI NEM PODD GRMN ULTA CTAS WB MKTX CHTR NVDA AMAT
2016-10-31 WB IDXX AOS LITE TPL ETSY CHTR CTAS EBAY NBR MKTX CNX JOY HPQ GRMN
2016-11-30 CLF NVDA WOR WB LITE DHR ETSY BBY FCX COHR DXC JOY DPZ GPS TPL
2016-12-30 NVDA CLF FMCC FNMA BBY STLD MS FL UIS NUE FCX DPZ LITE URI KSS
2017-01-31 NVDA AMD NBR FMCC CLF MS STLD UIS BBY ANET WB SCHW MBI MTW FL
2017-02-28 NVDA CLF COHR MS LITE ANET URI TPL SCHW NBR XRX AMD CHTR ON NRG
2017-03-31 NVDA INCY GS URI COHR TTD MS LUV BAC RF CFG CSX SCHW LNC HII
2017-04-28 NVDA AMD KLAC AMAT BAC URI INCY TTD LRCX ADI GS VIAV SCHW XRX ON
2017-05-31 LRCX NVDA WB ADBE ANET PAYC KLAC AAPL BKNG GOOGL XRX VEEV BBY INCY TTWO
2017-06-30 NVDA LRCX AMAT WB ANET PAYC ADSK TTWO VRTX TTD REGN VEEV LITE EA IDXX
2017-07-31 VRTX LRCX AMAT NVDA ANET HAS PAYC ISRG REGN MU PYPL TSLA AMD LITE CVNA
2017-08-31 VRTX NVDA LRCX ANET FCX PGR AMAT REGN LITE NFLX WDC EXPE XYZ BKNG NRG
2017-09-29 VRTX NVDA WB RCL ADBE KMG PYPL AMT FSLR NFLX FCX WDC TSLA SEDG CHTR
2017-10-31 VRTX WB ABBV ADBE ENPH BA URI RCL CI MTW NRG CZR AMAT TROW NFLX
2017-11-30 MU LRCX XYZ ON NVDA ANET AMAT BBBY SEDG TER ADBE PYPL WB ISRG COHR
2017-12-29 NVDA MU LRCX BBBY XYZ ALGN ANET AMAT IPGP ISRG ENPH WB ADBE PYPL CDNS
2018-01-31 BBBY MU ABBV TXN WYNN ANET FSLR KBH LRCX SEDG ISRG NTAP ENPH ON URI
2018-02-28 ANET BBBY WYNN TXN LRCX EC KKR FSLR LOW DG CAT ABBV WB URI FCX
2018-03-29 ANET MU XYZ MRVL ON LRCX WYNN URI NFLX AMZN BA TER NKTR ABBV TXN
2018-04-30 ANET MU NKTR XYZ ANF ENPH SEDG MPC CVNA NVDA ON ABBV BLK KSS BA
2018-05-31 SEDG MU ANET PAYC MTCH ANF FCX STX NKTR LRCX URI ABBV EOG ENPH HAL
2018-06-29 MU ANET SEDG NVDA XYZ VLO THC PSX PAYC MTCH FTNT ANF NOW BA ANDV
2018-07-31 TTD MU SEDG ETSY DPZ FTNT NFLX PANW XYZ NOW ADBE ENPH INTU AXON MA
2018-08-31 M NFLX MU CMG KDP AXON THC MTCH JWN TRIP ENPH GWW WAB KKR MOH
2018-09-28 CVNA PAYC ETSY CMG MTCH NFLX AXON PANW CTAS M AMD LUMN NOW TTD KSS
2018-10-31 ETSY PAYC FTNT TTD LULU XYZ ABMD MTCH MOH CF AMD VEEV TKO CLF DXCM
2018-11-30 PAYC FTNT LULU ABMD AMD TTD TKO WBD DXCM MOH CMG CVNA XYZ CHTR PARA
2018-12-31 ETSY FTNT TTD PAYC DXCM AAP ABBV MOH TRIP TKO VEEV PFE MTCH AMD LULU
2019-01-31 PAYC AMD LULU FTNT TTD MTCH MOH TKO ETSY XYZ AAP PANW NFLX SBUX SCG
2019-02-28 FNMA FMCC FTNT MTCH CLF PANW ORLY XYZ AMD LULU ERIE ETSY CIEN AVGO NFLX
2019-03-29 TTD ETSY SSP NOW FTNT CVNA KLAC PANW CIEN XRX MTCH WDAY FNMA FMCC LULU
2019-04-30 ETSY AMD TTD SMCI FNMA ZBRA FMCC AZO ALGN KEYS INTU CMG ANET MTCH XRX
2019-05-31 CDNS TTD CVNA XRX TER AMD ETSY MTCH CMG QCOM NOW META BX TDG ENPH
2019-06-28 TTD MTCH CVNA AMD CDNS NOW QCOM LULU META LRCX PGR FNMA FMCC PYPL ETSY
2019-07-31 ERIE NOW MKTX TTD XRX AMD PYPL MTCH SBUX SNPS CVNA AZO QCOM VEEV KLAC
2019-08-30 TTD TER ENPH QCOM CDNS HAS NOW MTCH ADI VEEV SEDG ERIE AMAT CSGP FICO
2019-09-30 ENPH SPGI MTCH SBUX QCOM MKTX LRCX BALL SBAC BX SEDG PAYC SNPS CDNS CVNA
2019-10-31 SEDG PODD TER KLAC MKTX LRCX FNMA ENPH MTCH PHM SBUX NWL CMG AMAT EL
2019-11-29 QCOM TER KLAC LRCX SEDG AMAT ENPH TTD BMY LULU LEG KBH URI PHM WU
2019-12-31 ENPH MTCH TER FTNT LRCX QCOM TTD VRTX PAYC URI CVNA LEG DXCM AMAT MKTX
2020-01-31 TER SEDG SWKS THC QCOM QRVO KLAC AMGN BMY ENPH ANSS APO AMAT LITE LRCX
2020-02-28 TER FTNT MCO TSLA ENPH LRCX PAYC AAPL LULU SWKS INTC MA AMD KLAC PENN
2020-03-31 ENPH TSLA MCO SEDG AMD MSFT LRCX UIS ADBE NEM NOW LDOS DPZ AAPL CCI
2020-04-30 ENPH SEDG PAYC CRWD TSLA UIS LDOS ABBV VRTX AXON NEM SWKS QRVO MCO AAPL
2020-05-29 NEM ENPH ANET DXCM BBBY MRNA PAYC CNX TSLA URI CRWD AMD LRCX LDOS LLY
2020-06-30 ENPH NEM SEDG PENN MRNA AMD PAYC GEN VRT CNX SMCI WDAY SPGI ADBE EBAY
2020-07-31 ENPH EBAY TSLA ADBE NFLX MRNA SEDG REGN PENN FTNT CRWD MTCH ALGN MRVL VRTX
2020-08-31 ETSY BBBY EBAY LRCX MPWR TER PENN META RRC REGN TTD NEM DDOG TSCO FTNT
2020-09-30 ETSY AAPL META BBBY CRM ADBE CDNS AMD EBAY LULU NVDA TSLA CMG TER AMZN
2020-10-30 ENPH ETSY SEDG NVDA CRWD TTD AAPL CRM PENN CVNA TSLA XYZ GME ADBE DDOG
2020-11-30 MPWR SEDG ENPH DDOG VIAC AAPL TMO NVDA BBBY GPS CRM URI PENN IVZ POOL
2020-12-31 ETSY TTD MRNA ENPH XYZ CRWD LRCX GME PENN CVNA BBWI NVDA QCOM PBI FDX
2021-01-29 ENPH TTD ETSY LRCX TER AMAT SEDG KLAC CLF PBI MS MPWR ALB TSLA MCHP
2021-02-26 ENPH MRNA CRWD TER TTD ETSY DDS AXON PENN CLF TUP PYPL TSLA COHR GME
2021-03-31 DVN ETSY MRNA FCX OXY FANG TRIP NBR TPR WBD ENPH CPRI M PENN GNRC
2021-04-30 DVN TRIP ETSY AMAT DISCA DISCK VIAC TPL KLAC LRCX CLF WSM SSP OXY CRWD
2021-05-28 TPL GME DVN LPX TDC STX MAC MHK WSM CRWD AMAT DISCA DISCK DE M
2021-06-30 FCX NUE CAR BBBY MAC IVZ LPX NBR GME CLF STLD JWN M STX TRGP
2021-07-30 FCX DVN MRO BX TRGP NVDA F MUR RRC ASO ANF GS TPL MTW CAR
2021-08-31 MRNA WFC KKR CLF DDS BBWI GME RRC MAC TRGP FTNT NUE IDXX CRWD MRO
2021-09-30 MRNA BX KKR EXR FTNT NUE CRWD NVDA BBWI SIVB DDS JWN NAVI XEC M
2021-10-29 MRNA RRC MAC NUE OXY SIVB CF JWN MRO M MPWR NBR SLB DASH BX
2021-11-30 MRNA KKR CAR JWN M DDS SPG COP OXY DVN RRC EOG APA DXCM APP
2021-12-31 NVDA BX KKR AMD TSLA CAR TTD JWN M PFE DVN DDS DDOG KLAC MPWR
2022-01-31 PFE ON NVDA ANET AVGO BX BLDR KKR F KLAC EXR DDS SPG JWN M
2022-02-28 PFE ANET ON AVGO BX NVDA AMD JWN M EXR WFC RRC DDS PLD F
2022-03-31 NVDA COP CF PFE CAR OXY ON BX DVN DDS TSLA SLB MOS EXPE DDOG
2022-04-29 CF ABBV OXY MOS FCX CAR NBR COP DDS BKR HAL ANET EQT NUE CLF
2022-05-31 CF MOS ABBV NBR DDS NUE KR PFE APA REGN CLF NEM OXY COP EOG
2022-06-30 APA EOG DVN CF MRO COP VLO PSX EQT OXY MPC CTRA ENPH ABBV EXE
2022-07-29 DVN MRO COP CF APA VLO EOG PSX MOS MPC CTRA EQT MPWR ABBV OXY
2022-08-31 APA EOG PSX VLO CF MOS COP DVN ON MPWR SMCI MRO SLB NUE VRTX
2022-09-30 MRO VLO DVN CF OXY COP EQT PSX EOG SMCI ON DDS APA ENPH AIV
2022-10-31 APA TE CF HRB COP DVN OXY DDS VLO ON SBUX DYN EOG EQT MRO
2022-11-30 COP SCHW SLB UNM DXCM CF HRB TE TPL NUE ORCL SBUX TT APA XYL
2022-12-30 ENPH APA KLAC SPG TPL SMCI FSLR COP STLD SCHW SANM AXON FCX EOG MUR
2023-01-31 BKNG FCX MRNA SMCI COP SANM ETSY M BKR ABMD APA BBWI ODP CLF NBR
2023-02-28 PHM UCL ON FCX LEN DYN DHI HES DDS IDXX NFLX CAR ODP BKR SLB
2023-03-31 URI UCL STLD TEX MTW H FTI SLB UAL AN NUE CAT RCL BKNG IDXX
2023-04-28 MPWR ON MTW FSLR URI AMD SMCI TTD UCL ADI ALGN FTI ANET ATI NFLX
2023-05-31 BKNG FSLR LVS COTY ALGN PHM WYNN AXON ANET MTW DYN CCU SYK ADI OI
2023-06-30 MRVL AVGO ABNB PLTR ORCL AMD DDOG ANET URI TSLA SNPS COIN SMCI PHM EXPE
2023-07-31 ANET NFLX ORCL PANW ISRG FTNT NOW AMD CMG MPWR AN TSLA CDNS MTW DAL
2023-08-31 TTD SMCI PLTR RCL CCL ABNB GP ON COIN META PHM CVNA ISRG NFLX MRVL
2023-09-29 PLTR NVDA SMCI AVGO CVNA ADBE PHM TTD RCL LRCX LLY ETN ORCL ABNB ON
2023-10-31 NVDA PLTR TTD RCL ETN LLY PHM SMCI LRCX APP ORCL JBL NFLX AVGO APO
2023-11-30 FNMA SMCI FMCC PLTR AVGO CVNA NVDA APP CCL JBL LLY COIN ADBE STLD FTI
2023-12-29 CVNA KKR AVGO CRWD PLTR PANW ADBE SNPS ANF EXPE COIN SPG SMCI APP DDOG
2024-01-31 COIN ANET AVGO FMCC CRWD FNMA GPS IBM ANF PHM X WSM KLAC LULU DHI
2024-02-29 SMCI PANW ANET CRWD NOW FNMA BKNG FMCC PGR PLTR LLY CVNA EXPE MPWR DDOG
2024-03-28 ANF PLTR NVDA SMCI META ANET FNMA FMCC AVGO ADCT DELL CRWD KKR GE MPWR
2024-04-30 HOOD NVDA PLTR META ANF SMCI COIN KKR CRWD ANET GPS FMCC ADCT CAT FNMA
2024-05-31 COIN DELL ANF CVNA NVDA ANET META HOOD FNMA CRWD SMCI FMCC CAT WSM KKR
2024-06-28 NVDA DELL AVGO VST COIN QCOM VRT CMG HOOD FSLR ANF PANW KKR FMCC SMCI
2024-07-31 NVDA HOOD ANF COIN AVGO ANET META CVNA VST AMAT COHR APP QCOM GPS LLY
2024-08-30 NVDA HOOD AVGO LUMN ANET PLTR VST ANF KLAC NTAP CVNA LU MPWR PANW FICO
2024-09-30 NVDA KKR PGR PLTR HOOD PANW MMM MO AMT DYN BX AVGO FSLR MCO MPWR
2024-10-31 HOOD NVDA PLTR LUMN VST ANET COHR IBM AVGO UIS EXR ECHO ORCL EBAY MMM
2024-11-29 COIN LUMN HOOD BX NVDA FMCC FNMA FTNT ANET VRT COHR TTD NFLX ORCL TPL
2024-12-31 HOOD PLTR APP BX CVNA TTD VST COIN TPL NVDA MRVL RCL AXON VRT KKR
2025-01-31 COIN ANET AVGO FNMA MRVL FMCC TSLA VST BX TPL TTD BKNG GEV VRT CEG
2025-02-28 HOOD PLTR META AVGO APP CRWD FMCC FNMA NFLX RCL GEV IBKR CIEN FTNT CCL
2025-03-31 HOOD PLTR FTNT NFLX TPL TPR GS META FMCC CRWD FNMA RCL C PBI EXPE
2025-04-30 HOOD GME TPR AVGO FMCC FNMA RCL GEV FTNT PBI APP AXON TPL LU DASH
2025-05-30 APP FTNT UBER META KLAC NOW NEM VST C GME TPR TKO CIEN LU TSLA
2025-06-30 PLTR FNMA APP CF PAYC COIN VRT HOOD CEG NOW NFLX IBKR CIEN WBD ADCT
2025-07-31 HOOD COIN RCL NFLX CAR UBER FNMA APP FMCC DDOG ATI NEM PBI CRWD MU
2025-08-29 HOOD PLTR COIN CAR NVDA AMD NFLX AVGO UCL ORCL KLAC SSP EBAY LRCX VST
2025-09-30 AVGO COIN RCL FNMA ANET FMCC TE ORCL CCL ECHO CAR NFLX GOOGL BX EBAY
2025-10-31 NEM COIN MPWR TE FMCC APP ECHO RCL ORCL FNMA STX MRVL PSKY HOOD SEDG
2025-11-28 HOOD MPWR PLTR AMD ANET NVDA LRCX TE NEM KLAC LUMN APP MRVL ECHO WDC
2025-12-31 AVGO AMD STX PLTR MPWR HOOD WDC LUMN IDXX NEM SSP NVDA SANM VRT CLF
2026-01-30 NEM KLAC WDC STX LRCX EXPE APH ECHO ALB AVGO SSP WBD TE AMD LLY
2026-02-27 KLAC STX LRCX WDC GOOGL TE APH ECHO MPWR MU SSP ALB IPGP AMAT AVGO
2026-03-31 WDC LRCX NEM MU KLAC STX ADI COHR TER AMAT AMD GLW GOOGL LITE CIEN
2026-04-30 KLAC TER NEM CF APA LRCX COHR IPGP AMAT SEDG OXY ALB ECHO APH LYB
2026-05-29 APA CF LITE NVDA TER ANET NEM VRT GLW COHR VIAV GEV FIX NBR ALB
2026-06-26 WDC STX MRVL ADI CIEN LRCX HPE CSCO TXN LITE KLAC NTAP ON MU DDOG
Scoring script (python)
FORMULA_NAME = "Regime Momentum Contrarian 52W Recovery Quality Hybrid (Conflict-Arbitrated, v1193)"
LOGIC_VARIANT_COUNT = 3
NOTES = """mode=explore; family=regime-momentum-contrarian-52w-recovery-quality-hybrid
New hybrid family built by combining the shallower 52-week-high recovery sweet spot from the contrarian winner, the regime sleeve discipline of regime-momentum-quality-value, and the stock-level conflict arbitration idea from recovery-quality-regime-momentum-hybrid. The structure is intentionally not a mechanical average: strong tapes reward repaired leaders only when momentum confirms, mixed tapes buy recoveries only when quality and trading continuity de-risk the bounce, and risk-off rotates toward durable low-vol franchises with valuation and income support while explicitly penalizing unresolved momentum/recovery conflict.
Deliberate metric coverage this run: momentum uses 12_1 plus 6m and 3m; trend/recovery uses both 200d distance and 52-week-high distance; volatility is active in all branches; liquidity uses trading_days and avg_daily_dollar_volume only; income uses dividend_yield only in defensive branches; valuation uses forward_pe and peg but leaves pe at zero deliberately; growth uses eps_growth and revenue_growth selectively while operating-income/free-cash-flow growth and forward_eps are zeroed; quality uses free_cash_flow_margin and operating_margin; size uses market_cap only in bull as a modest small-cap tilt. Deliberate weight-0 metrics this run: return_1m_pct, return_12m_pct, avg_daily_volume_3m, dividend_ttm, pe, 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, free_cash_flow_ttm."""

BULL = {
    "momentum_12_1_pct": (0.19, +1),
    "return_6m_pct": (0.16, +1),
    "return_3m_pct": (0.08, +1),
    "from_200d_ma_pct": (0.14, +1),
    "from_52w_high_pct": (0.15, -1),
    "eps_growth_pct": (0.08, +1),
    "free_cash_flow_margin_pct": (0.08, +1),
    "realized_vol_3m": (0.05, -1),
    "market_cap": (0.04, -1),
    "avg_daily_dollar_volume_3m": (0.03, +1),
}

MIXED = {
    "from_52w_high_pct": (0.19, -1),
    "from_200d_ma_pct": (0.15, +1),
    "return_6m_pct": (0.10, +1),
    "momentum_12_1_pct": (0.07, +1),
    "free_cash_flow_margin_pct": (0.11, +1),
    "operating_margin_pct": (0.10, +1),
    "revenue_growth_pct": (0.08, +1),
    "trading_days_3m": (0.07, +1),
    "avg_daily_dollar_volume_3m": (0.04, +1),
    "realized_vol_3m": (0.05, -1),
    "peg": (0.04, -1),
}

RISK_OFF = {
    "realized_vol_3m": (0.20, -1),
    "from_200d_ma_pct": (0.16, +1),
    "from_52w_high_pct": (0.07, -1),
    "operating_margin_pct": (0.13, +1),
    "free_cash_flow_margin_pct": (0.09, +1),
    "revenue_growth_pct": (0.06, +1),
    "forward_pe": (0.09, -1),
    "peg": (0.07, -1),
    "dividend_yield_ttm_pct": (0.08, +1),
    "trading_days_3m": (0.05, +1),
}


def score_universe(stocks, regime, ctx):
    def _to_float(x):
        if x is None or x == "":
            return None
        try:
            v = float(x)
        except Exception:
            return None
        if v != v:
            return None
        return v

    def _field(stock, name):
        return _to_float(stock.get(name))

    def _rank_map(metric, direction):
        vals = []
        for stock in stocks:
            v = _field(stock, metric)
            if v is not None:
                vals.append((stock.get("symbol"), v))
        if not vals:
            return {}
        vals.sort(key=lambda item: item[1], reverse=(direction > 0))
        n = len(vals)
        if n == 1:
            return {vals[0][0]: 1.0}
        out = {}
        denom = float(n - 1)
        i = 0
        while i < n:
            j = i + 1
            while j < n and vals[j][1] == vals[i][1]:
                j += 1
            rank = 1.0 - ((i + j - 1) * 0.5) / denom
            k = i
            while k < j:
                out[vals[k][0]] = rank
                k += 1
            i = j
        return out

    def _weighted_score(weight_map):
        metric_ranks = {}
        for metric, spec in weight_map.items():
            metric_ranks[metric] = _rank_map(metric, spec[1])
        scores = {}
        for stock in stocks:
            symbol = stock.get("symbol")
            total = 0.0
            used = 0.0
            for metric, spec in weight_map.items():
                rank = metric_ranks[metric].get(symbol)
                if rank is not None:
                    total += spec[0] * rank
                    used += spec[0]
            scores[symbol] = total / used if used > 0.0 else 0.0
        return scores

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

    def _regime_name(value):
        text = ""
        if value is not None:
            text = str(value).lower()
        if "bull" in text or "risk_on" in text or "risk-on" in text:
            return "bull"
        if "bear" in text or "risk_off" in text or "risk-off" in text or "defens" in text:
            return "risk_off"
        return "mixed"

    branch = _regime_name(regime)

    bull_base = _weighted_score(BULL)
    mixed_base = _weighted_score(MIXED)
    risk_base = _weighted_score(RISK_OFF)

    momentum_core = _weighted_score({
        "momentum_12_1_pct": (0.46, +1),
        "return_6m_pct": (0.34, +1),
        "return_3m_pct": (0.20, +1),
    })
    recovery_core = _weighted_score({
        "from_52w_high_pct": (0.58, -1),
        "from_200d_ma_pct": (0.42, +1),
    })
    quality_core = _weighted_score({
        "free_cash_flow_margin_pct": (0.36, +1),
        "operating_margin_pct": (0.28, +1),
        "eps_growth_pct": (0.18, +1),
        "revenue_growth_pct": (0.18, +1),
    })
    defense_core = _weighted_score({
        "realized_vol_3m": (0.34, -1),
        "forward_pe": (0.20, -1),
        "peg": (0.14, -1),
        "dividend_yield_ttm_pct": (0.16, +1),
        "trading_days_3m": (0.16, +1),
    })
    liquidity_core = _weighted_score({
        "trading_days_3m": (0.65, +1),
        "avg_daily_dollar_volume_3m": (0.35, +1),
    })

    scores = {}
    for stock in stocks:
        symbol = stock.get("symbol")
        m = momentum_core.get(symbol, 0.0)
        r = recovery_core.get(symbol, 0.0)
        q = quality_core.get(symbol, 0.0)
        d = defense_core.get(symbol, 0.0)
        l = liquidity_core.get(symbol, 0.0)

        conflict = abs(m - r)
        synergy = 1.0 - conflict

        v52 = _field(stock, "from_52w_high_pct")
        v200 = _field(stock, "from_200d_ma_pct")

        shallow_recovery_bonus = 0.0
        if v52 is not None:
            if -24.0 <= v52 <= -8.0:
                shallow_recovery_bonus += 0.045
            elif -35.0 <= v52 < -24.0:
                shallow_recovery_bonus += 0.020
            elif v52 < -45.0:
                shallow_recovery_bonus -= 0.035

        trend_confirm = 0.0
        if v200 is not None:
            if v200 > 0.0:
                trend_confirm = 0.035
            elif v200 < -6.0:
                trend_confirm = -0.040

        if branch == "bull":
            base = bull_base.get(symbol, 0.0)
            repaired_leader = 0.55 * r + 0.45 * m
            arbitration = 0.0
            if m >= 0.62 and r >= 0.55:
                arbitration += 0.070 + 0.040 * synergy
            elif m >= 0.66 and r < 0.40:
                arbitration -= 0.045 + 0.020 * conflict
            elif r >= 0.68 and m < 0.42:
                arbitration -= 0.060 + 0.020 * conflict
            else:
                arbitration += 0.018 * synergy
            score = (
                0.58 * base
                + 0.20 * repaired_leader
                + 0.12 * q
                + 0.05 * l
                + shallow_recovery_bonus
                + trend_confirm
                + arbitration
            )
        elif branch == "risk_off":
            base = risk_base.get(symbol, 0.0)
            defensive_repair = 0.50 * d + 0.25 * q + 0.15 * r + 0.10 * m
            arbitration = 0.0
            if d >= 0.60 and q >= 0.55 and v200 is not None and v200 > -4.0:
                arbitration += 0.060
            if conflict > 0.38:
                arbitration -= 0.060
            elif synergy > 0.78:
                arbitration += 0.018
            score = (
                0.62 * base
                + 0.22 * defensive_repair
                + 0.06 * l
                + shallow_recovery_bonus * 0.35
                + trend_confirm * 0.75
                + arbitration
            )
        else:
            base = mixed_base.get(symbol, 0.0)
            balanced_rebound = 0.40 * r + 0.25 * m + 0.25 * q + 0.10 * l
            arbitration = 0.0
            if r >= 0.62 and q >= 0.58 and l >= 0.48:
                arbitration += 0.055
            if conflict > 0.30:
                arbitration -= 0.050 * conflict
            else:
                arbitration += 0.020 * synergy
            if m < 0.35 and r > 0.70:
                arbitration -= 0.030
            score = (
                0.56 * base
                + 0.24 * balanced_rebound
                + 0.10 * d
                + shallow_recovery_bonus * 0.8
                + trend_confirm
                + arbitration
            )

        scores[symbol] = score

    return scores