10 years ago, we discussed how we select stocks. Here's the 2024 version

godlovesme4real

New member
Hi /r/investing, roughly 10 years ago there was a great discussion about how we select our stocks. I discussed my method - Trending Value - and that led to me sharing my results with many of you via a program I had written. Well, that program broke and remained dormant for years... until now.

So what is Trending Value? It's a method published by James O'Shaughnessey in his "What Works on Wall Street" book. During decades of backtesting, it generated over 21% annual returns with equal standard deviation to the total market. It generated a lot of discussion and lead to this follow-up thread. In my mind, this method resonates the truest... far truer than those who advocate watching the check-out lines at your grocery store to see which products are being purchased. The method, summarizing is the following:

When you run a screen for stocks with good P/E or P/B, what do you look for? You find a stock with a P/E multiple of 12. Is this good? Is this bad? Neither and both, without a frame of reference. O'Shaughnessey's method rates 6 key financial metrics for every stock against the whole market to come up with a cumulative VALUE BASED score. Those metrics are: P/E, P/B, P/FCF, P/S, EV/EBITDA, and Shareholder Yield, which is dividend yield + stock buyback yield (i.e. equity returned to the shareholder in some way).

All 6 metrics are ranked 0-100, where 100 is the "best" ratio in the stock universe, and 0 is the worst. The top 10% of stocks will typically have scores in the 420+ range. They are undervalued relative to the rest of the market.

However, just because a stock is undervalued DOES NOT mean that it's a good buy. It could be facing legal action, failing drug trials, having a CEO that just went to jail, or other event that can't be reflected in these numbers. That's where momentum comes into play.

We take the top decile of stocks and reorder them by 6-month price momentum. Invest equally in the top 25, hold for a year, liquidate, repeat. The companies you buy are undervalued and the market is rallying behind them. Back testing, while not a prediction of future results, yielded a 21.2% average ROI with this method.

Of course, there's no screener that does this, nor is there a way to even view "Shareholder Yield" in one location.

When I started this 10 years back, I used MatLab to solve this problem. Yes, MatLab. Wrong tool for the job. Thankfully, ChatGPT has turned even amateur hobbyist coders into useful contributors, and a python version has been born.

I'll post the results of today's run below. Feel free to ask for a specific stock and I'll post the results of that ticker. Keep in mind, it is filtered to Market Cap > $200M and the name of the method is Trending VALUE - your growth stocks (NVDA, TSLA, etc) are going to be viewed very poorly.

Edit: You'll occasionally see a value like "10000" for P/E or another field. That means the value was either missing or negative. This is to artificially just kill that field for that ticker.
 
@cameron1 That's a great question. Does it directly take the macro movement of the market into account? No. However, it evaluates all of the stocks (~9000) against each other, so if a ticker has a P/E of 30 and the macro environment has a median P/E of 20, it is scored poorly. If the macro environment has a median P/E of 40, it is scored well.

During back testing, portfolios were created every month and followed the same process - buy and hold for 1 year, then liquidate and do it all over again. There was no bias in performance towards any start point for any portfolio. I take that to mean that it does pretty well in most macro environments.

I've run this portfolio approach for years and it's very common to see a few of these just do very poorly for the next 12 months... they've done well in the past 6-months and hit their peak. The diversification of the 25 helps with this.
 
@cameron1 Hey, is it "Grupo financiero galicia" ? I just bought the stock, great performance and since I have argentinien friends, they say with Milei as president, first things are already getting better.
 
@naturalsinner The ticker I was reacting to is BMA. Things may be getting better, but it’s a long way up from a bottom featuring 300% inflation, rising poverty, and multinationals exiting left and right. I’m rooting for things to get better but I don’t want to have any skin in the game. Good luck with your stock and to your friends!
 
Code:
Ticker Symbol: BMA
P/E: 2.33   P/E Rank: 99.50
P/S: 0.28   P/S Rank: 95.62
P/B: 1.28   P/B Rank: 73.06
P/FCF: 0.43 P/FCF Rank: 99.97
SHYield: 4.30%  SHYield Rank: 74.15
EV/EBITDA: 10000.00 EV/EBITDA Rank: 16.44
Overall Score: 458.74
6 month price momentum: 186.67%

Ticker Symbol: APEI
P/E: 10000.00   P/E Rank: 17.15
P/S: 0.37   P/S Rank: 93.14
P/B: 0.89   P/B Rank: 87.02
P/FCF: 7.03 P/FCF Rank: 88.42
SHYield: 4.61%  SHYield Rank: 76.31
EV/EBITDA: 7.16 EV/EBITDA Rank: 86.11
Overall Score: 448.15
6 month price momentum: 163.28%

Ticker Symbol: CEPU
P/E: 4.42   P/E Rank: 98.12
P/S: 1.81   P/S Rank: 56.22
P/B: 1.49   P/B Rank: 66.56
P/FCF: 4.61 P/FCF Rank: 95.21
SHYield: 1.14%  SHYield Rank: 50.32
EV/EBITDA: 1.96 EV/EBITDA Rank: 98.40
Overall Score: 464.84
6 month price momentum: 78.86%

Ticker Symbol: M
P/E: 51.56  P/E Rank: 43.13
P/S: 0.22   P/S Rank: 97.17
P/B: 1.28   P/B Rank: 73.06
P/FCF: 7.85 P/FCF Rank: 84.89
SHYield: 4.27%  SHYield Rank: 73.93
EV/EBITDA: 5.19 EV/EBITDA Rank: 92.83
Overall Score: 465.01
6 month price momentum: 75.77%

Ticker Symbol: EGY
P/E: 12.40  P/E Rank: 80.82
P/S: 1.59   P/S Rank: 61.33
P/B: 1.53   P/B Rank: 65.44
P/FCF: 5.73 P/FCF Rank: 92.44
SHYield: 6.91%  SHYield Rank: 87.45
EV/EBITDA: 2.53 EV/EBITDA Rank: 97.79
Overall Score: 485.27
6 month price momentum: 68.92%

Ticker Symbol: HOV
P/E: 5.14   P/E Rank: 97.56
P/S: 0.30   P/S Rank: 95.23
P/B: 1.83   P/B Rank: 58.30
P/FCF: 2.32 P/FCF Rank: 98.74
SHYield: 0.00%  SHYield Rank: 32.88
EV/EBITDA: 6.89 EV/EBITDA Rank: 87.17
Overall Score: 469.88
6 month price momentum: 66.93%

Ticker Symbol: SKYW
P/E: 77.62  P/E Rank: 39.40
P/S: 0.93   P/S Rank: 77.60
P/B: 1.29   P/B Rank: 72.78
P/FCF: 6.49 P/FCF Rank: 90.03
SHYield: 9.91%  SHYield Rank: 94.04
EV/EBITDA: 10.18    EV/EBITDA Rank: 74.71
Overall Score: 448.56
6 month price momentum: 64.29%

Ticker Symbol: REVG
P/E: 5.55   P/E Rank: 97.00
P/S: 0.44   P/S Rank: 91.25
P/B: 2.71   P/B Rank: 42.86
P/FCF: 48.16    P/FCF Rank: 41.36
SHYield: 7.56%  SHYield Rank: 89.64
EV/EBITDA: 7.51 EV/EBITDA Rank: 84.77
Overall Score: 446.88
6 month price momentum: 61.87%

Ticker Symbol: TOL
P/E: 9.28   P/E Rank: 88.57
P/S: 1.23   P/S Rank: 70.36
P/B: 1.79   P/B Rank: 59.16
P/FCF: 10.02    P/FCF Rank: 78.41
SHYield: 4.78%  SHYield Rank: 77.35
EV/EBITDA: 7.59 EV/EBITDA Rank: 84.49
Overall Score: 458.33
6 month price momentum: 59.44%

Ticker Symbol: DXPE
P/E: 13.94  P/E Rank: 77.32
P/S: 0.52   P/S Rank: 88.64
P/B: 2.29   P/B Rank: 49.44
P/FCF: 9.30 P/FCF Rank: 80.58
SHYield: 6.04%  SHYield Rank: 83.73
EV/EBITDA: 7.61 EV/EBITDA Rank: 84.32
Overall Score: 464.03
6 month price momentum: 55.10%

Ticker Symbol: ECO
P/E: 5.79   P/E Rank: 96.78
P/S: 2.36   P/S Rank: 46.50
P/B: 2.44   P/B Rank: 46.46
P/FCF: 5.56 P/FCF Rank: 92.94
SHYield: 14.75% SHYield Rank: 97.84
EV/EBITDA: 6.79 EV/EBITDA Rank: 87.45
Overall Score: 467.98
6 month price momentum: 54.55%

Ticker Symbol: MDC
P/E: 11.90  P/E Rank: 81.83
P/S: 1.01   P/S Rank: 75.30
P/B: 1.39   P/B Rank: 69.88
P/FCF: 9.11 P/FCF Rank: 81.53
SHYield: 3.67%  SHYield Rank: 70.15
EV/EBITDA: 9.74 EV/EBITDA Rank: 76.67
Overall Score: 455.36
6 month price momentum: 54.38%

Ticker Symbol: GLP
P/E: 12.18  P/E Rank: 81.22
P/S: 0.09   P/S Rank: 99.48
P/B: 2.36   P/B Rank: 47.96
P/FCF: 14.11    P/FCF Rank: 68.36
SHYield: 6.56%  SHYield Rank: 86.19
EV/EBITDA: 9.15 EV/EBITDA Rank: 78.86
Overall Score: 462.07
6 month price momentum: 51.99%

Ticker Symbol: BXC
P/E: 22.24  P/E Rank: 63.04
P/S: 0.32   P/S Rank: 94.62
P/B: 1.60   P/B Rank: 63.39
P/FCF: 3.65 P/FCF Rank: 97.03
SHYield: 4.44%  SHYield Rank: 74.96
EV/EBITDA: 6.78 EV/EBITDA Rank: 87.57
Overall Score: 480.61
6 month price momentum: 51.61%

Ticker Symbol: TEO
P/E: 10000.00   P/E Rank: 17.15
P/S: 0.18   P/S Rank: 98.00
P/B: 1.21   P/B Rank: 75.36
P/FCF: 1.62 P/FCF Rank: 99.19
SHYield: 12.62% SHYield Rank: 96.58
EV/EBITDA: 3.91 EV/EBITDA Rank: 95.80
Overall Score: 482.08
6 month price momentum: 49.90%

Ticker Symbol: HIBB
P/E: 8.70   P/E Rank: 90.51
P/S: 0.49   P/S Rank: 89.62
P/B: 2.01   P/B Rank: 54.90
P/FCF: 13.83    P/FCF Rank: 68.76
SHYield: 7.34%  SHYield Rank: 88.94
EV/EBITDA: 6.36 EV/EBITDA Rank: 89.02
Overall Score: 481.76
6 month price momentum: 47.87%

Ticker Symbol: PSX
P/E: 10.51  P/E Rank: 85.55
P/S: 0.47   P/S Rank: 90.34
P/B: 2.29   P/B Rank: 49.44
P/FCF: 15.08    P/FCF Rank: 66.73
SHYield: 7.99%  SHYield Rank: 90.53
EV/EBITDA: 8.78 EV/EBITDA Rank: 80.23
Overall Score: 462.83
6 month price momentum: 44.91%

Ticker Symbol: LSEA
P/E: 15.58  P/E Rank: 74.25
P/S: 0.35   P/S Rank: 93.80
P/B: 0.66   P/B Rank: 94.61
P/FCF: 8.25 P/FCF Rank: 83.69
SHYield: 7.51%  SHYield Rank: 89.50
EV/EBITDA: 14.03    EV/EBITDA Rank: 61.44
Overall Score: 497.28
6 month price momentum: 43.69%

Ticker Symbol: TNK
P/E: 3.88   P/E Rank: 98.66
P/S: 1.44   P/S Rank: 64.72
P/B: 1.29   P/B Rank: 72.78
P/FCF: 3.22 P/FCF Rank: 97.75
SHYield: 3.11%  SHYield Rank: 65.50
EV/EBITDA: 3.04 EV/EBITDA Rank: 97.31
Overall Score: 496.71
6 month price momentum: 42.45%

Ticker Symbol: SBH
P/E: 6.91   P/E Rank: 95.20
P/S: 0.31   P/S Rank: 94.99
P/B: 2.12   P/B Rank: 52.98
P/FCF: 7.68 P/FCF Rank: 85.83
SHYield: 2.91%  SHYield Rank: 63.99
EV/EBITDA: 6.42 EV/EBITDA Rank: 88.85
Overall Score: 481.84
6 month price momentum: 42.37%

Ticker Symbol: PVH
P/E: 9.73   P/E Rank: 87.34
P/S: 0.66   P/S Rank: 85.26
P/B: 1.19   P/B Rank: 76.09
P/FCF: 8.41 P/FCF Rank: 83.30
SHYield: 8.45%  SHYield Rank: 91.88
EV/EBITDA: 7.37 EV/EBITDA Rank: 85.27
Overall Score: 509.13
6 month price momentum: 42.30%

Ticker Symbol: DDS
P/E: 9.17   P/E Rank: 89.01
P/S: 0.97   P/S Rank: 76.27
P/B: 3.93   P/B Rank: 31.35
P/FCF: 8.88 P/FCF Rank: 82.27
SHYield: 8.52%  SHYield Rank: 92.16
EV/EBITDA: 5.78 EV/EBITDA Rank: 91.04
Overall Score: 462.10
6 month price momentum: 40.87%

Ticker Symbol: MHO
P/E: 7.25   P/E Rank: 94.39
P/S: 0.81   P/S Rank: 80.73
P/B: 1.30   P/B Rank: 72.50
P/FCF: 5.99 P/FCF Rank: 91.56
SHYield: 0.96%  SHYield Rank: 48.31
EV/EBITDA: 5.84 EV/EBITDA Rank: 90.70
Overall Score: 478.19
6 month price momentum: 40.78%

Ticker Symbol: MPC
P/E: 8.87   P/E Rank: 89.96
P/S: 0.51   P/S Rank: 88.91
P/B: 3.15   P/B Rank: 38.15
P/FCF: 6.15 P/FCF Rank: 91.23
SHYield: 14.88% SHYield Rank: 97.93
EV/EBITDA: 5.94 EV/EBITDA Rank: 90.34
Overall Score: 496.53
6 month price momentum: 40.57%

Ticker Symbol: KBH
P/E: 8.72   P/E Rank: 90.44
P/S: 0.75   P/S Rank: 82.54
P/B: 1.25   P/B Rank: 74.04
P/FCF: 4.96 P/FCF Rank: 94.50
SHYield: 8.33%  SHYield Rank: 91.65
EV/EBITDA: 7.31 EV/EBITDA Rank: 85.38
Overall Score: 518.55
6 month price momentum: 40.23%
 
@rokandmoka BUG is an ETF, so that gets culled automatically. For the rest:

Code:
Ticker Symbol: CRWD
P/E: 851.38 P/E Rank: 34.64
P/S: 24.46  P/S Rank: 9.77
P/B: 32.44  P/B Rank: 7.59
P/FCF: 79.50    P/FCF Rank: 37.10
SHYield: -0.11% SHYield Rank: 23.10
EV/EBITDA: 680.46   EV/EBITDA Rank: 32.96
Overall Score: 145.17
6 month price momentum: 64.20%

Ticker Symbol: ADBE
P/E: 45.29  P/E Rank: 45.25
P/S: 10.66  P/S Rank: 14.51
P/B: 13.89  P/B Rank: 11.29
P/FCF: 32.74    P/FCF Rank: 46.32
SHYield: 2.15%  SHYield Rank: 58.72
EV/EBITDA: 27.63    EV/EBITDA Rank: 42.31
Overall Score: 218.40
6 month price momentum: -13.79%

Ticker Symbol: ARM
P/E: 1615.47    P/E Rank: 34.44
P/S: 44.21  P/S Rank: 8.71
P/B: 25.95  P/B Rank: 8.01
P/FCF: 160.54   P/FCF Rank: 34.61
SHYield: 0.00%  SHYield Rank: 32.88
EV/EBITDA: 522.28   EV/EBITDA Rank: 33.04
Overall Score: 151.69
6 month price momentum: 131.04%

Ticker Symbol: NKE
P/E: 27.06  P/E Rank: 56.94
P/S: 2.69   P/S Rank: 42.16
P/B: 9.77   P/B Rank: 14.13
P/FCF: 22.42    P/FCF Rank: 56.45
SHYield: 4.27%  SHYield Rank: 73.84
EV/EBITDA: 20.46    EV/EBITDA Rank: 47.30
Overall Score: 290.83
6 month price momentum: -6.74%

Ticker Symbol: AMD
P/E: 312.02 P/E Rank: 35.20
P/S: 11.63  P/S Rank: 13.65
P/B: 4.72   P/B Rank: 27.07
P/FCF: 235.35   P/FCF Rank: 34.00
SHYield: 0.27%  SHYield Rank: 41.64
EV/EBITDA: 67.76    EV/EBITDA Rank: 35.76
Overall Score: 187.31
6 month price momentum: 50.75%

Some of these P/Es amaze me. I'm just thinking back to when most everything was in the 12-20 range, and now we've got Nike at 27, Adobe at 45, and ARM at 1615!!!
 
@jzzart The earnings report they had kind of made it rotten for me. I had a good amount of shares from $50 but now having a hard time trusting the stock after that type of move with it being ifs first ER.
 

Similar threads

Back
Top