I always knew algorithmic trading was an iterative process, but it’s really become interesting lately as I continue to refine my short volatility algorithms. With my most recent iteration, I’ve realized that after a stop-loss has been triggered intraday, there could potentially be a buy-back opportunity at the end of the day from when VXX has been overextended.
In this post, I’m testing a 2.5% buy-back threshold based on the stop-loss price if triggered. The results are quite amazing, drawdown is further reduced while returns have been increased. As well, the drawdown periods have also been reduced in length.
Short VXX: Stop-Loss without Buy-Back
The following back test results are from 02/01/2009 to 02/22/2017.

Short VXX: Stop-Loss with Buy-Back
The following back test results are from 02/01/2009 to 02/22/2017.

Backtest Summary Performance Measure | Value |
---|
Annual Return | 0.88 | Annual Volatility | 0.32 | Sharp Ratio | 2.12 | Sortino Ratio | 3.4 | Max Drawdown | -0.21 | Alpha | 0.56 | Beta | 0.73 | /* 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.2144 | 10-25-2010 | 11-30-2010 | 01/03/2011 | 51 | 2 | -0.1715 | 07-03-2014 | 02-09-2015 | 04/08/2015 | 200 | 3 | -0.1634 | 08-09-2016 | 09-13-2016 | 09/22/2016 | 33 | 4 | -0.1618 | 04-16-2009 | 07-02-2009 | 09/08/2009 | 104 | 5 | -0.1452 | 04-02-2012 | 04-10-2012 | 06/08/2012 | 50 | /* 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 { ... } */ |

Hi Fang,
Love your blog and your simulations.
Got quite curious to the results which are amazing, mindblow if I would like to say, and I would like to replicate the simulation above.
Do I undestand you correctly that you utilize, first and second maturnity months to do enter short vxx. Essentially your equation would be then:
Ratio = Front Weight * VIX/F1 + Back Weight * F1/F2
where as Front Weight = Days to Maturity / VIX
Back Weight = 1 – Front Weight
And you use the vix/vxv ratio of 0.95 to enter the short?
Now to the stop-loss, do you take the stop-loss when the it hits a -2.5% and re-enter when ratio is below 0.95?
Best regards,
zenix
Hi Zenix,
Thanks for the compliment! I actually use the Normalized Ratio to enter into short VXX with a threshold of 0.95; I’ve moved away from using VIX/VXV as my simulations indicated that it is not as effective.
Essentially:
Normalized Ratio = Front Weight*VIX/F1 + Back Weight*F1/F2
Front Weight = Days to Maturity/Total Length of the Contract
Back Weight = 1 – Front Weight
E.g. For the current June contract, it has a total length of 35 days and supposing it’s currently June 5th, this means that there’s 17 days left to expiry (VIX monthly contracts expire every 30 days before the third Friday of the following month, which works out to usually the third Wednesday of the month). Thus:
Front Weight = 17/35
As for the stop-loss, I will buyback my short VXX shares when the price hits +2% from the opening price. If VXX keeps climbing another +2.5% from the opening price during the day and SPY hasn’t fallen more than 1 standard deviation, then I re-enter my short VXX positions.
Hope this clears things up, but feel free to ask more!
Cheers,
Fang