# Put call parity with real time tick data

I am working with some real time options tick data (mainly futures options and index options), and in many cases the quotes are single sided (as seen on bloomberg terminal). I will denote a quote as BID_PRICE/ASK_PRICE.

For instance, if a call with strike K does not have a quoted ask price like 100/, what I am currently trying to do is, via put-call parity, estimate the call ask price with the ask of an equivalent put (assuming the put quote is double sided) of the same strike K. Something like:

$$C_{unknown\space ask} = S_{0}+P_{known\space ask}-Ke^{-rT}$$

The same applies for a missing bid as well.

My questions are:

1. I am aware that this is an extremely crude pricing methodology to 'value' an option. Does the above workflow make sense and if not, are there better ways to estimate the bid/ask of an option quote in the event of a single sided book? How is this usually handled in practice? Any advice for the current workflow will also be much appreciated. The choice of put-call parity was of its ease of understanding/implementation and it is computationally cheap.

2. Which risk-free rate $$r$$ do I use? I've heard people say LIBOR, US treasury yields, OIS etc. From a practical perspective, which bloomberg name can I use to stream real time values of the rate?

3. Continuing on the topic of rates, would I need to perform some sort of a linear interpolation to 'match' the option tenor? For instance, if an option has 45 DTE, and lets say I am using US treasury yields. Would I need to get the 1m and 2m treasuries, linearly interpolate between them and back out a rate corresponding to 45 DTE?

• These options are American style. So Put-Call parity does not hold. Usually no one uses treasury, BBG uses Libor for IVOL calc. However, new standard is RFR (SOFR in the US). You cannot get SOFR curves in API without an additional license with BBG. It would be =BCURVE("S203") with the ICVS number for SOFR - but it will throw an error unless your firm has a special license with BBG. Also, tick data can be very noisy and usually for IVOL you would filter the date, and de-americanize before computing a vol surface. What is the use case for this exercise? Mar 24 at 8:32
• I am mainly working with CME futures options which according to their specs are mostly European contracts (cmegroup.com/education/courses/introduction-to-options/…). What do you advise to use as a reasonable proxy for the risk-free rate? I was just looking at bloomberg for SOFR and found a few results like SOFR1M Index, SOFR3M Index, SOFRRATE Index etc, do you think I can use these? Also, do you think my explanation in 3) is correct, if not, why? Mar 24 at 11:58
• It really depends what you look at. All quarterly EMINI are American cmegroup.com/markets/equities/sp/…. I think it is best to use the SOFR ICVS curve, which you can get a value for any tenor you wish. Technically, you can load any listed option on OVME (load option, and run OVME), to see what rate is used and what IVOL is for this contract (you can select the interest rate in OVME settings - although treasury curves cannot be selected). Mar 24 at 12:39
• Since the underlying is a future, assuming you would have a european option, Put-Call parity will involve the future (forward), not spot price $S_0$. cmegroup.com/education/courses/introduction-to-options/… Mar 24 at 12:41
• I am not at work this week. You can ask the help desk (F1 F1) for question like this. The screenshot you show is the general Swap curve settings, which is not affecting what curve you use in OVME. There must be a different setting (may be OPDF or so). Mar 24 at 15:00