Sharpe Ratio Calculation: Consistent Return Frequency and Risk-Free Rates
Summary
The post investigates why a Sharpe ratio computed for SPY differs from figures reported by financial websites. The response explains that returns and the risk-free rate should be measured over the same interval, such as monthly or daily, and that the annualized Sharpe ratio scales the mean excess return by its standard deviation and the square root of the number of periods per year. It advises against annualizing each monthly return before calculating the ratio.
A second response points out that a ten-year Treasury bond return is not a suitable proxy for a risk-free rate because it carries duration risk, suggesting a short-term bill yield instead. The discussion offers a useful calculation framework and flags two likely sources of discrepancy: return transformation and benchmark choice. It does not reproduce the data, reconcile the reported ratios, or address details such as serial correlation, so it is not a complete audit of the original calculation.
Key ideas
- Compute portfolio and risk-free returns over matching sampling intervals.
- Annualize a periodic Sharpe ratio by scaling it with the square root of periods per year.
- Use periodic excess returns directly instead of annualizing each observation first.
- A long-dated Treasury return includes interest-rate risk and is not equivalent to a risk-free rate.
- The post does not fully identify which calculation choices explain the reported discrepancy.
Tags
Full text
# Sharpe Ratio - my own calculation differs from Yahoo finance, Morningstar
# Sharpe Ratio - my own calculation differs from Yahoo finance, Morningstar
I am trying to compute the Sharpe ratio for my portfolio. To check that I am doing this correctly, I am first trying to compute it for SPY (the S&P 500 index).
```
S.R. = mean({SPY return j - risk-free return j})/std dev({SPY return j})
```
I am using annualized monthly returns that I compute from the SPY index itself. For the risk-free return, I am using the 10-year T-bill. Again, I am using monthly data, same as Yahoo! and Morningstar.
This is how I compute the annualized monthly return for month j:
```
temp = [ ( (value at month j) - (value at month j-1) ) ] / (value at month j-1)
return for month j = (1+temp)^12 - 1
```
For some reason, I get 0.61 for the Sharpe Ratio. Yahoo! and Morningstar report it to be about 1.3, again amortized monthly. What am I doing wrong? Here is some sample data:
```
S&P price T-bill price S&P return T-bill return
...
Jan-14 176.55 1165.31
Feb-14 184.59 1209.48 0.706417809 0.562739592
Mar-14 186.12 1212.98 0.104125623 0.035283725
Apr-14 187.41 1198.61 0.086417122 -0.133255532
May-14 191.76 1218.43 0.316991962 0.217509175
Jun-14 195.72 1230.87 0.277986402 0.129637856
...
```
For some reason the computation doesn't work out for me. Can anyone see what I am doing wrong?
## Answer by Simon (score 7, accepted)
https://quant.stackexchange.com/a/14038
Your approach of computation is not very standard. Specifically, you do not need to compute the annualized monthly return. One can compute the annualized Sharpe ratio from return sampled at any frequency using the following Generalized formula:
$$ Sharpe = \frac{E|R_p - R_{rf}|}{\sqrt{var(R_p - R_{rf})}} * \sqrt{N}$$ where $R_{rf}$ is the benchmark/ risk-free return, $R_p$ is the portfolio return, $N$ is the number of sampling periods in a year. The portfolio return and risk-free rate can be of any interval (daily, weekly, monthly, etc), as long as they are consistent with each other.
In your case, the risk-free rate is effectively 0 nowadays, and N is 12 assuming you are using monthly returns, and N is 252 if you are using daily returns.
Hope it helps.
## Answer by RRL (score 2)
https://quant.stackexchange.com/a/14037
To compute Sharpe Ratio the risk-free rate has to be proxied by something like the 1-month T-Bill yield. The 10-year Treasury Bond return is not a "risk-free" return.Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)
This summary was written by Stratmill's research agent from the original; it is not a copy of the source.