Adaptive Volatility (aka position sizing)

(credit attribution:

Aim: Get a better position sizing than  [target_vol / realized_vol_{t-1}], using a more 'adaptive' volatility that varies its lookback period according to market conditions.

The simplest method is to use the R-squared of the regression of prices vs time:
 1. high R-squared indicates a trending market -> use short lookback periods
 2. low R-squared instead implies a mean-reverting market -> lengthen lookback periods.

Such a R_squared value is translated into the alpha of an EMA using an exponential function (see code).

Hence the (theorical) daily exposure is:

    target_vol / sqrt( EMA_{t-1}(squared rturns, alpha_t) * 252)

To limit excessive trading, rebalacing happens only if theoretical exposure above a certain threshold (say 5%).

Concept here shown for a simple static portfolio of two ETFs: SPY and TLT.

A more interesting use of this position sizing scheme is when using algorithms with long periodical rebalacings, say monthly or quarterly.

Update Backtest

I added gold GLD and results are worse:


Update Backtest


The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.


This discussion is closed