Estimating Portfolio Volatility for Backtest Subperiods
Summary
The document considers whether annual portfolio volatilities can be combined to estimate volatility over a shorter span crossing calendar years. One reply presents a parallel variance algorithm: combine the observation counts, means, and variances of two samples, including a correction for the difference between their means. This can combine sample statistics when the underlying observations and definitions align.
Another reply recommends reconstructing the portfolio's value series from constituent prices and the strategy's weights, applying the intended rebalancing rules, and calculating volatility directly over the desired dates. The reason is that volatility and correlations can change within a year, so annual summaries may hide meaningful shifts and do not necessarily represent the requested subperiod. The proposed workflow estimates variance from the resulting portfolio return series and annualizes it when needed. The document emphasizes using observed data for backtesting, but does not specify all return-frequency, weighting, or annualization conventions; these should be kept consistent when comparing strategies and benchmarks.
Key ideas
- A parallel variance method can combine sample statistics when observation counts, means, and variances are available.
- Combining annual volatility figures alone may not recover the volatility of a cross-year subperiod.
- Reconstruct the portfolio time series using constituent prices and the strategy's rebalancing rules.
- Estimate volatility from portfolio returns over the dates of interest, accounting for changing volatility and correlations.
Tags
Full text
# I have portfolio volatility for individual years, can I use them to compute portfolio volatiltiy for subperiods?
# I have portfolio volatility for individual years, can I use them to compute portfolio volatiltiy for subperiods?
Thanks for opening this question.
I have constructed some rules for a portfolio with annual rebalancing and am backtesting it for the period 1990-2014. I want to compare the risk-adjusted return to the risk-adjusted return of the S&P 500 index.
For every individual year I have calculated log returns of the constituents of the portfolio and calculate portfolio volatility for every year using the following formula in Excel:
First I compute the variance like this: =MMULT(MMULT(array1;matrix1);array2) array1: array of weights of constituents of the portfolio*annual volatility of the constituent for every constituent in that year array2: constituents return correlation matrix array3: transpose of weights of constituents
And then I SQRT() the variance to get the annual portfolio volatility.
Now I am wondering if I can use the annual portfolio volatilies to compute volatilities for certain subperiods, say for example January 2013 - September 2014.
I could compute the portfolio volatily for the period Jan 2013 - Dec 2013, and for the period Jan 2014 - Sept 2014, but how do I then combine the result?
Thanks for helping me out.
## Answer by jaamor (score 1)
https://quant.stackexchange.com/a/16231
You can use the Parallel Algorithm.
Your sample $X$ is divided in two sets of obsrvations $X_{A}$ and $X_B$. $$ \delta\! = \bar x_B - \bar x_A \\ \bar x_X = \bar x_A + \delta\cdot\frac{n_B}{n_X} \\ VAR_{X} = VAR_{A} + VAR_{B} + \delta^2\cdot\frac{n_A n_B}{n_X} $$ Where $n$ the number of observations and $\bar x$ the mean.
## Answer by zuiqo (score 0)
https://quant.stackexchange.com/a/16233
Since you have the weights as well as the price series of your assets, the cleanest way I can think of is to calculate the portfolio price series for your given time frame, and then estimate the variance from that.
The problem you face is that volatility changes more often than yearly, and obviously the end of the year is not necessarily a 'clean cut' between two regimes. So while it's technically possible (See jaamor's answer), I don't think that will give you the desired result. In a backtest you want to understand how your trading strategy would have performed in the past, if you had implemented it, and one of the most important considerations will be how does a portfolio react to changes in market volatility. For example, if you want to use a low volatility strategy, the backtest will show you if the stocks you selected actually yielded you a portfolio with a lower volatility, or if correlations between the stocks actually reduced that effect.
So I would recommend to use real data wherever possible.
Since you work in excel, it should be quite straightforward to do. You will probably have the daily price series of your constituents. Start with the portfolio's initial value and distribute it according to your weights by buying the constituents. Track the prices of the positions until the next rebalancing, the sum will always be equal to the current portfolio value. Before the next rebalancing, calculate what your portfolio is wrorth now. Then redistribute that money according to your strategy's weights. Repeat. Use the resulting time series to calculate variance. Use the stdev-function over the period you want, and then annualize (e.g. from daily vola to annual vola by *sqrt(252), where 252 is the trading days.)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.