I'm calculating the volatility of an options market (description of market below) by fitting 2 functions: 1. fitting the on book call prices
2. fitting the on book put prices

And I'm getting a strange result: the volatility of each function is different i.e. the volatility for the calls isn't correlated to the volatility of the puts which in turn means the call and put (on the same strike) have different vega values. My question is, is this some kind of mistake on my part ?

  • Side note the mean of the functions do move together.

Market description: Index options market in a market that has no futures. the options series expires in 22 days.


2 Answers 2


By put-call parity, put and call must have the same vega : \begin{align} & c - p = PV\left(F_T - K\right) \\ \Rightarrow & \partial_\sigma c - \partial_\sigma p = \partial_\sigma PV\left(F_T - K\right) = 0 \\ \Rightarrow & \partial_\sigma c \equiv \partial_\sigma p \end{align}

  • $\begingroup$ Yeah what I am saying in the above is that the market data implies that the call - put pairty isn't true in this market. Since there is no future contracts in this market there are no arbitrage opportunity to make the call put pairty true $\endgroup$
    – BlackStar
    Commented May 5, 2020 at 10:47
  • $\begingroup$ LOL tell me the name of this market so I can make some money ;) $\endgroup$
    – nbbo2
    Commented May 5, 2020 at 12:17
  • 2
    $\begingroup$ Even if there is no futures, you could synthetically create one by trading the risk-free asset and the underlying. The put-call parity has to hold as long as you can trade the spot or instruments dependent on it (e.g., put-call parity also holds for LIBOR instruments, though you cannot trade LIBOR directly). $\endgroup$
    – siou0107
    Commented May 5, 2020 at 12:26
  • $\begingroup$ @siou0107 of course you can create a synthetic contract and buy the underlying but that is not true arbitrage, as you will need to hold the underlying as well as the synthetic until the second of expiration and in that second you need to be able to get rid of the position in the underlying at fair value which isn't at all assured. Therefore, unless i am missing something (which is all too possible :-)) the arbitrage is not assured and therefore will not make prices conform to the call-put parity. This is of course not the case with synthetic vs future contracts of the same expiration. $\endgroup$
    – BlackStar
    Commented May 6, 2020 at 9:44

Assuming the options are European (they should be since the underlying is an index) and assuming the prices you have are synchronous so that the whole exercise makes sense in the first place, then provided the forward you are using is that which the market implies you should find the same implied vols for calls and puts.

So you need to start by finding the implied forward which is $\frac{C_K- P_K}{df}+ K$ where $df$ is your discount factor to maturity.

Once you have this then by construction you will fit the prices of these two options with one vol.

Of course this process is noisy in practice, and if all you have are sparse bid offers you need to decide what points to retain (not all $K$ may point to the exact same forward), what constitutes a mid price for calls and puts etc. but the above should guide your thinking. You have probably decided on a forward before trying to fit the vols but that is inconsistent.


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.