Futures Day Trading Key Levels by Dhawal Ranka
Hey everyone, thank you for using this script, let me know in the comments how you feel about it!
What this script does:
This indicator renders one consolidated map of intraday reference levels for futures (e.g., ES, NQ, GC, CL). It is session-aware and draws:
- Previous ETH day High/Low/Close
- Previous RTH High/Low/Close (built from your RTH session)
- Today’s developing RTH High/Low and Mid
- Overnight (ON) session High/Low
- Opening Range (first N minutes of RTH): OR High/Low
- VWAP (day-anchored) with optional ±σ bands
- Floor Pivots (PP/R1/S1/R2/S2) from prior ETH daily bar
- ADR projections (Up/Down) using a configurable lookback and anchor
- Settlement: prior official settlement and today’s projected settle (with manual override)
- Weekly/Monthly context: prior W/M High/Low/Close and current W/M Open
- Minimal right-edge text tags (instead of big boxes) that sit on the price scale line and auto-pack when levels coincide
All lines extend across the chart to make confluence obvious without clutter.
How it works (methods & calculations)
Sessions
The script exposes two user sessions and a time zone:
RTH (e.g., 09:30–16:00 America/New_York)
ON (e.g., 18:00–09:29 America/New_York)
Session membership is computed with time(timeframe, session, tz) != 0.
RTH H/L/C (prev) are aggregated intrabar: on RTH start we seed H/L; while inRTH we update; on RTH end we store the close.
Previous Day (ETH) levels
request.security(syminfo.tickerid, "D", high /low /close ) supplies PDH/PDL/PDC on the continuous ETH daily.
Opening Range
On RTH start we mark orStartTime.
While RTH is active and elapsed time < N minutes, we track the running high/low.
When elapsed ≥ N minutes, we freeze OR High/Low.
VWAP & ±σ bands (intraday)
Day-anchored VWAP uses ta.vwap(hlc3).
Bands: standard deviation of (close − vwap) from day start, accumulated inline:
stdev = sqrt( mean(dev^2) − mean(dev)^2 )
Bands = vwap ± k * stdev (user multiplier).
Floor Pivots (classic)
Using prior ETH daily H/L/C:
PP = (H + L + C) / 3
R1 = 2*PP − L, S1 = 2*PP − H
R2 = PP + (H − L), S2 = PP − (H − L).
ADR projections
Daily range series rng = request.security(..., "D", high - low).
ADR = SMA(rng, L) (default L=14).
Anchor is user-selectable: today’s open or yesterday’s close.
Projections: ADR Up = anchor + ADR/2, ADR Down = anchor − ADR/2.
Settlement
Prev Settle defaults to prior ETH daily close but can be overridden manually for markets where official settlement differs from feed close.
Today Projected Settle uses the current ETH daily close value.
Weekly / Monthly context
Prior W/M H/L/C from "W"/"M" with , plus current W/M Open.
Rendering & label logic (originality)
Lines are persistent: each named level owns one line object that is updated, not re-created—keeps resource use low and avoids “too many plots”.
Right-edge labels are text-only (no box) placed at x = bar_index + offset and yloc.price.
When multiple levels share (almost) the same price, labels are packed side-by-side using a small bucketing algorithm:
Prices are bucketed within ±½ tick.
Each label gets a position index inside its bucket; the final x-offset = baseOffset + index*step + priority.
Priorities nudge important tags (e.g., Settle/RTH levels) closer to the price scale so they remain readable.
Why this is published & what’s original
It’s not a simple mashup: the script’s utility is the session-aware aggregation, the OR timing logic, the intraday σ calculation around VWAP, the line-persistence manager, and the label packing with priorities that keeps the right edge readable even when many levels coincide.
The closed-source protection covers the packing/priority scheme and the persistent object management that make it practical on busy futures charts without hitting Pine limits.
How to use
Set your sessions & time zone
Choose RTH/ON session windows (the defaults match CME equity index futures) and the time zone of your charting workflow.
Toggle components
Enable only the layers you need (e.g., VWAP bands off if you want a cleaner chart).
Opening Range length (minutes) is adjustable.
Settlement
If your broker/feed’s daily close isn’t the official settlement, enter a manual settle value for the prior day.
Read the right edge
Labels sit on the price scale line. When two labels share the same price, they appear side-by-side rather than overlapping.
Timeframes & symbols
Designed for intraday futures on 1–30m. Works on other symbols/timeframes but intent is day trading.
Inputs (summary)
Sessions/TZ: RTH window, ON window, time zone
Today: RTH H/L/Mid, ON H/L, OR (minutes)
VWAP: on/off, ±σ bands, multiplier
Pivots: PP/R1/S1/R2/S2 (ETH)
ADR: lookback, anchor (open vs. prev close)
Settlement: show prev/proj, manual override
Weekly/Monthly: prior H/L/C + current open
Style: line transparency; right-edge tag size, base offset, and step; optional inline labels
Limitations & notes
“Prev Settle” equals the prior daily close unless overridden.
Session definitions matter: if your exchange hours differ, set your own RTH/ON windows.
No alerts are included to minimize plot count and keep performance high (you can add alert conditions on any level in a private copy).
Disclaimer
For educational purposes only; not financial advice. Futures trading involves significant risk.
Versioning
This script will be maintained under a single publication using Update (no minor forks). Major changes will be documented in the Change Log section of the script description.
Levelsintraday
MM Day Trader LevelsAs an intraday trader, there are certain key levels that I care about for short-term price action on every single chart. When I first began day trading, each morning I would painstakingly mark those key levels off on the charts I planned to trade each day. Depending on the number of charts I was watching, this would take up quite a bit of my time that I felt would have been much better spent doing other things. It also meant that those levels would often be left behind, and on later days I might be trading a symbol and get confused when a line appeared and I'd be paying attention to it only to later discover that it wasn't from prior day, but from some other day in the past when I had marked it off.
I looked all over TradingView to find indicators that did this automatically for me, and I found a lot of them. One by one I tried them, and inevitably I would always find that something was wrong with them. Often they didn't have all of the levels I wanted (so I would have to combine multiple indicators), but more often I found that the levels would be incorrect, or they would be buggy and not appear consistently, or they would not appear at the right time, or they would not work on futures! The list of problems went on and on. And the biggest issue I found was that nobody knew how to get session volume profile in an indicator.
So, over the course of a few years I figured out how to solve all of those problems and now I'm thrilled to present this free indicator for everyone like me who trades intraday and wants a clean consistent way to see the prior day levels that they care about automatically on every single chart (even futures). The levels the indicator provides are:
Yesterday High & Low
Value Area High & Low & Point of Control
Today's Open
Yesterday's Close (aka "Settlement" on futures)
Premarket High & Low (non-futures only)
Overnight High & Low (futures only)
These levels are extremely important, and I expect price to be reactive to them, so each level has a shaded background behind it so that the levels stand out against other lines you may have on your chart. I try to keep configuration as simple as possible, but there are configuration options that allow you to:
Hide any of the levels
Change the color for the levels
Shade the value area (or not)
Change the label text, size, type (basic label or plain text) and location (how far to the right of last candle to place the label
Adjust session volume profile value area volume & number of rows
The biggest advantage to this indicator over others on TradingView is how it handles session volume profile. When it comes to futures, TradingView does differentiate between regular trading hours and "electronic" trading hours on the charts, but their timeframes for those sessions are unusual, and they do not provide any programmatic way to differentiate between them. So, I created a whole new library for dealing with futures sessions that is fully integrated into both my Session Volume Profile library and this indicator, allowing me to bring you the best and only custom indicator available on TradingView that provides you with true regular session volume profile information across every type of symbol, including futures.
I'm incredibly proud of everything I've been able to provide with this indicator, and even more thrilled to say that I'm proud of how the indicator has been implemented. Once again releasing this indicator and all associated code for free and open source. I encourage you to take a look at the source code to see how it all works, take advantage of the free underlying libraries I created to make all of this possible: Session Library and Session Volume Profile Library.
HT: Intraday LevelsIndicator draws several most important intraday levels: last day RTH high/low, ETH high/low, Half Back, Day Close and current day RTH Day Open. These levels often act as support/resistance for intraday price movements. Also, they can help to assess day character and control of power.
Indicator can be used for ETH + RTH sessions.
Important notes:
• User must specify RTH session time, appropriate for his time zone and exchange
• Half-back is calculated as a middle line between RTH High and Low.
• Day Close is always equal to close of the last bar of the previous day
• RTH Day Open will be redrawn for the current day as soon as it is known (after RTH session opens and at least one bar gets confirmed).
Known issues:
• Day open will not be shown if there is no bar, clearly corresponding to RTH open time (e.g. if 4h timeframe is selected)
• For some ETH sessions it is not possible to determine session’s last bar (this is pine script limitation) until next day trading starts. This means that daily levels will be also update with only then.
Parameters:
Date – user can select date, for which levels will be plotted. Works only if “Use” check box is on. Otherwise, levels will be plotted for the last day. (“time” value doesn’t matter; unfortunately, there is no way to hide the input box)
RTH Open/Close time – it is important to specify time, appropriate for your time zone.
Time zone – your chart time zone (as UTC offset)
Visuals – controls visibility and colors
Script is published as an open source. It uses two libraries: Levels Lib and Functions Lib. First one demonstrates how to work with pine-script object model and arrays. You can also reuse it in your custom scripts where there is need to construct any support/resistance levels. The second library contains some useful functions for working with time and dates.
Disclaimer
This indicator should not be used as a standalone tool to make trading decisions but only in conjunction with other technical analysis methods.
Auction Theory Price LevelsKnowing the levels where price might find support or resistance is critical in trading. These are the levels where buyer or sellers previously showed up.
A bull trend is recognized by higher highs and higher lows on a daily or weekly chart whereas a bear trend is recognized by lower highs and lower lows. Knowing where these daily and weekly levels are will help to expect when and where a bounce or rejection might occur. Alternatively a break of these levels might hint at a change in trend. As they say, never get bullish at the top or bearish at the bottom until the level is broken and held.
This indicator adds these critical levels to the chart and let you hide the ones that are not important to your style of trading (all times are in US Eastern)
- pre-market (4am to 9:30am): low, high, mid
- previous day; low, high, close
- previous week: low, high
- current week: high, low
- initial balance (9:30am to 10:30am): low, high
- current session: open, low, high, mid
If you like the indicator, please like and share!
Thank you!
PClose Levels 2.0This script plots the levels generated via a combination of SPX 2Y Quartiles for everyday, red days, and green days. It is intended for use solely with SPX.
These quartiles are also sorted by VIX averages into bands that expand and contract with VIX.
It gives us an idea of what levels to potentially expect resistance/support fairly well, but is designed to be used in conjunction with other indicators and macroeconomic information.
Green Dashed is your Expected Max Range (EMR+) based on Green Day averages.
Green Dotted is your Expected Range (ER+) based on full dataset averages.
Green solid lines are POS2 and POS1, based on Green Day averages.
White Dotted is your Expected Move (EM), based on full dataset averages.
Red solid lines are NEG1 and NEG2, based on Red Day averages.
Red Dotted is your Expected Range (ER-) based on full dataset averages.
Red Dashed is your Expected Max Range (EMR-) based on Red Day averages.
QF LevelsQF LEVELS is an Indicator that displays various Levels and Session Ranges .
Daily / Weekly / Monthly / Quarterly / Yearly - Open levels
Previous DWMQY - Open levels
Monday - High / Mid / Low - Levels
Intraday (4H) Levels
London / New York / Asian - Sessions
Automatic Coloring based on Support / Resistance
Full Color Customization
Themes coming in next update
Market Sessions Open/Close LevelsThis indicator displays the market open and close price levels for the main trading sessions (Sydney, Tokyo, Frankfurt, London and New York). The Daily Line changes color depending on if price is trading above or below the level. Feel free to add or replace levels depending on your trading style and trading times.
Previous OHLCThe scripts places horizontal levels on your charts indicating the previous Daily, Weekly or Monthly OHLC values over the current timeframe.
Slightly modified version of Nanda86's "Previous OHLC" script. I corrected a couple of bugs and added more control over colors and labels in general. I also removed the hourly OHLCs.