Session candles & reversals / quantifytools— Overview
Like traditional candles, session based candles are a visualization of open, high, low and close values, but based on session time periods instead of typical timeframes such as daily or weekly. Session candles are formed by fetching price at session start (open), highest price during session (high), lowest price during session (low) and price at session end (close). On top of candles, session based moving average is formed and session reversals detected. Session reversals are also backtested, using win rate and magnitude metrics to better understand what to expect from session reversals and which ones have historically performed the best.
By default, following session time periods are used:
Session #1: London (08:00 - 17:00, UTC)
Session #2: New York (13:00 - 22:00, UTC)
Session #3: Sydney (21:00 - 06:00, UTC)
Session #4: Tokyo (00:00 - 09:00, UTC)
Session time periods can be changed via input menu.
— Reversals
Session reversals are patterns that show a rapid change in direction during session. These formations are more familiarly known as wicks or engulfing candles. Following criteria must be met to qualify as a session reversal:
Wick up:
Lower high, lower low, close >= 65% of session range (0% being the very low, 100% being the very high) and open >= 40% of session range.
Wick down:
Higher high, higher low, close <= 35% of session range and open <= 60% of session range.
Engulfing up:
Higher high, lower low, close >= 65% of session range.
Engulfing down:
Higher high, lower low, close <= 35% of session range.
Session reversals are always based on prior corresponding session , e.g. to qualify as a NY session engulfing up, NY session must have a higher high and lower low relative to prior NY session , not just any session that has taken place in between. Session reversals should be viewed the same way wicks/engulfing formations are viewed on traditional timeframe based candles. Essentially, wick reversals (light green/red labels) tell you most of the motion during session was reversed. Engulfing reversals (dark green/red labels) on the other hand tell you all of the motion was reversed and new direction set.
— Backtesting
Session reversals are backtested using win rate and magnitude metrics. A session reversal is considered successful when next corresponding session closes higher/lower than session reversal close . Win rate is formed by dividing successful session reversal count with total reversal count, e.g. 5 successful reversals up / 10 reversals up total = 50% win rate. Win rate tells us what are the odds (historically) of session reversal producing a clean supporting move that was persistent enough to close that way too.
When a session reversal is successful, its magnitude is measured using percentage increase/decrease from session reversal close to next corresponding session high/low . If NY session closes higher than prior NY session that was a reversal up, the percentage increase from prior session close (reversal close) to current session high is measured. If NY session closes lower than prior NY session that was a reversal down, the percentage decrease from prior session close to current session low is measured.
Average magnitude is formed by dividing all percentage increases/decreases with total reversal count, e.g. 10 total reversals up with 1% increase each -> 10% net increase from all reversals -> 10% total increase / 10 total reversals up = 1% average magnitude. Magnitude metric supports win rate by indicating the depth of successful session reversal moves.
To better understand the backtesting calculations and more importantly to verify their validity, backtesting visuals for each session can be plotted on the chart:
All backtesting results are shown in the backtesting panel on top right corner, with highest win rates and magnitude metrics for both reversals up and down marked separately. Note that past performance is not a guarantee of future performance and session reversals as they are should not be viewed as a complete strategy for long/short plays. Always make sure reversal count is sufficient to draw reliable conclusions of performance.
— Session moving average
Users can form a session based moving average with their preferred smoothing method (SMA , EMA , HMA , WMA , RMA) and length, as well as choose which sessions to include in the moving average. For example, a moving average based on New York and Tokyo sessions can be formed, leaving London and Sydney completely out of the calculation.
— Visuals
By default, script hides your candles/bars, although in the case of candles borders will still be visible. Switching to bars/line will make your regular chart visuals 100% hidden. This setting can be turned off via input menu. As some sessions overlap, each session candle can be separately offsetted forward, clearing the overlaps. Users can also choose which session candles to show/hide.
Session periods can be highlighted on the chart as a background color, applicable to only session candles that are activated. By default, session reversals are referred to as L (London), N (New York), S (Sydney) and T (Tokyo) in both reversal labels and backtesting table. By toggling on "Numerize sessions", these will be replaced with 1, 2, 3 and 4. This will be helpful when using a custom session that isn't any of the above.
Visual settings example:
Session candles are plotted in two formats, using boxes and lines as well as plotcandle() function. Session candles constructed using boxes and lines will be clear and much easier on the eyes, but will apply only to first 500 bars due to Tradingview related limitations. Rest of the session candles go back indefinitely, but won't be as clean:
All colors can be customized via input menu.
— Timeframe & session time period considerations
As a rule of thumb, session candles should be used on timeframes at or below 1H, as higher timeframes might not match with session period start/end, leading to incorrect plots. Using 1 hour timeframe will bring optimal results as greatest amount historical data is available without sacrificing accuracy of OHLC values. If you are using a custom session that is not based on hourly period (e.g. 08:00 - 15:00 vs. 08.00 - 15.15) make sure you are using a timeframe that allows correct plots.
Session time periods applied by default are rough estimates and might be out of bounds on some charts, like NYSE listed equities. This is rarely a problem on assets that have extensive trading hours, like futures or cryptocurrency. If a session is out of bounds (asset isn't traded during the set session time period) the script won't plot given session candle and its backtesting metrics will be NA. This can be fixed by changing the session time periods to match with given asset trading hours, although you will have to consider whether or not this defeats the purpose of having candles based on sessions.
— Practical guide
Whether based on traditional timeframes or sessions, reversals should always be considered as only one piece of evidence of price turning. Never react to them without considering other factors that might support the thesis, such as levels and multi-timeframe analysis. In short, same basic charting principles apply with session candles that apply with normal candles. Use discretion.
Example #1 : Focusing efforts on session reversals at distinct support/resistance levels
A reversal against a level holds more value than a reversal by itself, as you know it's a placement where liquidity can be expected. A reversal serves as a confirming reaction for this expectation.
Example #2 : Focusing efforts on highest performing reversals and avoiding poorly performing ones
As you have data backed evidence of session reversal performance, it makes sense to focus your efforts on the ones that perform best. If some session reversal is clearly performing poorly, you would want to avoid it, since there's nothing backing up its validity.
Example #3 : Reversal clusters
Two is better than one, three is better than two and so on. If there are rapid changes in direction within multiple sessions consecutively, there's heavier evidence of a dynamic shift in price. In such case, it makes sense to hold more confidence in price halting/turning.
스크립트에서 "sessions"에 대해 찾기
Sesion Operativa - Codigo InstitucionalThis indicator is designed for institutional and precision traders who need to visualize market liquidity and key session operating ranges without visual clutter.
Unlike standard session indicators, this tool focuses on clarity and the projection of key levels (Highs and Lows) to identify potential future reaction zones.
Key Features:
4 Customizable Sessions: Pre-configured with key institutional times (Pre-NY, NY Open, London, and Asia). Each session is fully adjustable in time, color, and style.
Minimalist Labeling: Displays the session name and operating range (in pips/points) in a clean, direct format (e.g., NY - 45), removing decimals and unnecessary text to keep the chart clean.
Range Projections: Option to project the Highs and Lows of each session forward (N candles) to use them as dynamic support or resistance levels.
Opening Highlight (NYSE): Special feature to highlight candle colors during specific high-volatility times (default 09:30 - 09:35 UTC-5), perfect for identifying manipulation or liquidity injections at the stock market open.
Adjustable Time Zone: Default setting is UTC-5 (New York), but fully adaptable to any user time zone.
VWAP Multi Sessions + EMA + TEMA + PivotThis indicator combines several technical tools in one, designed for both intraday and swing traders to provide a complete view of market dynamics.
- VWAP Multi Sessions: calculates and plots five independent VWAPs, each based on a specific time range. This allows you to better identify value zones and price evolution during different phases of the trading day.
- Moving Averages (EMA): three strategic EMAs (55, 144, and 233 periods) are included to track the broader trend and highlight potential crossovers.
- TEMA (Triple Exponential Moving Average): two TEMAs (144 and 233 periods) offer a more responsive alternative to EMAs, reducing lag while filtering out some market noise.
- Daily Levels: the previous day’s open, close, high, and low are plotted as key support and resistance references.
- Pivot Point (P): also included is the classic daily pivot from the previous session, calculated as (High + Low + Close) / 3, which acts as a central level around which price often gravitates.
In summary, this indicator combines:
- intraday value references (session VWAPs),
- trend indicators (EMA and TEMA),
- and daily reference points (OHLC and Pivot).
It is particularly suited for intraday, scalping, and swing trading strategies, helping traders anticipate potential reaction zones in the market more effectively.
Mark SessionsDisplays trading sessions in a very flexible way.
The main intention of this indicator is to give a way to display market sessions with your own style preferences and expectations and achieve cleanness of your chart.
This indicator allows to show up to 6 sessions plus day session. Time range of the sessions are set in timezone you choose. Mostly all settings can be set in one place and be inherited by all sessions. And of course after settings inheritage you still have a way to make session setting exceptions without changing others.
You can adjust any borders of the session to show, background to show, adjust labels attachment target and their alignments, change the color of sessions, and line styles. All of those settings can turn session picture in any presentation you like.
Enjoy and I'm open to hear your advices
CRYPTO MARKET SESSION ANALYZER INDICATORCrypto Market Session Analyzer is an easy-to-use yet powerful analysis tool that helps the trader visualize and analyze price movements over three different trading sessions:
1) European Session
2) US session
3) Asian session
Automatically tracks the corresponding levels for each market session.
This indicator can be used on all timeframes equal to or less than 15 minutes.
Although this is a simple indicator to use, some care must be taken when using it. The trader must be careful to set the correct times for each session according to his UTC timezone. By default the indicator uses UTC. If your console is set to UTC + 2 for example, you will need to take this into account and align the times correctly. You can adjust the time for each session from the user interface. Following the example, if the opening of the UE session is set to 9 and UTC of your console is set to UTC + 2, the script will proceed to create the level at opening time 11.
HOW IT WORK
The indicator automatically draws a horizontal line at the open and a horizontal line at the close of each session. The indicator clears past support and resistance every 24 hours to provide a clean and easy-to-read chart, updating new levels session after session.
Blue indicates the EU session.
Orange indicates the US session.
Purple indicates the Asian session.
Denys_MVT (Sessions Boxes)Denys_MVT (Sessions Boxes)
This indicator highlights the main trading sessions — Asia, Frankfurt, London, and New York — directly on the chart.
It helps traders visually separate market activity during different times of the day and quickly understand which session is currently active.
🔹 How it works
You can choose between Box Mode (draws a box around the session’s high and low) or Fill Mode (background color for the session).
Each session has its own customizable time range and color.
Labels can be placed automatically at the beginning of each session.
The script uses the time() function with your selected UTC offset to precisely map session times.
🔹 Features
Displays Asia, Frankfurt, London, and New York sessions.
Option to toggle between boxes and background shading.
Adjustable transparency and session colors.
Session labels for easier visual reference.
Works on any symbol and timeframe.
🔹 How to use
Add the indicator to your chart.
Set your local UTC offset in the settings (default: UTC+2).
Enable/disable sessions, change colors, or switch between Box/Fill mode.
Use the session highlights to better understand when volatility typically increases and how different sessions interact.
Asia Sessions AutoPlotting**Asia Sessions AutoPlotting**
This script is designed to automatically detect and plot the Asia session high and low levels directly on your chart, providing key session data for trading analysis. It is highly customizable, making it an essential tool for traders who rely on session data for decision-making.
### Key Features:
- **Asia Session Detection**: Automatically identifies the Asia session based on user-defined time settings (default: 0000-0845 UTC).
- **High/Low Line Plotting**: Displays high and low price levels for the session with customizable colors and line styles.
- **Line Extensions**: Option to extend session high/low lines for future price action reference.
- **Session Background Fill**: Adds an optional colored background to highlight the Asia session period.
- **Day Labels**: Includes labels for the session high/low levels with the corresponding day of the week.
- **Dynamic Session History**: Limits the display to a user-specified number of past sessions (default: 7) to keep the chart clean and focused.
- **Customizable Colors**: Highlights Mondays with unique colors for easy identification, while other weekdays use a different scheme.
### Use Cases:
- Identify key session levels for trading strategies.
- Monitor Asia session dynamics and their impact on subsequent sessions.
- Spot significant price reactions around session highs/lows.
### Inputs:
- **Session Time**: Adjust the session time to match your preferred Asia trading hours.
- **Toggle High/Low Lines**: Enable or disable the plotting of session highs and lows.
- **Line Extensions**: Extend the session high/low lines into future bars for better visualization.
- **Background Highlight**: Toggle a colored background for the Asia session.
- **Maximum Sessions**: Define how many past sessions to display for clarity.
This script is perfect for intraday traders, scalpers, and swing traders looking to gain insight into the Asia session and its influence on global markets. Fully adjustable and easy to use, it enhances your chart with critical information at a glance.
Simply add it to your TradingView chart, configure your settings, and let it do the work for you!
New York, London and custom trading sessionsHi Traders
The script :
The Time sessions script plots the trading sessions of both New York and London markets (background fills), In addition to the above the script also plots a user defined trading session period (vertical lines). All plots may be toggled true or false inorder to ensure you can focus on the respective market / markets / custom session.
Market sessions are useful for technical or quantitative analysis, as the majority of trading activity and net daily volume occurs in these zones, in fact the U.S./London market overlap tends to have the greatest volume accumulation across that range of time / bars than that range at any other time within the daily session. For FX traders it may also be important to take into account for many currency pairs the average exchange rate pip movement is greatest within these zones.
The custom session, is intended to be used for traders who trade only within specific intervals within the market session or day for 24/7 traded asset classes
Additional notes :
Not as of now, I have only added three optional trading sessions. If you would like to change the sessions, copy the scripts code and change the "ctm_session" default time range value, insuring the second time value is 1 min > than the first.
As always i Hope this is a useful script, and I will be updating this script in the near future.
Intraday Pivot Highs & Lows (Asia London NY)Intraday Pivot Highs & Lows (Asia London NY)
Script Description
This TradingView indicator is optimized for Forex, scalping, intraday, and day trading strategies. It accurately plots Pivot Points and levels, high/low, support and resistance levels. These are clearly identified to aid the trader during killzone sessions and session opens. Ideal for scalp trading, intraday sessions, and leveraging SMT (Smart Money Techniques). Utilize these Price Levels effectively during London Open, NY Open, and the Asia Session, utilizing Market Structure to pinpoint key levels and reversal zones for successful trading. Improve your Trade Setups, recognize reliable Chart Patterns, identify critical Price Pivots, and trade confidently off Institutional Levels.
This script marks the intraday pivot highs, lows and midpoints retracement levels for
Asia
London
New York
It also plots the previous day's high, low, midpoint, and 0.618 Fibonacci retracement levels, providing traders with critical price reference points for making intraday trading decisions.
Originality & Usefulness
This indicator uniquely integrates pivot calculations across three major Forex sessions (Asia, London, NY), clearly delineating session boundaries.
It enhances visibility by using distinct styling
solid for New York
dashed for London
dotted lines for Asia
And colour co-ordinated labeling, improving traders' ability to identify important intraday price action zones efficiently. Unlike standard pivot indicators, this script emphasizes session-specific trading dynamics.
### Key Features ###
Session-Based Levels: Automatically plots high, low, midpoint, and Fibonacci (.618) levels for each major session (Asia, London, NY).
Distinct Visual Cues: Lines and labels use session-specific styles and colors to easily differentiate between sessions.
Previous Day Reference: Clearly plots and labels yesterday's high, low, midpoint, and Fibonacci levels.
Flexible Visibility: Traders can set timeframe visibility to maintain clean charts on higher timeframes.
### How It Works
At the start of next day's session, previous session lines are cleared, ensuring the chart remains uncluttered.
High, low, midpoint, and Fibonacci retracement levels (.618) are dynamically calculated and displayed at the close of each session.
All session levels remain visible until the start of the next respective session, providing continuous actionable insights.
Trading Application:
Session highs and lows act as strong intraday support and resistance zones.
Midpoints and Fibonacci levels are effective for identifying potential reversal zones and retracements.
Daily levels provide a broader context, useful for gauging intraday volatility and range.
### Limitations and Considerations ##
Best used on liquid assets with clear session-based price action, such as Forex major pairs, if used on indexes make sure they contain 24 hour price action not just New York session.
This indicator is designed to streamline intraday trading by clearly marking essential pivot points and session-based levels, significantly improving traders' market context and decision-making accuracy. Can be used to enhance SMT decision making when scalping killzones.
Quarterly Theory ICT 02 [TradingFinder] True Open Session 90 Min🔵 Introduction
The Quarterly Theory ICT indicator is an advanced analytical system built on ICT (Inner Circle Trader) concepts and fractal time. It divides time into four quarters (Q1, Q2, Q3, Q4), and is designed based on the consistent repetition of these phases across all trading timeframes (annual, monthly, weekly, daily, and even shorter trading sessions).
Each cycle consists of four distinct phases: the first phase (Q1) is the Accumulation phase, characterized by price consolidation; the second phase (Q2), known as Manipulation or Judas Swing, is marked by initial false movements indicating a potential shift; the third phase (Q3) is Distribution, where price volatility peaks; and the fourth phase (Q4) is Continuation/Reversal, determining whether the previous trend continues or reverses.
🔵 How to Use
The central concept of this strategy is the "True Open," which refers to the actual starting point of each time cycle. The True Open is typically defined at the beginning of the second phase (Q2) of each cycle. Prices trading above or below the True Open serve as a benchmark for predicting the market's potential direction and guiding trading decisions.
The practical application of the Quarterly Theory strategy relies on accurately identifying True Open points across various timeframes.
True Open points are defined as follows :
Yearly Cycle :
Q1: January, February, March
Q2: April, May, June (True Open: April Monthly Open)
Q3: July, August, September
Q4: October, November, December
Monthly Cycle :
Q1: First Monday of the month
Q2: Second Monday of the month (True Open: Daily Candle Open price on the second Monday)
Q3: Third Monday of the month
Q4: Fourth Monday of the month
Weekly Cycle :
Q1: Monday
Q2: Tuesday (True Open: Daily Candle Open Price on Tuesday)
Q3: Wednesday
Q4: Thursday
Daily Cycle :
Q1: 18:00 - 00:00 (Asian session)
Q2: 00:00 - 06:00 (True Open: Start of London Session)
Q3: 06:00 - 12:00 (NY AM)
Q4: 12:00 - 18:00 (NY PM)
90 Min Asian Session :
Q1: 18:00 - 19:30
Q2: 19:30 - 21:00 (True Open at 19:30)
Q3: 21:00 - 22:30
Q4: 22:30 - 00:00
90 Min London Session :
Q1: 00:00 - 01:30
Q2: 01:30 - 03:00 (True Open at 01:30)
Q3: 03:00 - 04:30
Q4: 04:30 - 06:00
90 Min New York AM Session :
Q1: 06:00 - 07:30
Q2: 07:30 - 09:00 (True Open at 07:30)
Q3: 09:00 - 10:30
Q4: 10:30 - 12:00
90 Min New York PM Session :
Q1: 12:00 - 13:30
Q2: 13:30 - 15:00 (True Open at 13:30)
Q3: 15:00 - 16:30
Q4: 16:30 - 18:00
Micro Cycle (22.5-Minute Quarters) : Each 90-minute quarter is further divided into four 22.5-minute sub-segments (Micro Sessions).
True Opens in these sessions are defined as follows :
Asian Micro Session :
True Session Open : 19:30 - 19:52:30
London Micro Session :
T rue Session Open : 01:30 - 01:52:30
New York AM Micro Session :
True Session Open : 07:30 - 07:52:30
New York PM Micro Session :
True Session Open : 13:30 - 13:52:30
By accurately identifying these True Open points across various timeframes, traders can effectively forecast the market direction, analyze price movements in detail, and optimize their trading positions. Prices trading above or below these key levels serve as critical benchmarks for determining market direction and making informed trading decisions.
🔵 Setting
Show True Range : Enable or disable the display of the True Range on the chart, including the option to customize the color.
Extend True Range Line : Choose how to extend the True Range line on the chart, with the following options:
None: No line extension
Right: Extend the line to the right
Left: Extend the line to the left
Both: Extend the line in both directions (left and right)
Show Table : Determines whether the table—which summarizes the phases (Q1 to Q4)—is displayed.
Show More Info : Adds additional details to the table, such as the name of the phase (Accumulation, Manipulation, Distribution, or Continuation/Reversal) or further specifics about each cycle.
🔵 Conclusion
The Quarterly Theory ICT, by dividing time into four distinct quarters (Q1, Q2, Q3, and Q4) and emphasizing the concept of the True Open, provides a structured and repeatable framework for analyzing price action across multiple time frames.
The consistent repetition of phases—Accumulation, Manipulation (Judas Swing), Distribution, and Continuation/Reversal—allows traders to effectively identify recurring price patterns and critical market turning points. Utilizing the True Open as a benchmark, traders can more accurately determine potential directional bias, optimize trade entries and exits, and manage risk effectively.
By incorporating principles of ICT (Inner Circle Trader) and fractal time, this strategy enhances market forecasting accuracy across annual, monthly, weekly, daily, and shorter trading sessions. This systematic approach helps traders gain deeper insight into market structure and confidently execute informed trading decisions.
Session Tick-BoxThe "Session Tick-Box" is designed to display session-related information on the chart (HIGH/LOW box). Here's a breakdown of its features and functionalities:
Session Settings:
You can specify different sessions such as the Cash Session, Asian Session, European Session, and Offset Session using the input.session() function.
The sat.session_tick() function is used to calculate the low, high, fill color, open bar status, and session open status for each session.
Display Settings:
You have the option to show a new daily session using the separateDays input. The background color for the new session can be customized using the Day_Bg input.
The colorDays input allows you to enable or disable coloring the background based on different days of the week.
You can customize the colors for the Cash, Asian, European, and Offset sessions using the respective color inputs.
Other Features:
The indicator calculates the percentage change between the low and high of each session using the sat.AbsPercentChange() function.
Labels are added to mark the high and low points of the sessions.
A vertical line is drawn between the low and high points of each session using the line.new() function.
The fill() function is used to create a shaded area between the low and high lines of each session.
Overall, the "Session Tick-Box" indicator provides visual representation and analysis of different sessions on the chart, including their respective ranges and percentage changes.
Fusion: Forex sessions with daylight savingsThis has multiple ways to see Forex sessions as I found both on the main chart and on a separate chart useful at different times so this gives you the benefit of both.
When you want to use this separate from your main chart uncheck it the option "On main chart".
On the main chart we can show:
The legend
Boxes
Labels
Breakout check area
Start & end labels
On any other chart area we can show:
The legend
Horizontal bars representing the sessions.
All objects are color coded and the legend shows the color codes.
Credit:
Blended my own sessions indicator and "FX Market Sessions" by boidoki
The code is structured to easily drop into a bigger system so use it as a lone indicator or add the code to some bigger project you are creating.
Finally, if you find value please do make a comment, give thumbs up etc.
Enjoy and good luck!
Apex Edge - Session Sweep ProApex Edge Session Sweep Pro
By Apex Edge | 2025 Edition
🔍 What is it?
The Apex Session Sweep Pro is a precision trading tool designed for identifying high-probability liquidity sweep entries during key global market sessions. It combines powerful sweep detection logic with dynamic candle colouring, session visualization, TP projections, and real-time alerts — all within a clean, performance-optimized Pine Script engine.
This is not your average session box indicator. This is Apex-grade.
⚙️ How it Works
The indicator detects session liquidity sweeps by tracking price action relative to previous session highs and lows. When a session high/low is swept (i.e., price breaches it and then closes in the opposite direction), it generates a signal:
Buy Signal → Price sweeps previous low and closes back above it
Sell Signal → Price sweeps previous high and closes back below it
Each session is boxed on the chart (Tokyo, London, New York, Sydney), color-coded, and dynamically labelled.
Upon detecting a valid sweep, the script:
Plots a small entry label (toggleable)
Projects up to 5 customizable TP levels
Coloured candles for visual trade direction
Alerts for Buy or Sell sweep signals (optional)
All elements are memory-managed and customizable to suit your trading style.
🧠 Key Features
✅ Smart Sweep Detection Logic
✅ Global Market Session Boxes (Custom Times)
✅ Toggleable Entry Labels + TP Levels
✅ Candle Colouring by Signal
✅ Manual TP input + TP toggles
✅ Real-time Alerts for Apex entries
🕒 Why Are My Sessions Offset?
Your chart’s time zone may be different from UTC. This script is UTC-based by design, so if your chart is set to UTC+1, for example, the sessions will appear one hour later. Either:
Adjust your chart to UTC or or Exchange for perfect alignment,
Or tweak the session input times manually.
🧰 Who is this for?
This tool is made for:
Intraday traders looking for sweeps into liquidity
SMC (Smart Money Concept) strategists
Forex, crypto, and indices traders
Anyone who uses session-based levels to define entries
Whether you scalp London or ride NY swings, this tool frames each session cleanly — and shows you where the traps are laid.
🚨 Disclaimer
This indicator is a technical tool, not financial advice. Use proper risk management. Past performance ≠ future results.
Relative Average Extrapolation [ChartPrime]Relative Average Extrapolation (ChartPrime) is a new take on session averages, like the famous vwap . This indicator leverages patterns in the market by leveraging average-at-time to get a footprint of the average market conditions for the current time. This allows for a great estimate of market conditions throughout the day allowing for predictive forecasting. If we know what the market conditions are at a given time of day we can use this information to make assumptions about future market conditions. This is what allows us to estimate an entire session with fair accuracy. This indicator works on any intra-day time frame and will not work on time frames less than a minute, or time frames that are a day or greater in length. A unique aspect of this indicator is that it allows for analysis of pre and post market sessions independently from regular hours. This results in a cleaner and more usable vwap for each individual session. One drawback of this is that the indicator utilizes an average for the length of a session. Because of this, some after hour sessions will only have a partial estimation. The average and deviation bands will work past the point where it has been extrapolated to in this instance however. On low time frames due to the limited number of data points, the indicator can appear noisy.
Generally crypto doesn't have a consistent footprint making this indicator less suitable in crypto markets. Because of this we have implemented other weighting schemes to allow for more flexibility in the number of use cases for this indicator. Besides volume weighting we have also included time, volatility, and linear (none) weighting. Using any one of these weighting schemes will transform the vwap into a wma, volatility adjusted ma, or a simple moving average. All of the style are still session period and will become longer as the session progresses.
Relative Average Extrapolation (ChartPrime) works by storing data for each time step throughout the day by utilizing a custom indexing system. It takes the a key , ie hour/minute, and transforms it into an array index to stor the current data point in its unique array. From there we can take the current time of day and advance it by one step to retrieve the data point for the next bar index. This allows us to utilize the footprint the extrapolate into the future. We use the relative rate of change for the average, the relative deviation, and relative price position to extrapolate from the current point to the end of the session. This process is fast and effective and possibly easier to use than the built in map feature.
If you have used vwap before you should be familiar with the general settings for this indicator. We have made a point to make it as intuitive for anyone who is already used to using the standard vwap. You can pick the source for the average and adjust/enable the deviation bands multipliers in the settings group. The average period is what determines the number of days to use for the average-at-time. When it is set to 0 it will use all available data. Under "Extrapolation" you will find the settings for the estimation. "Direction Sensitivity" adjusts how sensitive the indicator is to the direction of the vwap. A higher number will allow it to change directions faster, where a lower number will make it more stable throughout the session. Under the "Style" section you will find all of the color and style adjustments to customize the appearance of this indicator.
Relative Average Extrapolation (ChartPrime) is an advanced and customizable session average indicator with the ability to estimate the direction and volatility of intra-day sessions. We hope you will find this script fascinating and useful in your trading and decision making. With its unique take on session weighting and forecasting, we believe it will be a secret weapon for traders for years to come.
Enjoy
Session Levels Predictor [LuxAlgo]The "Session Levels Predictor" indicator predicts the maximum/minimum levels that will be made within a user-specified session. Hit rate percentages are displayed to measure how often a specific level has been hit.
🔶 USAGE
The indicator can be used to estimate the expected maximum/minimum levels within a specified session, these are directly displayed at the start of a session. This operation can be useful to set take profits/stop losses levels when we expect to exit within a specific session.
Users can display up to 3 upper and lower extremities on their chart (by default only 2 upper and lower extremities are displayed), with their distance from the session opening price being determined by the user-set percentile setting, values closer to 100 will return levels farther away from the session opening price.
Predicting maximum/minimum levels effectively allows obtaining support/resistance levels for the user-defined session, with a breakout probability indicating how easy it can be for the price to reach the estimated levels. These levels can be extended outside the specified session, allowing to test their relevancy as support/resistance levels to prices outside the specified sessions.
🔶 DETAILS
To predict maximum/minimum levels made within a session we keep a record of the distance between a session's maximum/minimum value and the session opening price (opening price when the session starts).
By using the percentile_nearest_rank() on our recorded distances we draw levels from the session opening price. If a level is hit between 2 sessions, this is saved for further calculations.
Lastly, a % hit rate of these levels is shown at the sessions open, indicating the probability that these levels could be hit before the next session.
🔹 array.percentile_nearest_rank()
Returns the value for which the specified percentage of array values (percentile) is less than or equal to it, using the nearest-rank method.
For example, taking the 75th percentile from our recorded distances between the maximum session level and session opening price will return a new distance where 75% of the recorded distances are lower.
The same goes for the green session's open - low levels
🔶 SETTINGS
Session: User-defined session interval, uses the symbol timezone.
Percentile (1, 2, 3): K-th percentile used to estimate session max/min levels, higher values will return more distant levels.
Max Population: Maximum amount of recorded distance data for the calculation of percentiles.
🔹 Style
Extend Middle Line: Toggle to extend the blue Middle Line to the next session - Default disabled
Forex Session OverlapApplies gray background coloring for each major active Forex session, the more sessions active the lighter the background. Adjusted coloring for low (Sydney, Tokyo) and high (Frankfurt, London, New York) liquidity. Market opening hours for Sydney, Tokyo, Frankfurt, London and New York have been set to 08:00 - 17:00 local time and are converted to EST while taking daylight saving time into account across regions (REMEMBER: configure manually!). Sessions can be turned on or off separately. By default this indicator hides itself in larger time-frames (>30min by default). Enabling session breaks or daily pivots helps distinguish between sessions.
TTW-Day/Session Separator🗓️ Day Separator – Highlight Markers start times and days for Your Chart
This script adds automatic vertical lines to visually separate each trading day on your chart. It helps you quickly identify where each day starts and ends — especially useful for intraday and scalping strategies.
✅ Features:
Distinct lines for each weekday, month, week, trading session
Optional day-of-week labels (toggle on/off)
Custom label position (top or bottom of the chart)
Works on any timeframe
Whether you're tracking market sessions or reviewing daily price action, this tool gives you a clean structure to navigate your charts with more clarity.
Casa_SessionsLibrary "Casa_Sessions"
Advanced trading session management library that enhances TradingView's default functionality:
Key Features:
- Accurate session detection for futures markets
- Custom session hour definitions
- Drop-in replacements for standard TradingView session functions
- Flexible session map customization
- Full control over trading windows and market hours
Perfect for traders who need precise session timing, especially when working
with futures markets or custom trading schedules.
SetSessionTimes(session_type_input, custom_session_times_input, syminfo_type, syminfo_root, syminfo_timezone)
Parameters:
session_type_input (simple string) : Input string for session selection:
- 'Custom': User-defined session times
- 'FX-Tokyo': Tokyo forex session
- 'FX-London': London forex session
- 'FX-New York': NY forex session
- 'Overnight Session (ON)': After-hours trading
- 'Day Session (RTH)': Regular trading hours
custom_session_times_input (simple string) : Session parameter for custom time windows
Only used when session_type_input is 'Custom'
syminfo_type (simple string)
syminfo_root (simple string)
syminfo_timezone (simple string)
Returns:
session_times: Trading hours for selected session
session_timezone: Market timezone (relevant for forex)
getSessionMap()
Get futures trading session hours map
Keys are formatted as 'symbol:session', examples:
- 'ES:market' - Regular trading hours (RTH)
- 'ES:overnight' - Extended trading hours (ETH)
- 'NQ:market' - NASDAQ futures RTH
- 'CL:overnight' - Crude Oil futures ETH
Returns: Map
Key: Symbol:session identifier
Value: Session hours in format "HH:MM-HH:MM"
getSessionString(session, symbol, sessionMap)
Returns a session string representing the session hours (and days) for the requested symbol (or the chart's symbol if the symbol value is not provided). If the session string is not found in the collection, it will return a blank string.
Parameters:
session (string) : A string representing the session hour being requested. One of: market (regular trading hours), overnight (extended/electronic trading hours), postmarket (after-hours), premarket
symbol (string) : The symbol to check. Optional. Defaults to chart symbol.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
inSession(session, sessionMap, barsBack)
Returns true if the current symbol is currently in the session parameters defined by sessionString.
Parameters:
session (string) : A string representing the session hour being requested. One of: market (regular trading hours), overnight (extended/electronic trading hours), postmarket (after-hours), premarket
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
barsBack (int) : Private. Only used by futures to check islastbar. Optional. The default is 0.
ismarket(sessionMap)
Returns true if the current bar is a part of the regular trading hours (i.e. market hours), false otherwise. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isfirstbar()
Returns true if the current bar is the first bar of the day's session, false otherwise. If extended session information is used, only returns true on the first bar of the pre-market bars. Works for futures (TradingView's methods do not).
Returns: bool
islastbar()
Returns true if the current bar is the last bar of the day's session, false otherwise. If extended session information is used, only returns true on the last bar of the post-market bars. Works for futures (TradingView's methods do not).
Returns: bool
ispremarket(sessionMap)
Returns true if the current bar is a part of the pre-market, false otherwise. On non-intraday charts always returns false. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
ispostmarket(sessionMap)
Returns true if the current bar is a part of the post-market, false otherwise. On non-intraday charts always returns false. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isfirstbar_regular(sessionMap)
Returns true on the first regular session bar of the day, false otherwise. The result is the same whether extended session information is used or not. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
islastbar_regular(sessionMap)
Returns true on the last regular session bar of the day, false otherwise. The result is the same whether extended session information is used or not. Works for futures (TradingView's methods do not).
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
isovernight(sessionMap)
Returns true if the current bar is a part of the pre-market or post-market, false otherwise. On non-intraday charts always returns false.
Parameters:
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: bool
getSessionHighAndLow(session, sessionMap)
Returns a tuple containing the high and low print during the specified session.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: A tuple containing
getSessionHigh(session, sessionMap)
Convenience function to return the session high. Necessary if you want to call this function from within a request.security expression where you can't return a tuple.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: The high of the session
getSessionLow(session, sessionMap)
Convenience function to return the session low. Necessary if you want to call this function from within a request.security expression where you can't return a tuple.
Parameters:
session (string) : The session for which to get the high & low prints. Defaults to market.
sessionMap (map) : The map of futures session hours. Optional. Uses default if not provided.
Returns: The low of the session
Week designationThe script is primarily used for visualizing the beginning and end of the week. It is particularly helpful when working with time intervals shorter than one day. In a very simple and clear manner, you can see when a specific week has started. This makes it easier to assess the market sentiment in a short timeframe.
Here are the operating principles of this script:
Initialization:
The script begins with initialization, where basic parameters and settings such as line colors and line style are defined.
Determining the Session Start:
The startSession(hour, minute) function is used to calculate the starting time of a session on the chart. Sessions can be divided into different time intervals, such as the daily session (D), weekly session (W), and monthly session (M).
Checking for Session Start:
The script checks if a new session is starting. If so, a vertical line is inserted on the chart to mark the beginning of that session.
isSessionStart checks for the start of the daily session.
isSessionStart_2 checks for the start of the weekly session.
isSessionStart_3 checks for the start of the monthly session.
Marking Mondays:
The script checks if the current day is Monday (the day of the week number 2 represents Monday).
If the current session is starting or it is Monday, a vertical line is inserted on the chart with the day designation (color color_day).
Marking Lines on the Chart:
The lines inserted on the chart are vertical and have a specified style and color, which can be customized in the settings.
Incomplete Session Candle - Incomplete Timeframe Candle Marker The "Incomplete Session Candle - Incomplete Timeframe Candle Marker" is an advanced tool tailored for technical analysts who understand the importance of accurate timeframes in their charting. While the indicator is not limited to the Indian market, its genesis is rooted in the nuances of trading sessions like those in India, which span 375 minutes from 9:15 AM to 3:30 PM.
Key Features:
Detects if the current timeframe is intraday (minutes or hours).
Calculates the expected duration of the candle for the chosen timeframe.
Highlights candles that don't achieve their expected session duration by placing a cross shape above the bar.
Compatible across various intraday timeframes, aiding traders in spotting discrepancies promptly.
Why We Made This: Not Just for India:
While we looked at the Indian market, this indicator works everywhere. Regular timeframes like 30 minutes, 1 hour, and 2 hours often end with incomplete candles, especially at the end of the trading day. For example:
A 30-minute timeframe makes 13 candles, but the last one is only 15 minutes long.
A 1-hour timeframe shows 7 candles, but the last one is just the last 15 minutes.
By switching to different timeframes like 25 minutes, 75 minutes, and 125 minutes, you get more complete information for better trading decisions. Learn more about this in our article: "Power of 25, 75, and 125-Minute Timeframes in the Indian Market", recognized by Trading View's Editors' Pick.
Benefits:
The indicator extends its benefits even to users without access to certain timeframes. It accommodates traders using a 1-hour timeframe (pertaining to Indian traders). By employing this indicator, traders consistently remain mindful of incomplete candles within their chosen timeframe
For those who utilize concepts like RBR, RBD, DBR, and DBD, this indicator is paramount. An incomplete candle can skew analysis, leading to potential misinterpretations of base or leg candles.
Final thoughts:
In markets like the Indian stock market, adopting such a tool is not just beneficial, but necessary. Whether you have access to unconventional timeframes or are using traditional ones, recognizing and accounting for the limitations of incomplete candles is critical & it's important to know if your candles fit the timeframe properly. This indicator gives you a better view of the market, which helps you make smarter trades.
Lastly, Thank you for your support! Your likes & comments. If you want to give any feedback then you can give in comment section.
Let's conquer the markets together!
Trading Sessions (London / New York / Tokyo / Sydney)Trading sessions for all assets with (time zone) adjustable trading sessions.
Global Sessions with Trend & Liquidity Features:
-Session ranges with customizable lines & colors
-Opening range markers and optional background shading
-Automatic trend detection per session (Bullish / Bearish / Neutral)
-Indicators when highs/lows are broken
-Clean visual design with toggles for minimal or detailed display
This Pine Script code is designed to help traders visualize and analyze different market sessions. It's a tool that displays the trading hours for the Asian, London, and New York sessions right on the chart.
The main purpose is to show when these key markets are open and to highlight their price ranges. It also includes features to track the trend within each session and to identify "liquidity sweeps" or moments when the price breaks the high or low of a previous session.
In simple terms, it helps a trader see what the market is doing and where the price is likely to go, all based on the major global trading times. It's especially useful for day traders who want to align their strategies with the activity of specific markets.
P.S. Apologies to users not in the EST timezone! This version is hardcoded to Eastern Standard Time, and I'm not currently sure how to automatically adjust it for different timezones. But you can adjust manually and click the dropdown menu to Save As Default.






















