OShaughnessey_v5.m
This script is designed to replicate the work performed by James O'Shaughnessey as detailed in his book, "What Works on Wall Street." I do not claim this method as my own or vouch for its effectiveness in securing future results.
The basic principle of the "Trending Value" method is as follows:
Each company is scored on 6 performance metrics:
* Price to Earnings (P/E ratio)
* Price to Sales (P/S ratio)
* Price to Book (P/B ratio)
* Price to Free Cash Flow (P/FCF ratio)
* Enterprise Value / EBITDA (EV/EBITDA ratio)
* Shareholder Yield (Dividend Yield + Buyback Yield = equity returned to the investors)
These are scored on a rank of 0-100, where 100 is the "best" ratio in the entire stock universe, and 0 is the worst. The scores are then added to create a stock's intrinsic value relative to the market. 600 is the ultimate score and represents a stock that is incredibly undervalued compared to the market.
The scores are then arragned in decending order and the top 10% is extracted for further sorting. It is re-arranged by 6-month price momentum. We buy the top 25 in equal amounts. These are 25 under valued companies that the market is rallying behind.
Hold for 1 year, liquidate everything, do it again. Historically, this has returned an average of 21.2% per year.
As will all investing, do you due diligence prior to buying. Also, PLEASE do not attempt this method with less than $25,000. As small time individual investors, we fight against both the market and commission structures. This method has 25 buys and 25 sells per year. 50 transactions can be expensive. At $8/trade, that's $400. Even if you're investing $25,000, the trading fees will eat up 1.6% of your principle! You are better off investing in an "own the S&P500" fund like FUSVX which charges .05% of your principle.
Cite As
Justin (2026). OShaughnessey_v5.m (https://www.mathworks.com/matlabcentral/fileexchange/46816-oshaughnessey_v5-m), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.0.0.0 |
