You can ignore authors, whether they are producing too much noise or being needlessly provocative, by clicking the yellow unhappy when reading their post.
- Manlobbi
Stocks A to Z / Stocks B / Berkshire Hathaway (BRK.A)
No. of Recommendations: 20
I was reading through back research articles on seekingalpha and one noted that the ratio of 21 day SMA to 200 day was a key momentum criteria beyond the usual ones so I used it by itself and I came up with a Nasdaq100 strategy using just that ratio to reduce the 100 (now 101) stocks in the index to 5 traded monthly:
Twice the Nasdaq100, essentially same beta, much better sharpe ratio, marginally better max drawdown:
strategy v. Nasdaq100 19850201 forward
cagr 23.7 11.5
sharpe .75 .44
beta 1.33 1.29
mdd -75.6 -80.8
<pre/>
https://gtr1.net/2013/?~Liquid_consolidators::nas1...
Nasdaq100 stocks
ratio(sma(1,21),sma(1,200)) top 5
that's it
No. of Recommendations: 13
It's a great find! A couple of thoughts ...
1) I *love* the simplicity & the stability of the various parameters. I'll leave it up to the reader but the backtested results are remarkably stable across holding periods (I tested it up to 1 year) and other key parameters (like 42 or 63 day SMAs instead of 21 & that's just about all the degrees of freedom available).
2) The Nasdaq 100 does a lot of heavy lifting in that performance though. Removing that step & just selecting all Nasdaq stocks or even simple variations to simulate the Nasdaq 100 (market cap. etc.) don't appear to have anywhere near similar performance (at least as far as I've found so far).
3) It's a pretty wild ride. Performance improves by attaching the BCC or similar, but even then - for the longer holding periods - you'll see -75 - -90s MDDs across different backtests. Sharpe is OK at circa 0.5 - 0.67 (that was about the highest I could get) , GSD is very high & so SAWR at 8%-10% is surprisingly low given the overall performance. And so ...
4) You'd probably want to blend it in a strategy (with re-balancing) in actual use. Have it act as a performance kicker & rely on the re-balancing to provide capital (to the screen) at the low points and so magnify the upward legs (vs. just operating this screen solo) while retaining overall portfolio stability (higher Sharpe & SAWR). In that case you could even go only 2-3 deep for further improved performance.
I'll play with it some more - it's the type of screen I like to use in blends in that it's simple, performing and stable with respect to it's parameters (broad mound of toast) and can be used for long holds. One issue for me is that the Nasdaq 100 isn't included as a parameter within SI-Pro (as far as I know currently & SMAs are also tricky) and I like to be able to screen manually also with the screens I use. I could do some spreadsheet work to include this and so replicate the screen, so I'll keep working on Liquid consolidators to see how to potentially use it in my blend.
Nice work & thanks for sharing! Anyone solved SMAs & Nasdaq 100 (or good alternatives) in SI-Pro previously?
No. of Recommendations: 2
I have been toying with something similar, to try and boost returns on QQQE (note the E).
My idea was
1. 50% in QQQE
2. 50% in the top 10 based on a momentum screen* - with quarterly rebalance
My rationale is that the gap between QQQE and QQQ has been significant and want to close this without taking on too much additional risk.
*looking for something simple
tecmo
...
No. of Recommendations: 5
No. of Recommendations: 1
I don't know how the NDX did but the screen returned 14.56% from 2000 forward
No. of Recommendations: 8
*looking for something simpleTop 10 S&P500 stocks by 52 week relative strength.
Ex: this link
https://finviz.com/screener.ashx?v=141&f=an_recom_...Monthly
Trade every month, trade on last day of month.
Typical turnover is 2-3 stocks each month.
I forget where I saw this.
Neat thing is losers drop off quickly, winners stay on.
Since 1/21/25: AXON +29%, GEV +35%, HWM +36%.
PM, TPR, TSLA all about +~15%
Since 5/30/25: NRG -2%, PODD -6%. Both of these bought 5/30/25.
No. of Recommendations: 6
52 week winners works well on Nasdaq100
trade monthly since 2008:
top 10 vs. top 5
cagr 23.6 24
sharpe .93 .83
beta 1.13 1.21
mdd -42.4 -52.2
2025 41 77
2024 23.3 12.9
2023 25.5 20.5
2008-39 -40
19850201 forward
cagr 24.6 27.7
sharpe .78 .78
beta 1.3 1.4
mdd -71.5 -73.3
<pre/>
No. of Recommendations: 1
You can create your own mini-universe of any symbol group in SIPro. & 52 week winners works well on Nasdaq100
Thanks again! I'll play with both as combining these two ideas would result in a comprehensive screening solution (as in could be easily completely screened within both SI-Pro & the GTR1) for a pretty performant screen. I even like the indicative performance of the 52W winners more than the initially posted screen (higher Sharpe & lower MDD) at least before investigating further.
No. of Recommendations: 7
No. of Recommendations: 6
I use this site to download adjusted daily pricing for NDX100 stocks. You can pick your time frame for how much data you want. Works very quickly. Can also get high, low, close and open. Downloads a csv file. I think it has a limit of 200 stocks at any one time. No need for SI.
https://bulkstockdatadownloader.app/Aussi
No. of Recommendations: 4
For such a monthly momentum screen I am not sure that Nasdaq 100 would be better than the S&P 500. Just because the S&P pool is much wider.
Using recommendation buy-or-better, ranked by 1 year performance, the #10 S&P is +71% while the NAS100 is +51%.
As to filtering by Analyst Recommends, it seems reasonable to require a positive ranking as long as there are at least 10 stocks.
I have toyed with somehow also including the half-year & quarter-year rankings. Maybe omitting or downvoting those with negative half and/or quarter.
On today's rankings, all 10 of the S&P are up in all 3 performance. For the Nas100, 3 are negative in qtr or half. ::shrug::
No. of Recommendations: 3
Zacks backtester allows testing the S&P500 stocks with analyst "buy" recs. and they underperform the whole index in the test I ran from the end of 2008l
No. of Recommendations: 6
No. of Recommendations: 4
Just convert to 10 stocks, then add low beta(1,253) bottom 5 from there as final sort:
strategy vs. S&P
cagr 22.0 12.1
sharpe .72 .55
beta 1.08 1.075
2025 10 2
2024 21.8 13
<pre/>
Same beta as the index but with massively better CAGR and better Sharpe Ratio.
https://gtr1.net/2013/?~NAZ_RS52w:f0.25000::nas100...
No. of Recommendations: 3
sorry, prior post was using nasdaq100 top 10 1 yr return stocks, then 5 lowest 1 yr beta
Here is with S&P universe from 19850207
cagr 10.89 i.e. less than index and less than without extra beta step
sharpe .4 i.e. less than index
beta 1
2025 10.8
2024 20.9
https://gtr1.net/2013/?~NAZ_RS52w:s19850201f0.2500...
No. of Recommendations: 0
Musselmant
I am not sure of the reason for this field: linear(100,ratio(trm(1,252),sptr252),-100,1)
It looks to me that it is the 52 week return divided by a value that is the same for all the stocks, so it does not affect the ranking. Therefore, the screen is looking for the top 10 stocks over the last 52 weeks and then the bottom beta. Or am I missing something?
Aussi
No. of Recommendations: 0
I just use tr(1,253).
I was adding on to someone's else's drafting so he can comment on what he prefers.
No. of Recommendations: 2
Zacks backtester allows testing the S&P500 stocks with analyst "buy" recs. and they underperform the whole index in the test I ran from the end of 2008l
Interesting.
I ran a screen and got the same top 10 stocks as I got from finviz.
This Criteria:
S&P 500 - ETF
EQUAL YES
% Price Change (52 Weeks)
>= 20
Current Avg Broker Rec
<= 2
Then order by 52 week price change.
It seemed to me that YOY momentum was the prime factor, and recommendations of buy-or-better would just filter out some that might be a flash in the pan. Indeed after removing that, PLTR was picked and all the others stayed the same.
I didn't see the backtester. Maybe you have to have a subscription?
No. of Recommendations: 2
Checking the NAZ RS52Wk and SP RS52Wk on GTR1
Thanks.
But the results for SP500 & NAZ100 encompass different start dates.
I think you need to make a universe that starts on the start of NAZ, 02/01/1985 for an honest comparison.
Yes, using NAZ beats the pants off of SPX. But that MDD -73.5 is gut-wrenching.
Using a decent timing method should smooth out the ride. More spreadsheet work.
No. of Recommendations: 2
Oops, nevermind part of my last post.
I see the stats are calculated from 1985.
But if you do "Portfolio Values: Download daily portfolio values for all cycles of the focus variant."
the Daily Closing Portfolio Values evidently start at the S&P inception date, because the 19850201 value is 2543.246 instead of 10.
I fixed it in my spreadsheet by computing the daily returns and applying that to an inital $10 value.
There is a HUGE range of ending values, for the 20 different cycles.
Highest is $1,536,205 and lowest is $245,431.
CAGR from 18.2% to 13.7%
No. of Recommendations: 4
Zacks charges, yes.
I paid for a lifetime one years ago when they made that offer.
It has 20-20 hindsight problems for some fields (the zacks rank itself changes after the close Friday but the tester pretends you had those changes in time to trade at Friday's close).
No. of Recommendations: 1
1) Is there a way to replicate this with SI Pro or an alternative platform?
2) Is there a way to see the portfolio at each date (by composition/symbol/share count/etc...?)?
3) At the bottom of "Run Backtest" under 19850201, I see 27.4 -- can we confirm this is the historic CAGR/IRR (27.4%) and varies only slightly from the results above based on ... what? What am I missing?
Truly thank you -- I've been beating myself up to figure this out.
No. of Recommendations: 0
I don't know which screen you mean since several versions have been posted now; please provide a link.
You can get current picks if you subscribe to the data provider for any given screen, usually SIPro's AAII.
I don't understand your 3rd question.
No. of Recommendations: 0
I am referencing this first screen:
https://gtr1.net/2013/?~Liquid_consolidators::nas1...I am able to see current picks if I click "RUN SCREENER" at the bottom (e.g., PLTR, ZS, APP, etc...)
Restating questions because I'm confusing... sorry
1) I appreciate this screen and results come from GTR1. Is there a way to replicate this screen/results using SI Pro or something else?
2) Is there any way to use that link above (the screen link I just posted) to identify exactly what is in the portfolio at each date? I appreciate I can see portfolio values but I can't figure out how to see what stocks would be in the portfolio and their respective weights at each date.
3) At that same screen link, if I simply click Run Backtest, in the results at the bottom of under 19850201, I see 27.4 -- can we confirm this is the historic CAGR/IRR (27.4%) and varies only slightly from the results above based on ... what? What am I missing?
Thank you -- and apologies for being terribly confused/confusing!
No. of Recommendations: 1
"I am referencing this first screen:
https://gtr1.net/2013/?~Liquid_consolidators::nas1...
I am able to see current picks if I click "RUN SCREENER" at the bottom (e.g., PLTR, ZS, APP, etc...)"
You have to subscribe to AAII's SIPro so they don't complain when the gtr tester gives you current picks (it won't give past ones). Robbie periodically updates the password the gtr tester requires you copy and paste or type in it to get current picks. But I am not keeping track of when he updates his data i.e. there is always the risk he hasn't as of whenever you are seeking the current picks. So you can just go look them up yourself since the screen is not using complicated fields. Various online sites let you get monthly and 200 day moving averages. You can use googlesheets. The Nasdaq100 list is online in various places.
https://www.barchart.com/stocks/quotes/$... is an example of a site that lets you get moving averages. Finviz has the Nasdaq100 list.
https://www.slickcharts.com/nasdaq100 https://finance.yahoo.com/quote/%5ENDX/components/also
" Is there a way to replicate this screen/results using SI Pro or something else?"
You can't replicate the backtest anywhere else as far as I know, at least easily. You can get current picks as stated above.
"
Is there any way to use that link above (the screen link I just posted) to identify exactly what is in the portfolio at each date?"
No.
"this is the historic CAGR/IRR (27.4%)"
Yes that is the compound annual growth rate. You can stick in whatever spread rate you prefer as most realistic.
No. of Recommendations: 2
I am using the screener in Portfolio123 simply sorting the NASDAQ 100 by Ret1Y%Chg. Top 10 stocks.
Rebalance every 4 weeks, max 10 stocks, and no slippage/carry cost.
From 01/01/2020 to present, I am showing an annualized return of 14.79% versus QQQ at 18.92%.
I can see the first portfolio was:
AMD, LRCX, KLAC, SGEN, ASML, MELI, CPRT, AAPL, LULU, AMAT
When I run the following backtest in GTR, I believe the CAGR/IRR equivalent is 20.33% under Cycle 0.
https://gtr1.net/2013/?!!QlpoMTFBWSZTWaPeelYAAHCfg...Any ideas of what I am missing or is this level of variance (which seems shockingly high) accepted due to varying measurement approaches, trading parameters, etc....?
Thank you so much -- I'm learning!
No. of Recommendations: 3
I don't use Portfolio123 so know nothing about what is possible there.
You can just use tr(1,253) on gtr which with .1 spreads (realistic for stocks this large) an average of 24.1% CAGR for 10 stocks best 1 year return traded monthly from inception of the Nasdaq100 19850201
https://gtr1.net/2013/?~NAZ_RS52w:f0.1000::nas100....I don't know why you chose the date to start you did. Maybe Portfolio123 is limited in its backtest period.
No. of Recommendations: 3
I am using the screener in Portfolio123 simply sorting the NASDAQ 100 by Ret1Y%Chg. Top 10 stocks
The GTR1 link you provided does not match what you are doing in Portfolio 123. The link you provided looks like best 52 week return if you look at the steps, but in the fields section it is modified.
Aussi
No. of Recommendations: 4
Valu3hunter: Rebalance every 4 weeks, max 10 stocks, and no slippage/carry cost.
From 01/01/2020 to present, I am showing an annualized return of 14.79% versus QQQ at 18.92%.
I just tried to verify your results on P123. When you backtest on 123 from 01/01/2020 they use a rank date of 12/28/2019 for their buys on 01/01/2020 according to their buy date which is interesting as the market wasn’t open on New Year’s Day. To match up with gtr1 which will only allow you to enter a valid trade date I used 20200102 for both systems.
For P123 I used: Universe Nasdaq 100, Ret%Chg(253), hold 10 stocks. Which used the data of 12/28 first buy on 1/2/2020. Note I changed your Ret1Y%Chg to Ret%Chg(253) to make sure it was using recent info.
No slippage, No carry and the return! To 6/08/2025 the last 4 week cyclt. CAGR 12.41%
For GTR1 I used: nas100.a != null, tr(1,253) top 10, 20 day (4 week) cycle.
No slippage, No carry and the return! CAGR 20.67%
Looks like unless someone else can find an error in our screens the results should not be this far off.
Tried more and less stocks, changed to weekly rebalance the discrepancy is still there.
No. of Recommendations: 2
From 01/01/2020 to present, I am showing an annualized return of 14.79% versus QQQ at 18.92%.
That's only 5 1/2 years. Too short of a backtest to be meaningful.
Put that starting date in the gtr1 link that musselmant posted gets 18.98% CAGR.
Ah, hmmm, the field is "tr(1,253)". Is that "tr" total return which includes dividends? All the other sites use price only for momentum. If so, that could explain the different stocks picked.
I don't know why you chose the date to start you did. Maybe Portfolio123 is limited in its backtest period.
When I had my P123 account, their data started at the end of 1999. You'd have to start the backtest on Jan 2001 to get 1 year of initial momentum.
Now I believe that you only get 5 years of data unless you go for the $83/mo (and up) plan.
No. of Recommendations: 2
For P123 I used: Universe Nasdaq 100, Ret%Chg(253), hold 10 stocks. Which used the data of 12/28 first buy on 1/2/2020. Note I changed your Ret1Y%Chg to Ret%Chg(253) to make sure it was using recent info.
No slippage, No carry and the return! To 6/08/2025 the last 4 week cyclt. CAGR 12.41%
For GTR1 I used: nas100.a != null, tr(1,253) top 10, 20 day (4 week) cycle.
No slippage, No carry and the return! CAGR 20.67%
Looks like unless someone else can find an error in our screens the results should not be this far off.
I think we need somebody who has the ability to see which stocks are picked for each screener on a couple of identical dates. Then manually do the calculations and see which stocks are picked.
It could be that the data in the database(s) have errors. P123 claims theirs is verified to be correct.
Can you create a price chart of the P123 backtest and compare to the price chart of gtr1 backtest? It is possible that P123 has a database error at some particular date.
Testfol.io says QQQ is 18.98% from 1/2/2020-6/25/2025. I find it hard to believe that the monthly top 10 screen falls so far below that.
Changing the gtr1 step to "tr(1,253) top 100" gets 9.9% CAGR.
With "equal weight every 0 holding periods" instead of 1. Implying that QQQE is not a great plan.
This is great fun. ;-)
No. of Recommendations: 3
No. of Recommendations: 2
Here is my GTR1 Backtest Link:
https://gtr1.net/2013/?~NAZ_RS52w:s20200102f0.1000...
20.475% CAGR - 20200102, buy and hold 10, 20 day rebalance
Here is my Portfolio123 screen image:
https://ibb.co/gM1LWbX8
https://ibb.co/jZ9dsSNdThe GTR1 screen rebalances every 20 days, Portfolio every 4 weeks. So, it is difficult to do an accurate check. The first holiday in the backtest is mid January.
For GTR1 the range in the backtest is from CAGR =13% to CAGR =22% for different start dates within the 20 day period. This brackets the Portfolio return, so it seems like the screens are consistent. For such a short backtest that includes the rapid decline and rise of March/April in 2020, such a large variation is to be expected.
Aussi
No. of Recommendations: 2
Ray: I think we need somebody who has the ability to see which stocks are picked for each screener on a couple of identical dates.
I agree but only P123 gives you a log of the selected stocks buy and sell price for each date. It's not available on GTR1.
Aussi:
The GTR1 screen rebalances every 20 days, Portfolio every 4 weeks. . GTR1’s 20 days is 20 trading days, the same as P123’s 4 weeks, so that wouldn’t be the difference
if they both compensated for holidays the same way. However P123 always trades on the 1st day of a new week, I’m not positive how GTR1 handles it but I believe they always use exactly 20 trading days in this case. So that seems to be a difference.
I just looked at my pervious backtest posted above for P123 and found the selection of the top 10 used an incorrect selection equation. Rerunning the backtests.
Rerunning using a ranking top 10 100*((Close(0)-Close(251)) / Close(251)), this is price only.
P123 CAGR for 1st buy with rank date 1/04/20 and the buy on 1/06/20 CAGR 23.56, Nasdaq 100 19.09%
Rerunning using a ranking top 10 Ret%Chg(251) which includes dividends
P123 CAGR for 1st buy with rank date 1/04/20 and the buy on 1/06/20 CAGR 23.56 --No Change from price only--
P123 all 100 Nas100 equal weight, CAGR 13.75%
GTR1 CAGR 19.62% for top trp (total return) for start trade date 20200106
https://gtr1.net/2013/?~Naz100Top52w:s20200103::na...GTR1 all 100 Nas100 stks equal weight 13.73%
At this point it seems likely that both GTR1 and P123 results are slightly different most likely only because they make their rank and trade decisions on different dates throughout the backtest. As noted previously GTR1’s 20 different start dates have variations between 13.7 to 23.2.
Looking at this reinforces what I’ve come to realize about evaluating a backtest.
1. GTR1’s rolling start date with an average of many starts is much better than P123’s single weekly start date.
2. A 5 or 10 hold portfolio leaves way too much to chance, Use a minimum of 25 for screen evaluation.
3. Backtest over at least 13 years, some research shows around 10 years tends to hold up post discovery.
4. Try several start dates 3+ months apart for any backtest of less than 10 years with different buy and sell criteria. Fundamentals change quarterly and initial by chance selections can distort the results.
No. of Recommendations: 2
Again, I'm a total newbie here just trying to reconcile different data sources before I begin to form any conclusions!Well, the chart of the values of your gtr1 link looks basically the same as your P123 chart.
18.95% is essentially the same as 20.475%, within the margin of error. That could easily be explained by minor differences in the assumed prices of the trades.
So I would say that
probably gtr1 backtest is confirmed by this P123 backtest.
Assuming so, then since QQQ inception (3/10/1999),
QQQ: 10.08%
top10: 18.63%
top100: 9.14% (equal weight QQQ)
-------- later -------------
Okay, I grabbed daily QQQ quotes from yahoo and made a chart showing QQQ and the gtr1 top10 daily prices, normalized for the same initial value.
With log scale, the slope of the top10 was steeped than QQQ, except for the last few years. Since about mid 2017 the slopes (i.e., returns) are about the same.
The charts:
https://ibb.co/4GcQn1Vhttps://ibb.co/VWYKPPHbAs many people have said, there are periods where every good strategy doesn't work well. For this one, it isn't actually bad, it just doesn't outperform. Although with much greater volatility and drawdowns.
No. of Recommendations: 2