All indicators

Options Levels

Scores session, swing, gap, round-number and VWAP levels into clusters and keeps one support and one resistance reaction zone, tracking how price behaves at each.

BTCUSD1h
Fixed data to Oct 6, 2026, UTC
Loading the chart

Note. A timezone that OpenScript does not recognise, such as an abbreviation like EST or a misspelt name, stops the study with an unknown-timezone error instead of falling back to another zone, because this version of OpenScript cannot test a zone name before using it.

Options Levels gathers the reference prices intraday traders watch and turns them into two zones. The candidates are the previous day's high, low and close, the previous week's high and low, the premarket high and low, the finished opening range, the regular-session open, an unfilled opening gap, the session VWAP and, when switched on, its first deviation bands, an optional anchored VWAP from an event you name, optional ATR projections from the session open and the previous close, the nearest round numbers, and confirmed swing pivots. Every level farther from the close than the set number of daily ATRs is dropped.

Each remaining level gets a score from 0 to 100. The score blends a base weight for its kind of level (a swing pivot weighs more when the swing was larger), how recent it is, and, for most kinds, what happened on the earlier bars that touched it: how many touches there were, how far price moved away in the favourable direction compared with the adverse one, how many closes held on the right side, how large the move was in daily ATR, and how heavy volume was against its 20-bar average. The daily ATR is the average true range of finished calendar days in the session timezone, so it is known from the first bar of each day without reading ahead. Until enough finished days exist, the ATR of the chart's own bars stands in.

Levels sorted by price are merged into clusters when they sit within the cluster tolerance. A cluster's width comes from the weighted spread of its members, held between a minimum and a maximum half-width, and its strength rises with the scores of its members and with how many different kinds of level agree. The most actionable strong cluster below the close becomes the support zone and the one above becomes the resistance zone. A zone is replaced only when a clearly better cluster appears, it is dropped when it breaks or when the rebuilt clusters stop matching it, and its state moves through approaching, inside, rejecting, accepting, broken and flipped as the bars arrive.

How to read Options Levels

The two boxes on the right of the chart are the active zones: teal for support below price and red for resistance above it, each labelled with its state. A thinner shaded band at the outer edge of a zone, marked BUY or SELL, appears when the zone's actionability reaches the edge setting. A zone turns gray on the bar it breaks and is dropped on the next bar, and a broken zone that price retests from the other side within the flip watch can come back as a flipped zone of the opposite kind. The amber box marks the opening-range window, and the purple line is the regular-session VWAP.

Read a zone as an area where earlier reactions suggest price may pause or turn, not as a promise that it will. Rejection means the bar entered the zone and closed clearly away from it, acceptance means closes are holding inside or through it, and a break needs either a close well beyond it or the set number of closes in a row beyond it. The zones are built from intraday sessions, so on a daily chart, or on an instrument whose hours do not match the session settings, the levels say much less. The dashboard repeats the zone prices, the nearest zone's state and the daily ATR.

Settings

Session timezone
The IANA zone the session windows, calendar days and weeks are read in, written as a full Area/Location name such as America/New_York, or UTC.
Regular session
The regular-session window as HHMM-HHMM; its first bar resets the VWAP, the session open and the opening range.
Premarket session
The premarket window as HHMM-HHMM; its high and low become candidate levels.
Monday-Friday only
Count only Monday to Friday as session days; switch it off for an instrument that also trades at the weekend.
Opening-range minutes
How long the opening range keeps forming after the regular-session open before it is finished.
Display mode
Reaction Zones shows the zones only, Zones + Key References adds the reference lines, and Legacy / Debug also adds the gap lines, the EMAs when switched on, the event VWAP and scoring rows.
Show zone text
Write the side and state inside each zone box and BUY or SELL on the edge boxes.
Show compact dashboard
Show the table with the zone prices, the nearest zone's state and the daily ATR.
Zone history bars
The most bars back a zone box starts, even when its zone was chosen earlier.
Zone projection bars
How many bars to the right of the newest bar the zone boxes extend.
Show buy / sell edge zones
Draw the thinner BUY band at the bottom of the support zone and SELL band at the top of the resistance zone.
Edge zone minimum actionability
The actionability a zone needs before its edge band is drawn.
Edge zone height (% of parent zone)
The edge band's height as a fraction of its zone's height.
Highlight opening-range window
Draw a box over the latest opening range from its first bar to the bar it finished.
Confirmed daily ATR length
Number of finished days in the daily ATR that scales every distance and width.
Maximum candidate distance (daily ATR)
Levels farther than this many daily ATRs from the close are not considered.
Cluster tolerance (daily ATR)
Levels closer than this fraction of the daily ATR are merged into one cluster.
Minimum cluster tolerance (ticks)
The smallest cluster tolerance, in price ticks.
Minimum cluster tolerance (% as decimal)
The smallest cluster tolerance as a fraction of the close.
Minimum zone half-width (daily ATR)
The narrowest a zone can be on each side of its centre, in daily ATR.
Maximum zone half-width (daily ATR)
The widest a zone can be on each side of its centre, in daily ATR.
Minimum zone half-width (ticks)
The narrowest half-width in price ticks, used when it is wider than the ATR minimum.
Cluster dispersion multiplier
Multiplies the weighted spread of a cluster's levels to set its zone half-width.
Distance decay
How quickly a cluster's actionability falls as it sits farther from the close.
Zone switch margin
How many points stronger or more actionable a new cluster must be to replace the current zone.
Minimum zone strength
Clusters weaker than this are never chosen as a zone.
Cluster refresh bars
Rebuild the clusters every this many bars, besides the rebuilds that sessions, pivots and breaks trigger.
Approaching distance (daily ATR)
A zone this close to the close, in daily ATR, is marked approaching.
Rejection displacement (daily ATR)
How far beyond a zone the close must land, after touching it, to count as a rejection.
Break displacement (daily ATR)
A close this far through a zone breaks it at once.
Closes beyond zone for break
Consecutive closes beyond a zone that also break it.
Closes in / through zone for acceptance
Consecutive closes inside a zone before it is marked accepting.
Event-state hold bars
How long a rejecting, accepting or flipped state is kept once price has left the zone.
Broken-zone flip watch (minutes)
How long a broken zone is watched for a retest from the other side.
Flip retest tolerance (daily ATR)
How close to a broken zone price must come to count as a retest.
Previous day / close
Use the previous session's high, low and close as candidate levels.
Previous week
Use the previous week's regular-session high and low as candidate levels.
Premarket high / low
Use today's premarket high and low as candidate levels.
Finalized opening range
Use the high and low of the finished opening range as candidate levels.
RTH open
Use the regular-session open as a candidate level.
Confirmed swing pivots
Use confirmed swing highs and lows as candidate levels.
Pivot left bars
Bars on the left a swing high or low must stand above or below.
Pivot right bars
Bars on the right needed to confirm a swing, which is also how late it is known.
Maximum pivot records
How many swing levels are kept; the oldest goes first.
Pivot maximum age (bars)
Swing levels older than this many bars are dropped.
Pivot recency decay (bars)
Sets how fast a level's recency score fades with the age of its swing or last touch.
Adaptive round numbers
Use the round numbers just below and above the close, with a step that grows with price.
ATR projections
Add levels half and one daily ATR from the session open, and one daily ATR from the previous close.
Gap structure
Track an opening gap and use its midpoint and unfilled edge as candidate levels until it fills.
Minimum gap (daily ATR)
The smallest gap from the previous close to the open that counts, in daily ATR.
RTH VWAP as candidate
Use the regular-session VWAP as a candidate level during the session.
VWAP bands as candidates
Also use the first VWAP deviation bands as candidate levels.
Reaction lookback bars
How many bars back the touches of a level are searched.
Reaction observation bars
How many bars after a touch are measured to score the reaction.
Touch cooldown bars
Touches closer together than this count as one.
Maximum historical touches scored
The most recent touches of a level that are scored.
Touch tolerance (ticks)
The smallest distance, in ticks, at which a bar counts as touching a level.
Touch tolerance (daily ATR)
The touch distance as a fraction of the daily ATR, used when it is wider than the tick minimum.
Event AVWAP anchor
How the event VWAP is anchored: the automatic mode has no event calendar and never anchors, Manual timestamp anchors at the time you enter, and Disabled turns it off.
Manual event timestamp
The event time as YYYY-MM-DD or YYYY-MM-DD HH:MM in the session timezone; outside the session it anchors at the next open.
Maximum event age (days)
The event VWAP stops counting as a level after this many days.
Minimum bars before AVWAP contributes
Bars the event VWAP must cover before it becomes a candidate level.
Maximum AVWAP distance (daily ATR)
The event VWAP is used only while it is within this many daily ATRs of the close.
Show regular-session VWAP
Plot the VWAP of the regular session during session hours.
VWAP source
The price averaged by the session VWAP and its bands.
Show +/-1 stdev band
Plot the first pair of volume-weighted deviation bands around the VWAP.
Show +/-2 stdev band
Plot the second pair of volume-weighted deviation bands around the VWAP.
Band 1 multiplier
Volume-weighted standard deviations from the VWAP to the first band.
Band 2 multiplier
Volume-weighted standard deviations from the VWAP to the second band.
Show 9 / 21 EMA in Legacy / Debug
Plot the 9 and 21 bar exponential averages of the close when the display mode is Legacy / Debug.
Enable transition alerts
Raise alerts when price enters, rejects, accepts or breaks a zone, when a zone flips, and when a stronger zone is chosen.
Show research values in the dashboard
Add the zone prices, strengths, actionability, nearest state and gap levels as extra dashboard rows.

Frequently asked questions

Why do I only see the VWAP line and a few boxes?

The default display mode, Reaction Zones, draws the two zones, their edge bands and the opening-range box. Switch the display mode to Zones + Key References to plot the previous day, week, premarket, opening range and session open lines as well.

What is the difference between strength and actionability?

Strength rates the cluster itself from the scores and variety of its levels. Actionability is that strength discounted by how far the zone sits from the close, so a strong zone a long way off can rank below a slightly weaker one next to price.

Which session times should I use?

Set the timezone and the regular and premarket windows to the hours of the instrument you trade, for example Asia/Kolkata with a 0915-1530 regular session for Indian equities. The previous day, opening range, gap and session VWAP all follow these windows.

Does the automatic event anchor do anything?

No. There is no event calendar to read, so the automatic mode never anchors. Choose Manual timestamp and enter a date and time to anchor the event VWAP yourself.

Write your own in OpenScript

Every study here is plain OpenScript. Change a setting, combine two, or turn one into a strategy, then backtest it in /trading and run it in sandbox trading (analyzer mode in OpenAlgo) before going further.