I am currently studying crypto options trading and have observed that there is often a lack of liquidity for options (such as BTC Options) on various exchanges, including Binance. In many cases, there are very few or almost no bid/ask prices available. This lack of liquidity makes it challenging to determine a fair price for these options. I would like to understand how such options are priced in these situations and gather information on valuable resources, materials, books, and research papers to delve deeper into this topic.

Up until now, I have utilized a method involving the computation of historical volatility over a 30/60-day period for the underlying asset. This historical volatility is then used as input in the Black-Scholes model to calculate the fair price of the option. However, I have realized that the volatility I have computed and the market's implied volatility (IV) often exhibit significant discrepancies. Consequently, I am in search of alternative methods.

I have also come across references to constructing a volatility surface as an approach to pricing such illiquid options. However, I am uncertain about the specific steps involved in implementing this volatility surface concept. Any insights or discussions regarding this topic would be greatly appreciated.

Thank you in advance for your assistance!


1 Answer 1


Warning upfront: I have NO experience with crypto currencies. I believe I do have a relatively decent experience with options in general though. What follows will be a generic explanation, largely copy pasted from existing stuff I wrote for other answers.

You should not use HV in option pricing. Especially not for something volatile and prone for large jumps. An equity example will demonstrate this nicely as well. Assume you look at AMC options, say AMC 8/18/23 C6.5. Below is a screenshot from the exchange, Bloomberg's OMON screen (a screen displaying option quotes, and some computed metrics like IV). As you can see, plugging IV, as computed by Bloomberg into Black Scholes Merton (BSM in the code), yields the correct price (it pays no dividends, and when I did this exercise yesterday, there were 9 extra hours left to expiry, which is why one needs to add these to be precise - that is $m = 9/24$ in the screenshot).

enter image description here

Now, if you look at HVT on Bloomberg, you can find historical vol, computed in the generic approach of annualizing standard deviation of log returns. I replicate this value. If you plug this into BSM, the option seems to be worthless. You can also see that IV as displayed on OMON (generic 3m ATM IV) is way above current HV, for all cases displayed on the screen.

enter image description here

How is this possible?

Some people interpret IV as a forward looking measure of standard deviation, just like the commonly used definition of historical / realized vol which is computed as the sample standard deviation of log return as shown here. However, one should be cautious when comparing IV to historical vol (HV) - also called realized volatility (RV) - because it is not necessarily useful for at least two reasons:

1 ) Empirically, IV tends to overestimate RV, commonly referred to as Volatility Risk Premium

2 ) IV is the only free parameter in the Black-Scholes-Merton (BSM) model. Higher IV can be a result of compensation for tail risk.

A simple explanation is that market participants tend to overestimate the likelihood of a significant market crash, which results in an increased demand for options as protection against an equity portfolio. This can be exploited, as for example demonstrated in Sullivan, R., Israelov, R., Ang, I., & Tummala, H. Understanding the Volatility Risk Premium. The authors show that the returns of an investor who sells the same 5% out-of-the money put option every month, delta hedges it and holds it to expiration generated 1.5% annualized returns with a Sharpe ratio of 0.68. Compared to the S&P Sharpe Ratio of 0.32 over the same observation period (1996-2016), this is an attractive strategy.

enter image description here

There is no general IV for an option. Quoting from Just What You Need To Know About Variance Swaps - JP Morgan Equity Derivatives

For each strike and maturity there is a different implied volatility which can be interpreted as the market’s expectation of future volatility between today and the maturity date in the scenario implied by the strike. For instance, out-of-the money puts are natural hedges against a market dislocation (such as caused by the 9/11 attacks on the World Trade Center) which entail a spike in volatility; the implied volatility of out-of-the money puts is thus higher than in-the-money puts.

What is IVOL?
IVOL is turning an option price into a comparable number (it’s also annualized). The theory to construct IVOL is based on the world of Black Scholes (its assumptions). Black Scholes implies normally distributed stock returns, whereas real (stock) returns are negatively skewed and have fatter tails because:

  • stocks (or other underlyings) tend to move down faster than they move up, so the left side has a fatter tail than the right side - known as skewness

  • extreme price movements in both directions (called outliers) are more common than the normal distribution suggests, so both tails are fatter than a normal distribution would suggest; known as kurtosis

The intuition is the same for all sorts of markets. However, FX is very helpful in getting an understanding of it. Ignoring all details, FX is quoted in IVOL, the quotes come as ATM DNS (delta neutral straddle), RR (Risk Reversals) and BF (Butterflies). In a nutshell,

  • ATM determines the level (you can think of it as the Black Scholes IVOL for a specific tenor),
  • RR the skew (how its tilted, towards OTM puts for RUB and GBP in the examples below) and
  • BF the kurtosis (how pronounced the general wings are).

enter image description here

Hence, the vol surface exists mainly because there are fat tails, skewness, heteroscedasticity, jumps (crashes), and so forth. None of these real-world phenomena are featured in the Black Scholes formula. The market just developed ways to account for many of the shortcomings of Black Scholes. Using the vol quotes from above, one can compute strikes (for simplicity I assumed delta premium excluded to avoid using root solvers), back out option prices, and compute risk neutral implied probabilities for the underlying. I use the method shown by Malz in the Fed Staff Report No. 677 on June 2014 A Simple and Reliable Way to Compute Option-Based Risk-Neutral Distributions. I modified it a bit because the strikes derived from delta quotes do not lie on a uniform grid (they do not have constant spacing), in which case a more general formula for weighting is needed. All computed prices are monotonically decreasing, showing that the results are free from vertical spread arbitrage opportunities.

That way, it is easy to show how the quotes indeed affect the implied return distribution of the underlying.

enter image description here

A few observations:

  • increasing ATM vol moves the vol surface up, and spreads out the RN probability distribution
  • increasing BF quotes moves the tails out significantly
  • a negative RR quote increases the left tail, a positive the right tail

Back to AMC, that is essentially the reason HV and IV are so different, and IV is shaped like this:

enter image description here

How would you go about building a vol surface? It depends how illiquid it really is. If you do have some liquid options, compute their IV and build a vol surface with commonly used techniques like SVI. How actual vol surfaces are computed is illustrated here.

Below is a quick SVI implementation in Python example:

spot = 1.34
forward = 1.35
t = 30 / 365.0
vols = np.array([ 12, 10, 9.5, 9, 10.5, 8, 10.24, 9.6, 11.2, 9.4, 11.9, 9.7, 20, 23,  27]) / 100
strikes = np.array([1.21, 1.3, 1.4, 1.3, 1.3, 1.32, 1.38, 1.3,
                    1.4, 1.3, 1.45, 1.25, 1.5 , 1.6,  1.8])
total_implied_variance = t * vols ** 2

def svi(k, param):
    a = param[0];
    b = param[1];
    m = param[2];
    rho = param[3];
    sigma = param[4];

    totalvariance = a + b * (rho * (k - m) + np.sqrt((k - m)** 2 + sigma**2));
    return totalvariance

def targetfunction(x):
    for i in range(11):
        model_total_implied_variance = svi(np.log(strikes[i] / forward), x);
        value =value+(total_implied_variance[i]  - model_total_implied_variance) ** 2;
    return value**0.5

bound = [(1e-5, max(total_implied_variance)),(1e-3, 0.99),(min(strikes), max(strikes)),(-0.99, 0.99),(1e-3, 0.99)]
result = optimize.minimize(targetfunction, bound, tol=1e-8, method="BFGS")

K = np.linspace(-0.4, 0.4, 60)

newVols = [np.sqrt(svi(logmoneyness, x)/t) for logmoneyness in K]
plt.plot(np.log(strikes / forward), vols, marker='o', linestyle='none', label='market')
plt.plot(K, newVols, label='SVI')
plt.title("vol curve")


enter image description here

You can use these IVs for any strike to get an idea what it should be worth roughly. I do believe BTC options should be the most liquid in the crypto space (may be wrong, as I literally have never looked at these).

That said, from a market maker perspective, if nobody really prices these, market makers will have considerable leeway in charging a markups and spreads will just be super wide. Unless there is more competition (demand and supply), there will be little you could do about this, meaning if you wanted to sell an option and think a fair IV should be something like 80%, the market will probably just give you something significantly less. If you on the other hand want to buy, it will be substantially higher than that.

  • 5
    $\begingroup$ That's a really in depth answer I really appreciate your efforts, it really cleared my understandings. $\endgroup$
    – Starlord22
    Commented Aug 11, 2023 at 11:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.