Skip to content
RyFinancePublic

About

Options data · chain · surface — a desktop options terminal for Mac: smile-fitted chains, vol board, strategy builder, paper book

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tenor: options data, chain, surface

Tenor

Options data · chain · surface. A desktop options terminal for Mac. Tenor downloads the option chains of 30 liquid US names, fits every expiry's volatility smile, and shows what is cheap or rich against it: ranked hourly while the market is open, frozen every Monday, and scored against a random baseline.

python3.12 -m venv .venv && .venv/bin/pip install -r requirements.txt
.venv/bin/python -m tenor refresh               # download and fit everything (~20 s)
.venv/bin/python -m tenor serve                 # http://127.0.0.1:8770
.venv/bin/python tools/make_app.py --install    # Tenor.app in ~/Applications

Pages

Monitor Market strip (index ETFs, VIX, 10-year), the two ranked boards (8–45 days, weeklies) live or as locked this week, implied vs realised scatter
Vol Volatility board: IV 30d, realised 21d, IV/RV, IV rank, realised percentile, term slope, skew, 25Δ risk reversal and fly, expected moves, put/call, earnings; term-structure matrix
Screener Every contract that passes the liquidity filters, with edge to the smile, filters and CSV
Long shots "Put $100 in, make $10k": the cheapest route to a target multiple with the market's own odds
Flow Call and put volume by name, the most active contracts, volume / open interest, premium
Overview Price with the implied ±1σ cone, the realised-vol cone against today's term structure, implied vs realised history
Chain Mirrored calls / puts with fair value, edge, greeks or activity; expected move, max pain, parity forward
Surface Smiles across expiries, strike × expiry heat map, skew table, Breeden–Litzenberger implied distribution
Builder Multi-leg strategies with presets, payoff at three dates, break-evens, probability of profit, net greeks, scenario grid
Book Paper positions marked at the delayed bid/ask with P&L and greeks; expired ones settle at intrinsic
Record Each Monday's locked list against 20 random contracts that passed the same filters

Keys: 1–0 pages, ← → or a two-finger swipe to move between them, / command bar (NVDA CHAIN), ⌘K palette (or pull down with two fingers), ? help.

Method

  • Forward per expiry from put-call parity on tight near-the-money pairs, so dividends and borrow are priced in.
  • Smile: a leave-one-out local quadratic fit of implied variance in log-moneyness through liquid out-of-the-money quotes. A quote never sets its own fair value.
  • Edge = Black-76 price at the smile's vol minus the ask, over the ask. Edges above 15% are flagged and never ranked.
  • Ranking: 70% cheapness to the smile, 30% implied below realised (21-day bipower variation), with liquidity filters and at most two picks per name.
  • Odds are risk-neutral and lognormal with each strike's own smile vol.
Part
tenor/ Engine: chains, surface fit, ranking, history, paper book, local server
web/ The terminal: js/core.js, ui.js, shell.js, math.js, charts.js, one module per page
tools/ Mac app wrapper, artwork, snap (headless page renderer for development)
docs/SPEC.md The data contract between engine and pages
tests/ python -m unittest discover -s tests and node --test tests/js/*.mjs

Free quotes, delayed about 15 minutes. Relative value, not a forecast. Not investment advice.

About

Options data · chain · surface — a desktop options terminal for Mac: smile-fitted chains, vol board, strategy builder, paper book

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages