Annualizing Sharpe Ratios When a Strategy Trades Intermittently
Summary
The document considers how to annualize a strategy’s Sharpe ratio when it trades on some days and stays in cash on others. It contrasts scaling the average return per trade by the annualized number of trades with calculating performance over every trading day in the test period. The proposed method builds a full daily return series, records each trade’s return on its trade date, and assigns zero return to days without a trade (or the small cash return, if relevant). The daily mean and standard deviation then feed the standard annualized Sharpe calculation.
The example concerns a stock strategy with 734 trades over 1,013 trading days, but the document does not provide a recalculated Sharpe using the full daily series. Its central point is that Sharpe evaluates the performance of capital through elapsed time, including idle periods, rather than the quality of only the executed trades. The measure is intended for a complete strategy over a defined period; it may not suit isolated trades from a larger strategy and should not be treated as the only performance measure.
Key ideas
- Calculate strategy Sharpe from a return series covering every trading day in the evaluation period.
- Record zero return on days without a trade, or the relevant idle-cash return.
- Annualize based on the elapsed trading-day return series rather than only the number of trades.
- Sharpe measures the performance of invested capital over time, not just returns on active trades.
- Use Sharpe as one performance measure and apply it to a complete strategy.
Tags
Full text
# Calculating Sharpe Ratio on a per trade basis? # Calculating Sharpe Ratio on a per trade basis? I have a strategy that I've been playing with and trying to backtest. It's of questionable practicality at the moment, but the idea is to pick one stock from the Dow 30 companies to trade right near the close and sell the following day, also near the close (I'm using actual closes as a proxy). If there are no suitable options, no trade is made for the day. Here's a summary of the test trades: ``` Period: 6/2/2016 to 6/9/2020 Trading days: 1013 Number of trades: 734 Average return per trade: 0.2298% Trade standard deviation: 2.2826% ``` From what I've seen, the Sharpe Ratio would typically be calculated something like this in Python: ``` sharpe = daily_mean_return / daily_std * 252**0.5 ``` In my case, I'm wondering if I should use the average number of days per year rather than `252` for a full year. So it would look something like: ``` trading_days = 1013 n_trades = 734 trade_mean = 0.002298 trade_std = 0.022826 annual_trades = n_trades / (trading_days / 252) sharpe = trade_mean / trade_std * annual_trades**0.5 # 1.360 daily_sharpe = trade_mean / trade_std * 252**0.5 # 1.598 ``` So calculating using only the trades actually made yields `1.360` and calculating based on `252` days yields `1.598`. Which of these is really getting to the essence of the ratio? ## Answer by nbbo2 (score 1, accepted) https://quant.stackexchange.com/a/54954 My understanding is that a Sharpe Ratio must be calculated based on the actual trading days elapsed, not on the days traded. The calculation proceeds as follows: 1) Establish a list of all trading days between 6/2/2016 and 6/9/2020. You could start with a list of all calendar days, remove Saturdays and Sundays and then remove the NYSE holidays listed on the NYSE web site. Put these dates in Column A of an Excel spreadsheet. 2) In Column B of the spreadsheet enter the return on the strategy for the given day. If the strategy had a trade enter the return. If the strategy for whatever reason did not trade enter a zero (strictly speaking you could enter the return on idle cash for one day, but these days this is essentially zero). 3) Using the =AVERAGE() and =STDEV() functions in Excel, calculate the average return per trading day and the standard deviation and then compute the Sharpe Ratio from the standard formula. (When I perform this calculation with a trader's results they will sometimes say "I am such a good trader, why are you penalizing me by putting a zero on the days on which I did not trade? I earn x% on average when I do trade". I tell them: when your strategy does not have any trades, the money is idle and earns a minimal return and I am taking that into account. Besides, you are not really penalized because you have a lower standard deviation in the denominator, your strategy is safer than someone who is in the market every day and I am taking that into account). Keep in mind also that the Sharpe Ratio is intended to evaluate a complete strategy over a period of time, it is not appropriate for a subset of trades that are part of a larger strategy and is not the only way to look at trading performance. (Put differently: The Sharpe Ratio measures the performance of the money invested, not of the trader.)
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.