Stata Code for Volatility Managed Portfolios

Alan Moreira and Tyler Muir (2017) show that volatility managed portfolios can produce large alphas, higher Sharpe ratios, and significant gains for investors who take investment decisions on the mean-variance frontier of modern portfolio theory. They use a number of well-known factors such as  the market, value, momentum, profitability, return on equity, and investment factors in equities, as well as the currency carry trade.  The underlying rationale behind volatility timing is that volatility timing increases Sharpe ratios because changes in factors’ volatilities are not fully offset by proportional changes in average returns.


Research Design

The authors define volatility managed factors by scaling an excess return by the inverse of its conditional variance. Then they run a time-series regression of the volatility managed portfolio on the original factors. A positive intercept implies that volatility timing increases Sharpe ratios relative to the original factors that include RMW, CMA, ROE, IA, SMB, HML, MOM, MKT, etc.

Further, the authors  form unconditional mean-variance efficient (MVE) portfolios using various combinations of factors. These underlying factors can be
thought of as the relevant information set for a given investor (e.g., an investor who only has the market available, or a sophisticated investor who also has value and momentum available). They then volatility time each of these mean-variance efficient portfolios and report alphas of regressing the volatility managed portfolio on the original MVE portfolio. The volatility managed portfolio scales the portfolio by the inverse of the portfolios’ realized variance in the previous month.

Our Stata Code

We have developed an efficient code for volatility managed portfolios, the risk factors, and the regressions analysis.  The code is extremely efficient in doing the said tasks.



The code is available for $299, plus a $50 for raw data processing (in case the data is not in Stata format and variables are not already constructed). For further details, please contact us at:


Leave a Reply

eighteen + 2 =