VolCurve, VolSurface, ProbCurve, or ProbSurface. Choose the tab that matches your data source below.
- yfinance (built-in)
- CSV file
- DataFrame
The Download a single expiryDownload a multi-expiry surfacePass You cannot pass both
sources module wraps yfinance to download live options chains in one call. Use list_expiry_dates to browse available dates, then fetch_chain to download a chain or surface.List available expiry dateshorizon instead of expiries to fetch all listed expiries within the window:expiries and horizon — OIPD raises a ValueError if you do.Using the VendorSnapshotfetch_chain returns a (DataFrame, VendorSnapshot) tuple. The snapshot records the download context. Use its fields to populate MarketInputs:| Field | Type | Description |
|---|---|---|
.asof | datetime | Timestamp of the data pull |
.underlying_price | float | None | Underlying spot price at download time |
.vendor | str | Source vendor, e.g. "yfinance" |
fetch_chain caches network responses for 15 minutes by default. Pass cache_enabled=False or cache_ttl_minutes=5 to change the caching behavior.Standard columns
OIPD expects these target column names after anycolumn_mapping is applied:
| Column | Required | Description |
|---|---|---|
strike | Yes | Strike price |
last_price | Price column option | Last traded price |
bid | Price column option | Bid price; use with ask |
ask | Price column option | Ask price; use with bid |
expiry | Fit-ready data | Expiry date (YYYY-MM-DD or datetime) |
option_type | Fit-ready data | "C" / "P" after normalization |
volume | Recommended with last_price | Traded volume; used as a fitting weight when available |
last_trade_date | No | Quote timestamp used for staleness filtering |