Hi, Shrewd!        Login  
Shrewd'm.com 
A merry & shrewd investing community
Best Of MI | Best Of | Favourites & Replies | All Boards | Post of the Week! | How To Invest
Search MI
Shrewd'm.com Merry shrewd investors
Best Of MI | Best Of | Favourites & Replies | All Boards | Post of the Week! | How To Invest
Search MI


Investment Strategies / Mechanical Investing
Unthreaded | Threaded | Whole Thread (63) |
Author: musselmant   😊 😞
Number: of 5383 
Subject: Re: NDX 100 Momentum Strategy - Code Repository
Date: 04/11/26 10:06 PM
Post New | Post Reply | Report Post | Recommend It!
No. of Recommendations: 3
Start of live Nasdaq-100 strategy testing: 1993-10-01
Momentum lookback: 252 trading days
Base rebalance schedule for the reposted core results: first trading day of each calendar month
Friction: 0.1% of traded notional at each rebalance
Timing filter: hold cash for the next period whenever SPY is below its 325-day moving average on the rebalance date
Beta and Treynor are measured versus SPY daily returns
Sharpe and Sortino use 0% risk-free rate

momentum
look
back Top5 CAGR Sharpe Max DD 5timed timed Shrp timed Max DD
3M 21.1% 0.708 -81.9% 19.1% 0.722 -53.7%
6M 23.0% 0.742 -81.8% 25.0% 0.847 -58.9%
9M 25.8% 0.789 -70.2% 27.1% 0.870 -55.6%
12M 23.8% 0.742 -69.7% 23.6% 0.790 -50.7%
18M 13.6% 0.518 -87.3% 17.5% 0.640 -63.2%
So 9 month momentum look back for highest CAGR; 12 month gave a bit better on max DD.

For holding periods 1 month was best:
Hold	5 CAGR	5 Shrp	5 MaxDD	5timed 5timedShrp 5timed Max DD
2 weeks 21.2% 0.690 -78.9% 25.8% 0.859 -54.3%
1 month 23.8% 0.742 -69.7% 23.6% 0.790 -50.7%
2 month 17.7% 0.611 -82.4% 19.3% 0.686 -50.8%
3 month 18.4% 0.621 -88.8% 19.7% 0.686 -67.3%
6 month 13.4% 0.515 -83.3% 9.5% 0.432 -77.3%
For the continuous monthly-schedule runs, profit concentration looked like this:

Scenario
Top 1% of winning positions Top 5% 10%
Mom 1 4.9% 20.6% 35.7%
Mom 1 timed 5.5% 22.4% 37.2%
Mom 5 8.0% 24.3% 36.6%
Mom 5 timed 8.1% 24.3% 37.1%
Mom 10 9.4% 27.0% 39.3%
Mom 10 timed 9.1% 26.7% 39.2%


The strategy does not look like “one freak winner carries everything.” Missing 1 wouldn't destroy your return, but missing more of the top winners would. Missing 10% of your best winners would hurt more.

A 10-stock strategy with the timing rule is the best on 5 and 10 year horizons of all the versions, beating the S&P over the worst 2,3,5, and 10 year stretches, and coming close on the worst 1 and 2 year stretches for the S&P500 timed version itself:
What if someone started at a bad (the single worst) time?:

Worst rolling CAGR by horizon:
Scenario	Worst 1Y  2Y	  3Y	  5Y	10Y
NDX Mom 1 -70.3% -42.1% -28.3% -12.9% -1.0%
Mom 1timed -48.6% -27.3% -18.0% - 2.3% 4.4%
NDX Mom 5 -46.0% -20.8% -12.6% - 2.4% 2.8%
Mom 5timed -28.4% -12.3% - 6.3% 0.8% 5.0%
Mom 10 -38.7% -17.0% - 9.5% - 0.8% 2.5%
Mom 10timed -25.5% -10.2% - 4.8% 1.8% 5.1%
SPY -43.3% -23.3% -14.5% - 2.3% 1.2%
SPYtimed -22.0% - 7.8% - 2.7% 2.3% 4.9%
QQQ -67.6% -38.0% -25.0% - 9.4% 0.7%
QQQtimed -35.0% -16.1% - 9.0% - 0.7% 3.8%
First-trading-day-of-month start sensitivity:
This is the “what if I happened to begin on the first trading day of any month?” test:

Scenario
# Starts AvgStartCAGR Worst AvgShrpe AvgSortino AvgBeta AvgTreynor Avg Start Max DD
Mom 1 378 22.9% -1.5% 0.674 0.951 1.383 0.179 -78.7%
Mom 1timed 378 28.0% 3.8% 0.761 0.938 1.096 0.284 -70.2%
Mom 5 378 18.8% 3.9% 0.612 0.848 1.170 0.165 -55.4%
Mom 5timed 378 18.2% 6.4% 0.663 0.793 0.799 0.229 -44.1%
Mom 10 378 16.8% 3.3% 0.586 0.791 1.110 0.156 -50.6%
Mom 10timed 378 16.9% 7.1% 0.653 0.759 0.775 0.223 -39.9%
SPY 378 11.3% 4.1% 0.661 0.859 0.924 0.123 -41.8%
SPYtimed 378 9.8% 4.9% 0.699 0.776 0.565 0.177 -31.3%
QQQ 312 11.3% -0.5% 0.526 0.699 0.964 0.129 -42.3%
QQQtimed 312 11.0% 3.8% 0.613 0.701 0.617 0.188 -28.4%What that says: The top-1 version is still the best return engine, but starting-month luck matters a lot.
The timing filter materially improved the worst starting experience.
Top-10 +325DMA looks like the most forgiving momentum version by average drawdown

Core continuous results from the earliest start:
Scenario	CAGR	Vol	Sharpe	Sortino	Beta	Treynor	Max DD	Avg Turnover
Mom 1 33.7% 65.6% 0.780 1.121 1.544 0.322 -81.2% 83.3%
Mom 1timed 37.0% 56.9% 0.855 1.082 1.250 0.471 -76.0% 64.9%
Mom 5 23.8% 40.0% 0.742 1.041 1.329 0.219 -69.7% 70.6%
Mom 5timed 23.6% 33.5% 0.790 0.965 0.885 0.306 -50.7% 58.1%
Mom 10 21.2% 34.7% 0.735 1.002 1.267 0.198 -71.6% 62.0%
Mom 10timed 21.8% 29.4% 0.813 0.962 0.887 0.288 -48.0% 50.9%
SPY 10.5% 18.7% 0.626 0.798 0.892 0.117 -55.2% 0.3%
SPYtimed 9.4% 14.0% 0.706 0.783 0.541 0.174 -33.7% 6.4%
QQQ 10.0% 24.6% 0.488 0.645 0.900 0.111 -83.0% 0.3%
QQQtimed 10.9% 18.0% 0.621 0.704 0.567 0.192 -46.6% 5.9%
My read from that set:

Best raw return: NDX Mom 1 +325DMA
Best balanced momentum version: NDX Mom 5 +325DMA or NDX Mom 10 +325DMA
Best plain ETF drawdown control: SPY +325DMA
The 325DMA filter helped drawdowns a lot, but did not always improve CAGR.
Post New | Post Reply | Report Post | Recommend It!
Print the post
Unthreaded | Threaded | Whole Thread (63) |


Announcements
Mechanical Investing FAQ
Contact Shrewd'm
Contact the developer of these message boards.

Best Of MI | Best Of | Favourites & Replies | All Boards | Followed Shrewds