Price Action All In One Indicator

If you are the one who is "Price Action" style & does not want to use many indicators or complex indicators or you are an ICT (The Inner Circle Trader)
student or ICT charter, this simple beautiful All In One Indicator is right for you.

The indicator has the following functions.

The default timezone is New York Time GMT-4, if you leave the time zone setting blank, it will use the symbol timezone. Note that the trading time changes with one hour delay in winter. so if you just trade forex, and leave the time zone setting blank, TradingView will adjust the symbol timezone automatically for you or don't forget to change the timezone setting GMT-4 or GMT-5 depending on daylight saving time.

You can choose which panel to show through settings.
Session Info Panel: pips info of ADR, Asian, London, and New York sessions.
Trend Panel: showing trend (up/down) of
  • 5m/15m/1h/4h/D/W time frames (TF)
  • 4MA (default values: SMA with lengths: 20–50–100–200)

Money Management Panel: in trading, money management is very important. Just put the % risk, & stop loss value below, the indicator will calculate a suitable size/amount for each trade.
  • Size by Lots: input stop loss in pips
  • Size by Units: input stop loss in % (of price)
(*)Units size is calculated by % stop loss & current bar close price. You have to determine a stop-loss price to convert to % stop loss by yourself.

We can choose which time separators we want to display. The indicator has 5 options: Anchor Time/Day/Week/Month/Quarter. Of course, we can choose to show just one or all 5 of them.
With Anchor Time you can choose which time you want to draw a vertical line for better timing analysis. This can show up to 2 Anchor Time lines. The default values are 00:00 (New York Midnight Opening) and 08:30 (New York Session Opening). You also have an option to show the past lines or not.

About Day Separator, cause TradingView has supported Session Breaks in Setting but if you don't like to use it or when enabling, it distracts you, you can use mine. My favorite trading dates are Tuesday & Wednesday.

For intraday trading, the high/low/close of the previous day, the previous week, ADR (default period is 5) are very important key levels. You can choose which one you like to show for better analysis. Of course, you can change the color & style of the lines. This is also my favorite indicator.

This indicator also has an option to show up to 2 price lines at a specific time, you can choose the price type (high/low/close/open) that you want to display. The default time values are:
  • Specific Time 1: 0:00. (New York Midnight Opening Price)
  • Specific Time 2: 8:30 am. (New York Session Opening Price)

The market tends to reprice the higher/lower to the old high/low or imbalance/fair value price to promote buy/sell stops or to provide smart money pricing for long/short entries. Typically, it redistributes quickly and you must learn to anticipate them at key levels intraday. Weak short/long holders will be squeezed in the retracement.

Except for the open price, the price changes continuously until the closing time, so the accumulation area can also be changed in real-time, but if you combine it with other information when analyzing, you can predict/determine whether the zone has been established or not with high probability. In short, price needs time to be accumulated, I usually don't pay attention to this daily zone till London open/close or New York sessions

Not only daily zone, but the indicator also supports higher timeframes accumulation zone from

There are 3 sessions: Asian, London, New York. The default values are below (New York Time).
  • Asian: 19:00 ~ 00:00
  • London Open (London KillZone): 01:00 ~ 05:00
  • New York Open (New York KillZone): 07:00 ~ 10:00
If you do not want to show the label, just leave the label values blank or change them to whatever you want.
This is one of my favorite functions. I use it on 15m, 30m, 1h TF for Forex intraday trading. My favorite trading sessions are London Open & New York Open.

You also can choose to show or not Standard Deviations (STD). The default values are set for Asian Range STD and max STD levels can be shown are 5. I use the following 3 types of STD (New York Time):
  • CBDR (Central Bank Deviations) STD: 14:00 ~ 20:00
  • Flout STD: 15:00 ~00:00
  • Asian Range STD: 19:00 ~ 00:00

Can show high/low/mid of the data ranges on the daily/4h chart. The default values are:
- 20–40–60 days back from today for daily TF.

- 30–60–90 bars back from the latest bar for 4h TF.

The default anchor bar for calculating the lookback is the latest one but with:
- 4h TF: we can change the lookback from the 1st day of the week.

- Daily TF: we can change the lookback from the 1st day of the month.

The indicator also has options showing the high/low/mid (equilibrium level) lines for better analysis. Especially, on daily TF, we have the option that can show up to 4 lines (25% for each one) of the data range.
Of course, you can change the colors or the style of the high/low/mid lines.
The lookback can be shown on the lower TFs for better detection when the market structure is shifted.

Fractal bar: The bar's color is changed when the divergence occurs between the price & RSI. You can change the RSI period (default value is 14) & RSI source. (open/high/low/close,…)

Imbalance bar or liquidity void or fair value gap - whatever you call it. This is my favorite indicator when trading on all TFs.You can choose to extend the last n imbalance bars if you like in the settings. I make sure I covered all cases of imbalance/fair value gap.

First, this function is not used as the common Support & Resistance that retail traders usually use, so I call it Old High/Low. I usually use it in 2 ways:
  • Detect the next buy/sell stops that Market Makers aim to manipulate.
  • Detect whether market structure shifted or not (Break of structure)
In settings you can:
  • Set the period to detect high/low levels, the default value is 10. My other favorite values are 6 & 2.
  • On a lower time frame, you might want to set it to a large number to remove noise.
  • On a higher time frame, a small number is enough, I think.
  • Choose the numbers of the last lines you want to show on your chart.
  • Of course, the style of lines can be changed easily.

A very simple trendline with default pivot left strength is 10.
By default, trendline uses high/low price but you have the "Using close price" option.

The Linear Regression Channel is a three-line technical indicator used to analyze the upper and lower limits of an existing trend. It is a statistical tool used to predict the future from past data and is used to determine trend direction or when prices may be overextended.
You can choose
  • To fill the background or not
  • To show inner/outer lines or not
  • To change the colors/line styles of upper zone, lower zone, upper lines, lower lines, midline

Working on all TFs, this looks like the same with lookback function but if you would like to display them in a box for easily focusing/comparing with other symbols or for detecting divergence in a specific period. The indicator also has a setting to show or hide lines connecting between lows or highs.

Another example of how I use High/Low connecting lines to detect divergence between S&P 500 and NASDAQ 100.

Can show up to 2 ZigZag lines.
This is suitable for traders who have difficulty in detecting key levels (recent high/low) of the prices to confirm market structure or just for drawing Fibonacci easily at those levels.

MA (Moving Average)
I believe that this is one of the most used indicators for every trader. There are 5 types of MA to choose from: EMA, SMA, WMA, VWMA, SMMA(RMA).
This can show up to 4 MAs. You can choose the source (close/high/low,…) for each one. My favorite values are 34 & 89 EMA.

This indicator also supports MA Bands. You can select which MA you want to display the bands, and the "width" of the bands can be changed via the settings.

It's just a simple function but I think it's very useful for those who want to add Copyright info to the chart, to prevent others from copying it.

Others/known issues/limitations
In forex or stock (things that are traded only on weekdays), TradingView's does not include the latest bars till Monday so the Day Separator cannot fill that space. Because TradingView deals with those bars as Sunday's ones so I set the color of Sunday the same as Friday for good UI/UX. On Crypto charts, the indicator shows without problems.

If you see "Internal server study error", please try closing the current TradingView tab in your browser and reopening it in a new tab. The error will disappear.
Because TradingView does not provide any detailed error information when such "general error" occurs. It's very difficult to detect which function is causing this error or is there something that caused TradingView "overloaded" through a long time running/loading on that tab? Honestly, I don't know exactly the cause, but in my experience, this error often occurs in the following cases:
  • When you have the TradingView Tab open for hours. In my case, I usually leave TradingView tab open overnight & when I come back the next day, this error might appear. (I'm a Mac user & I almost never shut down my Mac)
  • When you change settings too many times, especially settings of drawing objects like line width in a using session, it might cause this error.
So, after changing the setting or when you come back for the next trade, please save & close that TradingView tab, and then open a new one, everything will work fine.
You can see the images below that show I have tested my indicator from 1-minute time frame, enabled all functions, change every setting to max values & everything still works fine.
Release Notes:
Show MA Type on the MA Panel instead of showing "MA" only.
Release Notes:
I did some upgrades for the following functions.

TIME SEPARATORS - Daily Separator
The indicator has two options to show. You can choose to show just one or each of them
  • Daily Separator by Time Zone with the text from Mon, Tue,… Sunday
  • Daily Separator Vertical Line. You can choose to show separator lines using market time like TradingView Session breaks or using Time Zone

Adding Previous Month Price Levels
With each previous range data (day/week/month), I added options to show or not equilibrium level.

MAGIC BARS - Imbalance Bars
Adding colors settings for down bars & up bars separately

Some other minor upgrades/improvements.
Release Notes:
MAGIC BARS - Imbalance Bars
Adding function. You can also choose to extend or not unfilled imbalance bars.
Release Notes:
As demands from some users. I did a small upgrade for AIO:
  • In addition to the line option, old High/Low levels can now be displayed as small triangles for a cleaner view.
  • Session Equilibrium level added.
  • Session High/Low/EQ Lines can be extended.
  • Fix a bug of the session hours range
Release Notes:
Fix a minor bug
Release Notes:
MAGIC BARS - Trend Bars
Coloring bars based on Moving Average value. It’s really helpful if you want to filter the trend by bar color.

Display POC level of Volume Profile.

The indicator will detect for you whether the market structure shifted or not. There are 2 types: Break of structure (BOS )and Change of Character (CHoCH). This is one of my favorite indicators all the time. It just shows the lines when you really need it, I really love it, so beautiful.
Release Notes:
Fix "The study references too many candles in history." issue. (Only occurs on some users)
Release Notes:
Fix a minor bug: "Pine cannot determine the referencing length of a series."
It occurs on 5m TF of some users.
Release Notes:
Adding one more market structure. I call it Swing Structure, it supports those traders who want to display 2 market structure shifts of 2 periods' values.

Adding 1H & 4H timeframe High/Low/Close/Equilibrium levels. It is suitable for scalping.
Release Notes:
One of my favorite indicators. The bands changed color based on the trend & you can use it as a factor for better analysis. The default period value is 34. You can choose to show/hide the sub-band (the gray one)

How do I use it? I use the trend-band to identify and trade retracements & sub-band for potential profit-taking points. I usually use it with multi-timeframe analysis to find a good entry.

Adding a new option: Magic Bands. Besides you can choose to change bars' color based on Magic Bands Trend.

Adding Common Setting: Labels Size.

Release Notes:
  • From now, the indicator even works on seconds timeframes like 30s, 15s.
  • Timeframes Trend: can choose which time frame to show or not.
  • Remove less used functions to improve performance. (from users' feedback): Direction Box, Linear Regression & Copyright. (If anyone wants to continue using them, I will create a separate indicator for those)
New function. With this, the indicator will show its prediction of whether the price will break the previous high/low with the win rate.
You also can choose to show others' timeframes prediction: 1h, 4h, D, W

Release Notes:
Common Improvements
  • All new UI settings for better usability.
  • Restructure Source code

  • Trend Bar: add many new options to color the candles: Market Structure, MA Cross
  • Add new Volume Imbalance

Add new SMT or Smart Money Technique Divergence. Display divergence between two symbols like S&P500 vs NASDAQ 100.

  • Increase no. of sessions from 3 to 7. The new sessions' default values will be DR, IDR, ODR & OIDR.
  • Improve STD (Standard Deviation) for better usability.
Release Notes:
  • Aggressive Mode added. The indicator will attempt to detect divergence more quickly, but with a risk of false divergence appearing.
  • Add Alert(when divergence detected)
  • Improve STD (Standard Deviation): from now you can show up to 3 STDs for 3 separate sessions.
  • Can choose to show sub-lines for each session including Close & EQ (equilibrium) price lines.
Release Notes:
Minor Improvements to SMT (algo improvement, add timeframe info in alert message ) & Volume Imbalance (add missing patterns)
Release Notes:
New indicators added
  • MA Ribbon
  • VWAP (2 options: anchored & rolling)
    Other minor improvements
Release Notes:
Session STD: option added
Statistic Panel: added. Available for two timeframes: Day & Week
Release Notes:
Fix a minor bug
Release Notes:
Liquidity Sweep Addded
If enabled, the indicator will check the main trend to filter potential Liquidity Sweep or Fake Break of Structure for you.
Release Notes:
Improve Price levels
  • At Time Price Levels: Previous version: only shows today's lines. New version: can show past lines
  • NWOG is added. It can show up to 5 ones.
Magic Bands
Alert is added. From now, you can set an alert each time the price touches the bands.
Release Notes:
Added Protection Lines to Market Structure.
This is my favorite strategy that I have recently come to love.
  • As long as the price is below the blue lines (default setting colors), you should stay short.
  • As long as the price is above the orange lines (default setting colors), you should stay long.
Using them to combine multi-timeframe analysis will bring you a very high win rate, I believe.
Personally, I use a setting value of 2 for market structure 1 on multi-timeframes when trading with this strategy.
Release Notes:
Breakout Prediction: Minor bug fixed.
Market Structure: Minor improvement.
Release Notes:
Minor bug fixed

Contact me in PM or on Telegram: @nguyenthl
Invite-only script

Access to this script is restricted to users authorized by the author and usually requires payment. You can add it to your favorites, but you will only be able to use it after requesting permission and obtaining it from its author. Contact tranholenguyen for more information, or follow the author's instructions below.

TradingView does not suggest paying for a script and using it unless you 100% trust its author and understand how the script works. In many cases you can find a good open-source alternative for free in our Community Scripts.


The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Author's instructions

Get access here: or contact me via email or message (here or on telegram)

Want to use this script on a chart?

Warning: please read before requesting access.