Implied Volatility as an Asset Class

When M.Faber published a model for asset allocation, there has been significant increase in interest in the area on the internet.

With this post, I hope I can add value to the existing allocation framework by introducing another asset class into the mix which I believe can help improve existing TAA models.

In one of the previous posts, I made the point that the VIX timed the market pretty well in the sense that it spiked whenever the S&P declined. Although it is fundamentally created to measured the implied market volatility, I believe it can be used to improved TAA models in time of stress.

A few ETF products has sprang up lately which offers investors the tool to take advantage of the movements in the VIX. They are…

VXX- iPath S&P 500 VIX Short-Term Futures ETN

VXZ- iPath S&P 500 VIX Mid-Term Futures ETN

Playing around with concepts in my head, I hypothesized that given its inverse relationship with the S&P, it may be a good candidate to incorporate in a momentum based TAA model.  The idea is summarized in the following short picture.

The picture is my way of visualizing the past 6 month return on the S&P 500(SPY, Red), Bonds (SHY, Orange), Gold(GLD, Green) and Implied Volatility (VXX, Blue). You can see that in the recent European crisis, we will mostly be in Gold and VXZ if assuming we are holding the top two funds.

In the following simple backtest, I attempt to quantify this with some evidence. In both backtests, I am allocating funds to the top 2 performing assets (50% capital for each). I am rebalancing weekly and I am using 6 Month ROC to calculate the return.  (Please go to bottom to see assumptions)

Notes: The test was done on the less than 9 years of data. The VXX history started in late 2009 so conclusions should be drawn carefully as past performance is not indicative of future returns.

Amibroker Code:

#include <>;
Filter =1;
SetOption("InitialEquity", 100000);
Maxposition = 2;
SetPositionSize( 100/Maxposition, spsPercentOfEquity);
SetOption("UsePrevBarEquityForPosSizing", True);
BuyPrice = C; 


rs3                     = ROC(Close,120); 

averagescore		= 1000+rs3;
PositionScore		= IIf(Year()>=2003 AND DayOfWeek()==5,averagescore, scoreNoRotate); //DayOfWeek()==5

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s