Hello, I am looking to get historical options data for QQQ Call and Puts for different strikes through the API, what's the best way to get it?
Hi @christopher02,
Expired options are not avaialable via RDP search. For the ones that are not expired you can use:
import refinitiv.data as rdrd.open_session()rd.discovery.search(view=rd.discovery.Views.DERIVATIVE_QUOTES,filter = "UnderlyingQuoteRIC eq 'QQQ.O' and CallPutOption eq 'Call' and DerivedCategory eq 'OPTION' and ExpiryDate lt 2023-11-05",select="RIC,ExpiryDate",top=100)
However, the expired options code can be pulled up using the following syntax and the reference from the quote RULES2 (pasted below)RIC Root + Strike Price + Month code + Year code + Exchange Identifier + ^ + Expiry Month + Expiry Year1. RIC root - QQQ2. Put Month (January) - M >> use RULES23. 21 - date of the expiry4. 22 - year of expiry 20225.338+00 - Strike price6. .U - exchange suffix ( opra)7 ^A22 - January and decade of 2022'
QQQM212233800.U^A22 > PUT - QQQ 100 @ 338 EXP 01/21/2022
Thank you for the note. I was able to retrieve the historical prices based on option tickers. But I am noticing that data is incomplete for certain option tickers. For Example in the screenshot below,
Option ticker QQQ_P_2023-03-17_253 the Close price is unavailable for 12/23/2022 and so are the expiry date option price on 3/17/2023
Option ticker QQQ_P_2020-11-27_255 has Close price of 5.89 for 10/30/2020 but expiry week prices are unavailable (Sell_Expiry,Sell_T1,Sell_T2)
Can you help me understand how best to interpret this and to retrieve full price data?
This is a content query and the best resource for this type of questions is the support team, which can be reached by submitting queries through MyRefinitv.