I’ve been experimenting these last few days on fixing up my “optimal” contango ratio to enter or exit short volatility. This came about because of someone’s response to my post in Quantopian; essentially, given that I’m checking the ratio between the VIX Spot and the Front month futures’ settlement, it’s to be expected to converge to 1 as we approach Futures maturity.
I’ve been meaning to think of a way to resolve this and ended up just doing something similar to the construction of the ETF VXX where I take a day-weighted average of the VIX/F1 and F1/F2 ratio (something similar in concept is in my earlier post). This new standardized ratio works out quite well and reduces the drawdown by quite a fair amount where if Ratio < 0.95, short volatility, otherwise move to cash.
Below are two back-test comparisons for the time-frame 12/01/2010 to 01/20/2017.
Long XIV

Short VXX

With shorting VXX, I’ve ran further back-testing analysis since I can actually go back a little farther in time to 02/02/2009. I’ve detailed a summary of the returns below.
Backtest Summary Performance Measure | Value |
---|
Annual Return | 0.76 | Annual Volatility | 0.34 | Sharp Ratio | 1.86 | Max Drawdown | -0.25 | Alpha | 0.51 | Beta | 0.83 | /* Here you can add custom CSS for the current table */ /* Lean more about CSS: https://en.wikipedia.org/wiki/Cascading_Style_Sheets */ /* To prevent the use of styles to other tables use "#supsystic-table-1" as a base selector for example: #supsystic-table-1 { ... } #supsystic-table-1 tbody { ... } #supsystic-table-1 tbody tr { ... } */ |
Worst Drawdown Periods Rank | Drawdown in % | Peak Date | Valley Date | Recovery Date | Duration |
---|
1 | -0.2464 | 03-26-2012 | 06-01-2012 | 06/22/2012 | 65 | 2 | -0.2332 | 04-20-2010 | 07-16-2010 | 09/01/2010 | 97 | 3 | -0.2289 | 07-22-2015 | 02-29-2016 | 04/18/2016 | 194 | 4 | -0.2095 | 02-14-2011 | 03-08-2011 | 04/27/2011 | 53 | 5 | -0.2051 | 08-05-2013 | 08-28-2013 | 11/22/2013 | 80 | /* Here you can add custom CSS for the current table */ /* Lean more about CSS: https://en.wikipedia.org/wiki/Cascading_Style_Sheets */ /* To prevent the use of styles to other tables use "#supsystic-table-1" as a base selector for example: #supsystic-table-1 { ... } #supsystic-table-1 tbody { ... } #supsystic-table-1 tbody tr { ... } */ |

Stress Events Stress Events | Mean | Min | Max |
---|
US downgrade/European Debt Crisis | 0 | 0 | 0 |
Fukushima | 0.0054 | -0.0173 | 0.0482 |
EZB IR Event | 0.0015 | -0.0745 | 0.1064 |
2009Q1 | 0 | 0 | 0 |
2009Q2 | -0.0015 | -0.0533 | 0.0142 |
Flash Crash | 0 | 0 | 0 |
Apr-14 | -0.0022 | -0.0549 | 0.0319 |
Oct-14 | -0.0009 | -0.013 | 0.0029 |
Fall 2015 | -0.0019 | -0.0444 | 0.012 |
GFC Crash | 0 | 0 | 0 |
Recovery | 0.0031 | -0.1242 | 0.1251 |
New Normal | 0.002 | -0.0911 | 0.1061 |
/* Here you can add custom CSS for the current table */ /* Lean more about CSS: https://en.wikipedia.org/wiki/Cascading_Style_Sheets */ /* To prevent the use of styles to other tables use "#supsystic-table-1" as a base selector for example: #supsystic-table-1 { ... } #supsystic-table-1 tbody { ... } #supsystic-table-1 tbody tr { ... } */
Amazing stuff, Fang! I’ve taken your algorithm and implemented it into some of my portfolio. Thanks for being kind enough to share with the world. 🙂
No problem! I’m just building off of someone else’ research too; collaboration makes everyone better =D