No. of Recommendations: 7
I combined 2 screens {N1Mo} and {N1HL} using a few methods. These screens use price momentum to pick from Nasdaq 100 stocks. The momentum measures here are:
PHL252lagged: Price 3 days ago / average of 1-year low and high prices
Mo: 1-year total price return
The screen {picktally_N1Mo_N1HL} uses picktally to find stocks that appear in both screens. To get an average near 3, I set the screen depths to 5. The number of passing stocks varies by month with a range of 0 to 5 picks.
The screen {rank_N1Mo_N1HL} uses the rank function, with an almost identical result as picktally. The 2 screens are merged into 1 screen, and the following steps are added:
rankPHL: rank of [PHL252lagged]
rankMo: rank of [Mo]
rankPHL <= 5
rankMo <= 5
The {Overlaps_N1Mo_N1HL} screen uses a [Overlaps] field to find the stocks in both base screens. The number of passing stocks varies from 3 to 7.
Overlaps: if(rankPHL<=3,if(rankMo<=3,0,100),100)
rankSum: plus(Overlaps,rankPHL,rankMo)
rankSum bottom 3
The {OverlapsMin_N1Mo_N1HL} screen has a different rankSum function. The number of passing stocks varies from 3 to 4.
rankSum: plus(Overlaps,min(rankPHL,rankMo))
rankSum bottom 3
The {OverlapsNoTies_N1Mo_N1HL } screen uses weights in the sum-of-ranks to avoid ties:
rankSum: linear(1,Overlaps,0.999,rankPHL,1,rankMo)
rankSum bottom 3
The average depth of these screens is about 3. {N1HL} has the highest CAGR, followed closely by {OverlapsMin_N1Mo_N1HL}. Results from 19850201 to 20251128 (monthly trading, no friction):
Screen CAGR GSD Sharpe Depth notes
N1Mo 31.4 49 0.80 3.0 -
N1HL 34.6 45 0.89 3.0 -
picktally_N1Mo_N1HL 31.9 47 0.82 3.1 screen overlap at 5 depth
rank_N1Mo_N1HL 31.9 47 0.82 3.1 screen overlap at 5 depth
Overlaps_N1Mo_N1HL 33.1 46 0.86 3.2 -
OverlapsMin_N1Mo_N1HL 33.7 47 0.86 3.3 -
OverlapsNoTies_N1Mo_N1HL 32.6 46 0.85 3.0 -
The number of passing stocks varies depending on which method is used to combine the 2 base screens. Using picktally or rank has a wide range of passing stocks, and sometimes picks no stocks. Using the Overlaps and sumranks fields always picks at least 3 stocks. Using a small weight in sumranks to break ties always picked 3 stocks in this backtest. The number of passing stocks (depth) with the various methods in these backtests was (as a percentage):
depth picktally rank Overlaps OverlapsMin OverlapsNoTies
0 1.2% 1.2% 0.0% 0.0% 0.0%
1 6% 6% 0% 0% 0%
2 19% 19% 0% 0% 0%
3 37% 36% 82% 66% 100%
4 31% 31% 15% 34% 0%
5 6% 6% 2% 0% 0%
6 0.0% 0.0% 0.2% 0.0% 0.0%
7 0.00% 0.00% 0.02% 0.00% 0.00%
=== links ===
N1Mo is
https://gtr1.net/2013/?~N1Mo::nas100.a:et1:dspo%28...N1HL is
https://gtr1.net/2013/?~N1HL::nas100.a:et1:dspo%28...picktally_N1Mo_N1HL is
https://gtr1.net/2013/?~picktally_N1Mo_N1HL::pickt...rank_N1Mo_N1HL is
https://gtr1.net/2013/?~rank_N1Mo_N1HL::nas100.a:e...Overlaps_N1Mo_N1HL is
https://gtr1.net/2013/?~Overlaps_N1Mo_N1HL::nas100...OverlapsMin_N1Mo_N1HL is
https://gtr1.net/2013/?~OverlapsMin_N1Mo_N1HL::nas...OverlapsNoTies_N1Mo_N1HL is
https://gtr1.net/2013/?~OverlapsNoTies_N1Mo_N1HL::...