exp_1125

Contrarian 52-Week Recovery with Quality-Regime Momentum Arbitration (v1125)

← All V2 experiments
Relative return
1.228x
Excess vs bench
22.77%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
40.51%
Mean benchmark gain
14.08%
Mean excess gain
26.43%
Dispersion (ref)
17.92%
Win-rate vs bench (ref)
93.30%
Worst / best ratio (ref)
0.962x / 1.396x
Logic variants
4
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 10.89% 2.22% 1.085x
2011-07-01 … 2016-06-30 33.69% 13.74% 1.175x
2016-07-01 … 2021-06-30 64.96% 20.63% 1.368x
2021-07-01 … 2026-06-26 59.51% 15.48% 1.381x
All rolling windows — the objective set (equal-weighted mean ratio)
Strategy Benchmark (CAPW_UNIV) Excess
2006200720082009201020112012201320142015201620172018201920202021 -20%0%20%40%60%80%
rolling 5y windows, monthly step — 179 windows · mean ratio 1.228x · beat benchmark in 167/179
#WindowStrategyBenchmarkRatio
1 2006-07-31 … 2011-07-29 10.24% 1.79% 1.083x
2 2006-08-31 … 2011-08-31 8.30% 0.21% 1.081x
3 2006-09-29 … 2011-08-31 5.95% -0.14% 1.061x
4 2006-10-31 … 2011-10-31 3.62% 0.23% 1.034x
5 2006-11-30 … 2011-11-30 1.10% -0.05% 1.011x
6 2006-12-29 … 2011-11-30 1.92% -0.32% 1.022x
7 2007-01-31 … 2012-01-31 2.53% 0.93% 1.016x
8 2007-02-28 … 2012-01-31 2.15% 1.43% 1.007x
9 2007-03-30 … 2012-03-30 5.96% 3.09% 1.028x
10 2007-04-30 … 2012-04-30 5.23% 2.42% 1.028x
11 2007-05-31 … 2012-05-31 1.67% 0.60% 1.011x
12 2007-06-29 … 2012-06-29 1.21% 1.92% 0.993x
13 2007-07-31 … 2012-07-31 0.27% 2.69% 0.976x
14 2007-08-31 … 2012-08-31 0.65% 2.95% 0.978x
15 2007-09-28 … 2012-09-28 0.94% 3.20% 0.978x
16 2007-10-31 … 2012-10-31 -1.26% 2.60% 0.962x
17 2007-11-30 … 2012-11-30 -0.28% 3.45% 0.964x
18 2007-12-31 … 2012-12-31 0.15% 3.69% 0.966x
19 2008-01-31 … 2013-01-31 3.48% 5.85% 0.978x
20 2008-02-29 … 2013-02-28 4.95% 6.82% 0.982x
21 2008-03-31 … 2013-03-28 6.28% 7.73% 0.987x
22 2008-04-30 … 2013-04-30 6.75% 7.51% 0.993x
23 2008-05-30 … 2013-04-30 6.79% 7.81% 0.990x
24 2008-06-30 … 2013-06-28 14.28% 9.33% 1.045x
25 2008-07-31 … 2013-07-31 18.05% 10.48% 1.069x
26 2008-08-29 … 2013-07-31 18.27% 10.52% 1.070x
27 2008-09-30 … 2013-09-30 22.08% 11.48% 1.095x
28 2008-10-31 … 2013-10-31 30.04% 15.76% 1.123x
29 2008-11-28 … 2013-10-31 33.71% 17.46% 1.138x
30 2008-12-31 … 2013-12-31 36.42% 18.44% 1.152x
31 2009-01-30 … 2013-12-31 39.61% 20.64% 1.157x
32 2009-02-27 … 2014-01-31 44.10% 21.63% 1.185x
33 2009-03-31 … 2014-03-31 42.73% 20.60% 1.183x
34 2009-04-30 … 2014-04-30 38.85% 19.00% 1.167x
35 2009-05-29 … 2014-04-30 37.40% 18.32% 1.161x
36 2009-06-30 … 2014-06-30 39.02% 19.01% 1.168x
37 2009-07-31 … 2014-07-31 36.22% 17.39% 1.160x
38 2009-08-31 … 2014-08-29 37.17% 17.70% 1.165x
39 2009-09-30 … 2014-09-30 35.48% 16.64% 1.162x
40 2009-10-30 … 2014-09-30 37.21% 17.08% 1.172x
41 2009-11-30 … 2014-11-28 37.00% 16.82% 1.173x
42 2009-12-31 … 2014-12-31 36.38% 16.28% 1.173x
43 2010-01-29 … 2014-12-31 38.83% 17.23% 1.184x
44 2010-02-26 … 2015-01-30 36.98% 15.80% 1.183x
45 2010-03-31 … 2015-03-31 36.57% 15.40% 1.183x
46 2010-04-30 … 2015-04-30 35.28% 15.38% 1.172x
47 2010-05-28 … 2015-04-30 37.62% 17.09% 1.175x
48 2010-06-30 … 2015-06-30 39.98% 17.45% 1.192x
49 2010-07-30 … 2015-06-30 39.38% 16.43% 1.197x
50 2010-08-31 … 2015-08-31 37.56% 15.76% 1.188x
51 2010-09-30 … 2015-09-30 33.74% 13.61% 1.177x
52 2010-10-29 … 2015-09-30 32.22% 13.06% 1.169x
53 2010-11-30 … 2015-11-30 33.41% 15.09% 1.159x
54 2010-12-31 … 2015-12-31 32.11% 13.55% 1.163x
55 2011-01-31 … 2016-01-29 28.88% 11.90% 1.152x
56 2011-02-28 … 2016-01-29 30.16% 11.53% 1.167x
57 2011-03-31 … 2016-03-31 31.92% 12.90% 1.168x
58 2011-04-29 … 2016-04-29 30.21% 12.39% 1.159x
59 2011-05-31 … 2016-05-31 31.87% 12.94% 1.168x
60 2011-06-30 … 2016-06-30 32.85% 13.30% 1.173x
61 2011-07-29 … 2016-07-29 36.68% 14.52% 1.194x
62 2011-08-31 … 2016-08-31 39.42% 15.19% 1.210x
63 2011-09-30 … 2016-09-30 43.04% 16.32% 1.230x
64 2011-10-31 … 2016-10-31 40.48% 14.02% 1.232x
65 2011-11-30 … 2016-11-30 45.10% 14.66% 1.266x
66 2011-12-30 … 2016-12-30 44.94% 14.92% 1.261x
67 2012-01-31 … 2017-01-31 44.57% 14.63% 1.261x
68 2012-02-29 … 2017-02-28 43.55% 14.78% 1.251x
69 2012-03-30 … 2017-02-28 42.84% 14.43% 1.248x
70 2012-04-30 … 2017-04-28 39.46% 14.61% 1.217x
71 2012-05-31 … 2017-05-31 43.28% 15.98% 1.235x
72 2012-06-29 … 2017-05-31 43.64% 15.44% 1.244x
73 2012-07-31 … 2017-07-31 44.94% 15.43% 1.256x
74 2012-08-31 … 2017-08-31 46.30% 15.12% 1.271x
75 2012-09-28 … 2017-08-31 45.69% 14.77% 1.269x
76 2012-10-31 … 2017-10-31 49.25% 16.12% 1.285x
77 2012-11-30 … 2017-11-30 49.15% 16.79% 1.277x
78 2012-12-31 … 2017-12-29 48.16% 16.93% 1.267x
79 2013-01-31 … 2018-01-31 50.80% 17.57% 1.283x
80 2013-02-28 … 2018-02-28 52.53% 16.21% 1.313x
81 2013-03-28 … 2018-02-28 51.98% 15.81% 1.312x
82 2013-04-30 … 2018-04-30 47.64% 14.25% 1.292x
83 2013-05-31 … 2018-05-31 40.83% 14.57% 1.229x
84 2013-06-28 … 2018-05-31 43.71% 14.97% 1.250x
85 2013-07-31 … 2018-07-31 39.78% 14.83% 1.217x
86 2013-08-30 … 2018-07-31 40.41% 15.59% 1.215x
87 2013-09-30 … 2018-09-28 42.37% 15.84% 1.229x
88 2013-10-31 … 2018-10-31 31.57% 12.89% 1.165x
89 2013-11-29 … 2018-10-31 31.34% 12.60% 1.166x
90 2013-12-31 … 2018-12-31 27.58% 9.93% 1.161x
91 2014-01-31 … 2019-01-31 28.59% 12.37% 1.144x
92 2014-02-28 … 2019-02-28 26.01% 12.38% 1.121x
93 2014-03-31 … 2019-03-29 29.53% 12.76% 1.149x
94 2014-04-30 … 2019-04-30 30.90% 13.73% 1.151x
95 2014-05-30 … 2019-04-30 30.23% 13.54% 1.147x
96 2014-06-30 … 2019-06-28 31.14% 12.81% 1.162x
97 2014-07-31 … 2019-07-31 33.70% 13.30% 1.180x
98 2014-08-29 … 2019-07-31 32.54% 12.80% 1.175x
99 2014-09-30 … 2019-09-30 33.82% 12.70% 1.187x
100 2014-10-31 … 2019-10-31 34.80% 12.91% 1.194x
101 2014-11-28 … 2019-10-31 34.48% 12.60% 1.194x
102 2014-12-31 … 2019-12-31 39.33% 14.16% 1.220x
103 2015-01-30 … 2019-12-31 39.76% 14.85% 1.217x
104 2015-02-27 … 2020-01-31 41.27% 14.04% 1.239x
105 2015-03-31 … 2020-03-31 37.73% 8.56% 1.269x
106 2015-04-30 … 2020-04-30 45.11% 11.65% 1.300x
107 2015-05-29 … 2020-05-29 44.65% 12.61% 1.284x
108 2015-06-30 … 2020-06-30 46.69% 13.64% 1.291x
109 2015-07-31 … 2020-07-31 50.38% 14.60% 1.312x
110 2015-08-31 … 2020-08-31 57.86% 18.07% 1.337x
111 2015-09-30 … 2020-09-30 55.89% 17.05% 1.332x
112 2015-10-30 … 2020-10-30 52.01% 14.60% 1.326x
113 2015-11-30 … 2020-11-30 58.69% 17.43% 1.351x
114 2015-12-31 … 2020-12-31 61.94% 18.65% 1.365x
115 2016-01-29 … 2021-01-29 65.04% 19.26% 1.384x
116 2016-02-29 … 2021-02-26 61.70% 19.79% 1.350x
117 2016-03-31 … 2021-03-31 64.57% 19.42% 1.378x
118 2016-04-29 … 2021-03-31 66.36% 19.66% 1.390x
119 2016-05-31 … 2021-05-28 65.10% 20.42% 1.371x
120 2016-06-30 … 2021-06-30 67.13% 21.06% 1.381x
121 2016-07-29 … 2021-06-30 64.96% 20.63% 1.368x
122 2016-08-31 … 2021-08-31 67.02% 21.75% 1.372x
123 2016-09-30 … 2021-09-30 62.99% 20.22% 1.356x
124 2016-10-31 … 2021-10-29 66.73% 22.50% 1.361x
125 2016-11-30 … 2021-11-30 66.20% 21.87% 1.364x
126 2016-12-30 … 2021-11-30 66.89% 21.75% 1.371x
127 2017-01-31 … 2022-01-31 59.57% 20.17% 1.328x
128 2017-02-28 … 2022-02-28 58.72% 18.51% 1.339x
129 2017-03-31 … 2022-03-31 62.69% 19.46% 1.362x
130 2017-04-28 … 2022-03-31 64.77% 19.46% 1.379x
131 2017-05-31 … 2022-05-31 61.40% 15.59% 1.396x
132 2017-06-30 … 2022-06-30 57.69% 13.08% 1.394x
133 2017-07-31 … 2022-07-29 59.97% 15.16% 1.389x
134 2017-08-31 … 2022-08-31 56.85% 13.72% 1.379x
135 2017-09-29 … 2022-08-31 57.09% 13.56% 1.383x
136 2017-10-31 … 2022-10-31 50.04% 11.86% 1.341x
137 2017-11-30 … 2022-11-30 50.34% 12.52% 1.336x
138 2017-12-29 … 2022-11-30 51.27% 12.46% 1.345x
139 2018-01-31 … 2023-01-31 48.99% 11.01% 1.342x
140 2018-02-28 … 2023-02-28 46.27% 11.03% 1.317x
141 2018-03-29 … 2023-02-28 47.15% 11.72% 1.317x
142 2018-04-30 … 2023-04-28 45.64% 13.01% 1.289x
143 2018-05-31 … 2023-05-31 46.07% 12.95% 1.293x
144 2018-06-29 … 2023-05-31 46.47% 13.01% 1.296x
145 2018-07-31 … 2023-07-31 52.95% 14.67% 1.334x
146 2018-08-31 … 2023-08-31 47.79% 13.51% 1.302x
147 2018-09-28 … 2023-08-31 46.99% 13.56% 1.294x
148 2018-10-31 … 2023-10-31 44.23% 12.60% 1.281x
149 2018-11-30 … 2023-11-30 47.85% 14.58% 1.290x
150 2018-12-31 … 2023-12-29 54.93% 17.26% 1.321x
151 2019-01-31 … 2024-01-31 54.00% 16.27% 1.324x
152 2019-02-28 … 2024-01-31 53.83% 15.94% 1.327x
153 2019-03-29 … 2024-03-28 61.69% 17.50% 1.376x
154 2019-04-30 … 2024-04-30 58.18% 15.50% 1.370x
155 2019-05-31 … 2024-05-31 61.88% 18.12% 1.370x
156 2019-06-28 … 2024-06-28 60.26% 17.99% 1.358x
157 2019-07-31 … 2024-07-31 55.78% 17.70% 1.324x
158 2019-08-30 … 2024-08-30 55.92% 18.41% 1.317x
159 2019-09-30 … 2024-09-30 57.79% 18.65% 1.330x
160 2019-10-31 … 2024-10-31 55.95% 17.87% 1.323x
161 2019-11-29 … 2024-11-29 62.09% 18.64% 1.366x
162 2019-12-31 … 2024-12-31 56.11% 17.62% 1.327x
163 2020-01-31 … 2025-01-31 56.13% 18.07% 1.322x
164 2020-02-28 … 2025-02-28 53.48% 19.00% 1.290x
165 2020-03-31 … 2025-03-31 54.96% 19.24% 1.300x
166 2020-04-30 … 2025-04-30 51.15% 16.49% 1.298x
167 2020-05-29 … 2025-04-30 50.46% 15.80% 1.299x
168 2020-06-30 … 2025-06-30 56.00% 18.19% 1.320x
169 2020-07-31 … 2025-07-31 53.31% 17.87% 1.301x
170 2020-08-31 … 2025-08-29 49.56% 16.69% 1.282x
171 2020-09-30 … 2025-09-30 56.39% 18.57% 1.319x
172 2020-10-30 … 2025-09-30 58.20% 19.43% 1.325x
173 2020-11-30 … 2025-11-28 50.82% 17.77% 1.281x
174 2020-12-31 … 2025-12-31 49.59% 16.92% 1.279x
175 2021-01-29 … 2025-12-31 49.30% 17.20% 1.274x
176 2021-02-26 … 2026-01-30 55.91% 17.04% 1.332x
177 2021-03-31 … 2026-03-31 49.87% 14.07% 1.314x
178 2021-04-30 … 2026-04-30 55.70% 16.03% 1.342x
179 2021-05-28 … 2026-04-30 56.53% 16.22% 1.347x
Notes
mode=explore; family=contrarian-52w-recovery-quality-regime-momentum-hybrid New hybrid family that combines deep 52-week-high contrarian recovery, quality-gated rebound repair, and regime-aware momentum confirmation through explicit arbitration instead of flat blending. The design separates washed-out rebound tapes from healthy bull tapes and stressed/risk-off tapes: when the market is damaged it rewards discounted names only if repair and business durability confirm; when the tape is healthy it lets momentum lead but still demands reasonable quality and tradability; when signals conflict, the script resolves them with branch-specific gates and penalties rather than averaging them away. Deliberate metric coverage: actively use one recovery cluster (from_52w_high_pct plus from_200d_ma_pct), one momentum cluster (return_3m_pct, return_6m_pct, momentum_12_1_pct, with return_12m_pct only as a conflict penalty), one volatility check, all three liquidity checks, one income check, one valuation cluster (peg plus forward_pe, with pe left zero), one growth cluster (revenue_growth_pct, operating_income_growth_pct, free_cash_flow_growth_pct, with eps_growth_pct and forward_eps left zero), one quality cluster (operating_margin_pct plus free_cash_flow_margin_pct), and one size tilt (market_cap only). Deliberately weight return_1m_pct, pe, eps_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 at zero this run to avoid collapsing into the parent stacks while still considering the full menu consciously. Sparse fundamentals are normalized by present weight before sleeve arbitration.
Lesson notes
#835 · degrade · relative_return Δ -0.1417 · parent exp_1104 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/contrarian-52w-recovery-quality-regime-momentum-hybrid: relative_return 1.2277x (delta -0.1417 vs exp_1104); win-rate 93.2961%, worst-window 0.962398, dispersion 17.9162%.
Monthly picks — top stocks selected each month (whole timeline)
timeline — 240 months · top 15 each
Month 123456789101112131415
2006-07-31 GOOG GOOGL MSFT AAPL XOM MNST GS BAC C MO SLB CVX COP VLO PFE
2006-08-31 GOOGL GOOG MAY AAPL MSFT XOM INTC CSCO PFE MO GS GE C BAC ORCL
2006-09-29 MAY AAPL NVDA GOOG GOOGL AKAM MNST MSFT XOM INTC CSCO ORCL T MRK PFE
2006-10-31 MAY AAPL NVDA GOOG GOOGL MSFT INTC AKAM XOM CSCO ORCL BKNG T GS AMZN
2006-11-30 MAY AAPL NVDA GOOG GOOGL MSFT CSCO MA ICE INTC XOM AKAM ORCL GS T
2006-12-29 MAY AAPL NVDA GOOG GOOGL MSFT CSCO ICE MA XOM INTC T GS AKAM AMZN
2007-01-31 AAPL MAY NVDA GOOG GOOGL ICE MA MSFT CSCO GS XOM T INTC AKAM ATI
2007-02-28 AAPL MAY NVDA GOOG GOOGL ICE MSFT MA CF CSCO ATI GS ALGN XOM MGM
2007-03-30 AAPL MAY NVDA GOOG GOOGL ICE CF GT MSFT GS CSCO XOM MA ATI T
2007-04-30 AAPL MAY NVDA GOOG GOOGL AMZN GT ANDV MSFT XOM ICE GS CSCO CF INTC
2007-05-31 AAPL NVDA MAY AMZN GOOG GOOGL GT MA ICE XOM MSFT ANDV GS INTC CLF
2007-06-29 AAPL MAY NVDA AMZN GOOG GOOGL FSLR MA KMG CF INTC XOM MSFT FCX ICE
2007-07-31 AAPL GOOGL GOOG XOM MSFT INTC GE CSCO GS FCX C COP AMZN SLB MA
2007-08-31 AAPL GOOGL GOOG XOM GS CSCO INTC GE MSFT C BAC SLB IBM COP CVX
2007-09-28 AAPL GOOGL GOOG XOM GS CSCO INTC MSFT GE C BAC FCX SLB COP IBM
2007-10-31 AAPL GOOGL GOOG GS XOM MSFT INTC CSCO C GE FCX BAC ISRG AMZN MOS
2007-11-30 AAPL GOOG GOOGL GS MSFT FSLR XOM C INTC GE ISRG CSCO FCX AMZN PG
2007-12-31 AAPL GOOG GOOGL GS FSLR C MSFT XOM MOS INTC ISRG FCX MA COP SLB
2008-01-31 AAPL GOOG GOOGL MSFT C MOS FSLR XOM JPM GS COP CF INTC MO GE
2008-02-29 AAPL GOOG GOOGL MSFT C GS XOM CSCO GE BAC MO PFE WMT MRK JNJ
2008-03-31 AAPL GOOG GOOGL MSFT XOM C BAC GE CSCO GS WMT MO INTC PFE JNJ
2008-04-30 AAPL GOOG GOOGL MSFT XOM CSCO C GE WMT INTC BAC MA IBM PFE COP
2008-05-30 AAPL GOOG GOOGL FSLR XOM C MSFT MA JPM MEE BAC COP MOS WMT GE
2008-06-30 AAPL GOOG C XOM GOOGL MSFT GE BAC COP CVX CSCO WMT PFE INTC V
2008-07-31 AAPL GOOG C GOOGL XOM GS MSFT GE BAC COP CVX CSCO INTC WMT V
2008-08-29 AAPL GS GOOG BAC XOM C MSFT GOOGL JPM MA FSLR AMGN GE WFC WMT
2008-09-30 AAPL GOOG C XOM GS BAC GOOGL MSFT GE JPM WMT WFC INTC CVX CSCO
2008-10-31 AAPL GOOG XOM C GOOGL GS MSFT GE BAC WFC JPM WMT INTC PG JNJ
2008-11-28 AAPL GOOG XOM GOOGL WFC GS GE MSFT C BAC JPM PG WMT JNJ INTC
2008-12-31 AAPL GOOG XOM GE GOOGL WFC JPM MSFT C GS BAC PG WMT CVX JNJ
2009-01-30 XOM AAPL GOOG GE GOOGL JPM MSFT WFC GS PG CVX WMT BAC PFE JNJ
2009-02-27 XOM GOOG AAPL GS GOOGL GE JPM MSFT WFC CVX WMT BAC PFE JNJ T
2009-03-31 XOM GOOG AAPL GOOGL GE GS T JPM MSFT WMT CVX IBM JNJ INTC FCX
2009-04-30 GS GOOG XOM AAPL GOOGL BAC GE JPM WFC MSFT T FCX IBM INTC CSCO
2009-05-29 BAC GS AAPL GOOG XOM JPM GE GOOGL WFC FCX MS INTC MSFT T CSCO
2009-06-30 BAC GS WFC JPM XOM AAPL GOOGL GOOG MSFT CAR GE F CSCO FCX INTC
2009-07-31 BAC GS WFC JPM AAPL XOM MSFT GOOG GOOGL CAR CSCO FCX F GE INTC
2009-08-31 BAC C JPM GS WFC XOM AAPL GOOGL GOOG CSCO F FCX MSFT GE QCOM
2009-09-30 BAC C GS JPM AAPL WFC XOM GOOG GOOGL GE FCX AIG LVS CAR MSFT
2009-10-30 BAC C GS AAPL AIG JPM GOOG GOOGL WFC FCX XOM GE MSFT LVS F
2009-11-30 BAC C AAPL GOOGL GOOG XOM FCX GS JPM MSFT GE WFC PFE F LVS
2009-12-31 CAR BAC NVDA AAPL GGP F AMD GOOG SANM FCX UAL MU BKNG GOOGL GNW
2010-01-29 BAC CAR NVDA SANM F AAPL GOOG GNW AMD UAL GGP ISRG GOOGL AMZN C
2010-02-26 BAC CAR SANM AAPL NVDA F GNW UAL GOOG ACS GGP AMD AAL ISRG CLF
2010-03-31 BAC AAPL NVDA F SANM GNW GOOG CLF UAL LVS INCY LYV CAR MTG WLL
2010-04-30 BAC NVDA AAPL UAL GNW SANM INCY F GOOG C MTG LVS ETFC NFLX CLF
2010-05-28 C AAPL BAC GOOG GS XOM F GOOGL LVS GE ETFC NFLX UAL JPM WLL
2010-06-30 AAPL NFLX C BAC TMUS GOOG AKAM XOM GS LVS ETFC AAL HBAN BBWI ZION
2010-07-30 AAPL C BAC TMUS XOM AAL AIG NFLX WY GOOG LVS ETFC CMI NTAP F
2010-08-31 AAPL LVS NFLX XOM BAC BKNG AKAM C GOOG BRK-B AIG GOOGL ETFC INTU FSLR
2010-09-30 AAPL C LVS ETFC GOOG BAC NFLX GOOGL NEM XOM BKNG VZ GS FCX WY
2010-10-29 ETFC NFLX NVDA LVS AAPL GOOG CMG FFIV BKNG UAL AAL WLL NEM NTAP VRTS
2010-11-30 ETFC LVS NVDA NFLX GM AAPL CMG VRTS FFIV BKNG GOOG AIG UAL WLL DECK
2010-12-31 ETFC NVDA LVS NFLX AIG WLL AAPL CMG FFIV FCX VRTS GOOG ACAS BKNG BAC
2011-01-31 MAY NVDA ETFC LVS AIG NFLX AAPL BAC GOOG WLL FCX C FFIV BKNG CMG
2011-02-28 MAY NVDA ETFC NFLX LVS AIG AAPL BAC VIAV GOOG URI C NXPI LULU IPGP
2011-03-31 MAY NVDA AAPL IPGP NFLX URI ETFC VIAV GOOG LVS LULU NOV BAC CMG BKNG
2011-04-29 MAY NVDA IPGP AAPL NFLX LULU GOOG ETFC VIAV ANDV BKNG FTNT CMG LVS BAC
2011-05-31 NVDA MAY IPGP AAPL VLO NFLX BKNG GOOG LULU FTNT VIAV PSKY MCO ETFC BKR
2011-06-30 MAY IPGP NVDA NFLX AAPL LULU GOOG BKNG VLO EP FTNT ULTA CMG PSKY WCG
2011-07-29 AAPL GOOG GOOGL XOM AIG BAC IBM C NFLX TER WYNN LULU JPM MSFT JNJ
2011-08-31 AAPL GOOG CF GOOGL CTRA LVS JNJ BIIB LULU MSFT IBM WYNN NFLX PM BKNG
2011-09-30 AAPL GOOG DLTR NEM JNJ VFC IBM INTC MA AZO AMZN V BBWI ORLY MTCH
2011-10-31 AAPL GOOG XOM GOOGL IBM CF MSFT JNJ KLAC BAC INTC GE PM C WFC
2011-11-30 AAPL GOOG GOOGL XOM LVS URI KLAC CSCO IBM FFIV INTC BIIB ORLY ISRG CAT
2011-12-30 AAPL XOM GOOG GOOGL AKAM FFIV GE MRK URI WFC PM IBM MA KLAC ISRG
2012-01-31 AAPL GOOG GOOGL BAC XOM GE IBM MSFT CF MRK URI PFE C V INTC
2012-02-29 AAPL URI STX GOOG NVDA BAC REGN FAST V MNST MA GOOGL ISRG EQIX DPZ
2012-03-30 AAPL BAC STX BLDR URI NVDA GOOG EQIX V REGN ISRG MA BKNG MNST DPZ
2012-04-30 AAPL BLDR REGN STX URI BAC BKNG ISRG V GOOG EC EQIX MA MNST ORLY
2012-05-31 AAPL AAL BLDR REGN VRTX STX MNST META BAC GOOG ORLY ISRG SHW TJX V
2012-06-29 AAPL BLDR AAL VRTX MNST BAC EQIX REGN GOOG STX TJX LEN ROST V BKNG
2012-07-31 AAPL GOOG GOOGL EXPE JPM MRK XOM V SPG WFC JNJ STX PFE DIS HAL
2012-08-31 AAPL GOOG STX GOOGL CDNS JPM MRK XOM GE EXPE BAC ANDV AMGN PHM WFC
2012-09-28 AAPL PHM STX GOOG VRTX BLDR ANDV GOOGL EQIX LPX BAC LYB REGN KBH GILD
2012-10-31 AAPL GOOG GOOGL PHM BAC CDNS STX GILD C EXPE GE JPM BBBY BLDR KBH
2012-11-30 AAPL PHM GOOG BBBY REGN BAC BLDR LPX KBH GILD WY GOOGL LEN WHR PSX
2012-12-31 REGN AAPL BAC PHM LPX GOOG BBBY KBH GILD SW STX ANDV EXPE WHR LYB
2013-01-31 NFLX BAC PHM AAPL META KBH OMX LPX GOOG THC ANDV WHR VRTS MPC REGN
2013-02-28 NFLX OMX BAC META GOOG APO VRTS PHM LPX AAPL GILD ANDV VLO THC MPC
2013-03-28 NFLX OMX GOOG MTG MHK THC FNMA AOS FMCC VRTS AAPL GILD BAC PHM META
2013-04-30 NFLX OMX FNMA FMCC MTG GOOG BAC AAPL MHK GILD META THC ANDV NVDA AOS
2013-05-31 FNMA FMCC NFLX OMX TSLA FSLR MTG GOOG AAPL BAC GOOGL NVDA PHM BBBY GILD
2013-06-28 FNMA FMCC OMX TSLA NFLX GOOG AAPL FSLR BBBY BAC MTG NVDA GOOGL REGN MU
2013-07-31 FNMA FMCC TSLA OMX GOOG NFLX MTG GME BAC BBBY AAPL FSLR GOOGL NVDA MU
2013-08-30 TSLA OMX FNMA FMCC MTG GOOG NFLX AAPL GME META NVDA BBBY BAC GOOGL MU
2013-09-30 TSLA OMX FNMA META NFLX FMCC AAPL GOOG MTG MU NVDA GME REGN BAC GOOGL
2013-10-31 OMX TSLA FNMA FMCC META AAPL GOOG MU NFLX NVDA MTG DAL GOOGL BSX BKNG
2013-11-29 OMX FNMA TSLA META FMCC NFLX AAPL GOOG MU DAL INCY NVDA GOOGL BKNG BAC
2013-12-31 FNMA FMCC TSLA META NFLX GOOG AAPL MU INCY GOOGL NVDA KATE DAL BKNG TKO
2014-01-31 FNMA FMCC TSLA META GOOG INCY TKO AAPL MU NFLX ILMN GOOGL NVDA BAC MGM
2014-02-28 FNMA FMCC TSLA GOOG META ILMN AAPL MU GOOGL TKO NFLX NVDA INCY MGM WYNN
2014-03-31 FNMA FMCC TSLA GOOG TKO META ILMN GOOGL AAPL NVDA NFLX MU BAC URI AVGO
2014-04-30 FNMA TSLA FMCC META MU GOOG NVDA AAPL TKO AVGO ILMN GOOGL URI NFLX FRX
2014-05-30 META TSLA MU FNMA AAPL LUV NVDA AVGO FRX FMCC ILMN GOOG NFLX AAL DAL
2014-06-30 META MU TSLA AAPL FNMA NFLX FMCC LUV NVDA WLL ILMN AAL AVGO FANG NFX
2014-07-31 MU AAPL META TSLA LUV NFLX NVDA FMCC WMB SWKS AVGO FNMA FANG FRX URI
2014-08-29 AAPL MU MMI SWKS NVDA META GILD LUV FMCC TSLA URI FNMA NFLX AVGO TPL
2014-09-30 AAPL GILD MU ENPH NVDA LUV META SWKS NFLX PANW TPL TSLA SMCI AVGO WMB
2014-10-31 AAPL PANW MMI GILD NVDA MU ENPH SWKS SMCI META TSLA LUV EW MNST AVGO
2014-11-28 AAPL PANW PAYC TSLA SWKS NVDA LUV META EW MNST GILD MU AVGO SMCI AMGN
2014-12-31 AAPL SWKS PANW RCL NVDA LUV MU KMI AXON META GILD EW DAL TSLA UAL
2015-01-30 AAPL KMI SWKS META RCL ON GOOG GILD BAC BRK-B V KR BLK LUV MRK
2015-02-27 AAPL SWKS PANW NVDA EA KR MNST RCL LUV ANDV LULU KMI SMCI PAYC GILD
2015-03-31 AAPL SWKS PANW NVDA AVGO MNST KR CNC GILD ANDV EA HSP BBWI COR MOH
2015-04-30 AAPL SWKS PANW NVDA AVGO NFLX MNST CZR PAYC FTNT BLDR KMG NXPI INCY EA
2015-05-29 SWKS AAPL NFLX NVDA AVGO PANW CNXT CZR INCY AXON BLDR FTNT BTUUQ DXCM NXPI
2015-06-30 AAPL GILD GE META BAC JPM SWKS NFLX BTUUQ VTRS GOOG BIIB MSFT C XOM
2015-07-31 AAPL GILD META GOOG BAC GOOGL JPM GE AMZN NFLX C EBAY DIS V MA
2015-08-31 AAPL NFLX META GOOG SBUX AMZN GOOGL JPM BKNG GILD FTNT PANW MDLZ CZR DHI
2015-09-30 AAPL GOOG META NFLX SBUX AMZN GOOGL BKNG GILD MDLZ PANW V NKE CMG FTNT
2015-10-30 AAPL GOOG GILD META XOM KLAC SBUX GOOGL NFLX NVDA DIS PFE JPM GE NKE
2015-11-30 GE AMZN AAPL GOOG META GOOGL MSFT PSA GILD XOM V DD DIS BAC COST
2015-12-31 AMZN GE META GOOG AAPL GOOGL MSFT DD NFLX AMAT BKNG JNJ GM PSA BAC
2016-01-29 AMZN GE AAPL GOOG META GOOGL MSFT JNJ V XOM TPR TSN PFE KLAC TAP
2016-02-29 GE GOOG AAPL AMZN META GILD XOM SPGI GOOGL PFE MSFT V JNJ DIS T
2016-03-31 GE GOOG AMZN META AAPL GOOGL XOM PSA T MSFT JNJ MCD VZ SPG TSN
2016-04-29 NVDA GOOG META NEM AMZN TSN AVGO CNX CLF EW BAC T WB ABMD GE
2016-05-31 NVDA GOOG META AMZN AMD CZR WB ABMD TSN EW ULTA CNX ISRG T BAX
2016-06-30 NVDA CLF GOOG AMZN AMD OKE META DLR X AWK DXC T CZR ULTA EQIX
2016-07-29 NVDA CLF AMD X WB CNX AMZN GOOG NEM META DLR AAPL AMAT PAYC HPE
2016-08-31 NVDA AMD WB CLF X DHR AMAT GOOG AMZN HPE META NEM BAC GEN AAPL
2016-09-30 NVDA WB AMD X CLF AMAT WMB DHR AMZN WPX OKE AAPL NAV LITE GEN
2016-10-31 NVDA AMD WB X DHR LITE AMAT CNX AAPL GEN TPL HPE CLF GOOG WPX
2016-11-30 NVDA AMD CLF X WB FMCC BAC FNMA DHR CNX AMAT TPL HPE GOOG AAPL
2016-12-30 NVDA CLF AMD X BAC FMCC FNMA RF KEY GS MS JPM TPL AMAT GOOG
2017-01-31 NVDA CLF AMD BAC FNMA X FMCC CSX URI RF CHTR TPL JPM KEY GS
2017-02-28 NVDA AMD CLF BAC CSX X URI RF GS JPM WDC MS AAPL KEY ANET
2017-03-31 NVDA AMD CLF BAC CSX X RF INCY ANET URI AAPL JPM CHTR GS MS
2017-04-28 NVDA AMD BAC CSX WDC KMG ANET AAPL LRCX AMAT CHTR HPQ TSLA IDXX INCY
2017-05-31 NVDA AMD CSX TTD XYZ TSLA CHTR LRCX BAC AAPL WDC KMG MU ANET GOOG
2017-06-30 NVDA XYZ TSLA CSX ANET WB VRTX GOOG AAPL BAC CHTR LRCX AMAT WDC TTD
2017-07-31 NVDA XYZ VRTX CHTR ANET TSLA MU ALGN GOOG WB LRCX META PYPL CSX AAPL
2017-08-31 NVDA WB VRTX XYZ TTWO ANET TSLA LRCX NRG GOOG AAPL ALGN META PYPL IPGP
2017-09-29 NVDA XYZ WB ANET TTWO MU LRCX NRG VRTX ETSY TTD BBBY TSLA SEDG GOOG
2017-10-31 NVDA BBBY XYZ MU ALGN SEDG TTWO LRCX ANET TTD ETSY AMAT AAPL IPGP BAC
2017-11-30 NVDA BBBY XYZ ENPH MU ANET ALGN SEDG LRCX AAPL PYPL VRTX NRG GOOG FSLR
2017-12-29 NVDA BBBY XYZ ENPH ANET SEDG MU ALGN WB GOOG VRTX AAPL BAC PYPL LRCX
2018-01-31 BBBY NVDA XYZ ANET NKTR MU SEDG ABBV GOOG BAC BA ALGN AMZN PYPL TTWO
2018-02-28 NKTR NVDA BBBY XYZ ANET MU AMZN ENPH NFLX SEDG GOOG ABBV BA BAC EC
2018-03-29 NKTR AMZN MU META NVDA GOOG AAPL CCI XYZ NFLX MSFT BAC MA V BA
2018-04-30 AMZN NKTR AAPL MU GE META NFLX ANF NVDA CMG GOOG XYZ ULTA STX LUMN
2018-05-31 AMZN CCI MU META AAPL NVDA GOOG NFLX ENPH CAT V MSFT XYZ NKTR ETSY
2018-06-29 AMZN CCI META NFLX ANF GOOG AAPL TKO MU NVDA XYZ MSFT V ENPH PSA
2018-07-31 ENPH NVDA HET TKO ETSY AXON NFLX AMZN MU CVNA XYZ THC TTD SEDG ANF
2018-08-31 HET NVDA CVNA TKO ENPH XYZ AMD MOS TTD NFLX AMZN ETSY AXON DXCM CCI
2018-09-28 HET AMD CVNA NVDA TKO XYZ TTD MOS AMZN ETSY NFLX DXCM ABMD LULU CCI
2018-10-31 CCI AMZN AAPL AMD TTD CRM XYZ DXCM HET ABMD PAYC MOH TSLA FTNT META
2018-11-30 AMZN CCI HET BBWI AMD TSLA AAPL EXR ABMD MSFT BEN GOOG PM WBD SBUX
2018-12-31 CCI AMZN AAPL GOOG EXR META MSFT JPM MRK HET BRK-B BAC V WFC GOOGL
2019-01-31 AMZN HET CCI GOOG AMD META NFLX FNMA FMCC EXR MSFT AAPL PAYC LRCX MRK
2019-02-28 CCI HET AMZN GOOG EXR NFLX AAPL META XYZ LLY MRK BLK BA TTD AMD
2019-03-29 HET TTD NVDA ETSY AMD FNMA CMG CCI ENPH LLY FMCC EXR AMZN TSLA MRK
2019-04-30 HET TTD NVDA AMD ENPH CVNA ETSY CCI AMZN EXR CMG AVP PAYC NOW FNMA
2019-05-31 AMZN HET ENPH EXR CCI MTCH NFLX GOOG META TSLA AAPL MSFT AMD CDNS COTY
2019-06-28 HET ENPH NVDA TTD AVP PAYC CCI FNMA EXR AMZN ERIE AMD FMCC VEEV MTCH
2019-07-31 HET ENPH NVDA TTD PAYC CCI EXR AVP AMZN SBUX GOOG MTCH AAPL CMG VEEV
2019-08-30 ENPH EXR HET CCI AMZN AAPL GOOG MSFT META BLK JPM MRK QCOM NVDA PSA
2019-09-30 HET ENPH NVDA SEDG CCI AVP EXR GOOG AAPL KLAC TSLA SBUX PODD CMG T
2019-10-31 HET ENPH NVDA AVP CCI TSLA SEDG AAPL EXR KLAC GOOG GNRC LRCX BAC T
2019-11-29 HET NVDA ENPH TSLA AAPL CCI GOOG KLAC CVNA SEDG PODD AVP BAC LRCX EXR
2019-12-31 HET NVDA ENPH TSLA AAPL CCI GOOG SEDG KLAC LRCX BAC CVNA TGT THC TER
2020-01-31 HET TSLA NVDA ENPH AAPL CCI GOOG SEDG BMY LRCX EXR PAYC CVNA CPRT PODD
2020-02-28 TSLA HET AAPL ENPH CCI AMZN GOOG PCG NVDA AMD SEDG CI MSFT GEN DXCM
2020-03-31 TSLA EXR AAPL DVN AMZN GOOG CCI MSFT ENPH AMT META NVDA BRK-B CI AMD
2020-04-30 TSLA EXR DVN AAPL AMZN ENPH GOOG CCI MSFT AMT META NVDA NFLX BRK-B CI
2020-05-29 TSLA EXR ENPH AMZN DVN AAPL GOOG CCI MSFT AMT META NVDA BRK-B NFLX CI
2020-06-30 TSLA AMZN AAPL CCI EXR GOOG MSFT AMT NVDA META ENPH NFLX AMD JPM BRK-B
2020-07-31 TSLA BBBY AMZN AAPL CCI NVDA MSFT XYZ EXR ENPH GOOG AMT AMD META NFLX
2020-08-31 TSLA BBBY EXR AAPL AMZN NVDA XYZ CCI AMD META MSFT BLK GOOG TUP ETSY
2020-09-30 TSLA EXR BBBY AAPL AMZN CCI NVDA TUP GME PENN ENPH XYZ AMD BLK FDX
2020-10-30 TSLA EXR TUP AAPL ENPH GME AMZN CCI NVDA XYZ BLK AMD FDX GOOG META
2020-11-30 TSLA TUP CCI EXR ENPH AAPL GME AMZN BLK NOW MRNA XYZ NVDA DVN BBBY
2020-12-31 TSLA TUP CCI ENPH EXR AAPL AMZN DVN XYZ MRNA NOW CPRI GOOG BLK AMT
2021-01-29 GME TSLA CCI EXR AMZN AAPL AMT BLK COST AMD DVN ENPH GOOG XYZ NOW
2021-02-26 GME TSLA CCI EXR AAPL AMT DVN AMZN XYZ GOOG VIAC BLK QEP COST NOW
2021-03-31 GME TSLA EXR AMT AAPL CCI VIAC PSKY AMZN GOOG TTD MRNA DISCA DISCK XYZ
2021-04-30 TSLA GME EXR GOOG QEP CAR AMT AAPL VIAC AMZN CCI BBWI JPM BLK XEC
2021-05-28 GME DVN NVDA TSLA PLTR PSKY EXR FCX GOOG CLF MRNA XEC DDS F WFC
2021-06-30 GME NVDA MRNA TSLA DDS PLTR GOOG CLF PSKY ANF F RRC DVN RRD ROST
2021-07-30 GME MRNA NVDA RRD DDS CLF GOOG BX TSLA BBWI MDP FTNT HOOD ROST WFC
2021-08-31 GME MRNA NVDA RRD DDS CLF MDP GOOG BX DDR NAVI ASO SBNY TSLA NUE
2021-09-30 MRNA GME NVDA RRD RRC DVN GOOG DDR DDS MDP M BX MRO TSLA CAR
2021-10-29 GME MRNA NVDA TSLA RRD DVN CAR RRC MRO DDS DDR M GOOG MDP BX
2021-11-30 TSLA NVDA EXR AMD CAR AAPL MRO GOOG COST MSFT AMZN DDS MRNA GME BLK
2021-12-31 NVDA CAR DVN GME RRD MRNA TSLA MRO EXR DDS F AMD BLDR ON PFE
2022-01-31 DVN TSLA MRNA AAPL F MRO EXR ON GOOG NVDA PFE CVX BLDR DLTR AVGO
2022-02-28 TSLA DVN MRNA AAPL NVDA EXR EOG XOM CAR MSFT ABBV AMD MPC F MRO
2022-03-31 TSLA MOS OXY CF EXR DVN MRNA GOOG CVX AAPL MRO COP CAR EQT EOG
2022-04-29 EQT TSLA MOS MRNA DVN MAR OXY VLO CVX CF DLTR MRO NUE ADM NEM
2022-05-31 EXR VLO AMT TSLA AAPL CCI GOOG MSFT MPC XOM CVX BRK-B OXY NVDA BMY
2022-06-30 EXR AMT VLO TSLA AAPL CCI GOOG MSFT XOM NVDA MPC BMY BRK-B OXY MRK
2022-07-29 EXR AMT VLO TSLA AAPL CCI GOOG MSFT XOM NVDA MPC OXY MRNA BRK-B BMY
2022-08-31 EXR TSLA AMT CCI AAPL MPC MSFT GOOG NVDA OXY XOM BRK-B JPM V AMD
2022-09-30 EXR TSLA AMT AAPL CCI MPC MSFT GOOG NVDA AMZN BRK-B V JPM XOM PFE
2022-10-31 EXR AMT TSLA AAPL CCI MPC MSFT GOOG NVDA JPM V AMZN BRK-B PFE XOM
2022-11-30 UCL VLO EXR TSLA MPC AAPL CCI BLK AMT XOM GS PSA JPM CVX FSLR
2022-12-30 VLO EXR UCL MPC TSLA BLK CCI AAPL XOM AMT MRK JPM GS NVDA CVX
2023-01-31 UCL EXR VLO TSLA CCI NVDA MPC BLK AMT AAPL META XOM GS GOOG JPM
2023-02-28 EXR TSLA VLO NVDA UCL CCI MPC BLK AMT MTW PSA AAPL URI META FTI
2023-03-31 TSLA NVDA EXR CCI AAPL AMT MPC MSFT VLO PSA GOOG BLK ABNB BKNG META
2023-04-28 TSLA NVDA EXR AMT AAPL MSFT CCI META BLK PSA GOOG BKNG MPC GE AVGO
2023-05-31 EXR TSLA NVDA AMT CCI MSFT AAPL GOOG META AMZN AVGO GOOGL V AMD BKNG
2023-06-30 SMCI NVDA CVNA RCL CCL TSLA PLTR EXR META NFLX BLDR VRT NCLH AVGO ROST
2023-07-31 SMCI CVNA NVDA RCL PLTR CCL META TSLA NCLH EXR UBER NFLX VRT AVGO ROST
2023-08-31 EXR NVDA TSLA CVNA AMT SMCI ROST UAL META VRT BLK CCI NFLX AAPL GOOG
2023-09-29 CVNA TSLA EXR NVDA SMCI VRT NCLH CRM GOOG CCL META RCL AMD AAPL APP
2023-10-31 TSLA EXR NVDA VRT GOOG CRM RCL CVNA AAPL META LLY ANF CRWD VST APP
2023-11-30 NVDA CVNA VRT ANF PHM SMCI EXR META PLTR GPS TSLA CRWD APP KKR UBER
2023-12-29 CVNA NVDA PHM ANF COIN EXR VRT SMCI FNMA CRWD TSLA GPS PLTR UBER KKR
2024-01-31 NVDA SMCI CVNA ANF VRT EXR PHM FNMA CRWD FMCC ANET KKR UBER META AVGO
2024-02-29 SMCI NVDA CVNA ANF VRT KKR EXR CRWD ADCT COIN META UBER AMD DYN FNMA
2024-03-28 SMCI NVDA CVNA COIN ADCT VRT ANF EXR KKR FNMA DYN HOOD APP FMCC VST
2024-04-30 SMCI CVNA NVDA ADCT VRT EXR COIN ANF KKR DYN VST DELL HOOD APP FNMA
2024-05-31 NVDA CVNA SMCI VRT VST ANF COIN DELL EXR KKR HOOD ADCT DYN FNMA APP
2024-06-28 NVDA SMCI CVNA VST ANF VRT DELL DYN KKR HOOD EXR COIN APP CRWD FMCC
2024-07-31 NVDA CVNA ANF SMCI VST LUMN KKR EXR VRT DYN DELL HOOD COIN APP ANET
2024-08-30 NVDA LUMN CVNA DYN SMCI EXR ANF VST KKR COIN DELL THC CCI PLTR HOOD
2024-09-30 NVDA EXR CCI LUMN AMT COST AMZN AAPL BLK CVNA PSA META GS GOOG MSFT
2024-10-31 LUMN CVNA NVDA APP VST EXR PLTR KKR GEV HOOD CCI DYN TPL COHR VRT
2024-11-29 LUMN CVNA APP NVDA PLTR VST HOOD TSLA FNMA AIG EXR CCI TPL FMCC KKR
2024-12-31 APP CCI TSLA NVDA PLTR EXR WDAY FMCC EMR AAPL FNMA AMZN BLK GOOG AMT
2025-01-31 CCI TSLA APP EXR PLTR FMCC FNMA NVDA WDAY HOOD EMR AMZN AAPL META GOOG
2025-02-28 CCI EXR TSLA PLTR APP FNMA NVDA FMCC WDAY AMT EMR HOOD META GS AAPL
2025-03-31 TSLA NVDA PLTR FNMA HOOD WBA APP TPR WDC FMCC CVS AMT META NEM DASH
2025-04-30 PLTR NVDA TSLA DG HOOD DLTR FNMA AMT APP WDC NEM EXR MCK EW KR
2025-05-30 NVDA TSLA WDC FNMA DG PLTR DLTR APP GOOG SMCI NFLX GEV AMT DXCM F
2025-06-30 TSLA HOOD PLTR NVDA NEM FNMA FMCC APP AMT GEV NFLX EXR GOOG GS MSFT
2025-07-31 NVDA HOOD TSLA PLTR NEM GEV AMD GOOG APP STX MSFT AVGO GS META BLK
2025-08-29 HOOD PLTR FNMA FMCC NVDA APP NEM GEV CVNA ECHO UCL WDC STX AMD COIN
2025-09-30 HOOD FNMA FMCC APP PLTR NVDA WDC STX NEM ECHO GOOG MU TSLA LITE COIN
2025-10-31 TSLA MU NVDA EXR HOOD APP PLTR GOOG AMD NEM WDC TE GOOGL FMCC AVGO
2025-11-28 TSLA MU NVDA GOOG LITE EXR HOOD GOOGL PLTR WDC AMD CIEN NEM AVGO APP
2025-12-31 TSLA MU WDC NVDA LITE GOOG EXR TE ECHO GOOGL LLY WBD GS AMD NEM
2026-01-30 MU WDC NVDA TSLA GOOG EXR TE LITE ECHO NEM GOOGL STX GS LRCX AMT
2026-02-27 LITE MU WDC TSLA NVDA EXR GOOG NEM GOOGL CIEN AMT GS GLW LRCX TER
2026-03-31 LITE NVDA CIEN CCI GOOG MU WDC EXR TSLA APA DOW LYB COHR GLW CF
2026-04-30 LITE CCI MU EXR NVDA WDC GOOG CIEN TSLA INTC STX VIAV AMT GEV AMD
2026-05-29 MU CCI LITE EXR NVDA WDC INTC AMD STX GOOG DELL TSLA AMT MRVL CIEN
2026-06-26 MU CCI EXR INTC WDC AMD STX LITE NVDA MRVL DELL GOOG AMT TSLA GS
Scoring script (python)
FORMULA_NAME = "Contrarian 52-Week Recovery with Quality-Regime Momentum Arbitration (v1125)"
LOGIC_VARIANT_COUNT = 4
NOTES = """mode=explore; family=contrarian-52w-recovery-quality-regime-momentum-hybrid
New hybrid family that combines deep 52-week-high contrarian recovery, quality-gated rebound repair, and regime-aware momentum confirmation through explicit arbitration instead of flat blending. The design separates washed-out rebound tapes from healthy bull tapes and stressed/risk-off tapes: when the market is damaged it rewards discounted names only if repair and business durability confirm; when the tape is healthy it lets momentum lead but still demands reasonable quality and tradability; when signals conflict, the script resolves them with branch-specific gates and penalties rather than averaging them away.
Deliberate metric coverage: actively use one recovery cluster (from_52w_high_pct plus from_200d_ma_pct), one momentum cluster (return_3m_pct, return_6m_pct, momentum_12_1_pct, with return_12m_pct only as a conflict penalty), one volatility check, all three liquidity checks, one income check, one valuation cluster (peg plus forward_pe, with pe left zero), one growth cluster (revenue_growth_pct, operating_income_growth_pct, free_cash_flow_growth_pct, with eps_growth_pct and forward_eps left zero), one quality cluster (operating_margin_pct plus free_cash_flow_margin_pct), and one size tilt (market_cap only). Deliberately weight return_1m_pct, pe, eps_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 at zero this run to avoid collapsing into the parent stacks while still considering the full menu consciously. Sparse fundamentals are normalized by present weight before sleeve arbitration."""

WASHED_OUT_RECOVERY = {
    "from_52w_high_pct": (0.26, -1),
    "from_200d_ma_pct": (0.18, +1),
    "return_3m_pct": (0.08, +1),
    "return_6m_pct": (0.04, +1),
    "realized_vol_3m": (0.08, -1),
    "avg_daily_dollar_volume_3m": (0.06, +1),
    "trading_days_3m": (0.04, +1),
    "dividend_yield_ttm_pct": (0.03, +1),
    "peg": (0.05, -1),
    "revenue_growth_pct": (0.05, +1),
    "operating_income_growth_pct": (0.04, +1),
    "operating_margin_pct": (0.05, +1),
    "free_cash_flow_margin_pct": (0.04, +1),
    "market_cap": (0.04, -1),
}

CALM_BULL = {
    "from_200d_ma_pct": (0.15, +1),
    "momentum_12_1_pct": (0.16, +1),
    "return_6m_pct": (0.10, +1),
    "from_52w_high_pct": (0.08, -1),
    "realized_vol_3m": (0.05, -1),
    "avg_daily_volume_3m": (0.05, +1),
    "avg_daily_dollar_volume_3m": (0.04, +1),
    "forward_pe": (0.05, -1),
    "revenue_growth_pct": (0.05, +1),
    "free_cash_flow_growth_pct": (0.05, +1),
    "operating_margin_pct": (0.06, +1),
    "free_cash_flow_margin_pct": (0.06, +1),
    "market_cap": (0.03, -1),
}

STRESSED_BULL = {
    "from_200d_ma_pct": (0.16, +1),
    "from_52w_high_pct": (0.13, -1),
    "return_3m_pct": (0.08, +1),
    "momentum_12_1_pct": (0.07, +1),
    "realized_vol_3m": (0.12, -1),
    "avg_daily_dollar_volume_3m": (0.07, +1),
    "trading_days_3m": (0.05, +1),
    "dividend_ttm": (0.03, +1),
    "peg": (0.05, -1),
    "operating_income_growth_pct": (0.05, +1),
    "free_cash_flow_growth_pct": (0.04, +1),
    "operating_margin_pct": (0.08, +1),
    "free_cash_flow_margin_pct": (0.07, +1),
}

RISK_OFF = {
    "realized_vol_3m": (0.18, -1),
    "from_200d_ma_pct": (0.14, +1),
    "from_52w_high_pct": (0.12, -1),
    "avg_daily_dollar_volume_3m": (0.08, +1),
    "trading_days_3m": (0.08, +1),
    "forward_pe": (0.06, -1),
    "peg": (0.05, -1),
    "revenue_growth_pct": (0.04, +1),
    "operating_income_growth_pct": (0.06, +1),
    "operating_margin_pct": (0.10, +1),
    "free_cash_flow_margin_pct": (0.09, +1),
}

def score_universe(stocks, regime, ctx):
    def pick_branch():
        bull = regime.get("bull", False)
        breadth = regime.get("breadth")
        vol = regime.get("avg_realized_vol_3m")
        median_200d = regime.get("median_from_200d_ma_pct")
        median_momo = regime.get("median_momentum_12_1_pct")

        if bull and breadth is not None and breadth >= 0.60 and vol is not None and vol <= 0.32:
            return "calm_bull"
        if bull and (
            (vol is not None and vol > 0.32) or
            (breadth is not None and breadth < 0.60)
        ):
            return "stressed_bull"
        if (not bull) and (
            (median_200d is not None and median_200d > -2.0) or
            (median_momo is not None and median_momo > 2.0)
        ):
            return "washed_out_recovery"
        return "risk_off"

    branch = pick_branch()

    if branch == "calm_bull":
        weights = CALM_BULL
    elif branch == "stressed_bull":
        weights = STRESSED_BULL
    elif branch == "washed_out_recovery":
        weights = WASHED_OUT_RECOVERY
    else:
        weights = RISK_OFF

    z_cache = {}
    for metric in weights:
        z_cache[metric] = ctx.z(metric)

    def weighted_score(symbol, spec):
        total = 0.0
        used = 0.0
        for metric, pair in spec.items():
            weight, direction = pair
            zmap = z_cache.get(metric)
            if not zmap:
                continue
            val = zmap.get(symbol)
            if val is None:
                continue
            total += weight * direction * val
            used += weight
        if used <= 0.0:
            return None
        return total / used

    out = {}
    for stock in stocks:
        symbol = stock["symbol"]

        price_repair_spec = {
            "from_52w_high_pct": weights.get("from_52w_high_pct", (0.0, -1)),
            "from_200d_ma_pct": weights.get("from_200d_ma_pct", (0.0, +1)),
            "return_3m_pct": weights.get("return_3m_pct", (0.0, +1)),
            "return_6m_pct": weights.get("return_6m_pct", (0.0, +1)),
            "momentum_12_1_pct": weights.get("momentum_12_1_pct", (0.0, +1)),
            "realized_vol_3m": weights.get("realized_vol_3m", (0.0, -1)),
            "market_cap": weights.get("market_cap", (0.0, -1)),
        }
        durability_spec = {
            "avg_daily_volume_3m": weights.get("avg_daily_volume_3m", (0.0, +1)),
            "avg_daily_dollar_volume_3m": weights.get("avg_daily_dollar_volume_3m", (0.0, +1)),
            "trading_days_3m": weights.get("trading_days_3m", (0.0, +1)),
            "dividend_yield_ttm_pct": weights.get("dividend_yield_ttm_pct", (0.0, +1)),
            "dividend_ttm": weights.get("dividend_ttm", (0.0, +1)),
            "forward_pe": weights.get("forward_pe", (0.0, -1)),
            "peg": weights.get("peg", (0.0, -1)),
            "revenue_growth_pct": weights.get("revenue_growth_pct", (0.0, +1)),
            "operating_income_growth_pct": weights.get("operating_income_growth_pct", (0.0, +1)),
            "free_cash_flow_growth_pct": weights.get("free_cash_flow_growth_pct", (0.0, +1)),
            "operating_margin_pct": weights.get("operating_margin_pct", (0.0, +1)),
            "free_cash_flow_margin_pct": weights.get("free_cash_flow_margin_pct", (0.0, +1)),
        }

        repair = weighted_score(symbol, price_repair_spec)
        durability = weighted_score(symbol, durability_spec)

        if repair is None and durability is None:
            continue
        if repair is None:
            repair = durability * 0.70
        if durability is None:
            durability = repair * 0.55

        price_gap = stock.get("from_52w_high_pct")
        dist_200d = stock.get("from_200d_ma_pct")
        ret_12m = stock.get("return_12m_pct")
        vol = stock.get("realized_vol_3m")
        breadth = regime.get("breadth")
        bull = regime.get("bull", False)

        score = 0.0

        if branch == "washed_out_recovery":
            if price_gap is not None and price_gap > -0.18:
                score -= 0.35
            if dist_200d is not None and dist_200d < -0.18:
                score -= 0.55
            if repair >= 0.20 and durability >= -0.10:
                score += 0.72 * repair + 0.28 * durability
            elif durability >= 0.35 and repair >= -0.05:
                score += 0.55 * repair + 0.45 * durability
            else:
                score += 0.42 * repair + 0.58 * durability
            if vol is not None and vol > 0.60:
                score -= 0.18
            if ret_12m is not None and ret_12m > 55.0 and durability < 0.10:
                score -= 0.20
        elif branch == "calm_bull":
            score += 0.60 * repair + 0.40 * durability
            if durability >= 0.15:
                score += 0.10 * repair
            if price_gap is not None and price_gap < -0.45 and durability < 0.0:
                score -= 0.22
            if ret_12m is not None and ret_12m < -15.0:
                score -= 0.10
        elif branch == "stressed_bull":
            score += 0.48 * repair + 0.52 * durability
            if repair > 0.35 and durability < -0.15:
                score -= 0.20
            if durability > 0.30 and repair > -0.10:
                score += 0.12
            if vol is not None and vol > 0.55:
                score -= 0.10
        else:
            score += 0.32 * repair + 0.68 * durability
            if repair < -0.25:
                score -= 0.15
            if durability > 0.20 and repair > -0.10:
                score += 0.10
            if price_gap is not None and price_gap > -0.10:
                score -= 0.08

        if bull and breadth is not None and breadth > 0.72 and durability is not None and durability < -0.20:
            score -= 0.10
        if (not bull) and dist_200d is not None and dist_200d > 0.12 and repair is not None and repair < 0.0:
            score -= 0.08

        out[symbol] = score

    return out