Last updated: March 20, 2023

Simple exposure to pure implied volatility. This comes in the form of tradable futures on a volatility index – a common instrument in the traditional markets.

Deribit is making the next step towards this with the launch of BTCDVOL futures, based on the earlier introduced DVOL Index. This index uses the implied volatility smile of the relevant expiries to output one number that gives a gauge of the 30 day annualised implied volatility. ETHDVOL futures will be listed at a later stage.

What does the volatility index measure?

Whilst in traditional markets, the volatility index is known as a “fear gauge”, when looking at implied volatility in Bitcoin, we instead refer to this volatility index as an “action gauge” or a “fear and greed gauge”. Unlike the majority of traditional markets, where large moves are associated with descending levels, Bitcoin options often have positive skew for both calls and puts since large price shifts can be expected on the upside as well as the downside.

How to trade volatility?

The implied volatility of its options gives an indication of the expected movement of Bitcoin. Options are a necessary piece of information to calculate a volatility index. Nearly 9 out of 10 times that a Bitcoin option is traded in the world, it is traded on Deribit. This makes it essential that Deribit options are used to calculate a meaningful volatility index for Bitcoin. Trading options to trade volatility (by trading Vega) comes entangled with other components such as Delta (exposure to movement in the underlying) and Theta (exposure to time decay) amongst others. Volatility Index Futures are not only a very effective and simple method to trade volatility but also opens up new trading strategies like hedging volatility exposure from options, volatility mean reversion and momentum strategies.

How to interpret DVOL?

The DVOL is forward-looking volatility. What does the calculated value mean? It gives the 30 day (forward-looking) annualised expectation of volatility. To get a rough idea of the expected daily move in Bitcoin, just divide this value by 20. For example, DVOL = 90 gives an expected daily move of 4.5% (More precisely, you should divide DVOL by the square root of 365 to get an estimate of the expected daily move).

Methodology

The outline for the calculation of the Bitcoin Volatility Index is the following:

1. Select the 2 expiries, closest to 30 days out, on either side of the 30 days.
2. Calculate the option/instrument price using the market depth of bids and asks. If the bid-ask spread is too wide then fallback to using trade prices during the last minute and if that is not available then use the mark price from 1 min ago.
3. Calculate the option implied synthetic. If there is not enough info or bid-ask spread of the options is not tight enough to calculate this well, then use the mark price of the synthetic from 1 min ago.
4. Discard the ITM calls and puts and far OTM options with delta lower than 5% [Parameter: DeltaCutoff].
5. Use the variance swap methodology to calculate the variance for the near term and longer-term expiries. Interpolate between the 2 expiries and take the square root.
6. Filter noise and smooth out values calculated, resulting in the index calculation.

Crunching the numbers

Select Expiry1 to be the furthest expiry that has less than or equal to 30 days to expiry, which is also older than 1 hour since it was introduced. Select Expiry2 to be the closest expiry that has more than 30 days to expiry which is also older than 1 hour since it was introduced. We ignore expiries (and instruments) that are newly introduced, with time since introduction to be less than 1 hour [Parameter: IgnoreNewInstrument]. This is to allow the expiry/instruments to settle since bids and asks will be wider and hence may not reflect the true volatility initially. For each expiry, calculate the “Depth Bid” and “Depth Ask” of the options which is so that we take the depth and volumes into account. We define this in the following manner.

Note: All option prices used are BTC prices and not USD.

Instrument Price

The Instrument Price = Mid Depth Price = (Depth Ask + Depth Bid)/2, provided the spread between Depth Bid and Depth Ask is not wide and there exists a non-zero price for both. Next to that, in order to not have small orders impacting the DVOL, on both sides, only from the top level, a specific volume will be removed [Parameter: RemoveVolume]. This is currently set at 0.0.

Both are calculated as the VWAP until a cumulative size of at least 2 BTC [Parameter: DepthVolume] is reached. Use a total of 5 levels [Parameter: DepthLevels], including the first level with each level created 1 tick (0.0005 BTC) behind the previous level. If the total volume on those levels is less than 2 BTC, then 1 further level behind is created with the remaining volume to make it 2 BTC.

Depth Bid = (0.1×0.1505+0.0×0.1500+0.2×0.1495+0.0×0.1490+1.0×0.1485+0.7×0.1480)/2= 0.148525, a similar calculation for the ask side, gives Depth Ask = 0.1604

In this example the instrument price will be: 0.1544625.

Wide Spread

The spread is considered wide when Depth Ask – Depth Bid ≥ max(min(MaxSpreadBidRatio * DepthBid, MaxSpreadWidth), MinSpreadWidth) – see end of whitepaper for the default parameter values. If wide, then we use a fallback price as shown below.

The VWAP Trade Price is the volume-weighted average price on all trades that happened on that instrument in the last 1 minute. If there were no trades in the past 1 minute we use a past mark price. We look at the most recent past mark price that is the interval of [60sec ago, 90sec ago]. If for any reason, the past mark price is not available in the interval, then we fall back to the current mark price. If the Instrument Delta < 5% [Parameter: DeltaCutoff], we discard that book from further calculations. Why do we discard very low premium books? The granularity of information held in them with a high tick size relative to Vega means they can provide a distorted picture of the market depth in volatility space.

Forward Price Calculation

Next, we have to calculate the forward price (synthetic price) for each expiry. We do this using the option implied synthetic where there are at least 2 full strikes that have both the call and put using a Mid Depth price. We calculate abs(Call Mid Depth Price – Put Mid Depth Price) and select the StrikeMin = the strike with the lowest value.

If multiple strikes share the lowest value then we calculate the implied forward using each of those strikes and take the average. If there aren’t at least 2 strikes [Parameter: MinFullStrikesForMarketSyn] where both call and put are using the Mid Depth Price, then the forward equals the most recent past synthetic/future mark price in the interval [60s ago, 90s ago] for that expiry. And as an added safety, if there is no past synthetic price in that interval, then we use the current synthetic/future price for that expiry. For each expiry, we take the Strike Cutoff to be the strike equal to, or closest strike below the Forward for that expiry. We discard all calls whose strikes are less than the Expiry Strike Cutoff and puts whose strikes are greater than the Expiry Strike Cutoff. So there will be 2 instruments at the Strike Cutoff and a maximum of one instrument on the other strikes.

Calculating Variance

Looking at the filtered list of strikes which contain at least 1 non-discarded instrument, for each strike, calculate the StrikeWidth.

At the StrikeCutoff, the StrikePrice is the average of the InstrumentPrice of the call and put. Everywhere else, the StrikePrice is the InstrumentPrice of the non-discard instrument at that strike.

Using the strike contributions, we can then calculate the variance of the expiry. t represents the time in years to the maturity of that expiry.

Note that we effectively can get the volatility index of any expiry with:

We now do a time-weighted interpolation between the 2 selected expiries to calculate a raw value.

DVOL.Raw is calculated every second. In order to filter noise and smoothen the data, we take the exponential moving average (EMA) of the last 240 points [Parameter: EMAPeriod] to get the final value for the Volatility Index, DVOL.

The parameters stated in this whitepaper are examples and the defaults. However, these parameters are subject to change by Deribit. Parameter changes will be announced 48 hrs before implementation.

Parameter Value Description
IgnoreNewInstrument 1 hour Does not take any new instruments/expiries that are newer than this into account.
DepthVolume 2 BTC / 15 ETH Volume searched for in depth to determine and the price levels used.
DepthLevels 5 Number of levels after the first level is established.
DeltaCutoff 0.05 Options whose delta is lower than the DeltaCutoff are discarded.
RemoveVolume 0 The volume to remove from the top of the order book in the depth price calculation. It is set to 0 initially.
FallbackOptionDelay 60 sec Used for the lookback period for the VWAP Trade Price and also used when falling back to Past Mark Price which is the most recent price in the interval [FallBackOptionDelay seconds ago, FallBackOptionDelay + CaptureInterval seconds ago].
MinFullStrikesForMarketSyn 2 Number of full strikes needed with both call and put using Mid Depth Price for the market implied option synthetic to be used.
FallbackSyntheticDelay 60 sec When taking the past mark synthetic price, we look at the most recent mark price in the interval [FallBackOptionDelay seconds ago, FallBackOptionDelay + CaptureInterval seconds ago].
CaptureInterval 30 sec When taking the past mark synthetic price, we look at the most recent mark price in the interval [FallBackOptionDelay seconds ago, FallBackOptionDelay + CaptureInterval seconds ago].
MinSpreadWidth 0.0025 BTC/ETH An upper bound to compare the Depth Spread to. Spread is wide if Depth Ask – Depth Bid ≥ max( min(MaxSpreadBidRatio * DepthBid,MaxSpreadWidth), MinSpreadWidth).
MaxSpreadWidth 0.03 BTC/ETH An upper bound to compare the Depth Spread to. Spread is wide if Depth Ask – Depth Bid ≥ max( min(MaxSpreadBidRatio * DepthBid,MaxSpreadWidth), MinSpreadWidth).
MaxSpreadBidRatio 12% Multiplied by the DepthBid to compare the spread.
DataPointsForSmoothing 1 Takes the exponential moving average, looking back over this number of points.
EMAPeriod 240 Takes the exponential moving average, looking back over this number of points.

AUTHOR(S)

RECENT ARTICLES