Hi everyone,
I’m working on a research project involving and I need to extract historical option market data to train and validate my models. I’m using the LSEG Data API, and I’d appreciate guidance on the best way to retrieve the following data efficiently.
Required Data:
- Historical Option Prices
- Closing price (
CF_CLOSE
) - Bid-Ask Prices (to compute the mid-price and spread)
- Transaction price (if available)
- Expiration date (
EXPIR_DATE
) - Option type (
PUTCALLIND
) (Call/Put) - Strike price (
STRIKE_PRC
)
- Underlying Asset Prices
- Historical spot prices of the underlying asset
- Adjusted prices (if available, to account for corporate actions)
- Underlying asset identifier (
UNDERLYING
)
- Volatility Surface
- Historical implied volatility (
IMP_VOLT
) at different strikes & expirations - Volatility skew and smile (to model moneyness effects)
- Term structure of volatility (volatility data across multiple expiries)
- Risk-Free Rate & Discounting
- Historical yield curve data
- Risk-free rate for discounting (
r_{t_0}
)
- Time-to-Maturity Calculation
- Derived from
EXPIR_DATE
and historical reference dates
- (Optional) Market Liquidity Indicators
- Trading volume (to analyze liquidity effects)
- Open interest (if available, to measure market activity)
- I have used
ld.get_data()
to retrieve option chains, but I haven’t found how to access historical bid-ask spreads. - What is the best way to query historical volatility surfaces and ensure the data matches my option chain retrieval?
- Can I fetch the historical risk-free rate & yield curve directly from the API?
- Is there a more efficient way to retrieve and structure all this data for multiple assets at once?
- Would trading volume and open interest be available historically for deeper liquidity analysis?
Any insights, example queries, or documentation links would be greatly appreciated! Thanks in advance.
Best,
Konrad