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 (8) |
Post New
Author: lizgdal 🐝  😊 😞
Number: of 5823 
Subject: Finding Screen Overlaps with GTR1
Date: 07/05/26 12:23 PM
Post Reply | Report Post | Recommend It!
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::...
Print the post


Author: rayvt 🐝  😊 😞
Number: of 5823 
Subject: Re: Finding Screen Overlaps with GTR1
Date: 07/05/26 2:34 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 4
Having thought about this for a while, here is the method I settled on for implementing the overlap picks.

As a result of generating the picks for the RS and PHL screens, I have the top 12 of each, in rank order. (Both those screens are 5-HTD-12.) It would be easy enough to do a ranked sum as a figure of merit, but I really like the idea of taking the true overlaps, the stocks that are in the top 6 of both screens.
This gives you anywhere from 0 to 6 stocks. The 6 could be any number. Even up to 12 to catch all the common stocks.

Various reported methods of picking overlaps seem to average about 3 stocks, with a significant number of months coming up with 0 or 1 stock. That's too few for me; just too risky.

If that is too few stocks for you, fill in with stocks from each screen alternately. As these are in rank order, it naturally takes them in order. This was easy to do in my script, just 2 greps and a merge. This will result in a final list of 12 to 24 stocks.
Take the top N as the overlap screen list.

Since I view this list as a conglomeration of the two momentum screens I feel more comfortable with more then 5 stocks, so I arbitrarily chose N to be 7. Taking the top 8 or even 10 would be reasonable. No HTD for this screen.

I am operating kind of blind here, because I don't know how this could be backtested with GTR1. Which is why I chose a larger number than 5 for the number of stocks to hold.

This method takes the stocks in the order that each screen sees as best, regardless of where the stock is ranked by the other screen. Using a ranked sum method penalizes any stock that appears in one screen but not the other. Which does not seem reasonable to me. (Remember, I only have the top 12 of each, not the entire 100.)


Print the post


Author: lizgdal 🐝  😊 😞
Number: of 5823 
Subject: Re: Finding Screen Overlaps with GTR1
Date: 07/05/26 3:43 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 4
I think {OverlapsMin_N1Mo_N1HL} is close to what you want. Is the 20251128 result different than your method?

You can check the gtr1 fields:
Click Signal Values
Run Screener (no password needed because no .s fields are used)
Download Report

Symbol  [PHL252lagged]  [Mo]  [rankPHL]  [rankMo]  [Overlaps]  [rankSum]
WBD 0.72 131 1 3 0 1
AVGO 0.70 147 3 2 0 2
PLTR 0.60 161 19 1 100 101
MU 0.71 127 2 4 100 102
GOOGL 0.69 92 4 6 100 104
LRCX 0.67 114 7 5 100 105
GOOG 0.69 90 5 7 100 105
IDXX 0.68 76 6 10 100 106
APP 0.59 88 23 8 100 108
AMAT 0.64 46 8 15 100 108
KLAC 0.63 84 9 9 100 109
EA 0.63 24 10 28 100 110
REGN 0.62 5 11 47 100 111
INTC 0.60 63 20 11 100 111
MNST 0.62 36 12 20 100 112
ASML 0.60 56 17 12 100 112


The {OverlapsMin_N1Mo_N1HL} screen first adds the overlaps for the top 3 in each screen. On 20251128, this was 2 stocks: WBD and AVGO. Then stocks are added based on the lowest rank:
PLTR rank 1 in N1Mo
MU rank 2 in N1HL
GOOGL rank 4 in N1HL
LRCX rank 5 in N1Mo
GOOG rank 5 in N1HL
IDXX rank 6 in N1HL
APP rank 8 in N1Mo

https://gtr1.net/2013/?~OverlapsMin_N1Mo_N1HL::nas...
Print the post


Author: lizgdal 🐝  😊 😞
Number: of 5823 
Subject: Re: Finding Screen Overlaps with GTR1
Date: 07/05/26 7:43 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 3
Ahhh, I see, that is not quite what you want.

For example, with a 12 depth, say the overlaps were [rankPHL] #1 to #6, and [rankMo] #7 to #12. {OverlapsMin_N1Mo_N1HL} will pad with [rankMo] #1 to #6. But you want to pad with [rankPHL] #7 to #9, and [rankMo] #1 to #3.
Print the post


Author: rayvt 🐝  😊 😞
Number: of 5823 
Subject: Re: Finding Screen Overlaps with GTR1
Date: 07/05/26 7:57 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 4
Is the 20251128 result different than your method?

Note: I remove GOOG when GOOGL is also present.

My screens in rank order:
        --PHL--    --RS--
1 WBD PLTR
2 AVGO AVGO
3 MU WBD
4 LRCX MU
5 GOOGL LRCX
6 IDXX GOOGL
7 AMAT APP
8 KLAC KLAC
9 EA IDXX
10 CEG ASML
11 AMD AMD
12 APP INTC
13 ASML GILD

My script gets:
For top 7 commons
AVGO, WBD, MU, LRCX, GOOGL, idxx, pltr
Lower case ones are fillins after the stocks in common.
ranked-picks.txt
1 AVGO
2 WBD
3 MU
4 LRCX
5 GOOGL
6 IDXX
7 PLTR
8 AMAT
9 APP
10 KLAC
11 EA
12 CEG
13 ASML
14 AMD
15 INTC
16 GILD

For top 3 commons
AVGO, WBD, mu, pltr, lrcx, googl, idxx
Lower case ones are fillins after the stocks in common.
ranked-picks.txt
1 AVGO
2 WBD
3 MU
4 PLTR
5 LRCX
6 GOOGL
7 IDXX
8 AMAT
9 APP
10 KLAC
11 EA
12 CEG
13 ASML
14 AMD
15 INTC
16 GILD

Interesting how the order shifts depending on the actual number of stocks in common.

The final list, yours (from post) and mine (from script):
	Yours	My with top 3 
1 WBD AVGO
2 AVGO WBD
3 PLTR MU
4 MU PLTR
5 GOOGL LRCX
6 LRCX GOOGL
7 GOOG IDXX
8 IDXX AMAT
9 APP APP
10 AMAT KLAC
11 KLAC EA
12 EA CEG
13 REGN ASML
14 INTC AMD
15 MNST INTC
16 ASML GILD

For investing in the top 7 and omitting GOOG, the same stocks are picked. There are more differences near the bottom.

Based on just this one comparison, it would appear that this {OverlapsMin_N1Mo_N1HL} is a good enough backtest to validate my script's method of generating the overlap screen.

I do not believe the 32% CAGR, though.
Print the post


Author: bankersfate   😊 😞
Number: of 5823 
Subject: Re: Finding Screen Overlaps with GTR1
Date: 07/06/26 1:26 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 1
Thanks for the discussions, your efforts and sharing.

Do you ever eliminate any stocks for non-mechanical reasons? Like WBD is based on a buyout so if it were trading near $31 would you eliminate it?

I actually own positions in the top 9 except for LRCX, WBD and IDXX. I added LRCX today but held off on WBD and IDXX since I felt I already owned enough of the others (7 of 9).

I do not believe the 32% CAGR, though.

I wanna believe!

Thanks again
Print the post


Author: rayvt 🐝  😊 😞
Number: of 5823 
Subject: Re: Finding Screen Overlaps with GTR1
Date: 07/06/26 4:15 PM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 2
Do you ever eliminate any stocks for non-mechanical reasons? Like WBD is based on a buyout so if it were trading near $31 would you eliminate it?

Every time that thought crosses my mind, I steel myself to remember some quotes
"Discretion over buy-and-sell decisions in aggregate can turn a model that generates a market beating return into a sub-par return. IOW, follow the signals religiously!"

and
"(In a proven investment trading strategy...)
Do not -- repeat DO NOT -- pay much attention to the effect of every trade. The majority of individual trades will be irrelevant to your long-term results.

You should be concerned about portfolio results, not position results.

You need to trade like a casino – probability based, with no particular outcome required of any one trade.
1. Anything can happen
2. You don’t need to know what’s going to happen next in order to make money.
3. Wins and losses are random – You will never know when a trade will be a winner in advance, only that the conditions that define your edge are present.
4. Your edge is nothing more than a higher probability of one thing happening over another. Your edge is no guarantee of a winning trade, just of winning over time.
-- http://www.roguetraderette.com/2011/04/01/the-art-..."


and
"The historical evidence is clear that the winning strategy in both stocks and bonds is to ignore all forecasts and stick to a well-developed plan. -- Larry Swedroe"

So, yeah, no.
I held onto WBD until it dropped off the screen. In a moment of weakness, early on I set a GTC sell at 30.99 just in case it got there.

---------------
For the sake of completeness I will say that I changed the way to pick overlaps. It is trickier than it appears at first blush. Thinking about it overnight I was unhappy about the way I was doing it. Remember, this is all in a bash script -- so no handwaving allowed. It was a bit of a challenge to get it working right, especially making sure that some stocks were not included twice in the final overlap picks. And then to get the non-common stocks in the "proper" order. Trick here is to settle on what you think is the proper order.

So my current method is:
* The stocks that are common in the top 3 of both screens (PHL and RS).
* The stocks that haven't been picked that are in the top 6 of both screens.
* The remaining stocks that haven't been picked, alternately from each screen, in rank order.
* Invest in the top N stocks. My current thinking is N=7.
* The source lists are top 12-15 of each screen, in rank order, irrespective of how many stocks that screen invests in.

My convenient data source for the RS screen data gives the top 20, which is plenty.

Print the post


Author: musselmant   😊 😞
Number: of 5823 
Subject: Re: Finding Screen Overlaps with GTR1
Date: 07/07/26 7:32 AM
Post Reply | Report Post | Recommend It!
No. of Recommendations: 0
this is why you don't want to second-guess a strategy when you have data saying it is good: key trades may be missed
Strategy Months	Active Active Win % 
Avg Win Avg Loss
Profit Factor
Monthly Expectancy
Annualized Expectancy
% Months > +10%
% Months < -10%
Max Consecutive Wins
Max Consecutive Losses
Upside Capture vs SPY Downside Upside vs NDX Down

SPY 317 314 64.01% 3.30% -3.76% 1.56 0.75% 9.38% 0.95% 1.26% 15 5 1.0x 1.0x 0.7x 0.6x
NDX 317 315 59.05% 4.97% -5.11% 1.40 0.84% 10.51% 6.31% 5.99% 7 6 1.3x 1.4x 1.0x 1.0x
Base
5-stock 317 249 63.45% 7.83% -5.38% 2.53 2.36% 32.32% 13.88% 4.10% 9 3 0.7x -0.5x 0.5x -0.3x
PHL
Top2 317 249 62.25% 10.54% -6.40% 2.72 3.26% 46.90% 19.24% 7.26% 7 6 0.9x -0.8x 0.6x -0.5x
PHL2+4
Combo3
33/33 317 249 63.86% 8.77% -5.90% 2.62 2.72% 38.05% 15.14% 4.10% 9 3 0.7x -0.6x 0.5x -0.4x
PHL2+
Combo3
40/20 317 249 63.45% 8.89% -6.12% 2.52 2.68% 37.29% 15.77% 5.36% 9 3 0.8x -0.6x 0.5x -0.4x
Ratio
1-stock
champ 317 249 63.45% 13.85% -8.99% 2.67 4.32% 66.15% 24.61% 10.09% 9 4 2.1x 0.2x 1.7x 0.4x
Ratio
1-stock
HTD
final
Top3 317 249 61.45% 13.28% -8.02% 2.64 3.98% 59.79% 23.66% 9.46% 10 4 2.1x 0.4x 1.7x 0.5x
Best
3-stock
ratio
family 317 249 65.06% 9.33% -6.62% 2.62 2.95% 41.73% 16.40% 4.42% 10 3 1.5x 0.3x 1.2x 0.4x
Best
4-stock
ratio
family 317 249 62.65% 8.85% -6.09% 2.44 2.57% 35.61% 14.20% 5.68% 13 4 1.5x 0.5x 1.2x 0.5x
Best 5-stock
ratio
family 317 249 64.66% 7.78% -5.67% 2.51 2.38% 32.56% 13.25% 4.42% 9 3 1.3x 0.5x 1.1x 0.4x
Print the post


Post New
Unthreaded | Threaded | Whole Thread (8) |


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