VIX-implied Volatility calculator

Does anybody know any implied volatility calculator for VIX Options, possibily in Matlab? For Vanilla Options, I'm currently employing this function which is very fast and reliable (much more than blsimpv), but I have no idea (for the time being) If there's an analogous for Options on VIX index. By the way I'm still thinking whether I can use one of the these functions above to do this. This question is only for future reference. Thanks for your time and attention.

EDIT: Just like Gabriele wrote in the comment. The futures price is not (!) just the spot with interest compounding. And the reason is that the spot can not be traded. If you look at the formula for VIX then you see that $VIX^2$ is indeed a portfolio of traded options (weighted inversely to the square of the strike). But $VIX$ itself would be the square-root of this portfolio which is a non-linear transformation. I think this gives some intuition.
• Thanks @Richard I guess you mean "where you have NO cost of carry...". And I would say yes you are right: take from the market (or from a model) the VIX futures quotation and plug it in Black-76 formula. I found clarifier section 2.2 of Papanicolaou and Sircar 2014. You cannot write a usual cost-of-carry relationship like $F_{t,T} = e^{r(T-t)}VIX_{t}$ because $VIX_t$ is not the price process of any traded asset. You can trade only its derivatives. – Gabriele Pompa Feb 19 '15 at 8:47
• yes, the intuition is correct, VIX (as computed by CBOE) is a model-free replication of the realized SPX volatility in the following 30 days. I'm not sure if this (non-linear portfolio transformation) is related to the lack of a cost-of-carry relationship between index value $VIX_t$ and futures settle price $F_{t,T}$. Maybe this is only due to what I mentioned before, that you cannot trade the index.. – Gabriele Pompa Feb 19 '15 at 9:24
• I would put it a bit differently. CBOE VIX still represents implied (not realized) vol as it is derived from option prices. I think if you can put it like: buy amount $X$ of option 1, buy amount $Y$ of option 2 then you have a portolio and you can use cost-of-carry. But as VIX equals square-root of something you can not buy it. It just does not exist in the market. You can neither buy VIX spot (because VIX is not an asset ....) and you can not buy sqare-root of the portfolio. For cost-of-carry you have to be able to buy spot. – Richard Feb 19 '15 at 10:31
• I agree (but replication of future realized volatility via option prices, or replication of implied volatility sound more or less the same to me). You can statically delta-hedge a variance-swap ($\sim VIX^2$). The hedge would be in principle perfect if you can buy options at any strike. But, you cannot replicate statically the payoff of the square-root with vanilla (volatility swap, $\sim VIX$). You may in principle dynamically rebalance your position in the VIX replicating portfolio, but liquidity off course would be an issue. At the end of the day, there is market for VIX derivatives only. – Gabriele Pompa Feb 19 '15 at 11:29
Sorry, I should have though more before posting this question. By the way, the payoff of a call option on VIX index, priced at time $t$, with maturity at time $T$, is $$(VIX_{T} - K)^+$$ and since the time $t$ strike of a VIX futures with same maturity $T$ is $$F_{t,T} = E^{Q}[VIX_T \big| \mathcal{F}_t]$$ we have that $$VIX_{T} \equiv F_{T,T}$$ i.e. the VIX quotation at the maturity $T$ of the option, which is the only relevant for pricing it, is the same as the strike $F_{T,T}$ of a futures on VIX at the same time. Therefore Black model for pricing futures options applies and you may evaluate the implied volatility $\hat{\sigma}$ solving $$C^{Black-76}\Big(F_{t,T},T-t,r,K,\hat{\sigma}\Big) = C^{MARKET}_{t}(K,T)$$ In matlab you may use blkimpv.