In the context of BS implied volatility surface fitting.

In the literature, it seems that conditions for arbitrage are defined in a way that assumes that options can be traded at the same price for buying and selling (i.e. no bid-ask spread).

In reality, we are sure to buy a certain quantity at an ask and sure to sell another one at bid.

My intuition would be aligned to that of the put-call parity re-expressed to account for bid-ask spreads:

$$F^{ask}(T) := k + e^{r_T T}(C^{bid}(k,T) - P^{ask}(k,T)),$$ $$F^{bid}(T) := k + e^{r_T T}(C^{ask}(k,T) - P^{bid}(k,T)),$$

so to have two volatility surfaces, one built with call bids, put asks and forward ask and another one built with call asks, puts bids and forward bid.

Some arbitrages then depend on both surfaces (which I guess might be a complete nightmare to define and fit) and the arbitrage constraint and fitting would have to be done on both surfaces at the same time.

I am missing something here? How is it done in practice, I am thinking in particular about hedging where I guess that we cannot just ignore bid-ask spreads.


1 Answer 1


In general, you don't want to build one arbitrage-free bid surface and one arbitrage-free ask surface, since such surfaces would have no practical use. As you mention, any hedging will involve both bid and ask.

In practice, people often use the mid call/put prices to build a single arbitrage-free surface. This is what you fit against, and then you make sure that the resulting prices are within the bid-ask spread, either by using appropriate weights in your least-squares fit, or by adding an explicit constraint. How to construct an arbitrage-free surface is detailed in Model-Free Stochastic Collocation for an Arbitrage-Free Implied Volatility, Part II.

Now what should be exactly the arbitrage-free forward? This is a little bit what you seem to wonder. It is a good question, which does not have any exact answer. If you fit on the mid, you would use the mid at-the-money implied forward. Note that in practice your $F^{bid}$ and $F^{ask}$ will depend on the strike as well...

  • $\begingroup$ Thank you. Wouldn’t it be the case that if we are long in the call, then we can consider its market value to be the bid price (that is the value at which your are certain to sell). In such case I was thinking about using corresponding bid IV surface and ask forward rate for greeks calculations for long position and converse for short. $\endgroup$
    – raptor22
    Sep 25, 2019 at 16:11
  • $\begingroup$ For the forward rate, I am finding the rate $r$ that makes the forward look mostly constant over strikes, see quant.stackexchange.com/questions/48781/… . I then of course have some different forward rates for different strikes, I thus set the $F^{bid}(T) := \max_kF^{bid}$ and similarly minimum of ask forward for the ask, what do you think? I am trying to fit Gatheral’s SVI (which I still have trouble doing for short dated SPX). Do you sugest that paper because the method presented is industry standard? $\endgroup$
    – raptor22
    Sep 25, 2019 at 16:16
  • $\begingroup$ yes you may want to produce a bid and a ask surface from the arb-free surface, for example by adding a spread. But you those surfaces will not necessarily be arbitrage-free. $\endgroup$
    – jherek
    Sep 26, 2019 at 8:10
  • $\begingroup$ for the forward, I don't think it's a good idea to take the max. The most relevant forward is the most liquid one. For SVI, the 5 parameters do not always allow a good fit (examples in link.springer.com/article/10.1007/s10203-019-00238-x) $\endgroup$
    – jherek
    Sep 26, 2019 at 8:12
  • $\begingroup$ What I have finally done is to estimate $r$ and borrowing + dividend yield $b + q$ through regression on the collar mid prices. I then use the derived rates to compute the mid forward rate $F^{mid} := S_0e^{(r-b-q)T}$ that will be consistent with the parameters that I use in BS. $\endgroup$
    – raptor22
    Oct 3, 2019 at 10:53

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.