I trade volatility and noticed this shift in market behavior too. The truth is that the volatility ETNs have not been around long enough to do better analysis. We still have not seen them go through a recession so we don't know how they would behave. I guess time will tell. Resulted in lower drawdown and higher returns, especially when the timeframe is increased through today. The biggest problem with this algo is the beta. It is WAY too high. Without reducing the beta, the algo is very risky to trade in the real world.
I know its similar, the same base algorithm as last time.. But I'm working toward lowering the beta on this.. The returns are too good to pass up. I'm very interested in the volatility-type systems and am following along. A few comments on this algo:. Just an observation, but curious why it was positioned on the right side in Aug 15 but not so well during the other two down drafts. Is this considered "cheating"?
Is there any merit in being out of the market overnight? Since the algo is trading off the prior day's close, but it probably wouldn't matter much, which leads me to:. Is there a way to get intraday VIX data? Or do these algos benefit from the inherent smoothing of only looking at closing prices?
My threshold is around. In the latest few days, the ratio never quite got to 1 i. So, would it help to know the real-time contango level or do we need the filtering of only looking at the close? Lowered your beta and increased your returns. Simply changed the ratio of shares bought. Check a DIFF of our two sources. That may be throwing off your results. Let me know if I'm missing something. One other item to be careful with here is the update time for the VIX futures contract data. The OP algo is set to run every morning 1 min after market open.
From what I'm seeing - the VX1 and VX2 futures prices don't update with the previous day's data until later. So the algo would be executing with day old data. I setup a script to ping my own quandl account endpoint to check for updates every minute.
So I should know when it updates soon and I will pass along that info here. As of writing this, the quandl endpoint still has not updated. Quandl data for the VX1 and VX2 futures contracts updates around In Paper trading current data points v, v1, v2 appear as NaN.
I first thought it was because of data delay Quantopian apparently refreshes before midnight ET so I changed to shift 2 but it still is NaN. It is very hard to debug stuff in paper trading, any ideas why is this happening?
Hi, The same happened to me. Data in paper trade was nan, but was ok in backtesting. You may check this post: Here is my version, i added a mean reversion portion that tries to profit from the mean reversion in addition to harvesting contango.
Here is a version that uses pipeline to pull vxv instead of the fetcher, it may better suit for live trading. I used the front month since to ascertain whether the VIX was in contango or not - it has been in steep contango for the vast majority of the period.
I then took each front month and shorted when there was contango, exited the trade when there was backwardation. On a daily basis. Thanks for creating an outstanding algorithm. The returns are amazing. I have one question about the PCR condition to place the xiv trade. I see that the data for PCR is obtained only for certain dates. I really liked your algo that improved the performance of my original one by a factor of 1.
There are plenty of VXV algorithms out there. I was to read the vix futures. Here's hoping that Quantopian can solve this NaN issue soon by introducing futures data live. They can't be traded live till futures are implemented into Q. I have been trading the very first model live using spreadsheets, but manually and not automated. Outside of those, the returns come back to Earth, though it beats the market. Shouldn't they be the same as the backtest length?
It no longer gets that great spike up in - though still has pretty decent returns - with a high drawdown. I am not sure the PCR is adding much. So I eliminated it completely. This new algorithm gets all the spikes. Can someone explain why the algorithm is not tradable live?
When I search for info about the csv fetcher, it seems like it works okay: Can someone please help explain how to trade the latest version of this algorithm live until futures are made available?
It's been a while since I looked at this algo but one the key points is that as josh nielsen mentioned above, futures are updated everyday at 11am Tues-Friday. If you're executing trades at market open, you're front running your data and getting invalid backtest results.
I haven't seen any reason why this algo can't be traded. Algos can download remote csv data from sources such as quandl I believe. I haven't done this so I may be wrong though.
There is no front running of data. That is taken care of in the code. Hence, the backtest results are fine.
I have tried to run the algorithm live and got NaN error. Same has happened for others. In a few months we will get futures on Quantopian and this algorithm could be run live then. In python NaN stands for "Not a Number". There is a bug in your code somewhere and needs to be debugged. If you are scheduling your rebalance at market open, then you are front-running the backtest data. If you run it now, there is no row for today's data yet and is probably why you would get NaN.
There is no front running. As for why the NaN, yes, it is because when the algorithm is run, there is no value yet. But that does not mean the algorithm should be run late.
The algorithm should be run when it needs to be run. The algorithm simply needs a better data source, which is coming. I might not have explained it well enough. Futures data isn't available until 11am. It doesn't matter the data source. It's how the futures contract data is made available by CBOE: CFE Data does not become available until approximately So in your algo, you have X amount of years of history. You execute your trades at 9: So trades you make in your algo, are done in advance of when they really could have been made.
This is front-running the data. If the above link isn't enough to convince you, tomorrow morning at market open, manually download that CBOE csv data and see if it has an entry for that day it won't. Yes, it is, as the futures values used at 9: Which is the intent. Let's settle this first. The algorithm needs closing values for futures for the previous day.More...