Are there any new methods on pulling expired options data?

Hello! I am currently utilizing an updated version of script functions posted below to obtain valid RIC codes for expired options data.
Since this method is much more costly compared to pulling active options from existing chain codes, do any new techniques exist for finding expired options RIC codes? I will appreciate any feedback on the matter.
Answers
-
Thank you for reaching out to us.
Did you check this Reconstructing RICs for expired futures contracts article?
0 -
Not initially. However, I attempted to modify the underlying script shown in your article to make it compatible with options queries, but found that the underlying procedure fails. Unlike expired futures RIC codes, which are accessible from a standard search Definition query, the expired options RIC codes are not.
Using the library written by one of your devs above, you can confirm this. Compare the results of
browser.execute("AAPL", filter = """RCSAssetCategoryLeaf eq 'Equity Cash Option' and ExpiryDate ge 2025-01-01 and ExpiryDate le 2026-01-01""")
against
browser.execute("AAPL", filter = """RCSAssetCategoryLeaf eq 'Equity Cash Option' and ExpiryDate ge 2024-01-01 and ExpiryDate le 2025-01-01""")
You will observe that the former procures results while the latter does not. Keep in mind that the library I reference uses similar underlying filter syntax, which you can observe in the _build_filter_criteria method from the FuturesRICs class shown in your attached article.
What are your thoughts?
0 -
I search an expired option RIC (NDXa172091900.U^A20) mentioned in the Finding Expired Options and Backtesting a Short Iron Condor Strategy article.
The search API returns nothing. It looks like that those RICs aren't in the search database.
0 -
Exactly, they are not in the search database. However, if you run
ld.get_history("NDXa172091900.U^A20")
there is information. So they are in your pricing database, but typical search functions do not apply. In my original question, I just wanted to know if any new efforts have been put towards more efficiently finding this sort of expired information. I wonder if there is some sort of underlying key that you keep under the hood which tracks these expired RIC codes.
0 -
I will contact the authors of that article to verify this.
0 -
Thank you, that will be greatly appreciated.
0 -
Hi @averyanderson ,
The challenge with expired options is that we are not storing them in Search and the options get deleted from Search after expiring. Whereas for futures we keep the expired data which helps to retrieve futures data in more streamlined way. We have actually a new library function to get futures RICs which will be very useful if you are interested in expired futures:
from lseg.data.discovery import Futures futures = Futures(universe="ES", start="2020-01-01", end="2025-12-31") data = futures.get_data() data
As much as I am aware of there is an ongoing work to simplify the access to expired options, but in the meantime you can construct them following the RICs logic and verify them with pricing data. However, the article you are mentioning in your question is indeed an expensive process and I would suggest looking into the one below:
Hope this helps and let me know if any further questions.
Best regards,
Haykaz
0 -
Thank you for the news on your expired futures function; that will come in useful for me later. Regarding the article you sent me, it can certainly be expanded to explore a larger range of possible strike prices like the original article. Nevertheless, within what period of time do you anticipate rolling out the new feature for accessing this expired options data?
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 685 Datastream
- 1.4K DSS
- 615 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 252 ETA
- 556 WebSocket API
- 38 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 652 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 193 TREP Infrastructure
- 228 TRKD
- 917 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 90 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛