The fear-index: is the VIX efficient to be warned about high volatility? (Finance & Systematic Processus)

[This article was first published on ProbaPerception, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
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: . Or even on the Wiki page (don’t worry I’m not crazy, I don’t trust Wiki, but this page is Okay):

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. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)