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

September 24, 2012

(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: . 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 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...

If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook...

Comments are closed.

Search R-bloggers


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)