Skip to main content

OIPD: options-implied probability distribution

Python versions Open in Colab Discord Downloads

Overview

OIPD computes the probabilities of an asset's future price as implied by the options market.

It does this by taking listed options data, fitting an arbitrage-free implied volatility surface, and then transforming that fitted object into a probability distribution over future asset prices. In practice, that provides two core capabilities in one library:

  • Volatility modeling: fit single-expiry smiles and multi-expiry volatility surfaces, and compute greeks.
  • Probability extraction: compute market-implied probability distributions, and distribution statistics.

Read the docs · Use the web interface

Quick install

The standard install includes the built-in yfinance data connection.

pip install oipd

One quick example

Fetch GameStop options across the next twelve months, fit a VolSurface, derive a ProbSurface, and plot the fan chart.

import matplotlib.pyplot as plt

from oipd import MarketInputs, VolSurface, sources

ticker = "GME"
chain, snapshot = sources.fetch_chain(
    ticker,
    horizon="12m",  # fetch all listed expiries inside the next 12 months
)

market = MarketInputs(
    valuation_date=snapshot.asof,
    underlying_price=snapshot.underlying_price,
    risk_free_rate=0.04,
)

vol_surface = VolSurface().fit(chain, market)
surface = vol_surface.implied_distribution()

fig = surface.plot_fan()
plt.show()

GME ProbSurface fan plot generated by OIPD

surface.plot_fan() visualizes the market-implied price distribution across fitted option expiries.

You can also take one expiry from the surface and query it as a ProbCurve.

curve = surface.slice(surface.expiries[-1])  # take the last expiry

print(curve.prob_below(25))  # P(GME price < 25) at that expiry
print(curve.quantile(0.50))  # median implied price at that expiry

fig = curve.plot()
fig.axes[0].set_xlim(0, 100)
plt.show()

GME ProbCurve slice generated from a ProbSurface

A surface slice returns a ProbCurve, so you can inspect one expiry as a standalone probability distribution.

Example Notebooks

See more examples for demos.

Community

Pull requests welcome! Reach out on GitHub issues to discuss design choices.

Join the Discord community to share ideas, discuss strategies, and get support. Message me with your feature requests, and let me know how you use this.

Contributors

Thanks to everyone who has contributed code:

Contributors

And special thanks for support on theory, implementation, or advisory:

Metadata

Release files for oipd 2.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oipd 2.0.4
File Size Uploaded
oipd-2.0.4.tar.gz 282.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oipd 2.0.4
File Interpreter ABI Platform
oipd-2.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 503.3 kB

Release files / oipd-2.0.4.tar.gz

Download URL oipd-2.0.4.tar.gz
Size 282.2 kB
Tags Source
SHA-256 checksum
How to use checksums
0c822dd3a613bf5f4f03f4810367ca2084999b8c66d1bc0cdcf27dc7ba005b7d
BLAKE2b-256 checksum
How to use checksums
9c26ab027756be1200bdcc0548d625dec551f9646f07f98ffed7f33ee7a67373
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / oipd-2.0.4-py3-none-any.whl

Download URL oipd-2.0.4-py3-none-any.whl
Size 221.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a344afd3da0f76d31ae66b8b34310386f7380638de36bbc0bc5e422105768caa
BLAKE2b-256 checksum
How to use checksums
857281549fb9fa47f031732a7719fcdbdb30d552f50fe6041f22f9ff3c5eb317
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page