In the process of asking this question, I acutally found the solution. I still let this post open if it can be interesting to someone else and have added a related question at the end.

I want to check if the interest rates that I assume for option pricing are consistent with the market-implied/assumed interest rates.

To do so, I assume that given "good enough" bid and ask prices for call and puts at different strikes $k_i$ for a fixed tenor $T$, I would expect to derive from the put-call parity a relatively horizontal line.

To be precise, I compute the following:

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

where $r_T$ is the assumed zero rate with continuous compounding for the period $[0, T]$. My expectation is that $r_T$ should be such that $F^{bid}(k_1,T) \approx F^{bid}(k_2, T)$ for different strikes $k_1, k_2$, same for $F^{ask}$.

Here I do not have any additional information about forward value, I just know that $F = S_0 \exp((r_T-b-\delta)T)$ where $\delta$ and $b$ are my dividend and borrowing rates. My goal is to extract $r_T$ and $b + \delta$.

Here is an example to illustrate based on S&P500 options. Here I assumed a swap zero rate curve to use in the put-call parity formula. I interpolated this curve using cubic splines.

In red is $F^{ask}$, in black $F^{bid}$ and in blue the average of the two.

enter image description here

Here seems to work great expect for spikes, they must be less liquid points?

enter image description here

Here a little less.

Increasing the rate seems to rotate the line clockwise and diminishing it counter-clockwise. This is expected because of the collar being linear. (Call - Put is a linear decreasing function of the strike with coefficient close to -1). Here is an illustration of the value of Put - Call for a fixed tenor:

collar = f(strike)

From this I can fit a linear regression and obtain slop $\hat{\beta}$. The put - call parity being constant accross strikes rewrites to:

$$\exp(r_T\cdot T)(\hat{\beta} k + \alpha) + k = cst,$$

which is satisfied for $r_T = -\frac{\ln(-\hat{\beta})}{T}.$

Resulting "horizontalized" forward:

enter image description here

Question: is this "risk-free" rate $r_T$ usually consistent accross the index, i.e. can I use the same rate for an single-stock equity option constituent of the index?


1 Answer 1


Some stocks in the index may be hard to borrow. If you do include the borrow fee rates, you may get a lower forward price (lower interest rate) than you expect from this calculation. By no arbitrage, the index rate will likely be close to the weighted average of its constituents.

To get pure equity option rate pricing, you may want to search the trading data for box spreads. They are synthetic bonds that have no net exposure to the underlying.

  • $\begingroup$ Thank you! Staying in the European option setup: why should the ease of borrowing have an impact on $r_T$ and not only on $b+\delta$ in the put call parity formula? I agree that borrowing rate $b$ and ultimately forward rate $r_T-b-\delta$ will be different for different stocks, however why should "risk-free" discounting change depending on ease of borrowing? In practice, since single equity options are American type, can I find box spreads? and in this case I guess that they are exposed to the underlying due to dividend payments? $\endgroup$
    – raptor22
    Sep 19, 2019 at 23:05
  • $\begingroup$ Perhaps my question is unclear, I edit now. $\endgroup$
    – raptor22
    Sep 19, 2019 at 23:06
  • $\begingroup$ @raptor22, you may be able to find box spreads in the SPX data. Look for cases when the 1000 and 2000 strike options traded around the same time. It's not that the risk free rate is different when there are borrow fees, it's that if you use F = S(1+(r-d)t) to estimate r, you implicitly are assuming the borrow fee is zero and you will get an incorrect estimate of the risk free rate. $\endgroup$ Sep 20, 2019 at 15:02
  • 3
    $\begingroup$ if there are no borrow fees, then put-call parity can be written as: $C-P + ke^{-rt} = S_0 e^{-qt}$, which we can rewrite as $(C-P)e^{rt} +k = S_0e^{(r-q)T}$. In this case the procedure gives us $r$ as there is no assumption made on the value of $F = S_0 e^{(r-q)t}$, the only assumption is that $F$ should be constant across strikes. Adding borrow cost, my intuition is that put-call parity can rewrite $(C-P)e^{rt} + k = S_0e^{(r-b-q)T}$ in which case it hsould hold, am I mistaken? $\endgroup$
    – raptor22
    Sep 20, 2019 at 18:39
  • $\begingroup$ @raptor22, that looks correct to me. $\endgroup$ Sep 20, 2019 at 18:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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