Drag a widget by its title to move it, or by the corner to resize it (a cell at a time); the buttons on each widget do the same from the keyboard, and link it to a group or remove it. Each widget has buttons to move it, change its size, link it to a group, or remove it. Widgets in one link group follow the same symbol, expiry and strike: click a strike in any of them and the others follow. Changes are kept when you press Save.
Waiting for the core
Nothing has arrived yet. Start the core with --nats and a live feed (for example --tradier 60), with this Api pointed at the same NATS server (SAHANAI_NATS_URL). The widgets fill in by themselves when it does.
What the widgets show, and what data they need
- Exposure, heatmap, strike detail, levels, key figures come from the dealer map the core publishes about once a second. It is built from the options chain, with open interest from the prior day and our own greeks. No extra data provider is needed.
- Dealer positions (long and short calls and puts) are modelled, not observed. Neither the options feed nor the broker says who bought or sold, so each strike's open interest is shared out by an assumption you choose. Real positions would need trade-by-trade data with the side of each trade (an OPRA feed with quotes, such as Databento or Polygon), or the Cboe Open-Close data; even those give inferred positions. Prices and terms change: check them before buying.
- Expected close is worked out by the Api from those dealer maps every five minutes and every two minutes in the last hour, and kept with each day's actual close (it needs the database). It is an estimate from modelled positions, not a forecast; its table shows how far off it was against the plain price and max pain.
- Exposure figures are estimates. Paper trading only. Nothing here says a strategy makes money.