Risk, volume & sessions · Indicator guide

ZynIQ Premium/Discount Master

Premium, discount and equilibrium for a rolling range, the previous day, the session or the last swing leg.

LiteZynIQ Premium/Discount Master$39Buy Premium/Discount Master

ZynIQ Premium/Discount MasterReal chart
ZynIQ Premium/Discount Master running on a TradingView chart

Premium/Discount Master splits a price range in half: above the 50% equilibrium line is premium, below it is discount. You choose the range: a rolling number of bars, the previous day, the current session or the last swing leg. It also marks the 61.8% to 79% retracement bands (often called OTE) and tells you in the HUD where price sits in the range.

How it works

  1. The range. Pick an anchor:
    • Rolling N bars (default): the highest high and lowest low of the last N bars. N = 50 (Scalping), 100 (Intraday) or 200 (Swing), or your own with Custom.
    • Previous day: yesterday’s high and low, from the last closed daily candle (the exchange’s trading day; on CME futures the day starts at 18:00 New York). Drawn from the start of yesterday.
    • Current session: the high and low of the session you set (default 09:30-16:00 New York, the US cash session) so far; outside the session, the last one. Each day’s session starts a new range, also on regular-hours charts.
    • Last swing leg: between the latest confirmed swing high and swing low. A swing needs 5, 10 or 20 lower highs (higher lows) on each side by profile, so it is confirmed that many bars after it happened. If price trades beyond the leg before a new swing confirms, the range stretches to the new extreme.
    • Previous day and Current session need an intraday chart; on daily and higher charts the rolling range is used and the HUD says so.
  2. Validity. The range must be at least 2 x ATR(14) tall. If it is smaller (for example the first bars of a session), nothing is drawn and the HUD shows “hidden” and the reason.
  3. Zones. Equilibrium = the 50% level. Price at or above 55% of the range is Premium, at or below 45% is Discount, in between is Equilibrium (the 5% band is adjustable, 0 = none). Price outside a fixed range (previous day, finished session) shows as “Premium (above range)” or “Discount (below range)”.
  4. OTE bands. Two Fibonacci retracement bands of the range: 61.8% to 79% of the way up (inside premium) and 21% to 38.2% (inside discount, which is a 61.8% to 79% pullback measured from the high). The name comes from the ICT “optimal trade entry” idea. They are simply retracement levels of the chosen range: they do not predict a turn.
  5. Trend tint (optional). With price above the EMA (200 by default), the discount shading is stronger and premium fainter, because buying from discount agrees with that trend; below the EMA it is the other way round. It changes shading only.
  6. Alerts are decided on closed candles.

What you see on the chart

  • Grey outline: the range, from the bar where the anchor starts to just past the last candle.
  • Fuchsia shading: premium (upper half). Teal shading: discount (lower half). Green and red with the Classic theme.
  • Cyan dashed line: equilibrium (50%).
  • Darker bands with dotted borders marked “OTE”: the 61.8% to 79% bands, fuchsia in premium, teal in discount.
  • Price labels inside the box at its right edge: “Range high” (fuchsia), “EQ 50%” (cyan) and “Range low” (teal) with their prices. They sit just left of the box’s right end (which reaches 5 bars past the last candle by default), so the price scale does not cut them off.
  • Cyan line through history (off by default): where equilibrium was on each past bar.
  • Only the current range is drawn; it updates with every candle.
  • HUD (top right by default):
    • Premium/Discount: the anchor in use (“Rolling 100 bars”, “Previous day”, “Current session” or “Swing leg (10)”).
    • Range: low and high.
    • Range size: in price and in ATR.
    • Price in range: 0% = range low, 100% = range high.
    • Zone: Premium, Discount or Equilibrium, coloured.
    • OTE band: “in premium OTE”, “in discount OTE” or “no”.
    • Trend (EMA 200): only when the tint is on.
    • Note (amber): e.g. “Previous day needs an intraday chart: rolling used”. When the range is hidden, “Range: hidden” and “Why” (“not formed yet” or “smaller than 2 ATR”).
  • Data window: “Price in range (%)” for every bar.
  • Watermark: “ZynIQ Premium/Discount”, bottom right by default.

Settings

Group Setting Default What it does
Range anchor Anchor Rolling N bars Rolling N bars, Previous day, Current session or Last swing leg.
Range anchor Profile Intraday Scalping 50 bars / swings 5, Intraday 100 / 10, Swing 200 / 20, or Custom.
Range anchor Custom: rolling length (bars) 100 Rolling length when the profile is Custom.
Range anchor Custom: swing strength (bars each side) 10 Swing strength when the profile is Custom.
Range anchor Session (Current session anchor) 09:30-16:00 Session for the Current session anchor; overnight sessions work.
Range anchor Time zone America/New_York Time zone of the session. Options: America/New_York, America/Chicago, Europe/London, Europe/Berlin, Asia/Tokyo, Asia/Hong_Kong, Asia/Singapore, Australia/Sydney, UTC, Exchange (the symbol’s own).
Range anchor Minimum range (x ATR) 2.0 Smaller ranges are hidden.
Range anchor ATR length 14 ATR for the minimum range and HUD sizes.
Range anchor Equilibrium band (% of range each side) 5 Band around 50% that counts as Equilibrium.
Levels Shade premium and discount On Zone shading.
Levels Equilibrium (50%) line On The cyan midline.
Levels OTE bands (61.8% to 79%) On The two retracement bands.
Levels Level labels On Range high, EQ 50% and range low price labels, inside the box at its right edge.
Levels Equilibrium history line Off Plot of past equilibrium values.
Trend tint Trend tint (EMA) Off Stronger shading on the side that agrees with the EMA trend.
Trend tint Trend EMA length 200 EMA length for the tint.
Style Colour theme ZynIQ ZynIQ or Classic colours.
Style Extend right (bars) 5 How far the zones, lines and box reach past the last candle (the price labels sit at this right edge).
HUD and watermark Show HUD On Show the panel.
HUD and watermark HUD position Top right Top right, Top left, Bottom right, Bottom left, Middle right.
HUD and watermark HUD text size Small Tiny, Small or Normal.
HUD and watermark Show watermark On Faint product tag.
HUD and watermark Watermark position Bottom right Bottom right, Bottom left, Top right, Top left, Middle right (pick a different corner from the HUD).

Alerts

Create them with Once per bar close.

Alert Fires when
ZQ Premium/Discount: entered premium A candle closes in premium (55% or higher by default) after not being in premium.
ZQ Premium/Discount: entered discount A candle closes in discount (45% or lower by default) after not being in discount.
ZQ Premium/Discount: crossed equilibrium A candle closes on the other side of the 50% line.
ZQ Premium/Discount: entered an OTE band A candle closes inside either OTE band after closing outside it.

Any alert() function call sends one message per candle close with every event and the levels: the range low and high, the zone boundary, the equilibrium price or the OTE band prices. Alerts only fire while the range is valid on both that candle and the one before. Because the range itself moves (rolling and swing anchors) or resets (a new day or session), a zone can change because the range changed, not only because price moved.

Set it up for your market

Market Timeframes Profile Key settings Notes
Index futures (MNQ, NQ, MES, ES) 1m to 15m Intraday; Scalping on 1m Anchor Previous day or Current session (09:30-16:00 New York for the cash session); Rolling for scalping “Previous day” uses the CME trading day (18:00 to 17:00 New York) on an ETH chart, and the regular session on an RTH chart. Without real-time CME data TradingView shows futures delayed.
Stocks 5m to 1H; daily for swing Intraday; Swing on daily Current session 09:30-16:00 New York; Last swing leg on daily Extended-hours charts include pre- and post-market bars in rolling and previous-day ranges.
Forex 5m to 1H Intraday Previous day, or Current session with a London session such as 03:00-11:30 New York Previous day follows the broker’s day, usually 17:00 New York.
Crypto 15m to 4H Intraday or Swing Rolling or Last swing leg 24/7: Previous day uses the exchange’s UTC day.

How to use it

  1. Choose the range that matches how you trade: yesterday’s range for day trading, the session for intraday, the swing leg for structure traders.
  2. Look for longs from discount when the larger trend supports buying, and shorts from premium when it supports selling. The trend tint helps you see which side agrees with the EMA trend.
  3. Use the OTE bands as places to watch for a reaction, then wait for your own confirmation (structure, a rejection candle, volume).
  4. Equilibrium is a common magnet and a common decision point: watch how price behaves when it gets there.

Common mistakes: shorting every premium reading in a strong uptrend (price can stay in premium for a long time); using a tiny range on a low timeframe; treating OTE bands as guaranteed turning points. Pairs well with Session Master, VWAP Master, Market Structure Master and FVG Master.

Good to know

  • The rolling and current-session ranges update with every candle, including the live one; the zone alerts are decided only on closed candles.
  • Last swing leg is confirmed 5, 10 or 20 bars after the swing (by profile), so the range can jump when a new swing is confirmed.
  • Previous day uses the last closed daily candle, so it never repaints.
  • Only the current range is drawn (plus the optional equilibrium history line), so the indicator uses very few drawings.
  • The Current session anchor needs bars inside the session: a 09:30-16:00 session on a forex chart works, but a pre-market session on a regular-hours stock chart has no bars.
  • Previous day uses one TradingView data request. Your TradingView plan limits how many indicators you can run on one chart.

Version 3 changes

  • Fixed: the range was hidden whenever it was smaller than 0.25% of price, which happened all the time on MNQ 1 to 3 minute charts and on forex. The minimum is now 2 x ATR, so it scales with each market and timeframe.
  • Fixed: stale OTE lines stayed on the chart when the range became invalid, and the HUD still showed a zone when the range was “N/A”. Now everything (zones, lines, labels, bands) is hidden together and the HUD says why.
  • Fixed: the range border ignored the colour theme, and the OTE lines were white (invisible on light charts). All colours now follow the theme and read on dark and light backgrounds.
  • New: four anchors: Rolling N bars, Previous day, Current session (with session time and time zone) and Last swing leg.
  • New: an equilibrium band (45% to 55% by default) so the zone does not flip on every tick around the midpoint.
  • New: OTE bands drawn as shaded bands with honest documentation of what they are.
  • New: the EMA 200 trend tint is now an explained, optional setting (it was hidden HUD colouring in v2).
  • New: price labels for the range high, equilibrium and range low, inside the box at its right edge so the price scale does not cover them; an optional equilibrium history line.
  • New: alerts for entering premium, entering discount, crossing equilibrium and entering an OTE band (v2 had none).
  • New: Custom profile that unlocks the rolling length and swing strength.

ZynIQ Premium/Discount Master is $39, one payment: the Pine v6 source, on any TradingView plan. Or get all 22 indicators in the Complete Suite for $399.

Buy Premium/Discount Master

Related guides

  • ZynIQ Session Master: Asia, London and New York sessions in New York time, with ranges, midlines, previous-session levels and kill zones.
  • ZynIQ VWAP Master: Anchored VWAP with session, calendar, date and automatic anchors, SD bands and stretch alerts.
  • ZynIQ Volume Surge Lite: Volume pane that grades every bar against a time-of-day baseline, with exhaustion and breakout confirmation.

← Back to all docs