exp_1123

Recovery Quality Contrarian 52-Week Hybrid (Arbitrated Relay, v1123)

← All V2 experiments
Relative return
1.429x
Excess vs bench
42.85%
Benchmark
CAPW_UNIV
Rolling windows
179 · monthly
Mean strategy gain
63.75%
Mean benchmark gain
14.08%
Mean excess gain
49.67%
Dispersion (ref)
32.43%
Win-rate vs bench (ref)
100.00%
Worst / best ratio (ref)
1.041x / 1.838x
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 22.49% 2.22% 1.198x
2011-07-01 … 2016-06-30 48.04% 13.74% 1.302x
2016-07-01 … 2021-06-30 114.05% 20.63% 1.774x
2021-07-01 … 2026-06-26 84.55% 15.48% 1.598x
All rolling windows — the objective set (equal-weighted mean ratio)
Strategy Benchmark (CAPW_UNIV) Excess
2006200720082009201020112012201320142015201620172018201920202021 -25%0%25%50%75%100%125%
rolling 5y windows, monthly step — 179 windows · mean ratio 1.429x · beat benchmark in 179/179
#WindowStrategyBenchmarkRatio
1 2006-07-31 … 2011-07-29 19.92% 1.79% 1.178x
2 2006-08-31 … 2011-08-31 19.07% 0.21% 1.188x
3 2006-09-29 … 2011-08-31 15.83% -0.14% 1.160x
4 2006-10-31 … 2011-10-31 13.39% 0.23% 1.131x
5 2006-11-30 … 2011-11-30 10.36% -0.05% 1.104x
6 2006-12-29 … 2011-11-30 11.14% -0.32% 1.115x
7 2007-01-31 … 2012-01-31 11.65% 0.93% 1.106x
8 2007-02-28 … 2012-01-31 10.40% 1.43% 1.089x
9 2007-03-30 … 2012-03-30 13.66% 3.09% 1.103x
10 2007-04-30 … 2012-04-30 12.70% 2.42% 1.100x
11 2007-05-31 … 2012-05-31 8.32% 0.60% 1.077x
12 2007-06-29 … 2012-06-29 7.62% 1.92% 1.056x
13 2007-07-31 … 2012-07-31 7.80% 2.69% 1.050x
14 2007-08-31 … 2012-08-31 8.49% 2.95% 1.054x
15 2007-09-28 … 2012-09-28 7.59% 3.20% 1.043x
16 2007-10-31 … 2012-10-31 7.65% 2.60% 1.049x
17 2007-11-30 … 2012-11-30 8.03% 3.45% 1.044x
18 2007-12-31 … 2012-12-31 7.99% 3.69% 1.041x
19 2008-01-31 … 2013-01-31 12.80% 5.85% 1.066x
20 2008-02-29 … 2013-02-28 14.10% 6.82% 1.068x
21 2008-03-31 … 2013-03-28 17.47% 7.73% 1.090x
22 2008-04-30 … 2013-04-30 17.91% 7.51% 1.097x
23 2008-05-30 … 2013-04-30 17.34% 7.81% 1.088x
24 2008-06-30 … 2013-06-28 24.06% 9.33% 1.135x
25 2008-07-31 … 2013-07-31 28.88% 10.48% 1.167x
26 2008-08-29 … 2013-07-31 30.02% 10.52% 1.176x
27 2008-09-30 … 2013-09-30 36.08% 11.48% 1.221x
28 2008-10-31 … 2013-10-31 44.91% 15.76% 1.252x
29 2008-11-28 … 2013-10-31 48.05% 17.46% 1.260x
30 2008-12-31 … 2013-12-31 49.43% 18.44% 1.262x
31 2009-01-30 … 2013-12-31 53.29% 20.64% 1.271x
32 2009-02-27 … 2014-01-31 58.57% 21.63% 1.304x
33 2009-03-31 … 2014-03-31 57.38% 20.60% 1.305x
34 2009-04-30 … 2014-04-30 52.99% 19.00% 1.286x
35 2009-05-29 … 2014-04-30 54.20% 18.32% 1.303x
36 2009-06-30 … 2014-06-30 55.59% 19.01% 1.307x
37 2009-07-31 … 2014-07-31 50.85% 17.39% 1.285x
38 2009-08-31 … 2014-08-29 50.87% 17.70% 1.282x
39 2009-09-30 … 2014-09-30 48.49% 16.64% 1.273x
40 2009-10-30 … 2014-09-30 54.19% 17.08% 1.317x
41 2009-11-30 … 2014-11-28 51.96% 16.82% 1.301x
42 2009-12-31 … 2014-12-31 49.37% 16.28% 1.285x
43 2010-01-29 … 2014-12-31 52.26% 17.23% 1.299x
44 2010-02-26 … 2015-01-30 49.96% 15.80% 1.295x
45 2010-03-31 … 2015-03-31 48.94% 15.40% 1.291x
46 2010-04-30 … 2015-04-30 47.73% 15.38% 1.280x
47 2010-05-28 … 2015-04-30 50.48% 17.09% 1.285x
48 2010-06-30 … 2015-06-30 54.55% 17.45% 1.316x
49 2010-07-30 … 2015-06-30 53.24% 16.43% 1.316x
50 2010-08-31 … 2015-08-31 50.76% 15.76% 1.302x
51 2010-09-30 … 2015-09-30 45.88% 13.61% 1.284x
52 2010-10-29 … 2015-09-30 44.89% 13.06% 1.282x
53 2010-11-30 … 2015-11-30 45.26% 15.09% 1.262x
54 2010-12-31 … 2015-12-31 44.55% 13.55% 1.273x
55 2011-01-31 … 2016-01-29 40.57% 11.90% 1.256x
56 2011-02-28 … 2016-01-29 41.66% 11.53% 1.270x
57 2011-03-31 … 2016-03-31 43.44% 12.90% 1.270x
58 2011-04-29 … 2016-04-29 42.65% 12.39% 1.269x
59 2011-05-31 … 2016-05-31 44.38% 12.94% 1.278x
60 2011-06-30 … 2016-06-30 45.50% 13.30% 1.284x
61 2011-07-29 … 2016-07-29 52.10% 14.52% 1.328x
62 2011-08-31 … 2016-08-31 53.89% 15.19% 1.336x
63 2011-09-30 … 2016-09-30 58.99% 16.32% 1.367x
64 2011-10-31 … 2016-10-31 53.47% 14.02% 1.346x
65 2011-11-30 … 2016-11-30 58.13% 14.66% 1.379x
66 2011-12-30 … 2016-12-30 58.25% 14.92% 1.377x
67 2012-01-31 … 2017-01-31 56.28% 14.63% 1.363x
68 2012-02-29 … 2017-02-28 54.03% 14.78% 1.342x
69 2012-03-30 … 2017-02-28 53.08% 14.43% 1.338x
70 2012-04-30 … 2017-04-28 49.10% 14.61% 1.301x
71 2012-05-31 … 2017-05-31 55.11% 15.98% 1.337x
72 2012-06-29 … 2017-05-31 55.42% 15.44% 1.346x
73 2012-07-31 … 2017-07-31 54.79% 15.43% 1.341x
74 2012-08-31 … 2017-08-31 55.22% 15.12% 1.348x
75 2012-09-28 … 2017-08-31 55.26% 14.77% 1.353x
76 2012-10-31 … 2017-10-31 57.40% 16.12% 1.356x
77 2012-11-30 … 2017-11-30 57.80% 16.79% 1.351x
78 2012-12-31 … 2017-12-29 56.16% 16.93% 1.336x
79 2013-01-31 … 2018-01-31 57.91% 17.57% 1.343x
80 2013-02-28 … 2018-02-28 58.83% 16.21% 1.367x
81 2013-03-28 … 2018-02-28 56.18% 15.81% 1.349x
82 2013-04-30 … 2018-04-30 50.94% 14.25% 1.321x
83 2013-05-31 … 2018-05-31 44.16% 14.57% 1.258x
84 2013-06-28 … 2018-05-31 47.23% 14.97% 1.281x
85 2013-07-31 … 2018-07-31 44.42% 14.83% 1.258x
86 2013-08-30 … 2018-07-31 45.32% 15.59% 1.257x
87 2013-09-30 … 2018-09-28 47.30% 15.84% 1.272x
88 2013-10-31 … 2018-10-31 37.00% 12.89% 1.214x
89 2013-11-29 … 2018-10-31 36.97% 12.60% 1.216x
90 2013-12-31 … 2018-12-31 34.84% 9.93% 1.227x
91 2014-01-31 … 2019-01-31 36.72% 12.37% 1.217x
92 2014-02-28 … 2019-02-28 35.15% 12.38% 1.203x
93 2014-03-31 … 2019-03-29 38.19% 12.76% 1.226x
94 2014-04-30 … 2019-04-30 39.91% 13.73% 1.230x
95 2014-05-30 … 2019-04-30 39.68% 13.54% 1.230x
96 2014-06-30 … 2019-06-28 41.45% 12.81% 1.254x
97 2014-07-31 … 2019-07-31 43.81% 13.30% 1.269x
98 2014-08-29 … 2019-07-31 42.91% 12.80% 1.267x
99 2014-09-30 … 2019-09-30 43.95% 12.70% 1.277x
100 2014-10-31 … 2019-10-31 44.51% 12.91% 1.280x
101 2014-11-28 … 2019-10-31 44.63% 12.60% 1.285x
102 2014-12-31 … 2019-12-31 48.14% 14.16% 1.298x
103 2015-01-30 … 2019-12-31 48.17% 14.85% 1.290x
104 2015-02-27 … 2020-01-31 49.30% 14.04% 1.309x
105 2015-03-31 … 2020-03-31 44.79% 8.56% 1.334x
106 2015-04-30 … 2020-04-30 53.12% 11.65% 1.371x
107 2015-05-29 … 2020-05-29 53.48% 12.61% 1.363x
108 2015-06-30 … 2020-06-30 56.13% 13.64% 1.374x
109 2015-07-31 … 2020-07-31 65.45% 14.60% 1.444x
110 2015-08-31 … 2020-08-31 71.53% 18.07% 1.453x
111 2015-09-30 … 2020-09-30 71.07% 17.05% 1.462x
112 2015-10-30 … 2020-10-30 67.15% 14.60% 1.459x
113 2015-11-30 … 2020-11-30 75.98% 17.43% 1.499x
114 2015-12-31 … 2020-12-31 77.95% 18.65% 1.500x
115 2016-01-29 … 2021-01-29 115.82% 19.26% 1.810x
116 2016-02-29 … 2021-02-26 113.00% 19.79% 1.778x
117 2016-03-31 … 2021-03-31 118.13% 19.42% 1.827x
118 2016-04-29 … 2021-03-31 119.97% 19.66% 1.838x
119 2016-05-31 … 2021-05-28 117.26% 20.42% 1.804x
120 2016-06-30 … 2021-06-30 117.08% 21.06% 1.793x
121 2016-07-29 … 2021-06-30 114.05% 20.63% 1.774x
122 2016-08-31 … 2021-08-31 116.18% 21.75% 1.776x
123 2016-09-30 … 2021-09-30 111.34% 20.22% 1.758x
124 2016-10-31 … 2021-10-29 117.97% 22.50% 1.779x
125 2016-11-30 … 2021-11-30 117.26% 21.87% 1.783x
126 2016-12-30 … 2021-11-30 119.51% 21.75% 1.803x
127 2017-01-31 … 2022-01-31 108.46% 20.17% 1.735x
128 2017-02-28 … 2022-02-28 109.27% 18.51% 1.766x
129 2017-03-31 … 2022-03-31 113.65% 19.46% 1.788x
130 2017-04-28 … 2022-03-31 117.32% 19.46% 1.819x
131 2017-05-31 … 2022-05-31 109.07% 15.59% 1.809x
132 2017-06-30 … 2022-06-30 102.57% 13.08% 1.791x
133 2017-07-31 … 2022-07-29 103.92% 15.16% 1.771x
134 2017-08-31 … 2022-08-31 103.44% 13.72% 1.789x
135 2017-09-29 … 2022-08-31 105.11% 13.56% 1.806x
136 2017-10-31 … 2022-10-31 99.02% 11.86% 1.779x
137 2017-11-30 … 2022-11-30 98.01% 12.52% 1.760x
138 2017-12-29 … 2022-11-30 100.11% 12.46% 1.780x
139 2018-01-31 … 2023-01-31 95.54% 11.01% 1.761x
140 2018-02-28 … 2023-02-28 90.97% 11.03% 1.720x
141 2018-03-29 … 2023-02-28 92.20% 11.72% 1.720x
142 2018-04-30 … 2023-04-28 88.77% 13.01% 1.670x
143 2018-05-31 … 2023-05-31 90.74% 12.95% 1.689x
144 2018-06-29 … 2023-05-31 91.02% 13.01% 1.690x
145 2018-07-31 … 2023-07-31 98.61% 14.67% 1.732x
146 2018-08-31 … 2023-08-31 94.43% 13.51% 1.713x
147 2018-09-28 … 2023-08-31 93.84% 13.56% 1.707x
148 2018-10-31 … 2023-10-31 91.49% 12.60% 1.701x
149 2018-11-30 … 2023-11-30 93.97% 14.58% 1.693x
150 2018-12-31 … 2023-12-29 103.40% 17.26% 1.735x
151 2019-01-31 … 2024-01-31 98.04% 16.27% 1.703x
152 2019-02-28 … 2024-01-31 97.52% 15.94% 1.704x
153 2019-03-29 … 2024-03-28 109.15% 17.50% 1.780x
154 2019-04-30 … 2024-04-30 105.66% 15.50% 1.781x
155 2019-05-31 … 2024-05-31 108.87% 18.12% 1.768x
156 2019-06-28 … 2024-06-28 105.73% 17.99% 1.744x
157 2019-07-31 … 2024-07-31 100.28% 17.70% 1.702x
158 2019-08-30 … 2024-08-30 101.76% 18.41% 1.704x
159 2019-09-30 … 2024-09-30 103.93% 18.65% 1.719x
160 2019-10-31 … 2024-10-31 104.51% 17.87% 1.735x
161 2019-11-29 … 2024-11-29 111.62% 18.64% 1.784x
162 2019-12-31 … 2024-12-31 104.00% 17.62% 1.734x
163 2020-01-31 … 2025-01-31 107.56% 18.07% 1.758x
164 2020-02-28 … 2025-02-28 104.84% 19.00% 1.721x
165 2020-03-31 … 2025-03-31 105.55% 19.24% 1.724x
166 2020-04-30 … 2025-04-30 98.63% 16.49% 1.705x
167 2020-05-29 … 2025-04-30 97.19% 15.80% 1.703x
168 2020-06-30 … 2025-06-30 102.39% 18.19% 1.712x
169 2020-07-31 … 2025-07-31 92.72% 17.87% 1.635x
170 2020-08-31 … 2025-08-29 91.97% 16.69% 1.645x
171 2020-09-30 … 2025-09-30 96.84% 18.57% 1.660x
172 2020-10-30 … 2025-09-30 99.86% 19.43% 1.673x
173 2020-11-30 … 2025-11-28 89.93% 17.77% 1.613x
174 2020-12-31 … 2025-12-31 93.41% 16.92% 1.654x
175 2021-01-29 … 2025-12-31 67.77% 17.20% 1.432x
176 2021-02-26 … 2026-01-30 74.80% 17.04% 1.494x
177 2021-03-31 … 2026-03-31 70.06% 14.07% 1.491x
178 2021-04-30 … 2026-04-30 78.46% 16.03% 1.538x
179 2021-05-28 … 2026-04-30 79.79% 16.22% 1.547x
Notes
mode=explore; family=recovery-quality-contrarian-52w-hybrid New hybrid family that fuses three orthogonal ideas into an explicit arbitration stack: 52-week drawdown contrarian entry, recovery/trend repair confirmation, and sparse-fundamental quality durability. The model does not average them mechanically. Instead it changes which sleeve can lead by regime and by stock state: strong tapes let repaired leaders graduate into momentum leadership, mixed tapes require quality-backed repair before deep drawdowns can rank, and risk-off tapes only allow contrarian rebounds through if low-vol durability and tradability are present. When recovery and contrarian signals conflict, repair state and quality decide whether a stock is an early turnaround or a falling knife. Deliberate metric coverage: actively use one short-term shakeout metric, one medium-term momentum cluster, both recovery distance metrics, volatility, all three liquidity checks, both income metrics, two valuation metrics, three growth metrics, both quality metrics, and one size tilt. Deliberate weight-0 metrics this run: pe, return_12m_pct, eps_growth_pct, revenue_growth_pct, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm. Correlated momentum and valuation columns are intentionally thinned, and sparse fundamentals are normalized by present weight so missing coverage does not auto-zero a name.
Lesson notes
#882 · degrade · relative_return Δ -0.3405 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/recovery-quality-contrarian-52w-hybrid: relative_return 1.0880x (delta -0.3405 vs exp_1123); win-rate 87.7095%, worst-window 0.964993, dispersion 8.8549%.
#881 · degrade · relative_return Δ -0.2886 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/contrarian-52w-recovery-quality-hybrid: relative_return 1.1399x (delta -0.2886 vs exp_1123); win-rate 89.3855%, worst-window 0.931579, dispersion 12.2356%.
#878 · degrade · relative_return Δ -0.1442 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/recovery-quality-contrarian-52w-hybrid: relative_return 1.2844x (delta -0.1442 vs exp_1123); win-rate 100.0%, worst-window 1.039876, dispersion 21.256%.
#877 · degrade · relative_return Δ -0.3883 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/contrarian-52w-recovery-quality-hybrid: relative_return 1.0402x (delta -0.3883 vs exp_1123); win-rate 87.7095%, worst-window 0.96851, dispersion 7.2447%.
#873 · degrade · relative_return Δ -0.0132 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/regime-momentum-recovery-quality-contrarian-52w-hybrid: relative_return 1.4154x (delta -0.0132 vs exp_1123); win-rate 100.0%, worst-window 1.067557, dispersion 32.6985%.
#868 · degrade · relative_return Δ -0.3418 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/recovery-quality-contrarian-52w-hybrid: relative_return 1.0867x (delta -0.3418 vs exp_1123); win-rate 90.5028%, worst-window 0.975433, dispersion 10.7482%.
#859 · degrade · relative_return Δ -0.3906 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/recovery-quality-contrarian-52w-hybrid: relative_return 1.0380x (delta -0.3906 vs exp_1123); win-rate 96.648%, worst-window 0.991476, dispersion 5.3407%.
#858 · degrade · relative_return Δ -0.0168 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/regime-momentum-recovery-quality-contrarian-52w-hybrid: relative_return 1.4118x (delta -0.0168 vs exp_1123); win-rate 100.0%, worst-window 1.085031, dispersion 29.496%.
#848 · degrade · relative_return Δ -0.3419 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/recovery-quality-contrarian-52w-hybrid: relative_return 1.0867x (delta -0.3419 vs exp_1123); win-rate 98.8827%, worst-window 0.994643, dispersion 10.1802%.
#843 · degrade · relative_return Δ -0.0793 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/recovery-quality-contrarian-52w-hybrid: relative_return 1.3493x (delta -0.0793 vs exp_1123); win-rate 100.0%, worst-window 1.038764, dispersion 26.9311%.
#842 · degrade · relative_return Δ -0.3757 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/regime-momentum-recovery-quality-contrarian-52w-hybrid: relative_return 1.0529x (delta -0.3757 vs exp_1123); win-rate 75.419%, worst-window 0.938758, dispersion 10.4212%.
#838 · degrade · relative_return Δ -0.0884 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/recovery-quality-contrarian-52w-hybrid: relative_return 1.3401x (delta -0.0884 vs exp_1123); win-rate 100.0%, worst-window 1.030799, dispersion 30.3765%.
#837 · degrade · relative_return Δ -0.2691 · parent exp_1123 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/regime-momentum-recovery-quality-contrarian-52w-hybrid: relative_return 1.1594x (delta -0.2691 vs exp_1123); win-rate 89.9441%, worst-window 0.947533, dispersion 18.6971%.
#834 · improve · relative_return Δ 0.0376 · parent exp_1118 · Jul 21, 2026 · auto/explore; benchmark CAPW_UNIV
explore/recovery-quality-contrarian-52w-hybrid: relative_return 1.4285x (delta +0.0376 vs exp_1118); win-rate 100.0%, worst-window 1.041427, dispersion 32.4311%.
Monthly picks — top stocks selected each month (whole timeline)
timeline — 240 months · top 15 each
Month 123456789101112131415
2006-07-31 AAPL MNST GOOG GOOGL NVDA ILMN ATI AKAM VRTX ADM GRMN EXPD AAL LVS SLG
2006-08-31 MAY AAPL GOOG NVDA ILMN AKAM ATI GOOGL MNST MRK ADM SLG STLD GEN TYL
2006-09-29 MAY AAPL AKAM ILMN BKNG AT NVDA GOOG LVS KSS MRK ADM APH DLR ORCL
2006-10-31 MAY AAPL NVDA AKAM BKNG AT GOOG ALGN DECK BMET MA HAS INCLF KSS REGN
2006-11-30 MAY MA AAPL ALGN NVDA GOOG ICE ATI REGN DECK GOOGL UAA ILMN AKAM AT
2006-12-29 MAY AAPL MA CF NVDA ICE UAL GOOG AT ATI EXPE ALGN REGN WYNN GT
2007-01-31 MAY MA ICE CF AAPL GT MGM WYNN ALGN EXPE TPL AT INCY KMX EOP
2007-02-28 MAY CF ICE ALGN GT MGM AAPL ON MA BKNG DLX ATI ALB GOOG TPL
2007-03-30 MAY CF GT ICE AAPL DLX ANDV BKNG OI MOS MGM CLF CE MA NRG
2007-04-30 MAY GT CF ANDV AAPL MOS AMZN BKNG OI DLX NRG ON CLF ALGN TEX
2007-05-31 MAY AAPL GT AMZN FSLR CLF CF ALGN DLX MOS ANDV OI MA DECK JEC
2007-06-29 MAY FSLR KMG CF AAPL MA AMZN AL MOS DECK GT AXON DLX ALGN OI
2007-07-31 AAPL FSLR KMG AL CF MAY NVDA AMZN MA GOOG AXON DJ ALGN MOS JEC
2007-08-31 AAPL NVDA KMG FSLR CF AMZN ISRG AL ALGN GRMN MA GOOG NOV AXON OI
2007-09-28 AAPL NVDA GRMN CF AMZN ISRG GME MPWR MOS WYNN NOV CMG KMG GOOG AL
2007-10-31 AAPL MOS CF ISRG GOOG NVDA BBBY CMG FSLR WYNN MPWR AMZN GME GRMN NOV
2007-11-30 FSLR AAPL GOOG ISRG CF MOS NVDA CMG WYNN BKNG GOOGL NFLX PODD DECK BBBY
2007-12-31 AAPL FSLR GOOG MOS ISRG CF DE BKNG CMG PRGO ANF GOOGL MA LKQ AMZN
2008-01-31 AAPL FSLR MOS GS GOOG CF ISRG CMG BKNG LKQ INCY PRGO CNX NFLX MA
2008-02-29 MOS CF GS AAPL FSLR GOOG CNX APA BLK DVN RRC INCY BKNG MA CLF
2008-03-31 MOS CF GS AAPL FSLR APA DVN GOOG ILMN WDC WHR BKNG NFLX MA EOG
2008-04-30 MOS FSLR AAPL CF GOOG APA MA DVN MEE CLF MHK PRGO GE BKNG ESV
2008-05-30 MOS MEE FSLR AAPL ESV CLF MA GOOG SWN CF BTUUQ APA BKNG BCR BBBY
2008-06-30 MOS AAPL MEE CLF ESV MA SWN APA BTUUQ CF BCR GOOG FSLR BKNG OXY
2008-07-31 MOS GS AAPL MA SWN ESV CLF APA MEE CF OXY BCR BKNG DF DVN
2008-08-29 SWN BCR DF AAPL ROH ESV CF MS CLF MOS FDO CELG APOL MEE ATGE
2008-09-30 MS SWN D AAPL BCR GS ROH DF MBI APA ESV PHM MOS FDO CELG
2008-10-31 MS D SWN AAPL BCR AAL DF ROH DAL APA AON FDO LEG GOOG MTCH
2008-11-28 MS D AAPL DAL SWN BCR AON DF APA GOOG ROH DLTR AZO GS ALK
2008-12-31 DAL APA AAL AAPL DVN COP EBAY AON UAL AZO GOOG DLTR GE ALK SWN
2009-01-30 APA DVN AAPL COP EBAY MNST AZO GOOG ANDV MOS AON OXY NFLX VRTX GS
2009-02-27 APA DVN AZO MOS GOOG EBAY AAPL COP GS VRTX NFLX DRI OXY GE MNST
2009-03-31 MOS AZO UPS NVDA GOOG BKNG AAPL MS DRI AON PSA DHI NFLX CF MU
2009-04-30 NVDA UPS F AZO BKNG GOOG DHI PSA AAPL MS KLAC MRVL AN STX EBAY
2009-05-29 CAR NVDA UPS MS AZO EBAY MOS PSA BKNG ASH EOG KLAC GOOG F CF
2009-06-30 CAR AAPL MOS EOG GNW AZO F EBAY BAC STX V IBM ASH ON GOOG
2009-07-31 CAR BAC EOG GNW AZO MOS AAPL STX EBAY F GE AMT PALM CF ON
2009-08-31 CAR SSP GNW PALM AAPL FNMA F URI BAC UIS LVS FITB GGP WHR BLDR
2009-09-30 CAR SSP PALM LVS AAPL SANM FNMA GNW UAL BKNG FMCC HIG DDR LEN MAC
2009-10-30 CAR GNW AIG SW AAPL SSP SANM BC LVS BKNG HIG UAL KMG PALM FNMA
2009-11-30 CAR BKNG KMG GNW AAPL VSTNQ GGP GS UIS STI SSP DDS LVS GOOG SW
2009-12-31 CAR GGP BKNG AMD SANM UAL KMG UIS VSTNQ DDS WFM INCY WLL STI F
2010-01-29 SANM CAR UAL AMD BKNG INCY GGP ACS F DAL VSTNQ GNW LYV NYT MU
2010-02-26 SANM CAR UAL ACS GNW AAL LYV BKNG GGP DAL AMD F SMCI NYT INCY
2010-03-31 SANM UAL GNW INCY LYV CLF ETFC MTG AAL SMCI F VIAV GGP BKNG WLL
2010-04-30 UAL ETFC MTG SANM GNW INCY BC LYV DDS VIAV WLL VSTNQ CLF MBI GGP
2010-05-28 UAL ETFC BC AAPL NFLX SSP GS MBI URI DDS SANM MTG VSTNQ AAL ZION
2010-06-30 GS AAPL AAL ETFC NFLX UAL SANM LVS AKAM BBWI AZO ZION CMG LULU NVDA
2010-07-30 GS AAPL ETFC AAL UAL NFLX AIG AZO LVS WY FFIV AKAM SBUX AMAT NVDA
2010-08-31 NEM GS AAPL ETFC NFLX AZO BKNG CB AAL LVS WY UAL FFIV URI CCU
2010-09-30 ETFC NFLX BKNG NEM AAPL GS LVS FFIV MBI AKAM VSTNQ AZO FTNT VRTS EC
2010-10-29 ETFC NFLX LVS FTNT BKNG AAL FFIV UAL WLL VRTS ACAS CMG NEM EC URI
2010-11-30 ETFC LVS NFLX VRTS CMG URI FTNT FFIV BKNG UAL AAL ACAS WLL DECK MBI
2010-12-31 ETFC LVS VRTS URI ACAS NFLX WLL DECK NVDA LYB BKNG CMG FTNT LULU NOV
2011-01-31 MAY ETFC NVDA URI LVS ACAS WLL AIG NFLX AZO AAPL VRTS MOS FTNT BKNG
2011-02-28 MAY ETFC NVDA NXPI URI IPGP VIAV NFLX FTNT AAPL WY LULU MOS AIG ACAS
2011-03-31 MAY NVDA IPGP NXPI URI ETFC VIAV FTNT VRTS ANDV ECHO AAPL WY NFLX TER
2011-04-29 MAY IPGP LULU NXPI REGN FTNT NVDA ANDV ETFC MTW ULTA BKNG EP CAT ECHO
2011-05-31 MAY IPGP EP BKNG VLO WCG REGN NVDA COG ABMD LULU NXPI ETFC GMCR KSU
2011-06-30 MAY IPGP EP COG WCG ABMD ULTA CEPH DDS DPZ VLO BIIB NFLX LULU KSU
2011-07-29 MAY AAPL VLO IPGP LULU CTRA VRTS NFLX DPZ ULTA EP AZO COG WCG WYNN
2011-08-31 AAPL CF MAY AZO WYNN LULU CTRA AIG NFLX GOOG BKNG MOS BLK VRTS CAT
2011-09-30 AAPL CF AZO MAY WYNN CTRA AIG BLK DG KLAC BKNG DPZ V MNST LULU
2011-10-31 AAPL MAY AZO CF KLAC DG DPZ AIG WYNN GOOG BLK DLTR V VFC MNST
2011-11-30 AAPL MAY AZO CF KLAC AIG NVDA GOOG ISRG V BKNG WYNN CTRA DPZ MA
2011-12-30 AAPL MAY AZO CF GOOG MA V ISRG CAT WYNN BLK GE KLAC SPG GNRC
2012-01-31 AAPL URI FBHS GNRC AZO COG WCG CF AAL MA FAST LYB BLDR GOOG CNC
2012-02-29 AAPL URI STX AZO MOH BLDR GILD NXPI REGN VLO BKNG WCG TEX HFC COG
2012-03-30 AAPL BLDR STX NXPI URI BKNG AZO TEX EQIX MOH REGN MTG HFC MTW CF
2012-04-30 AAPL BLDR BKNG STX AZO URI EQIX REGN NXPI MNST DPZ EC ISRG V ORLY
2012-05-31 AAPL BLDR STX BKNG AZO MNST REGN URI ORLY EQIX SHW ISRG SPG EXPE AIG
2012-06-29 AAPL BLDR EXPE AZO STX MNST BKNG SHW EQIX AAL TRIP ROST VRTX SPG DG
2012-07-31 AAPL EXPE AZO STX BLDR SHW VRTX BKNG DG EQIX EW MNST V PHM LEN
2012-08-31 STX PHM AAPL STZ ANDV GPS LPX EXPE EQIX LEN REGN SHW CDNS BLDR ALL
2012-09-28 PHM STX ANDV AAPL KBH LPX BLDR EXPE BBBY GPS LYB REGN GILD STZ LEN
2012-10-31 BBBY PHM AAPL KBH BLDR LPX EXPE STX ANDV ALL LEN GOOG GNRC STZ GILD
2012-11-30 BBBY PHM KBH GNRC BLDR LPX WHR ALL AXON STZ PSX FSLR GILD ANDV WY
2012-12-31 LPX BBBY PHM FSLR GNRC REGN WHR AXON NFLX KBH VRTS ALL SW ANDV DXC
2013-01-31 NFLX OMX THC PHM LPX VRTS KBH APO SW ANDV WHR ALL BC GNW STX
2013-02-28 NFLX OMX VRTS APO MTG THC LPX MPC PHM SW VLO ALL KBH CPAY ANDV
2013-03-28 NFLX OMX FNMA KKR FMCC MTG VRTS SVU THC MHK HRB CPAY GILD KBH MPC
2013-04-30 FNMA FMCC OMX NFLX MTG KKR THC VRTS GILD CAR HRB APO MHK ANDV KBH
2013-05-31 FMCC FNMA OMX NFLX KKR MTG FSLR BBBY TSLA VRTS KBH SVU PHM WDC APO
2013-06-28 FMCC FNMA OMX TSLA BBBY FSLR NFLX KKR MTG REGN MU SVU WDC VRTS GILD
2013-07-31 FNMA OMX FMCC TSLA BBBY MTG GME SVU MU KKR NFLX FANG EA FSLR GILD
2013-08-30 OMX TSLA FNMA MTG FMCC BBBY GME META NFLX SVU REGN BBY AAPL FL CSGP
2013-09-30 OMX TSLA META NFLX FNMA FMCC MTG REGN AXON GME AAPL BBY INCY GT SVU
2013-10-31 OMX TSLA FMCC FNMA META AXON MU REGN NFLX FANG INCY BBY KATE BKNG FL
2013-11-29 OMX FNMA FMCC META MU NFLX INCY TSLA AXON DAL TKO PBI BKNG MKTX KATE
2013-12-31 FNMA FMCC META INCY NFLX MU TKO KATE AAPL PBI BKNG URI HII BX RRD
2014-01-31 FNMA FMCC INCY TKO ILMN MU META DXCM NFLX TSLA KATE SMCI WYNN HII BX
2014-02-28 FMCC FNMA TSLA ILMN TKO META INCY FRX MU WYNN DXCM AAL NFLX MGM URI
2014-03-31 FMCC FNMA TKO TSLA ILMN META AAL FRX DAL INCY DXCM NXPI TPL FANG WYNN
2014-04-30 FMCC FNMA TSLA MU FANG FRX TKO CAR META DAL NBR SWKS NXPI AAL URI
2014-05-30 META MU DAL FRX LUV AAL TPL SWKS FANG FMCC WLL NXPI CAR URI AAPL
2014-06-30 MU FMCC FANG FNMA META MMI AAL NFX TRGP FRX WLL SWKS DAL TPL LUV
2014-07-31 MU SWKS FANG TPL FMCC MMI FNMA NFX META AAPL LUV WMB FRX TRGP NBR
2014-08-29 MMI ENPH SWKS MU TPL GILD LUV AAPL CAR NFX URI INTC HCA WMB TRGP
2014-09-30 ENPH TPL GILD SWKS LUV MMI AAPL META MU URI SMCI AVGO HCA LRCX PANW
2014-10-31 ENPH MMI PANW MU SMCI GILD SWKS EW MNST AAPL LUV META AMGN AVGO SIAL
2014-11-28 PAYC PANW EW SMCI SWKS LUV AAPL MNST MMI MU AMGN BBBY INCY META ABBV
2014-12-31 PAYC AXON SWKS LUV RCL PANW AAPL EW UAL EA AAL MNST SMCI INCY DAL
2015-01-30 SWKS AAPL RCL AXON PAYC LUV EA LULU KR PANW UAL ON MNST CNC BBWI
2015-02-27 SWKS PAYC EA LULU AAPL MNST CNC ON PANW SMCI AVGO KR HSP LUV RCL
2015-03-31 SWKS CNC PAYC AAPL MNST EA INCY HSP AZO PANW AVGO CNXT ANDV CI MOH
2015-04-30 CZR BLDR PAYC CNXT SWKS MAY BTUUQ KMG VTSS HSP ABMD INCY CNC PANW AZO
2015-05-29 CZR CNXT BLDR BTUUQ AXON SWKS KMG NFLX PAYC INCY VTSS PANW ABMD DXCM AZO
2015-06-30 BTUUQ NFLX CZR GILD AAPL BLDR AXON AZO SWKS SEDG CNXT CI CNC DXCM PANW
2015-07-31 BLDR NFLX GILD BTUUQ AAPL AZO CZR AMZN CI DXCM PANW ABMD PAYC EA META
2015-08-31 SBUX AZO NFLX BLDR AMZN GILD AAPL GE BKNG MHK EBAY DXCM CZR DRI META
2015-09-30 SBUX AZO NFLX AMZN BLDR AAPL BKNG GE CZR GILD NVDA MHK PSA EBAY GOOG
2015-10-30 AZO SBUX AMZN AAPL NVDA GE BKNG GILD NEM NFLX PSA GOOG BLK MHK CCI
2015-11-30 AMZN GE NVDA ABMD AZO GOOG META FIX NFLX AAPL ATVI PSA BKNG TYL CZR
2015-12-31 AMZN GE NVDA AZO ABMD GOOG PSA META MHK UAL BKNG GILD ATVI AAPL V
2016-01-29 AMZN GE AZO NVDA ABMD META GOOG PSA SEDG MHK CZR NEM BKNG AAPL V
2016-02-29 AMZN GE UAL AZO NVDA META GOOG PSA TSN SPG KLAC BKNG ABMD MCD GILD
2016-03-31 AMZN GE NVDA TSN META NEM MAT AZO GOOG PSA ABMD KLAC LITE MRVL CPRI
2016-04-29 CLF AMZN GE CNX NVDA NEM META TSN MTW X LITE PSA WB APA NXPI
2016-05-31 AMZN NVDA CNX AMD WB CLF META MTW RRC SPGI X CZR GE AZO OKE
2016-06-30 CLF NVDA AMD X OKE CNX WB NEM DXC CZR AMZN MDR WPX MTW DLR
2016-07-29 CLF AMD NVDA AMZN X DHR WB SPGI AZO NEM GE WPX CNX OKE JOY
2016-08-31 AMD WB CLF NVDA X DHR JOY NEM SPGI WPX CNX NAV WMB AMZN AMAT
2016-09-30 WB AMD NVDA X DHR CLF LITE GNW JOY WMB SPGI WPX NAV AMAT CNX
2016-10-31 WB NVDA X AMD TPL LITE DHR WPX WMB SPGI DXC JOY CNX NAV GNW
2016-11-30 NVDA FMCC CLF X AMD FNMA WB TPL DHR NBR STLD WOR COHR WPX CNX
2016-12-30 FMCC CLF NVDA FNMA AMD X UIS TPL NBR SLM STLD RF CFG KEY BAC
2017-01-31 FMCC NVDA FNMA AMD CLF X URI TPL NBR SLM CSX TRGP CFG RF BAC
2017-02-28 AMD NVDA CLF X CSX URI TTD SLM TPL NAV INCY WDC COHR BAC RF
2017-03-31 AMD NVDA CLF X TTD CSX ANET INCY URI NRG GS MU NAV SLM IDXX
2017-04-28 AMD NVDA KMG ANET TTD MU IDXX X ALGN AMAT CSX LITE LRCX BLDR WDC
2017-05-31 NVDA KMG TTD XYZ WB LRCX MU ANET ALGN AMAT TSLA TTWO CSX VEEV WDC
2017-06-30 NVDA TTD XYZ WB TSLA TTWO ANET ALGN VRTX CSX KMG LRCX AMAT VEEV ADSK
2017-07-31 NVDA XYZ TTD LITE VRTX WB ALGN CVNA MU SEDG ANET TTWO NRG FSLR BA
2017-08-31 NVDA WB NRG VRTX CVNA SEDG TTWO ALGN XYZ BA TPL IPGP ANET META RCL
2017-09-29 NVDA WB BBBY TTWO SEDG XYZ NRG TTD MTW IPGP VRTX ALGN LRCX BA ANET
2017-10-31 BBBY NVDA MU XYZ SEDG ALGN TTD MTW TTWO WB IPGP ANET LRCX ABBV AMAT
2017-11-30 BBBY ENPH XYZ MU ALGN SEDG NVDA ANET IPGP TWTR LRCX NRG TTWO NVR FSLR
2017-12-29 BBBY ENPH XYZ MU SEDG MAY ANET ALGN FSLR NVDA WB IPGP TWTR PENN MTCH
2018-01-31 BBBY MAY NKTR ANET MU EC XYZ NVDA ENPH SEDG TWTR WB ANF CZR ALGN
2018-02-28 NKTR BBBY MU EC NVDA MAY XYZ SEDG ANET MTCH ENPH NFLX TWTR BA TKO
2018-03-29 NKTR MU NVDA ENPH SEDG XYZ NFLX MAY NXPI BLK MTCH ANET AZO AMZN HET
2018-04-30 NKTR MU ENPH NVDA CCI SEDG HET BLK NXPI META ETSY AZO EC ANF ABBV
2018-05-31 NKTR ENPH AXON MU HET THC CCI TKO NVDA SEDG ETSY EC CVNA NFLX ANF
2018-06-29 ENPH TKO AXON NKTR HET MU NFLX NVDA ANF CVNA CCI ETSY THC TTD XYZ
2018-07-31 ENPH TKO HET AXON CVNA ETSY THC TTD MU SVU NFLX ANF XYZ TRIP ABMD
2018-08-31 HET CVNA TKO ENPH AMD TTD XYZ DXCM SVU ETSY AXON ABMD LULU MOS MOH
2018-09-28 HET AMD CVNA TKO TTD XYZ DXCM UIS ABMD ETSY MOH MOS FTNT LULU AXON
2018-10-31 HET CCI MOS AMD TTD DXCM TKO XYZ CVNA CRM AMZN UIS ETSY AVGO FTNT
2018-11-30 HET CCI MOS AMD EXR EOG AMZN TTD RHT ETSY TSLA TKO XYZ KDP DXCM
2018-12-31 HET CCI MOS EXR EOG TTD RHT AMD AMZN TSLA DXCM ETSY MRK TRIP KDP
2019-01-31 HET CCI MOS EXR AMD AMZN EOG ETSY TTD FNMA RHT FMCC CIEN ENPH NFLX
2019-02-28 HET CCI FNMA FMCC ENPH AMD TTD MOS ETSY EXR CIEN KEYS ERIE RHT PAYC
2019-03-29 HET FNMA FMCC TTD ENPH ETSY EXR CCI CMG AMD AVP AZO PAYC CDNS ERIE
2019-04-30 HET TTD CVNA ENPH AVP AMD ETSY EXR CCI AZO FNMA FMCC CDNS PAYC SMCI
2019-05-31 HET EXR CCI ENPH AZO AMZN CVNA FNMA GS QCOM AVP RTX LLY FMCC MTCH
2019-06-28 HET ENPH EXR CCI AVP ERIE AZO VEEV FNMA AMZN FMCC TTD MTCH MKTX PAYC
2019-07-31 HET ENPH EXR AVP TTD CCI ERIE AZO VEEV PAYC MTCH MKTX PODD FICO SBUX
2019-08-30 ENPH HET EXR CCI AVP AZO NVDA SEDG MKTX BALL AMZN SBUX AAPL GS QCOM
2019-09-30 HET ENPH EXR CCI SEDG AVP NVDA PODD MKTX KLAC AAPL SBUX HSY NCC MTCH
2019-10-31 HET ENPH AVP EXR SEDG CCI GNRC FNMA BLDR PODD KBH FMCC KLAC LRCX TSLA
2019-11-29 HET TSLA AVP BLDR AAPL NVDA GNRC ENPH PODD LRCX CVNA LITE QRVO JBL DXCM
2019-12-31 HET TSLA ENPH THC QRVO AAPL AMD CVNA NVDA LLY SWKS BLDR DXCM LITE GNRC
2020-01-31 HET TSLA ENPH LLY AAPL THC CCI PODD NVDA AMD QCOM DXCM QRVO SWKS PAYC
2020-02-28 TSLA HET LLY CCI EXR ENPH QCOM NVDA WHR AAPL AZO PCG GS SEDG DXCM
2020-03-31 ENPH TSLA DVN EXR NVDA CCI AZO AMD DXCM BLK AAPL AMT SEDG AMZN GEN
2020-04-30 ENPH TSLA DVN EXR NVDA CCI AZO DXCM AMZN AMD AMT REGN BLK CRWD EQT
2020-05-29 TSLA ENPH DVN EXR NVDA BBBY AZO CCI DXCM AMZN BLK RRC EQT AAPL AMT
2020-06-30 TSLA BBBY AZO ENPH NVDA CCI DDOG EXR AMZN DXCM ETSY AMT BLK PENN AAPL
2020-07-31 BBBY TSLA AZO NVDA CCI EXR AMZN ENPH DDOG AMT BLK AAPL XYZ DXCM ETSY
2020-08-31 BBBY TSLA NVDA EXR AZO CVNA AMD AAPL XYZ TUP ETSY CCI AMZN ENPH BLK
2020-09-30 TSLA BBBY TUP PENN GME NVDA EXR ENPH AZO CVNA AMD XYZ SEDG AAPL PBI
2020-10-30 TSLA TUP GME BBBY ENPH PENN EXR AZO NVDA XYZ SEDG AMD FDX CVNA ETSY
2020-11-30 TSLA TUP GME BBBY ENPH MRNA EXR DVN AZO TTD CCI CPRI NVDA XYZ GE
2020-12-31 TSLA TUP ENPH MRNA BBBY DVN GME PLTR EXR NBR CPRI COTY CLF AZO CCI
2021-01-29 GME TSLA AZO EXR BBBY DVN CCI ENPH TUP APA MRNA NVDA SEDG OXY AIG
2021-02-26 GME TSLA AZO EXR CCI DDS DVN VIAC PLTR TUP QEP MAC CLF BBBY APA
2021-03-31 GME TSLA MRNA TUP EXR VIAC PSKY NBR AZO BBBY APA WBD PENN PLTR QEP
2021-04-30 GME QEP VIAC CAR TPL NBR TSLA DISCA BBWI DISCK TUP TRIP XEC MTW ANF
2021-05-28 GME DDS CAR TSLA XEC EXR MTW NUE TPL ANF BBWI ASO AZO MAC NAVI
2021-06-30 GME DDS MRNA RRD ASO RRC GS MAC DVN NVDA ANF XEC BX NAVI MDP
2021-07-30 GME MRNA DDS RRD AZO BX MDP RRC NVDA NUE GS ASO FTNT MBI DVN
2021-08-31 GME MRNA RRD DDS MDP KKR BX SBNY GS NVDA FTNT NAVI CLF NUE AZO
2021-09-30 MRNA GME RRD MDP KKR RRC CAR BX DDS DVN SBNY GS FTNT IT NVDA
2021-10-29 GME CAR RRD RRC MRNA DVN KKR TSLA MRO DDS MDP M NVDA JWN GS
2021-11-30 CAR TSLA GME DDS NVDA GS EXR MRO RRD MRNA AZO AMD RRC DVN M
2021-12-31 CAR RRD DDS NVDA TSLA BLDR EXR MRO DVN AMD GME AZO ON ANET F
2022-01-31 EXR GS NVDA MRO AZO RRD TSLA DVN CAR F AMD BLDR DDS CB COP
2022-02-28 GS EXR MRO AZO NVDA DVN TSLA RRD CAR COP CB DDS OXY EOG APA
2022-03-31 COP EXR NVDA DVN MRO RRD TSLA CAR OXY AMT MOS APA CF CVX DDS
2022-04-29 COP EXR MOS EQT CAR AMT RRC TSLA OXY NVDA CF DVN MRO NBR BKNG
2022-05-31 VLO EXR APA EQT OXY AMT CVX EOG XOM CCI MPC DVN MRO CTRA WDC
2022-06-30 VLO APA EXR XOM EOG AMT CVX MRO OXY DVN MPC EQT CCI CTRA HP
2022-07-29 VLO EXR APA AMT EOG OXY MRO XOM MPC TSLA DVN CCI HRB CVX EQT
2022-08-31 EXR DVN AMT AZO COP MPC TSLA CCI OXY CF EQT HRB CVX FSLR ENPH
2022-09-30 EXR DVN MPC COP AMT AZO OXY FSLR CF TSLA MRO CCI CVX SMCI EQT
2022-10-31 EXR DVN AZO COP MPC AMT FSLR CCI CVX CF CEG TSLA OXY UNM HOOD
2022-11-30 UCL VLO EXR MPC FSLR AZO BKNG TPL HES SMCI NFLX FTI ODP OXY DVN
2022-12-30 UCL VLO MPC EXR SMCI FSLR AZO HES FTI ODP NFLX TPL SPG BKNG BLK
2023-01-31 UCL VLO EXR MPC CCI NVDA HES AMT FSLR FTI AZO NFLX SMCI ODP BKNG
2023-02-28 UCL EXR VLO NVDA MTW FTI MPC BKNG URI AZO CLF STLD FSLR NFLX TSLA
2023-03-31 UCL NVDA TSLA EXR VLO SMCI MTW PSX ABNB FSLR BKNG MPC GE TEX AXON
2023-04-28 UCL NVDA META SMCI EXR FSLR TSLA GE PSX MPC BKNG VLO ABNB AZO COTY
2023-05-31 EXR NVDA SMCI TSLA BKNG AMT META CCI UCL APP PLTR BLDR AZO AMD AVGO
2023-06-30 SMCI CVNA NVDA PLTR VRT BLDR RCL APP META TSLA CCL NFLX AVGO PHM UBER
2023-07-31 CVNA SMCI NVDA EXR TSLA PLTR META ROST APP VRT RCL CCL BLDR BKNG AMT
2023-08-31 CVNA SMCI NVDA EXR VRT APP TSLA PLTR ROST ANF NFLX META BLDR UAL BKNG
2023-09-29 EXR CVNA NVDA SMCI VRT NFLX APP TSLA AZO ANF BKNG CCI CRM PSX PLTR
2023-10-31 EXR NVDA CVNA VRT ANF SMCI AZO NFLX CCI TSLA BKNG APP META CRM PSX
2023-11-30 EXR PHM ANF NVDA VRT CVNA GPS TSLA CCI COIN SMCI PLTR FNMA META CRM
2023-12-29 COIN CVNA ANF GPS PHM FNMA VRT EXR CRWD NVDA FMCC CRM APP X PLTR
2024-01-31 ANF ADCT SMCI FNMA VRT PHM CVNA COIN NVDA FMCC EXR CRWD DYN GPS ABX
2024-02-29 SMCI ADCT ANF CVNA NVDA DYN VRT FNMA COIN EXR CRWD FMCC AMD GE APP
2024-03-28 SMCI ADCT CVNA NVDA ANF VRT DYN COIN FNMA FMCC VST APP GE EXR HOOD
2024-04-30 SMCI CVNA ADCT NVDA COIN VRT VST ANF DYN APP HOOD GE FNMA FMCC WSM
2024-05-31 CVNA VST ANF VRT NVDA SMCI DELL FNMA ADCT CEG APP FMCC DYN COIN HOOD
2024-06-28 ANF NVDA CVNA VST DYN VRT SMCI APP DELL CEG HOOD FMCC FSLR THC FNMA
2024-07-31 CVNA NVDA ANF LUMN DYN VST EXR HOOD CEG APP LU THC COIN VRT GME
2024-08-30 LUMN DYN NVDA CVNA EXR ANF THC PBI IRM VST MMM PGR GDDY GS PLTR
2024-09-30 LUMN CVNA DYN NVDA EXR APP CCI VST PBI PLTR THC GEV AMT CEG PGR
2024-10-31 LUMN CVNA APP NVDA VST EXR GEV PLTR COHR CCI CEG TPL UAL FICO CCL
2024-11-29 APP LUMN CVNA PLTR TPL FMCC VST FNMA NVDA UAL HOOD AXON GEV TSLA CCL
2024-12-31 APP PLTR FMCC LUMN FNMA TSLA NVDA CVNA CCI LB TPL HOOD EXR VST AXON
2025-01-31 APP FMCC FNMA PLTR TSLA HOOD CCI NVDA LUMN EXR CVNA VST AXON UAL EMR
2025-02-28 FNMA FMCC PLTR APP HOOD CCI TSLA EXR NVDA TPR ALK CVNA EMR PBI VST
2025-03-31 FNMA FMCC PLTR NEM APP HOOD EXR AZO TSLA GS NVDA AMT TPL TPR CVNA
2025-04-30 FNMA PLTR FMCC NEM EXR AZO HOOD TSLA AMT APP GS NVDA NFLX PM VRSN
2025-05-30 PLTR FNMA NEM TSLA AZO FMCC HOOD NVDA APP EXR AMT GS NFLX GEV CVNA
2025-06-30 FNMA PLTR NEM HOOD TSLA FMCC AZO APP NVDA CAR GS GEV EXR AMT CVNA
2025-07-31 HOOD PLTR FNMA NEM FMCC TSLA GEV NVDA APP CAR UCL SMCI AZO CVNA STX
2025-08-29 HOOD PLTR ECHO UCL FNMA NEM AZO FMCC NVDA GEV AMD LITE CAR TSLA COIN
2025-09-30 FNMA FMCC ECHO HOOD APP STX WDC PLTR LITE NEM FIX CIEN SEDG AZO ADCT
2025-10-31 MU FMCC TE HOOD FNMA APP ECHO WDC LITE TSLA CIEN STX LUMN INTC NEM
2025-11-28 MU LITE TE WDC CIEN ECHO HOOD STX AMD WBD NKTR PLTR TSLA LUMN NEM
2025-12-31 TE LITE WDC ECHO MU CIEN WBD NKTR SSP STX ALB COHR NEM KSS AMD
2026-01-30 TE MU LITE WDC ECHO STX CIEN WBD ALB SSP NEM LRCX COHR INTC TER
2026-02-27 LITE WDC MU TE CIEN STX ECHO COHR VIAV NEM TER LRCX GLW EXR FIX
2026-03-31 LITE CCI MU EXR WDC CIEN AZO VIAV COHR GILD ALL NVDA STX GS AMT
2026-04-30 LITE CCI WDC MU CIEN VIAV INTC STX EXR COHR NBR GLW FIX AZO VRT
2026-05-29 MU LITE WDC INTC CCI STX AMD DELL CIEN VIAV MRVL EXR FLEX COHR ECHO
2026-06-26 MU WDC INTC STX CCI DELL MRVL AMD LITE TE CIEN EXR FLEX VIAV HPE
Scoring script (python)
FORMULA_NAME = "Recovery Quality Contrarian 52-Week Hybrid (Arbitrated Relay, v1123)"
LOGIC_VARIANT_COUNT = 3
NOTES = """mode=explore; family=recovery-quality-contrarian-52w-hybrid
New hybrid family that fuses three orthogonal ideas into an explicit arbitration stack: 52-week drawdown contrarian entry, recovery/trend repair confirmation, and sparse-fundamental quality durability. The model does not average them mechanically. Instead it changes which sleeve can lead by regime and by stock state: strong tapes let repaired leaders graduate into momentum leadership, mixed tapes require quality-backed repair before deep drawdowns can rank, and risk-off tapes only allow contrarian rebounds through if low-vol durability and tradability are present. When recovery and contrarian signals conflict, repair state and quality decide whether a stock is an early turnaround or a falling knife.
Deliberate metric coverage: actively use one short-term shakeout metric, one medium-term momentum cluster, both recovery distance metrics, volatility, all three liquidity checks, both income metrics, two valuation metrics, three growth metrics, both quality metrics, and one size tilt. Deliberate weight-0 metrics this run: pe, return_12m_pct, eps_growth_pct, revenue_growth_pct, shares_outstanding, close, adj_close, high_52w, ma_200d, eps_ttm, revenue_ttm, operating_income_ttm, free_cash_flow_ttm. Correlated momentum and valuation columns are intentionally thinned, and sparse fundamentals are normalized by present weight so missing coverage does not auto-zero a name."""

RECOVERY_SLEEVE = {
    "from_52w_high_pct": (0.34, -1),
    "from_200d_ma_pct": (0.28, +1),
    "return_3m_pct": (0.16, +1),
    "return_1m_pct": (0.10, -1),
    "momentum_12_1_pct": (0.12, +1),
}

QUALITY_SLEEVE = {
    "operating_margin_pct": (0.24, +1),
    "free_cash_flow_margin_pct": (0.24, +1),
    "operating_income_growth_pct": (0.16, +1),
    "free_cash_flow_growth_pct": (0.16, +1),
    "forward_eps": (0.10, +1),
    "market_cap": (0.10, -1),
}

TRADABILITY_VALUE_SLEEVE = {
    "avg_daily_dollar_volume_3m": (0.18, +1),
    "avg_daily_volume_3m": (0.12, +1),
    "trading_days_3m": (0.10, +1),
    "forward_pe": (0.16, -1),
    "peg": (0.14, -1),
    "dividend_yield_ttm_pct": (0.10, +1),
    "dividend_ttm": (0.10, +1),
    "realized_vol_3m": (0.10, -1),
}

MOMENTUM_SLEEVE = {
    "return_6m_pct": (0.30, +1),
    "momentum_12_1_pct": (0.26, +1),
    "return_3m_pct": (0.18, +1),
    "from_200d_ma_pct": (0.16, +1),
    "realized_vol_3m": (0.10, -1),
}


def _weighted_score(symbol, z_cache, weights):
    total = 0.0
    present = 0.0
    for metric, spec in weights.items():
        weight, direction = spec
        value = z_cache[metric].get(symbol)
        if value is None:
            continue
        total += weight * direction * value
        present += weight
    if present <= 0.0:
        return None
    return total / present


def _clamp(value, lo, hi):
    if value < lo:
        return lo
    if value > hi:
        return hi
    return value


def _safe_get(row, key):
    value = row.get(key)
    if value is None:
        return None
    return value


def _branch_name(regime):
    bull = regime.get("bull")
    breadth = regime.get("breadth")
    vol = regime.get("avg_realized_vol_3m")
    median_momo = regime.get("median_momentum_12_1_pct")
    median_repair = regime.get("median_from_200d_ma_pct")

    if (
        bull
        and breadth is not None and breadth >= 0.58
        and vol is not None and vol <= 0.33
        and median_momo is not None and median_momo >= 4.0
        and median_repair is not None and median_repair >= -0.02
    ):
        return "thrust"

    if (
        (not bull)
        or (breadth is not None and breadth < 0.46)
        or (vol is not None and vol >= 0.42)
        or (median_repair is not None and median_repair <= -0.08)
    ):
        return "defensive"

    return "selective"


def score_universe(stocks, regime, ctx):
    metrics = (
        "from_52w_high_pct",
        "from_200d_ma_pct",
        "return_1m_pct",
        "return_3m_pct",
        "return_6m_pct",
        "momentum_12_1_pct",
        "realized_vol_3m",
        "avg_daily_volume_3m",
        "avg_daily_dollar_volume_3m",
        "trading_days_3m",
        "dividend_yield_ttm_pct",
        "dividend_ttm",
        "forward_pe",
        "peg",
        "operating_income_growth_pct",
        "free_cash_flow_growth_pct",
        "forward_eps",
        "operating_margin_pct",
        "free_cash_flow_margin_pct",
        "market_cap",
    )
    z_cache = {}
    for metric in metrics:
        z_cache[metric] = ctx.z(metric)

    branch = _branch_name(regime)
    scores = {}

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

        recovery = _weighted_score(symbol, z_cache, RECOVERY_SLEEVE)
        quality = _weighted_score(symbol, z_cache, QUALITY_SLEEVE)
        tradability = _weighted_score(symbol, z_cache, TRADABILITY_VALUE_SLEEVE)
        momentum = _weighted_score(symbol, z_cache, MOMENTUM_SLEEVE)

        base_parts = 0.0
        base_weight = 0.0
        for value, weight in (
            (recovery, 1.0),
            (quality, 0.9),
            (tradability, 0.7),
            (momentum, 0.8),
        ):
            if value is None:
                continue
            base_parts += value * weight
            base_weight += weight
        if base_weight == 0.0:
            continue

        from_52w = _safe_get(row, "from_52w_high_pct")
        from_200d = _safe_get(row, "from_200d_ma_pct")
        ret_1m = _safe_get(row, "return_1m_pct")
        ret_3m = _safe_get(row, "return_3m_pct")
        ret_6m = _safe_get(row, "return_6m_pct")
        vol_3m = _safe_get(row, "realized_vol_3m")
        trading_days = _safe_get(row, "trading_days_3m")

        deep_drawdown = from_52w is not None and from_52w <= -18.0
        repaired = from_200d is not None and from_200d >= 2.0
        broken_trend = from_200d is not None and from_200d <= -6.0
        short_term_shakeout = ret_1m is not None and ret_1m <= -4.0
        medium_turn = ret_3m is not None and ret_3m >= 3.0
        sustained_trend = ret_6m is not None and ret_6m >= 8.0
        low_vol = vol_3m is not None and vol_3m <= 32.0
        tradable = trading_days is not None and trading_days >= 55.0

        arbitration = 0.0

        if branch == "thrust":
            # Reward names that have already repaired; deep drawdowns only work if they have turned.
            if repaired and sustained_trend:
                arbitration += 0.28
            if deep_drawdown and repaired and medium_turn:
                arbitration += 0.18
            if deep_drawdown and not repaired:
                arbitration -= 0.22
            if quality is not None and quality >= 0.35 and momentum is not None and momentum >= 0.20:
                arbitration += 0.14
            if short_term_shakeout and repaired:
                arbitration += 0.08

            branch_score = 0.40 * (momentum if momentum is not None else 0.0)
            branch_score += 0.28 * (recovery if recovery is not None else 0.0)
            branch_score += 0.20 * (quality if quality is not None else 0.0)
            branch_score += 0.12 * (tradability if tradability is not None else 0.0)

        elif branch == "selective":
            # Mixed tapes pay for recovery only if quality/tradability say the rebound is investable.
            if deep_drawdown and repaired and tradable:
                arbitration += 0.18
            if deep_drawdown and quality is not None and quality >= 0.25 and medium_turn:
                arbitration += 0.16
            if deep_drawdown and ((quality is not None and quality < -0.15) or broken_trend):
                arbitration -= 0.26
            if short_term_shakeout and repaired and quality is not None and quality >= 0.10:
                arbitration += 0.08
            if momentum is not None and momentum >= 0.35 and deep_drawdown is False:
                arbitration += 0.06

            branch_score = 0.34 * (recovery if recovery is not None else 0.0)
            branch_score += 0.30 * (quality if quality is not None else 0.0)
            branch_score += 0.20 * (tradability if tradability is not None else 0.0)
            branch_score += 0.16 * (momentum if momentum is not None else 0.0)

        else:
            # Risk-off only allows contrarian entries when durability and calm trading confirm.
            if deep_drawdown and repaired and low_vol and tradable:
                arbitration += 0.14
            if deep_drawdown and ((quality is not None and quality >= 0.30) and low_vol):
                arbitration += 0.12
            if deep_drawdown and not low_vol:
                arbitration -= 0.20
            if broken_trend:
                arbitration -= 0.16
            if quality is not None and quality >= 0.45 and tradability is not None and tradability >= 0.10:
                arbitration += 0.14

            branch_score = 0.38 * (quality if quality is not None else 0.0)
            branch_score += 0.24 * (tradability if tradability is not None else 0.0)
            branch_score += 0.24 * (recovery if recovery is not None else 0.0)
            branch_score += 0.14 * (momentum if momentum is not None else 0.0)

        sparse_penalty = 0.0
        missing_core = 0
        if recovery is None:
            missing_core += 1
        if quality is None:
            missing_core += 1
        if tradability is None:
            missing_core += 1
        if momentum is None:
            missing_core += 1
        if missing_core >= 3:
            sparse_penalty -= 0.18
        elif missing_core == 2:
            sparse_penalty -= 0.08

        final_score = (base_parts / base_weight) * 0.18 + branch_score * 0.82 + arbitration + sparse_penalty
        scores[symbol] = _clamp(final_score, -5.0, 5.0)

    return scores