Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

The VIX (volatility index) is a financial index which measures the expectation of the volatility of the stock market index S&P 500 (SPX). The higher is the value of the VIX the higher are the expectations of important variations in the S&P 500 during the next month. Since volatility is a measure of risk in a portfolio, managers tend to flee away the market when the VIX increases.

The question today is to know whether it is a good strategy to use the VIX as an indicator of risk in the market, as a fear-index.

I downloaded the historical prices of both the S&P 500 and the VIX. Even though the VIX is not in a currency unit but in percentage, we still call the data historical prices. I propose a very simple portfolio strategy which is in total contradiction with the idea that the VIX is a fear gauge. I have a certain amount of money at the beginning of the year 2007, and I can short or long on the S&P 500 in the range of the money I have. My decision for a day only depends of the profit made by the VIX the previous day. If the VIX has increased I long on the S&P 500, if the VIX decreases I short. To define the quantity to invest in, I use a re-scaled and translated logistic function so that my decision is smooth and stay in the range I defined just before ([-1;1]). If you are interested in the logistic function you can go on the page of a good mathematics  website: http://mathworld.wolfram.com/LogisticEquation.html . Or even on the Wiki page (don’t worry I’m not crazy, I don’t trust Wiki, but this page is Okay): http://en.wikipedia.org/wiki/Logistic_regression.

With such a strategy which is against the mainstream of the portfolio strategies we have some good results (see next figure). If you had begun your portfolio manager career the 01/01/2007 with a huge amount of…100$and had decided to invest according to the previous strategy you would have clearly over performed the S&P 500 index. You can see this on the following graph. Next time your parents tell you a story about the monster VIX don’t be scared! The code (R): # data contains the historical prices of the VIX and of the S&P500 as well as the date data <- read.csv("U:/Blog/Post3/vixSP.csv", header=T, stringsAsFactors=FALSE) data$date<-as.Date(data$date, format="%d/%m/%Y") data$money = 100
data$profitSP = 0 data$profitVix = 0
data$decision = 0 length = length(data$vix)

for(i in 2:length){
data$profitSP[i] = (data$sp500[i] – data$sp500[i-1])/data$sp500[i-1]*100
data$profitVix[i] = (data$vix[i] – data$vix[i-1])/data$vix[i-1]*100
#   if(data$profitVix[i] > 7){data$decision[i] = 1}
#   if(data$profitVix[i] < -7){data$decision[i] = -1}
data$decision[i] = ((exp(data$profitVix[i]/5)/(exp(data$profitVix[i]/5)+1))-(1/2))*2 } for(i in 2:length){ data$money[i] = data$money[i-1] + data$decision[i-1] * data$money[i-1] * data$profitSP[i]/100
}

data$money = data$money/data$money[1]*100 data$sp500 = data$sp500/data$sp500[1]*100

plot(data$money~data$date, type = ‘l’, col = ‘blue’,axes=TRUE, ann=FALSE, ylim = c(50, 250))
lines(data$sp500~data$date, col = ‘red’)

title(xlab=”Years”, col.lab=rgb(0,0,0))
title(ylab=”Index (US\$)”, col.lab=rgb(0,0,0))
legend(“topleft”,  c(“Portfolio”,”S&P 500″), cex=1,
col=c(“blue”,”red”), lty = 1, inset = 0.1);