thinkorswim · supply & demand

Trade the zones, not the noise.

TradingStrawAlert is a custom thinkScript study paired with a defined process for trading supply-and-demand zones with options. You mark the zones each morning; it only alerts when a setup actually confirms on structure and volume — so entries come from a checklist, not a hunch.

  • Confirmed zone alerts. Reject, bounce, and break signals that fire only with a directional candle, above-average volume, alignment to VWAP / open / 9EMA, and inside the live window.
  • Dual-scenario brackets. One band carrying two pre-armed plans (reject → puts vs break → calls), showing each side's reward-to-risk up front and locking to whichever triggers first.
  • True-ATR & Fib context. The day's range against the ticker's real daily ATR separates a weak target from a real one; a 50% fib ping flags where to take profit.
  • Exit & invalidation alerts. A 9EMA-close exit, plus reclaim / supply-lost flags that call your thesis dead the moment a broken zone is reclaimed.

Reference

Where to go next

three tabs, one workflow

New — the Triage tab is a pre-market sheet that ranks the morning's scenarios before the bell: HTF bias breaks the ties, counter-trend plays get demoted, and your top 1–2 land in one execution panel.

02

Read the chart

colors = the platform

Every line and label means the same thing here as on your screen. The top strip is the live readout; the bands are the zones; the lines are your references; the markers are the signals.

Supply Demand VWAP 9EMA Open 50% fib

Status strip, decoded — ZONE MODE (zones loaded) · HTF bias and how many of 5 MAs agree · VPA (approach fading/steady + pop/no-pop) · Align L/S (how many of open/VWAP/9EMA each side holds) · Next demand / supply and its distance · 1D ATR + Day range = % of 1D ATR + zone room ×1D ATR.

03

Know the signals

what fires, what it means

The study only fires when its gates are already met — the right zone interaction, a directional candle, above-average volume, alignment, the correct 9EMA side, and inside the live 5-minute window. The marker tells you the setup; you still apply the entry checklist on the Daily SOP.

MarkerFires whenMeans / action
▼ S-REJprice tags a supply, closes back below itsupply rejected → put toward the demand
▲ L-BNCprice tags a demand, closes back above itdemand held → call toward the supply
▲ L-BRKprice breaks & holds above a supplybreakout → call continuation up
▼ S-BRKprice breaks & holds below a demandbreakdown → put continuation down
◆ RETESTa broken edge is wicked & rejected / heldlower-risk re-entry in the break's direction
PUT / CALLa bracket band triggers its bear / bull branchthe pre-armed plan fired → take the named target
■ 50% FIBprice reaches your 50% fib leveltarget / exit zone — watch for the turn
▲ RECLAIMbroken demand reclaimed (full body back above)puts thesis dead — stand down / flip bias
▼ SUPPLY LOSTbroken supply lost (full body back below)calls thesis dead — stand down / flip bias
■ EXITa 5m candle closes back across the 9EMAtrend break → close the trade
Bracket vs radar — the radar (S-REJ / L-BNC / L-BRK / S-BRK) watches all your zones and re-fires as the day moves. The bracket is one band carrying two pre-armed plans that locks to whichever triggers first. Run the radar always; clip the bracket on only for a specific two-way band.

Playbook

Supply & demand zones

the level of interest behind every trade

A zone is a price band where institutional buying (demand) or selling (supply) showed up before. You mark them each morning from the higher timeframes; the study watches them and only speaks when price interacts with one a specific way.

The four interactions

▲ Demand test → bounce

Price taps a demand zone and holds above it. Bullish — calls toward the supply above.

▼ Supply test → reject

Price taps a supply zone and rejects below it. Bearish — puts toward the demand below.

▲ Break above supply

Price breaks and holds above a supply band. Bullish continuation — calls.

▼ Break below demand

Price breaks and holds below a demand band. Bearish continuation — puts.

Loading the zones

Punch each zone into a supply or demand slot as Top · Bottom · Timeframe (4H / 3H / 2H / 90m / 1H). Leave a slot at 0 to skip it. With at least one zone loaded, the study runs in ZONE MODE; with none, it drops to a generic 9EMA/VWAP fallback and the zone signals can't fire.

04

The ATR read

is this a real target — or has the day run out?

Zone-to-zone distance is not the ticker's true daily range. The Demand / Supply room = ×1D ATR label tells you which you're looking at:

Small fraction of 1D ATR (≈0.4×) → weak target, plenty of range left → expect it to break. Be ready to ride through or re-enter on the break; don't treat it as a hard ceiling.
Near or beyond 1× ATR → the day's range is spent → real target, take profit. This is why you bank a trade at the fib once the day has run its range.
"Anticipate" = bias + readiness, never front-running. You still pull the trigger on the volume-confirmed move. ATR is a tilt, not a ceiling — trend days run past it.

Companion

VPA Scanner

volume-price analysis, on every bar

A second study that reads effort vs result on each candle — volume against a trimmed baseline, spread against average range — and tags the bar. Shape = candle type · color = volume · position = strength vs weakness.

Zoneless — the scanner has no zone context. Its buy/sell signals are momentum / reversal confirmations, not full A+ setups. The real edge is when one fires at the same spot as a ZoneGuard zone — that confluence is the read.

01

Status row

reads the live bar, top-left of the chart

VPA tier HIGH (1.8x) Spread WIDE (1.9x) Candle HAMMER Read genuine up
VPA tier
bar volume ÷ trimmed 20-bar baseline — the effort. Color: gray low/avg · cyan high · magenta ultra.
Spread
candle range ÷ average range — the result. Green wide · orange narrow · gray normal.
Candle
the live bar's shape: hammer · shooting star · doji · up · down · flat.
Read
the verdict (effort vs result). Green bullish/genuine/climax · red bearish/topping · orange anomaly · gray neutral.

02

Markers on the candles

shape = the candle · color = the volume

▲ up-arrow below

hammer — strength (long lower wick).

▼ down-arrow above

shooting star — weakness (long upper wick).

● yellow dot

doji — indecision (tiny body).

■ green square

drive up — confirmed bullish move (effort = result).

■ red square

drive down — confirmed bearish move.

Arrow color = volume tier

gray = low / average cyan = HIGH (1.5–2.5x) magenta = ULTRA (2.5x+)

03

Bubbles

high-conviction events

BubbleMeans
STOP VOLselling climax — ultra vol closes off the low; bullish at lows
TOP VOLbuying climax — ultra vol rejected off the high; bearish at highs
ABSORBbig volume, tiny move — someone absorbing; trend stalling
NO DEMANDwide rally on low volume — no buyers; move likely fails
NO SUPPLYwide drop on low volume — no sellers; bullish into demand

04

Buy / sell alerts

VPA BUY CALLS / BUY PUTS — pick the sensitivity

The scanner fires its own directional alerts. A bullish reversal (selling climax / no-supply / high-vol hammer) followed by a confirming up-drive prints VPA BUY CALLS; the mirror prints VPA BUY PUTS. The mode controls what counts:

ReversalOrDrive
default. Fires on momentum breakdowns / breakouts and climax reversals — catches the most.
ClimaxThenConfirm
reversals only (exhaustion → roll over). Quietest, highest-context; misses clean breakdowns.
DriveOnly
pure momentum — any genuine wide + high-volume drive.
ClimaxOnly
fires right on the climax bar — earliest, noisiest.
Guards — 5min / 15min lock, regular-hours filter, candle-close confirmation (non-repainting), and a cooldown so it doesn't stack. Read it in three steps: shape → color → position. A magenta marker landing at one of your zones is the loudest confluence with a REV CALL.

05

The entry decision

signal ≠ permission

A marker is the trigger, not the trade. Run it through the mentor's checklist before you click — and let the 1D-ATR readout tell you whether the target is even worth taking.

HTF aligned — with the higher-timeframe trend.
Waited the 15 min — entering on roughly the 4th 5-minute candle.
Above-average volume on the trigger candle.
Direction filter — above open → calls · below open → puts.
Reward-to-risk to the next zone ≥ 3 : 1.
Take it → size to a 20% max option loss. Any box fails → skip or wait. The study handles the mechanical gates; this checklist is the discretionary layer you own.

06

Manage & exit

protect, then bank

Hold while price respects the 9EMA. Four things take you out — in priority order, top first.

1
Reclaim / Supply Lost? Thesis invalidated → exit.
2
Target reached? Next zone, or fib at ~100% ATR with volume fading → exit.
3
5m close back across the 9EMA? The EXIT alert → exit.
4
None tripped? HOLD — the 9EMA is still respected.
Hard floor — underneath everything, a 20% option loss closes the trade, no questions. The 9EMA close is the backstop; your discretionary reads (fib + ATR exhaustion + fading volume) often get you out cleaner and earlier.

Daily quick-reference

the one-screen version — tape it next to the monitor

Load

  1. Zones into supply/demand slots (Top · Bot · TF)
  2. Two-way band? set the bracket
  3. Want fib? set fibHigh / fibLow
  4. Confirm 5m · EXTO · study attached

Confirm before entry

  1. HTF aligned
  2. ~4th 5m candle (waited 15 min)
  3. Above-avg volume on the candle
  4. R:R ≥ 3:1 to next zone
  5. Room ×1D ATR — real target?

Exit (priority)

  1. Reclaim / Supply Lost → thesis dead
  2. Target zone, or fib ~100% ATR + fading vol
  3. 5m close back across 9EMA
  4. else HOLD

Never

  1. Same band in a slot AND the bracket
  2. Enter the first candle / front-run a break
  3. Hold past a 20% option loss
  4. Take a weak-ATR target as a hard stop

Pre-market · 07

Rank it before the bell.

Decisiveness is built before 9:30 — not in the chaos at the open. Drop in the morning's scenarios; HTF bias breaks the ties, counter-trend plays get demoted, the 1–2 trade cap holds you honest, and your committed picks land in one panel you trade from.

Session

Today's trades

0 / 2 committed

Reference · 06

The code, decoded.

The study in plain language — every alert, the logic behind it, and the action it implies. No thinkScript reading required. Think of it as the field manual for the engine that runs the rest of this site.

ZoneGuard / TradingStrawAlert · ~1,270 lines · 5-min execution
Supply Demand VWAP 9EMA Open 50% fib

01

The system

one engine, one equation

ZoneGuard watches the mechanical, chartable parts of the plan — your hand-drawn zones, the Trifecta (9EMA / VWAP / Open), higher-timeframe bias, and volume — and fires a buy-calls or buy-puts alert when a setup actually lines up. It doesn't place trades. It tells you the setup is here and what action it implies.

ZoneGuard

The alert engine — zone interactions, the REVERSAL CALL, brackets, exits.

VPA Scanner

A companion study that paints volume-price tags on every bar and fires its own VPA buy/sell signals.

The rule running through all of it: a level of interest (a zone) + stacked confirmations (Trifecta + structure + volume) = a trade. Every alert is a hardcoded version of that equation.

ZONE MODE vs fallback — load at least one zone and the study runs in ZONE MODE. Leave every zone at 0 and it drops to a generic 9EMA/VWAP fallback — the zone alerts and the REVERSAL CALL can't fire. If the status reads "fresh-cross fallback," you forgot to punch in a zone.

02

Vocabulary

the building blocks behind every signal

The Trifecta

9EMA (momentum), VWAP (fair value), OP (the session open, magenta dashed). Above all three = bullish posture; below all three = bearish.

Alignment · L/S

A 0–3 count of how many of the Trifecta price sits above (long) or below (short). 3/0 = above all three.

HTF bias

Higher-timeframe direction from SMA orientation (20/40/100) on the 1H/2H/4H. Shown as HTF: BULLISH (3 up / 2 dn).

VPA

Whether volume is fading into a level and whether it pops (expands) on the turn.

ATR room

Distance to the next zone in multiples of the daily ATR — your runway and R:R sanity check.

Quality · Q

A points tally (Q4, Q6…) grading how many confirmations stacked. Higher = cleaner.

03

The status strip

the live readout, decoded

The colored labels across the top of the chart are a live read of the current bar. Display only — they don't fire anything; they're your at-a-glance read of whether conditions favor a setup.

Reading it left to right — zones loaded · HTF bias and how many of 5 MAs agree · VPA (approach fading/steady + pop/no-pop) · which side of VWAP & 9EMA price sits · Align L/S (how many of open/VWAP/9EMA each side holds) · nearest zone and its distance · the day's true ATR, range used, and zone room in ATR multiples.

04

The alerts

what fires, what it means, what to do

Nine buy/sell entry alerts, plus management alerts. Every entry leads with the action — BUY CALLS or BUY PUTS — so it maps straight to your scenario cheat sheet, no translating long/short into calls/puts.

AlertFires whenMeans / action
▲ LONG BOUNCEprice tags a demand zone and closes back above itdemand held → buy calls toward the supply
▲ LONG BREAK UPprice breaks and holds above a supply zonebreakout → buy calls, continuation up
▼ SHORT REJECTprice tags a supply and closes back below itsupply rejected → buy puts toward the demand
▼ SHORT BREAK DNprice breaks and holds below a demand zonebreakdown → buy puts, continuation down
◆ LONG RETESTa broken supply now holds as supportold resistance → support → buy calls re-entry
◆ SHORT RETESTa broken demand now caps as resistanceold support → resistance → buy puts re-entry
★ REVERSAL CALLdemand test → Open reclaim & hold → volume popthe confirmed reversal → buy calls (see §05)
▣ BRACKET CALL / PUTa two-way band triggers its bull / bear branchthe pre-armed plan fired → take the named target
■ EXIT CALLS / PUTSa 5m candle closes back across the 9EMAtrend break → close the trade
▲ DEMAND RECLAIMEDa failed breakdown reclaims demandputs thesis dead — stand down / flip bias
▼ SUPPLY LOSTa failed breakout loses supplycalls thesis dead — stand down / flip bias
■ 50% FIBprice reaches your 50% fib leveltarget / exit zone — watch for the turn
Radar vs bracket — the radar (bounce / reject / break) watches all your zones and re-fires through the day. The bracket is one band carrying two pre-armed plans that locks to whichever side triggers first. Run the radar always; clip the bracket on only for a specific two-way band.

05

The REVERSAL CALL

a four-state machine — the flagship entry

Reverse-engineered from how the AMZN call was actually taken: wait for a candle above the Open, then let volume break above average. It runs as a state machine so the entry only fires when the full sequence completes — never on the first touch.

STATE 0
Idle

No demand-zone test yet. Nothing armed.

STATE 1
Armed

Price tested a demand zone. Waiting for the Open reclaim. Stays armed until the zone breaks or a new day.

STATE 2
Reclaimed & held

A candle closed back above the Open and is holding there. Waiting for the volume pop.

STATE 3
Fired

Volume popped above the approach average with full 3/3 alignment → BUY CALLS. Latches; won't re-fire until a fresh test re-arms it.

test reclaim Open hold volume pop + 3/3 fire once

On the chart

A gray "OP RECLAIMED — waiting for VPA pop" bubble marks the reclaim (off by default), then a cyan up-arrow + "REV CALL · vol Nx · OP reclaimed" marks the entry itself.

Two volume numbers, on purpose — the REVERSAL CALL's "vol 6x" compares the pop bar to the 6-bar approach; the VPA Scanner's tier compares to a 20-bar trimmed baseline. Same bar, two yardsticks — they won't match, and that's expected.

06

How volume is read

never raw — always relative

approachAvgVol
average volume of the prior 6 bars — the quiet run-in to a level.
vpaFade
approach volume is drying up — normal before a reversal, as one side exhausts.
vpaExpand
the current bar's volume pops above the approach average × multiplier — the turn.
vpaExpandLong / Short
a pop on a green / red candle — direction-tagged. The REVERSAL CALL keys off the long pop.

VPA only gates the REVERSAL CALL. In the other entries it feeds the quality score and the VPA tag, but doesn't block them.

07

Gates & exits

what must be true — and what takes you out

The filters before any entry

live window
5-min chart, regular hours, after the opening wait, before the close.
opening wait
no signals until waitMinutesAfterOpen past 9:30 ET (currently 5; the plan's rule is 10–15).
mandatory 9EMA
a hard gate — longs require a close above the 9EMA, shorts below.
alignment
price on the right side of enough Trifecta lines (the REVERSAL CALL demands the full 3/3).
HTF gate
off by default. When on, blocks longs while HTF is bearish and shorts while bullish.
confirmOnBarClose
off by default. When on, waits for the bar to fully close — no intrabar triggers.

The exit

An exit fires when a 5-min candle closes fully across the 9EMA against your position. The thesis-invalidation alerts (DEMAND RECLAIMED / SUPPLY LOST) tell you the reason for the trade is gone — often before the 9EMA exit trips.

Known divergence — the plan's exit rule is two full candle closes beyond the 9EMA; the code currently exits on one. That's the single spot where the study is stricter than the written procedure — flagged for a future fix.

08

Message Center control

only the trades, not the noise

Every thinkScript Alert() that fires posts to the Message Center and plays a sound. Chart bubbles don't — they're purely visual. The master switch entryAlertsOnly (default yes) keeps the center clean:

Posts to the center

The nine buy/sell entries — the BUY CALLS / BUY PUTS and bracket signals.

Silenced · chart-only

Exits, DEMAND RECLAIMED / SUPPLY LOST, bracket exits, and the 50% fib still draw their bubbles — no message, no ding.

Set entryAlertsOnly = no to send everything to the center again. Sound and message can't be separated in a study alert — silencing one silences both.

09

Inputs you'll touch

the knobs that matter day-to-day

demand/supply Top·Bot·TF
Enter your zones here. Top/bottom price + timeframe tag. Zero = no zone.
entryAlertsOnly
only buy/sell signals reach the Message Center (default yes).
enableReversalCall
master switch for the REVERSAL CALL.
revRequire3of3
require above 9EMA + VWAP + Open for the reversal.
requireHTFAlignment
turn HTF bias into a hard gate (off by default).
confirmOnBarClose
wait for candle close before firing (off by default).
waitMinutesAfterOpen
minutes after the open before signals arm (currently 5).
plotLookbackDays
limit bubbles/markers to the last N days (0 = show all). Visuals only — math & live alerts unaffected.
restrictSignalsToToday
today-only vs replay history (set no to backtest).

10

Mapping to the plan

where each checklist item lives in the code

Plan itemIn the code
The four pre-market scenariosthe four zone entries (break-up / reject / bounce + reversal / break-down)
Trifecta (9EMA / VWAP / Open)alignment count + mandatory-9EMA gate
HTF Bias Filterthe HTF label (gate optional via requireHTFAlignment)
Zone + 3 confirmationsthe REVERSAL CALL: zone + Trifecta + VPA + Open reclaim
"Wait for candle close"confirmOnBarClose (currently off)
No trading first 10–15 minwaitMinutesAfterOpen (currently 5)
Exit on 2 closes past 9EMAcurrently 1 close — flagged divergence

Left manual on purpose: the discipline checklist, journaling, news scan, watchlist curation, and the multi-timeframe charting workflow. Those are yours.

11

thinkScript gotchas

for when you edit it later

State is bar-to-bar

The state machine and every armed/fired latch use rec + the prior bar. No arrays exist in thinkScript.

Order is load-bearing

A def must appear before it's used — that's why the REVERSAL block sits at the bottom.

One future reference

Only the gray reclaim bubble looks forward (to sit left of the candle). It never affects an entry.

Balance every edit

One stray ( breaks the whole compile — paren/bracket counts get checked after every change.

Pipe, not parens

Alert text uses | separators — the parser chokes on literal parentheses and dashes.

HTF needs history

The 100-SMA on 1H needs ~15 days and daily ATR ~3 weeks — keep ~1 month of chart data loaded.

12

One-screen cheat sheet

tape it next to the monitor

▲ LONG BOUNCEbounce off demand → calls
▲ LONG BREAK UPbroke up through supply → calls
◆ LONG RETESTold supply holds as support → calls
★ REVERSAL CALLdemand test → OP reclaim → pop → calls
▼ SHORT REJECTrejected at supply → puts
▼ SHORT BREAK DNbroke down through demand → puts
◆ SHORT RETESTold demand caps as resistance → puts
▣ BRACKET CALL/PUTband break/rejection play → per side
■ EXIT CALLS/PUTScandle closed back across 9EMA → manage
▲ RECLAIM / LOSTthesis invalidated → stand down
■ 50% FIBhit the 50% level → target / trim
Q4 · Q6 …quality score — higher = cleaner stack

A zone + the Trifecta + a volume pop = a buy-calls or buy-puts alert.
Everything else is filtering, confirmation, and noise control.