Data.Current_Chain() not loading full Futures Chain for VIX futures (only current and back months)

I am running the following code and am trying to return the full futures chain for VIX futures. However, it is only giving me the front-month and second-month contracts (ie. 'vx_chain' List is only 2 elements), yet the full chain is 9 deep as per http://www.cboe.com/delayedquote/futures-quotes

def before_trading_start(context, data):
context.vx_future =continuous_future('vx')
vx_chain = data.current_chain(context.vx_future)

front_contract = vx_chain[0]
secondary_contract = vx_chain[1]

vxh18 = symbols('VXH18')


Trying to reference vx_chain[2] obviously results in a list index out of range as a result...

Furthermore, if I run the line of code vxh18 = symbols('VXH18') I get a "KeyError: 'VXH18', but that contract is absolutely a valid contract (ie. Mar 18)

Did I miss an announcement or explanation that the "current_chain" function doesn't return full chains on some Futures? Is this reconcilable?

3 responses

I'm playing around with other contracts and settings/parameters to see if I can trigger the full chain to be returned and am also seeing this with ES (only 3 elements), which is very odd. Alternatively, the CL contract returns a whopping 41 elements! So there has to be some explanation why some contracts like VX and ES don't return the full chain, but CL shows years out into the future.

Another update. I should clarify that the above behavior is shown for Jan 1st, 2018 to Jan 12th, 2018. However, if I move the start date to Nov 1st (or further back to Oct or prior), the chain does show deeper at that point in time, BUT it never shows past the current (ie February) contract.

Its as if for VX and ES (and probably others), the chain stops at February.

To any interested or encountering similar behavior, I received a private reply from a helpful staff member of Q with the following:

The VX futures chain does indeed go well out into 2018. Like you said, this is not reflected in the IDE, in which no VX future past February is returned. I have confirmed this issue and will file a bug report so this issue can be corrected. I apologize for this data error. As a workaround, it may be worth analyzing another futures contract in your strategy.

No update on when it will be corrected, but at least Q is aware of the issue.