No. of Recommendations: 7
The {Nas100Momentum} backtest can be extended by using a proxy for the Nasdaq 100. I use {ZY100} and {FF134} as proxies in this post. Adding 1-year price momentum as the final step produces 2 new screens with results close to {Nas100Momentum}, and backtests to 1926.
The screen {ZY100Mo} applies momentum to Robbie's Zero Yield 100 (the 100 largest stocks that paid no dividends).
{FF134Mo} is a large-cap screen that uses the French Fama 5 Industry Code. The 5 bins are: Consumer, Manufacturing, Business Equipment, Healthcare, and Other (including Finance). Technology is in the Business Equipment bin. {FF134Mo} includes Consumer, Business Equipment, and Healthcare stocks. Manufacturing, and Other (including Finance) are excluded.
{FF134Mo} Command Translation
step0: Ordinary stocks and ADRs. No REITs. No ETFs.
step1: No IPOs.
step2: [MktCap] Top 10%
step3: [Fama/French 5 Industry Code] == 1,3,4
step4: One ticker per company.
step5: [Total Return % over 252 days] Top 10
Holding period = 19 mkt days, Frictional loss of 0.1%
gtr1.net: GTR1 Backtester - ZY100Mogtr1.net: GTR1 Backtester - FF134Mo==========================
Results from 19850201 to 20251128 without timing:
Screen CAGR SAWR GSD LDDD3 Sharpe CAGR/LDDD3
S5T 11.8 5.7 17.4 10.2 0.59 1.15
Nas100Momentum 24.4 11.7 35.1 14.9 0.78 1.64
ZY100Mo 22.0 9.9 38.4 16.1 0.68 1.37
FF134Mo 24.0 9.3 39.4 17.1 0.72 1.40
{Nas100Momentum} has the best results, but {ZY100Mo} and {FF134Mo} are close, with CAGRs around 23 and LDDD3 about 16.
Results with BCC0 timing (positions are closed on all BCC=0 days):
Screen CAGR SAWR GSD LDDD3 Sharpe CAGR/LDDD3
S5T_BCC0 13.0 8.0 14.8 6.8 0.74 1.91
Nas100Momentum_BCC0 25.8 13.1 33.1 12.2 0.84 2.12
ZY100Mo_BCC0 24.0 13.1 36.1 12.0 0.75 2.00
FF134Mo_BCC0 26.0 12.7 38.1 13.9 0.78 1.86
{Nas100Momentum_BCC0} has the best Sharpe and CAGR/LDDD3. Again, the 3 momentum screen results are close, with CAGRs around 25 and LDDD3 about 13.
The difference between with and without timing:
Screen change with BCC0: CAGR SAWR GSD LDDD3 Sharpe CAGR/LDDD3
S5T 1.2 2.2 -2.7 -3.4 0.15 0.75
Nas100Momentum 1.3 1.4 -2.0 -2.7 0.06 0.48
ZY100Mo 2.0 3.2 -2.4 -4.1 0.07 0.63
FF134Mo 2.0 3.4 -1.3 -3.1 0.06 0.46
Timing affects these momentum screens about the same: CAGR increases about 2, and LDDD3 is reduced by about 3.
=========================
Time for a longer backtest. Results from 19260104 to 20251128 without timing:
Screen CAGR SAWR GSD LDDD3 Sharpe CAGR/LDDD3
S5T 10.3 5.0 20.5 13.2 0.44 0.78
ZY100Mo 17.1 3.8 39.0 20.2 0.55 0.85
FF134Mo 17.6 7.5 31.1 15.1 0.62 1.16
The 2 momentum screens have similar CAGR, but {FF134Mo} has a LDDD3 about 5 lower than {ZY100Mo}. Compared to the shorter backtest, {ZY100Mo} GSD was about the same, while {FF134Mo} GSD surprisingly decreased from about 39 to 31.
Results with BCC0 timing (positions are closed on all BCC=0 days):
Screen CAGR SAWR GSD LDDD3 Sharpe CAGR/LDDD3
S5T_BCC0 12.4 7.7 16.4 8.2 0.63 1.50
ZY100Mo_BCC0 21.2 7.9 34.1 13.7 0.69 1.54
FF134Mo_BCC0 20.1 8.8 28.8 11.4 0.73 1.76
With timing, the 2 momentum screens have similar CAGR, and the difference in LDDD3 between the 2 momentum screens has dropped from about 5.1 to 2.3.
The difference between with and without timing:
Screen change with BCC0: CAGR SAWR GSD LDDD3 Sharpe CAGR/LDDD3
S5T 2.1 2.7 -4.1 -5.0 0.18 0.72
ZY100Mo 4.1 4.1 -4.8 -6.5 0.14 0.70
FF134Mo 2.5 1.3 -2.3 -3.7 0.11 0.60
Timing improved all the screen metrics, but helped {ZY100Mo} the most.
The 2 proxy screens {ZY100Mo} and {FF134Mo} have slightly different long backtest results, and so using an average of the 2 screens looks reasonable.
=== links ===
Author: rgearyiii
Subject: Bear Catcher II Bug Fix
Date: 3/27/2016
"... The Zero Yield 100 ...
The index is similar in construction to the NASDAQ 100, and it can perhaps be thought of as NDX`s psychotic little brother, currently representing about $3.6 trillion versus NDX`s $5.2 trillion. To see why it might be described as "psychotic", have a look at its wild swings in 1929, where it provides what is possibly a good simulation of QQQ for the time.
In selecting only stocks that have not paid any dividends for a year, the screen finds companies that are either in trouble, are paying a portion of their profits to shareholders indirectly through share buy-backs, or are holding onto cash for planned acquisitions, capital purchases, etc. By taking only the largest 100 of such companies, the chances are good that the index members are in the latter healthy category of companies with aggressive growth plans. I therefore refer to ZY100 as a "large-cap speculative" index. Indeed, it tends to soar during speculative bubbles (e.g., see its 81% return in 1999) and implode during busts (e.g., see its -93.6% drawdown during the Great Depression), making it suitable for my purpose here. Namely, I want 90-year backtests that reward indicators for remaining bullish through bubbly peaks and quickly going bearish for sharp busts, and I believe ZY100 provides them. The point is not that ZY100 itself is the best investment (though it certainly could be a good one at certain times), but that it stress-tests the indicator where I want it to. ..."
web.archive.org - Bear catcher ii bug fixhttps://yorickm.com/Message.php?pid=32177298{ZY100} Command Translation
step1: Ordinary stocks and ADRs. No REITs. No ETFs.
step2: No Finance Sector stocks.
step3: No IPOs.
step4: One ticker per company.
step5: Zero dividends paid in the last year, including special and preferred.
step7: [MktCapSmooth] Top 100
gtr1.net: GTR1 Backtester - ZY100