The overall idea of Relative Performance metric is simple: RP is always a number from 0 to 100. It's a percentage. It's equal to a percentage of stocks in a given universe (i.e., SPX500) which have their performance worse than the current ticker's performance.
Relative Performance always applies to a given stock (i.e., the one on your screen). It has the following attributes which you should define
- Base universe. Since RP is all about relative performance, you should define what is the benchmark. If you select SPX500, then you'll have RP against all the SPX500 constituents.
- Type. That's what explains what the "performance" is in the name of Relative Performance. There are a few types we support (see below).
Relative Performance can be browsed on a chart, used in Market Scanner, in Smart Checklists and in Multi Factor Alerts.
How Relative Performance is computed
At a high level, in order to get Relative Performance data, first we compute the absolute Performance values for each stock, and then we compute the final RP value for a given stock X as X performance Relative to other stocks in a given universe.
The way RP is computed is as follows:
- For every symbol in the base universe:
- For every day since 2008:
- Compute Performance, according to the Type selected
- Sort all the stocks in the universe according to their Performance (bigger Performance numbers go first, smaller go next)
- For every stock X, its RP is percentage of stocks which are below X in this ranked list.
- For every day since 2008:
RP against SPX500 can also be computed for symbol which is not a part of SPX500. In this case, for the purpose of computation, we just assume that it was a part of it (but without inflating the "size of a universe" when computing percentage) and then compute RP as usual, as explained above.
Example of computing RP
Let's say that we compute RP of Quarterly type for WMT, against an artificial universe of 3 symbols (NFLX, CAT, MSFT) for "today". First, we compute Performance for all 4 of these stocks. For Qaueterly, it's as simple as price change% since 3 month ago. Let's say that we have computed the following values:
- WMT: performance (price change% for the last 3 months) is +15%
- AAPL: performance is +12.5%
- CAT: performance is +17%
- MSFT: performance is -2.5%
If that is the case, then Relative Performance of WMT at a given date is 66.6, because 2 of 3 symbols of this universe (which is 66.6% of it) have performed worse than WMT.
How to read Relative Performance
Depending on RP type and your preference, you should define what RP values are "high" and what are "low". By default, we define values above 80 as "high" RP. I.e., if 85% of stocks in a given universe have worse performance then the current stock, then we consider its Performance as fairly high. We use 20 as a definition of what's "low".
In general, the way you use Relative Performance is to identify how stocks perform relative to other stocks. That's how you identify leaders or losers in a context of broad universes of stocks.
Performance Types explained
Last Quarter
This is the most straigtforward type of Performance metric. It's as easy as "price change% since 3 months ago (rolling)". I.e., if the price for asset X 3 months ago was $100 and today it's $120, then it's Last Quarter performance is 20%. We use HLC/3
as data points.
Yearly (4 quarters weighted)
This metric uses price change% for the last 4 quarters, while giving the last quarter double the weight, if compared to all the rest of them. Here's a strict definition:
Perf1Q = price change between "3 months" ago and "now"
Perf2Q = price change between "6 months" ago and "now"
Perf3Q = price change between "9 months" ago and "now"
Perf4Q = price change between "12 months" ago and "now"
PERFORMANCE = Perf1Q * 0.4 + Perf2Q * 0.2 + Perf3Q * 0.2 + Perf4Q * 0.2
TechRank
Unlike the previous two metrics, Techrank does not use the Price Change% at all. Instead of that, it defines "Performance" as a complex weighted combination of a number of technical indicators. It uses things as "distance from slow EMA", "distance from fast EMA", "fast and slow Rate Of change" and such, in order to derive definition of how strong the uptrend is. Here's a definition which focuses on the gist of it, but misses some boring mathematical nuances:
slowEMA = ema(200)
fastEMA = ema(50)
slowROC = rate_of_change(125)
fastROC = rate_of_change(20)
rsi = rsi(14)
ppoSlope = average change% of ppo(12, 26, 9) for the last 3 days
PERFORMANCE = slowEMADistance * 0.3 + slowROC * 0.3 + fastEMADistance * 0.15 + fastROC * 0.15 + ppoSlopeValue * 0.05 + fastRSI * 0.05
Example of reading a Relative Performance chart
For 3 months prior to Mar 17 2023, Goldman Sachs shares price has performed poorly, if compared to other stocks in S&P500: only 15% of S&P500 stocks were doing worse, which means that 80% of S&P500 consitutents were doing better than GS. However, GS has managed to improve, and by Nov 6 2023 its RP went above 50 and never got materially worse ever after. And now, for the last 3 motnhs, 87.8% of S&P500 stocks were doign worse than GS, which means that only 12.2% of S&P500 constituents were doing better than GS.
Current Limitations
- Relative Performance data is not cleaned from survivorship bias. "List of constituents in the base universe" is always considered to be "as of today".
- RP is only defined for US Stocks. No other data types are supported.
- RP data only goes back to 2008
- RP is not backtestable yet. But we’ll change that.
- RP data is end of day, with Daily granularity (one data point per business day).