Chart Indicators — OI Walls — Support, Resistance, Max Pain & Positioning
OI Walls — Support, Resistance, Max Pain & Positioning
Where option open interest is concentrated, and what today's flow is doing to it. Walls are read from the per-strike chain slice logged every minute during the session; adjacent heavy strikes merge into one wall, so a cluster spanning two or three strikes reads as the single level it is, and the walls are ranked by the cluster's total rather than by the single strike that seeded it. One a side is drawn by default, up to three. Each is labelled with the strike where price MEETS it and how far it runs -- 23,550 +50pt -- because a pair of edges makes the reader subtract to learn the one thing they want, and the near edge is the strike price reaches first: the bottom of a resistance cluster, the top of a support one. A faint band covers that span, so price entering a wall is visible without arithmetic; a wall sitting on one strike gets no band, which is how a bare line comes to mean a hard level. Line weight carries the wall's share of open interest and a dashed line means that share is being unwound. Share is measured against a fixed window of eight strikes either side of the money, so a percentage means the same thing from one day to the next and on both instruments. Three walls a side are always computed whatever is drawn, because the bias, the concentration and the what-sits-behind read all need the full set. A panel pinned bottom-right turns the same slice into a positioning read. Direction there is inferred from open interest against spot, never from the option premium -- a premium moves with spot, implied volatility and time decay at once, so a falling call premium cannot be attributed to selling. Heavy volume against flat open interest is contracts changing hands rather than positions being built, and no state is named in that case. Bias is stated only when both sides agree: both writing reads as a range, both unwinding as an exit, anything else stays silent rather than printing a direction every minute. Max pain comes from the same one-minute feed, not from the pre-market row. An optional OI profile draws every logged strike as a pair of bars anchored to the right edge -- the distribution the walls were cut from, so a peak just outside the selection is visible rather than hidden. Until today's first snapshot lands, the pre-market support/resistance pair stands in, drawn dotted and labelled so it cannot be mistaken for a wall, and the panel names the feed it is waiting on.
| Element | Source | Notes |
|---|---|---|
| Walls | Per-strike option-chain slice, 1-minute cadence | 1 a side by default, up to 3; adjacent heavy strikes clustered |
| Wall label | Where price meets the wall, and how far it runs | e.g. 23,550 +50pt; a single-strike wall shows the level alone |
| Wall band | The strikes the cluster actually covers | No band on a single-strike wall |
| Line weight | The wall's share of open interest within 8 strikes of the money | The primary each side is held bright and keeps its axis tag; the rest step back |
| Max pain | The 1-minute snapshot feed, computed over the whole chain | Maroon, dashed; off by default |
| Panel · Spot | Last price against max pain | The expiry pull, above or below |
| Panel · R and S | Each side's primary wall, its share, its peak strike and its read | Calls define resistance, puts define support |
| Panel · Bias | Share-weighted across every wall on a side | Weighted so a rank swap between two walls cannot flip it |
| Panel · Flow | Today's fresh open interest, calls against puts | The whole 8-strike window, not only the wall strikes |
| Panel · Momentum | How much of the day’s change at a wall happened in the last 15 minutes | Separates a wall being built now from one built hours ago |
| Panel · At wall | What sits behind the wall price is standing at | Shows concentration instead when price is not at a wall |
| OI profile | Every logged strike, calls and puts, as bars from the right edge | Off by default; the panel moves left while it is on |
| Pre-market fallback | Dashboard row support/resistance | Dotted and labelled; the panel says it is waiting on the chain feed |