Project · 2025

GEX Options Framework

Dealer hedging is not an opinion. It is an obligation, executed mechanically and in size, and it decides whether a market pins, trends or whipsaws. This workbench turns that one observation into a full intraday process: read the exposure, classify the regime, score the confluence, price the option honestly, and size the position before the setup ever tempts you.

Role Sole designer and builder Stack Vanilla JS, SVG, one HTML file Method Black-Scholes with a calibrated smile

01 Overview

Trade the structure, not the story

Most intraday options material starts with a pattern and works backward to a reason. I wanted the opposite. Gamma exposure describes what market makers are obliged to do with their hedges as price moves, and that obligation is the closest thing to a mechanical force the session has. When aggregate gamma is positive, hedging leans against price, walls hold and volatility compresses. When it is negative, hedging chases price, walls break and ranges widen. Everything in this framework hangs off that single distinction.

So the tool is built as a process rather than a screener. Five linked tools take a morning exposure read and carry it through to a sized, specified trade: the regime classifier says which of four strategies the day actually supports, the confluence scorecard says whether the evidence is strong enough to act at all, the volatility surface says what the option really costs once skew is honoured, charm says when in the session the mechanical pressure sits, and the sizing tool says how much of the account may be exposed to it.

It is deliberately a workbench and not a signal service. You supply the exposure readings from your own data provider, and every number on every screen is reproducible from the inputs above it. Nothing is fetched, nothing is hidden, and nothing tells you what to buy.

A low confluence score is not a reason to trade smaller. It is a reason not to trade.

02 What it does

Five tools, one chain of reasoning

From the exposure read to the contract, with the arithmetic shown at every step.

Regime classification

Enter total gamma exposure, the zero-gamma level, the direction gamma is trending and the delta lean of positioning. All four strategies come back scored for fitness against that state, each with a size multiplier and a full entry specification: trigger, delta band, days to expiry, stop and targets.

Confluence scorecard

Eight independent signals with explicit pass conditions, spanning gamma, delta and charm exposure, the volatility level, put skew, tail skew, term structure and where price sits in the gamma field. Six or more aligned supports full size, four or five supports reduced size, below four the correct action is to stand aside.

Position sizing first

Risk per trade, expectancy over 100 trades, the break-even hit rate your reward-to-risk implies, and a Monte Carlo risk of ruin over 20,000 sequences. It also converts risk into a premium budget, so the contract either fits the account or is not available at that size.

Charm and 0DTE timing

Delta decays through a session even when price does nothing. The charm view shows how your own position bleeds through the day, and where aggregate charm flow puts mechanical buying or selling pressure on the underlying, which is the difference between a good idea entered at 10:00 and the same idea entered at 13:00.

Volatility and skew

Options are priced with Black-Scholes on a calibrated volatility smile rather than a single flat number, so the strike, the premium, the break-even move and the delta shown are what the surface actually implies. Above a certain volatility level the honest answer is that short-dated out-of-the-money premium is not worth buying, and the tool says so.

Rules that do not bend

A daily loss limit, a hard premium stop, two positions at a time, no same-day positions through earnings or FOMC, flat before the close. The framework tab states them as constraints rather than suggestions, because the sessions that break accounts are exactly the ones where each rule feels wrong.

03 Under the hood

One file, no dependencies, no network

The whole thing is a single HTML document. No framework, no build step, no package manager, no third-party script, no analytics. Every chart is SVG drawn from the same numbers the tables read, so nothing on screen can drift out of agreement with anything else. It loads in one request and keeps working with the network switched off.

The pricing layer is Black-Scholes with a volatility smile calibrated from the level and skew you enter, so moneyness carries its own implied volatility instead of borrowing the at-the-money number. Greeks, break-even moves and premium estimates all come out of that same calibration. The sizing layer runs a Monte Carlo in the browser, 20,000 sequences of 200 trades at your parameters, and reports the share of paths that halve the account. It is a sensitivity check on the parameters you entered, not a forecast of anything.

Content and computation are kept apart on purpose. Every user-visible string in both languages lives in one content object, and the render and math layers hard-code none of it, which is why switching between English and French re-renders the entire application without losing a single input. Your inputs persist in the browser, and the theme and language follow the shared keys the rest of this site uses, so the app arrives in whatever mode you were already reading in.

Vanilla JS Black-Scholes Volatility smile Monte Carlo SVG charts Offline capable Bilingual UI

04 What it does not claim

Say where the evidence stops

Published gamma exposure is not an observed quantity. It rests on a sign convention that assumes customers are net long calls and net long puts, so dealers are short both. That assumption holds up reasonably well for index products and is often wrong for single names. The tool states this where you enter the number rather than burying it in a footnote, because a well-founded estimate of positioning and a measured fact deserve different amounts of confidence.

There is also no market data feed anywhere in this project, by design. The exposure readings come from whatever provider you already trust, and the framework's job is to reason about them consistently. That keeps the tool honest about its own scope: it can tell you that your parameters imply a break-even hit rate you are not clearing, and it cannot tell you what the market will do next.

The same discipline runs through the risk numbers. Expectancy is an output of your logged hit rate and reward-to-risk, not a target to be typed in. Risk of ruin is a Monte Carlo over your own parameters. Both get less flattering the more honest the inputs are, which is the point of putting sizing before setup selection instead of after it.

A rule you follow only when it is comfortable is not a rule, it is a preference.

Educational and decision-support tool only, not investment advice and not a recommendation to trade any security. No live market data, no tracking, no accounts. Option values are model estimates from Black-Scholes with a calibrated smile and will differ from traded prices. Options trading carries substantial risk of loss.

Read the exposure, then size the trade

Open the workbench, enter a morning exposure read, and follow it through regime, confluence, volatility and sizing.