One of the things that I wondered about regarding the previous post was how would this strategy have performed in the past, before the inception of XIV?
My first go-around involved me backtesting on the actual VIX index. Unfortunately, there is no instrument that actually perfectly tracks the VIX (EG ala SPY vs. the S&P 500 index). So, one common pitfall with trying to backtest VIX-type strategies is to actually assume that there’s a straightforward proxy to the VIX index. There isn’t. Why? Because of this:
#VIX weekend always up getSymbols(“^VIX”, from=“1990-01-01”) VIX <- to.weekly(VIX, OHLC=TRUE) VIXwknd <- Op(VIX)/lag(Cl(VIX)) - 1 charts.PerformanceSummary(VIXwknd)
Obviously this equity curve is completely unrealistic, meaning it’s impossible to trade an exact replica of the instrument that would have created it.
However, for those seeking some data on VIX futures (that is, the instrument you could trade), on the front month contract, I recently updated my quandClean function in my IKTrading package, as the CBOE_VX contract actually has closing price data (in addition to settle price), so I was able to pull VIX futures data from Quandl. So, if you wish to replicate this analysis, update your installation of IKTrading. Here’s the code:
require(IKTrading) VIX <- quandClean(“CHRIS/CBOE_VX”, verbose=TRUE) vix2 <- VIX[“2007-03-26::”] vix1 <- VIX[“::2007-03-23”] vix1[,1:4] <- vix1[,1:4]/10 VIX <- rbind(vix1, vix2) chart_Series(VIX) #2008-05-20 low is wrong getSymbols(“TLT”, from=“1990-01-01”) vixRets <- Return.calculate(prices=Cl(VIX)) tltRets <- Return.calculate(prices=Cl(TLT)) both <- merge(vixRets, tltRets, join='inner') colnames(both) <- c(“vix”, “tlt”) longRets <- Return.rebalancing(both, weights=c(-.4, 1.8), rebalance_on=“weeks”, geometric=FALSE) colnames(longRets) <- c(“VIXTLT”) charts.PerformanceSummary(longRets)
A quick explanation: Quandl’s VIX data prior to March 26, 2007 is on an order of magnitude larger than the data following it. Why this is the case, I do not know, but whatever the case may be, in order to proceed with the analysis, I divided that section of the data by 10. Still, Quandl’s data quality isn’t the greatest for other instruments, however, and I hope that they take a look at my updated algorithm for their futures data so as to improve its quality, and thereby make it more amenable to backtesting.
In any case, in this instance, rather than long XIV 40% and long TMF 60%, it was long TLT 180% and short VIX 40%.
Here’s the result:
In short, an unambiguous loser. Can we see why? Well, not completely, as XIV doesn’t go back to 2003 (or I’d be able to conduct the back-cast in a fairly straightforward fashion), but here’s an attempt to replicate XIV with transforms on the VIX (both short and inverting)
vixxiv <- merge(vixRets, xivRets, join='inner') vixxiv$shortVix <- -1*vixxiv[,1] vixxiv$inverseVix <- 1/(1+vixxiv[,1])-1 charts.PerformanceSummary(vixxiv[,2:4])
Here are the results:
Basically, even with the VX futures from the CBOE, it’s far from straightforward to get a replica of XIV in order to properly backtest the strategy, and without a stream of returns that matches that of XIV, it is very difficult to say how this particular strategy would have played out during the financial crisis when VIX spiked. In any case, while this is hardly evidence of a failed thesis on the part of the original article’s author, it’s difficult to actually verify the validity of a strategy that has less than four years of data.
Thanks for reading.
That’s because it’s not “structural arbitrage”, it’s a short-vol strategy on the back of rising SPX on lower volatility and dropping treasuries yields, also on lower volatility. If you search for “synthetic XIV data”, you should find a bunch of example code about how to extrapolate XIV/VXX values prior to the ETF inception.
Thanks so much for the search idea. Just did that and found some synthetic VXX, so if XIV is just an inverse of the VXX, I may be good to go, and then I’ll give the backtest another shot.
As for not “structural arbitrage”, yeah, it doesn’t seem like any form of arbitrage to me, either, but that’s what that strategy author calls it, so I went with it.
Thanks for the suggestions.
You can download a “long” XIV and “long” VXX back to the start of VIX futures 2004 from my Dropbox which is updated daily with CSI data via a small R-script.
This is very useful. Thank you so much for the link.
Helmuth, thanks, very useful data. Can you maybe also share ZIV and VXZ data? Thanks.
Exactly. Calling strategy arbitrage is ludicrous.
You’d have to take up terminology with Harry Long on Seeking Alpha for that, but I’m with you on this one.
In order to derive values for VXX and XIV you’ll need to use the actual values of first and second month VIX futures, and rebalance them daily using the process outlined in the prospectus, beginning on page PS-44 (http://app.velocitysharesetns.com/files/prospectus/PRICING_SUPPLEMENT_No__VLS_ETN-1_A32_long_form_2.PDF). They have also updated the prospectus with Index levels for short- and mid- term VIX futures indexes so you know if you’re getting close to the right answer (page PS-47). Good luck!
Thank you very much. Mr. Vollmeier has been kind enough to provide me with his calculated long-history VXX and XIV, so I’m grateful for that. But I’ll keep in mind the prospectus, as well.
looks useful and would love to see how one can do this in R. Even more interesting would be how to replicate ZIV and VXZ.
I’ll keep this prospectus in mind, along with procedures on instrument construction for the future. Thanks for the suggestion.
Ilya , Samuel update: ZIV & VXZ, reconstructed according to the method outlined in their prospectus
Here’s why the prices were an order of magnitude higher prior to March 26, 2007: http://tinyurl.com/CFE-VIX-VXN-Rescaling. If you’re interested, I have a getSymbols.cfe() method that will do the adjustment for you by default (rescale=TRUE): https://r-forge.r-project.org/scm/viewvc.php/pkg/qmao/R/getSymbols.cfe.R?view=markup&root=twsinstrument
Ah. Thanks for that info, Garrett. Fair enough.
Pingback: The Whole Street’s Daily Wrap for 10/2/2014 | The Whole Street
Pingback: It’s Amazing How Well Dumb Things [Get Marketed] | QuantStrat TradeR