If I was running short VX or V2X, I'd have a position in both 1st and 2nd contract blended by the remaining days to expiration (see code snippet below) - this way you're providing liquidity to the volatility ETFs so there is a tiny bit of additional edge (you're collecting their market impact as you go). Code: dr = business_days(prev_vix_expiration, next_vix_expiration) - 1.0 # -1 to remove today dt = business_days(today, next_vix_expiration) w_1st = dt/dr w_2nd = 1 - w_1st
Interesting idea. Have you backtested whether this actually performs better than holding only the 1st contract or only the 2nd contract?
I spent the last couple of months trying to replicate the results in chapter 27 to no avail. I'm using CQG hourly data on ~70 instruments going back to 1990, so data cleanliness shouldn't be too much of an issue. At one point I was getting really good (too good to be true) results with a sharpe around 3-4. Diving deeper I ultimately found the same thing you did, independently - namely, when I lag equilibrium the results go to 0. I tried a number of ways to vary the equilibrium calculations but nothing comes close. I was wondering if you or anyone else found any solutions. Thanks!
Down 2.1% today. I had been down 4.0% earlier in the day, but that was before Lumber and the Meats opened and those worked in my favor.
Recovery is going well. Up 2.4% today and at a new high. Looking at the CTA/TF ETFs, many have also recovered yesterday's losses.