Stocks A to Z / Stocks B / Berkshire Hathaway (BRK.A)
No. of Recommendations: 11
I've read every comment on this board (and its predecessors) for years, and I enjoy hearing the quant screens and methodology. Would anyone be generous enough with their time to describe - at a high level - how this works for them?
To be more specific - is it a full time pursuit? A retirement hobby? Rough figures in terms of trade frequency or how much of your total portfolio is invested at any time? How many trades outstanding at any time?
I'm trying to prepare myself for some interesting times ahead and change my trading habits to suit them. I don't know what degree of commitment I should be preparing myself for. I'm a fairly proficient mathematician and programmer, and relatively close to the cutting edge on software.
Apologies for the interruption.
No. of Recommendations: 21
quant screens and methodology. Would anyone be generous enough with their time to describe - at a high level - how this works for them?
To be more specific - is it a full time pursuit? A retirement hobby? Rough figures in terms of trade frequency or how much of your total portfolio is invested at any time? How many trades outstanding at any time?
Full time retirement hobby. ;-)
Running them takes about 1 hour a month, another 30-60 minutes to do the trades and update my portfolio tracking spreadsheet.
I use two active screens, each trades monthly.
No rebalancing, just equal balance of the new buys.
1st is one from Mugofitch.
Start with Russell 1000 & 2000, only the top 2000 by market cap.
Take only those that have a VL Timeliness rating. Leaves about 1400 stocks.
Take only the 90% of the stocks closest to their 52-week high.
(Drop the lowest 10%)
Take the top 100 by ROE ...
and those with earnings >0 and book value is < 0.
then of those, top 25 by 5 Yr sales Growth.
Trade on the last market day of the month, in the morning.
Average about 4-6 stocks a month get dropped and new ones bought.
Very few stocks are also in the S&P 500.
Since Jan 2021 total gain: 64%
SPY in the same period 77%.
Hard to beat the S&P500 recently, the MAG 7 beat everybody.
I used M1 for this, since they do all the trades for you all at once.
2nd is Top 10 NASDAQ100 stocks with the best 52 week gain.
That have a buy-or-better analyst rating. (So I missed out on PLTR)
Trade monthly, last day of the month.
Average turnover 1-2 a month.
Since 1/21/2025 11.8% vs. SPY 8.4%
I have run other MI screens over the years, but have dropped all of them.
These are easy to run. I just download (or scrape) the data from various free sources and then use a bash script to run the screen and tell me what to sell and buy.
------------------
Also a Magnificent N screen(ish)
Top 10 of VONG (Russell 1000 growth index)
Recast once a year.
Return 42% since June 2024, vs. VONG 32%
No. of Recommendations: 5
and those with earnings >0 and book value is < 0.
Book value less than zero?
Elan
No. of Recommendations: 2
RayVt
Do you have the data to backtest your VONG?
I use a similar screen using NAS100 but I would like to expand the universe.
Aussi
No. of Recommendations: 4
Book value less than zero?
Yup. Rather counterintuitive.
Jim explained the rationale, although I can't find that post just now.
One way is "When a company buys back shares, it usually does so at prices far in excess of book value. So in essence, the company is retiring more than 100% of book value per share with each repurchase. This can cause book value to go negative."
Therefore it could mean that the company is operating with no assets (on the books). If they are making a profit that means that they are making on profit on NO assets. Yowsa!!!
Of course, if they are not making a profit you don't want to touch them.
So you look at earnings, 1 & 5 year revenue growth %, and if those are doing good it's probably a good company, but just the book value on paper is negative.
There are 31 companies in the S&P500 with negative BV. The first several have good 5 year revenue growth. Then we have BA with 5yr rev grth at -13%.
These have double digit 5yr rev grth %:
AZO
BKNG
DPZ
TDG
FICO
SBAC
YUM
LOW
VRSN
HLT
No. of Recommendations: 22
Book value less than zero?
...
Yup. Rather counterintuitive.
Jim explained the rationale, although I can't find that post just now.
Another simple way to think of it:
How many dollars of net assets does a business need to make a buck per year? Fewer is better, that's a high ROE.
If a firm needs no net assets at all (and yet is still stable and profitable), that's like an infinite ROE.
Firms with negative book and consistently positive earnings tend to be very good businesses, and statistically good investments.
Coke, Moody's, McDonald's, tobacco firms (ick), Dell.
Usually they have paid out all their equity as dividends, and then keep on going.
Here's a screen I tested in the VL universe:
Current EPS > 0
EPS trailing 12 months > 0
Projected EPS growth rate > 0
Book per share < 0
Final sort on absolute size of cash pile -- a bit of resilience never hurts. Other things being equal, I'd rather own a big cash-rich firm than a small cash-poor firm.
Top 5 monthly 1997-2024 beat the S&P by 9.9%/year, with remarkably steady returns. Only 63% of the risk of SPY using the DDD3 metric.
Turnover is very low, as none of the criteria change very often.
Often very few stocks in the VL set passed the tests prior to the credit crunch, so the final sort wasn't doing much back then.
Jim
No. of Recommendations: 3
Do you have the data to backtest your VONG?
No I don't.
This was really a gut decision. Large cap & growth & large cap growth have been very profitable asset classes for a long time. That in itself deserves a close look. I remember a Ken Fisher column in Forbes about 30 years ago which said that large cap was the best class.
I figured that since the top 10 holdings are the bulk of the total weighting that they drive the return and the other 350+ stocks are also-rans and are responsible for very little of the returns.
The #11 company is only 1.7% weight.
(Heh, when I was looking just now one of the sidebar links was "4 months ago - VONG: Not The Time To Bet On Growth - Seeking Alpha". VONG is up 14.62% in that time.)
The first time I bought the top 10 in the same relative weighing. That was a PITA.
And Jim keeps saying that equal weight is better. So the next time I just went equal weight.
I use a similar screen using NAS100 but I would like to expand the universe.
It's the same top 10 holdings. Russell 1000, VONG, S&P500, QQQ ...... all have about the same top 10 stocks.
No. of Recommendations: 9
It's the same top 10 holdings. Russell 1000, VONG, S&P500, QQQ ...... all have about the same top 10 stocks.
True 'nuff.
But of course one doesn't have to pick top 10 by market cap, you could pick top 10 by something else. (in fact there is some research that suggests you'd be better off sorting by ANY other datum...)
e.g., top 25 of the Nasdaq 100 by ROE beats the whole set, equally weighted in both cases. Around 3.6%-4.0%/year in the last 20-25 years. Didn't save your bacon in the tech crunch, but left it a tiny bit less cooked.
(I used the "Return on Shareholders Equity" field from Value Line)
Jim
No. of Recommendations: 4
FWIW, I set up a paper account of the top 10 stocks in the S&P 500 on 1/16/2025.
No selling.
Currently (10/13/2025) that is up 19.25% vs. SPY up 11.74%. XLG up 13.89%
The worst performers are
AMZN -1.13%
TSLA +4.27%
BRK.B +6.98%
AAPL + 7.77%
------------------------------
Getting free data is tricky. For some reason I am allergic to paying for subscriptions.
From VL you can get Timeliness (T1-T5 but not the actual T number), and _order_ of P/B, but not the values. And a few other criteria values.
From barchart you can get P/B values for S&P, Russell 1000/2000, NAS100 stocks.
------------
Looks like the top 10 T1-T5 stocks by P/B (lower is better) are:
AGO
EG
GNW
VSAT
SSRM
MT
IVZ
UNFI
HMC
NAVI
No. of Recommendations: 2
Jim keeps saying that equal weight is better.
Would it make sense to favor equal weight when average PE is relatively high, and cap weight when average PE is relatively low, on the assumption that high PE (as now) reflects overpricing?
Tom
No. of Recommendations: 0
Thanks, rayvt.
I'd built it up in my mind to require more investment than that! Thanks for sharing it with me. For whatever reason, I'd expected a bit more required time investement in number crunching and automated trading. M1 looks interesting.
No. of Recommendations: 11
I'd expected a bit more required time investment in number crunching and automated trading.
Remember the old joke about the young bull and the old bull gazing over a flock of female cows?
When I put in for retirement, many of my co-workers stopped by my office and asked how I could afford to retire at 58. And what I did that let me retire so young.
I told them "I worked 40 hours a week for Motorola and 10-15 hours a week at investing."
Every single one of them said, "Oh, uh, okay" and wandered away. Nobody wanted to put in the work, nobody even asked me what I did.
So....
I put in a lot of work over the years. Mostly for entertainment (that paid well!), and as a hobby.
I ran a lot of the complicated MI screens for a long time. Then decided that most of them were either very complicated and time consuming. And required a subscription to 1 or more data services (expensive). And seemed to turn out to have been data-mined and didn't do so well going forward.
Or you depend on the kindness of strangers to post picks.
One fiasco was Green Mountain Power. A small company that one day suddenly jumped up -- way up -- for an unknown reason. The volume that morning was several times the normal volume. The SEC contacted the CEO and demanded to know what he did that the stock jumped so much.
I snickered because I knew that it jumped because GMP was a new stock pick on a popular MI screen. All the MI people bought it when the screen picks got published on the MI board.
AFAIK, the SEC and the company never figured out why it jumped.
So, anyway, several years ago I ditched almost all the MI screens that I followed and settled on a small number of SIMPLE screens.
Various MI people have made a lot of money in some screens. Elan has said that until recently he made a ton with a "6/3 options" screen.
Now I stick by my mantra "We don't have to be perfect, we only need to be Good Enough." Applied to investing.
-----------------------
One thing to keep in mind: The last few years have been dominated by a dozen or so stocks. This will not last forever. But as long as it continues, any other screen will underperform.
No. of Recommendations: 17
I ran a lot of the complicated MI screens for a long time.
I *think* I was one of the more active traders around here (have not been since the pandemic).
My goal was to reproduce the GTR1-reported daily start results for the five or six screens I was using, usually 15-20 picks.
Those screens were so-called "high flyers" with great CAGR in backtest and relied on relatively low liquidity picks.
I needed to split up my portfolio into smaller chunks to be able to invest in those kind of stocks.
For 4-5 years at least, I would trade every day, probably 50-70 trades/day.
It would take a few minutes per day:
- run Powershell script which would in turn run GTR1 for all the screens and generate the daily picks;
- paste that list into Yahoo for a quick check for obvious problems
- paste the list into FolioFN and use "update and exchange" to rebalance that chunk to the new picks (using both morning and afternoon trading windows).
I could even do this all on my smartphone. Lol.
I had some great, great years, exceeding 60% return. But I did have trouble stomaching the downturns.
In particular, 2018 was very bad. This year appears to be a repeat of that.
(IMO there is something about the unpredictability of POTUS that destroys momentum-based screens).
At the depths of the pandemic bottom in 2020, I had enough and converted to mostly mag7 picks and a lot of BRK-B.
That has not at all been a bad decision, in hindsight.
I have tried (and come close) to reproducing all of this at Interactive Brokers, since FolioFN went belly up. (GTR1 was gone for a long while too).
It's more work at IBKR, with some spreadsheet processing required. It might take me at best 10-15 minutes to prepare the day's orders, which is too much for me.
And it's a little too manual, meaning mistakes happen more.
So I essentially have not been actively using MI, but I will get motivated once in a while and fire up the scripts and spreadsheets - they still work!
I have an affinity toward the mechanical, algorithmic nature of MI. GTR1 is simply amazing, but has a steep learning curve, and is not always up to date these days.
Most folks here worry a lot about curve fitting, but I'm really not one of them.
The screens I was using have continued to outperform over longer time periods, but they can have very bad stretches of several years in a row.
It is almost impossible to deal emotionally with those long stretches of underperformance compared to the market.
To be clear, everyone's implementation is different and YMMV.
No. of Recommendations: 6
I'll just comment that there are now, and have been for many years, other methods of "MI" than just these now-ancient small-mid cap stock screens using criteria dating back to "prehistoric" times before algorithmic trading and now "AI" factor selection.
FC
No. of Recommendations: 2
No. of Recommendations: 12
There's a lot to be said for screens where relative strength (momentum) is THE or A major factor.
Speaking of KISS, try this:
Member of Nasdaq 100
price / (52 week high + 52 week low) top N
Two month hold should be fine.
Probably better with a solid lag on the 52 week measurements.
Terrible in the tech crunch, as most Nasdaq related things were, but fantastic since then. Beating SPY by over 10%/year 2003-2024 after friction.
Jim
No. of Recommendations: 1
Speaking of KISS, try this:
Member of Nasdaq 100
price / (52 week high + 52 week low) top N
Where and how can we screen for this?
No. of Recommendations: 1
price / (52 week high + 52 week low) top N
Two month hold should be fine.
Probably better with a solid lag on the 52 week measurements.
N=10 works okay?
How long is "solid lag on the 52 week"?
Current price vs. 52 week numbers of 1 week ago? 1 month ago?
Thanks.
No. of Recommendations: 2
No. of Recommendations: 3
No. of Recommendations: 4
RayVt
Apex should be replaced with gprc(1). It will show much better results.
Ford should be used when comparing to sma, hgprc etc.
Aussi
No. of Recommendations: 7
I don't get the logic of this screen.It appears to look for high volatility equities (low low prices relative to the high price) that are currently at or near highs within the Nasdaq 100. It's pretty good but volatile as can be seen at the following link.
https://gtr1.net/2013/?~Naz_Above_Avg:s20030103r0:...It also works with longer holds. 252 days offers good performance for the hold length. Worth further exploration IMO.
(And as mentioned by Aussi GTR1 needs to use the gprc(1) instead of aprc - that's the cleaned total return pricing adjusted for dividends, splits etc.)
No. of Recommendations: 7
I'm not a gtr expert, but this seems to be missing one step.
Try this: https://gtr1.net/2013/?s20030103r0::nas100.a:nenul...
But still...not good.Try this, which is with friction, two month holds, what I tested (a different way).
gtr1.net/2013/?s20030103h42r0f.4::nas100.a:et1:ratio%28gprc%283%29,linear%281,hgprc%285,253%29,1,lgprc%285,253%29%29%29tn100
You can't compare aprc to gprc and get a meaningful result.
SPY CAGR in this date range 11.22
Top 100 is more or less a "with friction" version of the Nasdaq 100 equal weight, CAGR in this test period 13.86
Top 15 of the screen comes in at 18.94,
top 10 comes in at 20.2
The ratio of price to H52 is classic momentum.
The ratio of price to L52 is rebound strength off bottoms, a time when classic momentum is generally a poor idea at changes in direction.
Mixing the two gives a mix of the two strategies, so in many screens it slightly increases the fraction of the time that the screen is adding value.
And, as mentioned by others, it likes firms making big moves.
Tests better with one month holds, but I always found those to be too much work : )
At the other extreme, top 3 HTD 6, monthly with friction, tests at CAGR 26.74. Not recommended.
Jim
No. of Recommendations: 4
Jim: "price / (52 week high + 52 week low) top N"
me: "I don't get the logic of this screen."
I have been mulling this over trying to figure why this makes sense.
Because gtr1 _does_ say it works.
The formula definitely does not contain price to H52 or price to L52.
Finally I think I get it. It is a form of Relative Strength.
Mathematical formula simplification.
Consider the forumla "P/ ((H+L)/2)"
Read as "P divided by the midpoint (or average) of H and L"
Simplified: "2P/(H+L)"
Compute that for each candidate stock and rank them in descending order.
Multiplying by a constant does not change the ranking, so you can drop the 2.
The formula is now "P/(H+L)"
Read this as: "rank the stocks by how far the current price is above the midpoint (average) of its 52 week high and low".
Normal relative strength is "how far the current price is above some price in the past."
This replaces the single historical price with a function of the historical price range.
Now it makes sense to me.
====================================================
I doubt that a lag of a few days on the 52 week measurements make much difference. It is unlikely that a new high or low occurred within 5 days of either end of a 252 day range.
10 HTD 15 is almost the same as just 10, but with half the turnover.
No. of Recommendations: 4
I doubt that a lag of a few days on the 52 week measurements make much difference. It is unlikely that a new high or low occurred within 5 days of either end of a 252 day range.
I add that for a couple of (minor) reasons.
First, I found long ago that quite a substantial lag (even over a month) made quite a big difference for some screens, notably dividend oriented ones. Maybe it was overmining, maybe not, but it certainly didn't seem to hurt. It stuck in my memory.
The meaning is subtly different with lag, as you are in part measuring how *far* a stock is above its (lagged) high, which is partly like measuring how how long/strongly it has been setting a string of highs, not merely something that just stuck its nose above its range.
It also seems to reduce ties, at least for price/h52 calculations. Often when there is a very strong day a lot of stocks are at their respective fresh highs at the same time, and arbitrary tie breakers are messy. It may cut down on turnover, I'm not sure.
Jim
No. of Recommendations: 3
Oh... Darn darn darn darn darn.
I thought about it a little more.
It is always the case than H >= P and H >= L, therefore P >= L.
Ranking formula: P / ((H + L)/2)
or: P / M, where M is the midpoint between H and L
Simplifying to P/(H+L), the extremes are L == H and L == 0 (zero), since P will never be higher than H.
Since H always moves up when P moves up, the formula looks somewhat like H/(H+L), which looks like the factor L is the dominating factor.
In that case, maybe we could change the ranking formula to "P/L", which reads "how far the current price is above the 52 week low."
Running several different gtr1 backtests,
Summary:
L only and H+L have about the same CAGR. H+L has slightly lower GSD.
CAGR, 2003 to 2025
All 100 : 13.5% GSD 22%
Top 10: L only: 23% H+L: 22%
GSD T10: L only: 34% H+L: 28%
CAGR, 1990 to 2025
All 100 : 14.1% GSD 27%
Top 10: L only: 24% H+L: 26%
GSD T10: L only: 42% H+L: 34%
10-HTD-15 has about the same CAGR and GSD but with 3/4 lower turnover.
No. of Recommendations: 3
...since P will never be higher than H.
Just a small geek note, this is true only if you're using the same lag for price as for the high calculation. Which I don't, so it isn't for me.
I suggested a lag on the H52 interval precisely because it allows the current price to be higher than the "high", which among other things removes almost all ties.
On the subject of whether to use price/low, price/high, or price/midpoint as a momentum final sort, I lean towards midpoint (or high) because it works more of the time. With price/low, sometimes you will see a higher CAGR as the headline of the backtest. But sometimes a huge fraction of that seemingly impressive performance is in just a couple of amazing bursts right after a market crash as opposed to having alpha most of the time. I would probably prefer to run the variant with the best "median rolling year outperformance relative to market". Easier to stick with, for one thing.
Jim
No. of Recommendations: 2
This replaces the single historical price with a function of the historical price range.
It is also a measure of volatility, with smaller price ranges indicating less volatility.
DB2