(This article was first published on

**ProbaPerception**, and kindly contributed to R-bloggers)

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);

To

**leave a comment**for the author, please follow the link and comment on their blog:**ProbaPerception**.R-bloggers.com offers

**daily e-mail updates**about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...