Skip to content

OpenGEX

OpenGEX is an open-source cross-asset options positioning monitor for GEX, OI, DEX, VEX and CHEX. It is designed for local research and visualization, with source-aware snapshots, bounded analytics caching, stale-while-revalidate loading, and a Plotly-based monitor.

OpenGEX GEX monitor showing BTC gamma exposure, wall levels, spot and GEX POC

Actual OpenGEX monitor rendering — BTC GEX view.

Models

  • GEX — gamma exposure, displayed in USD / 1% move.
  • OI — open interest / normalized position units.
  • DEX — delta exposure, displayed in USD.
  • VEX — modeled long-option vanna exposure, displayed in USD / 1 vol pt.
  • CHEX — modeled long-option charm exposure, displayed in USD / calendar day.

The monitor also includes strike-level walls, POCs, filters, box zoom, legend visibility controls, asset watermarking, and data-quality indicators.

Visual tour

Vanna Exposure (VEX)

OpenGEX VEX monitor showing BTC vanna exposure, spot and VEX POC

Actual OpenGEX monitor rendering — BTC VEX view.

Charm Exposure (CHEX)

OpenGEX CHEX monitor showing BTC charm exposure, spot and CHEX POC

Actual OpenGEX monitor rendering — BTC CHEX view.

Assets and providers

Deribit provides crypto options such as BTC and ETH. Alpaca provides the US market assets configured in the registry, including QQQ, SPX, SPY, IWM, TLT, GLD, IBIT and direct equity underlyings. QQQ is the public display name for the internal NASDAQ/QQQ proxy mapping. Provider routing is source-aware and is not changed by the display label.

Architecture

The runtime flow is:

provider adapters -> normalized option rows -> shared source/asset snapshot
                   -> analytics cache -> FastAPI API -> Plotly monitor

The project uses Python 3.11+, FastAPI, NumPy, Plotly, Requests and Uvicorn. Market snapshots and credentials are intentionally not part of the repository.

Installation

python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
cp .env.example .env.local

Deribit public endpoints can be used without credentials. Alpaca-backed assets require the environment variables documented in .env.example.

Run

python run_monitor.py

The launcher prints the local URL and chooses the next available port when the preferred port is busy.

Development checks

PYTHONPATH=src pytest -q
ruff check .
mypy .
python - <<'PY'
from html.parser import HTMLParser
from pathlib import Path

HTMLParser().feed(Path("data/monitor.html").read_text())
print("HTML/JS validation: PASS")
PY

The test suite uses local sanitized fixtures and does not require API secrets.

Configuration

Copy .env.example to .env.local for optional Alpaca access. Never commit .env.local, provider keys, authorization headers, live snapshots, caches, or large market-data dumps.

Disclaimer

OpenGEX is research and visualization software, not investment advice or a trading recommendation. Exposure values are modeled analytics. Public open interest does not identify dealer positioning; labels such as VEX and CHEX describe the project's modeled long-option convention, not observed dealer exposure.

See CONTRIBUTING.md, SECURITY.md, and the Apache-2.0 license.

About

Open-source cross-asset options positioning monitor for GEX, OI, DEX, VEX and CHEX across crypto and U.S. options.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages