TPO Levels [VAH/POC/VAL] with Poor H/L, Single Prints & NPOCs### 🎯 Advanced Market Profile & Key Level Analysis
This script is a unique and comprehensive technical analysis tool designed to help traders understand market structure, value, and key liquidity levels using the principles of **Auction Market Theory** and **Market Profile**.
This script is unique (and shouldn't be censored) because :
It allows large history of levels to be displayed
Accurate as possible tick size
Doesn't draw a profile but only the actual levels
Supports multi-timeframe levels even on the daily mode giving macro context
There is no indicator out there that does it
While these concepts are universal, this indicator was built primarily for the dynamic, 24/7 nature of the **cryptocurrency market**. It helps you move beyond simple price action to understand *why* the market is moving, which is especially crucial in the volatile crypto space.
### ## 📊 The Concepts Behind the Calculations
To use this script effectively, it's important to understand the core concepts it is built upon. The entire script is self-contained and does not require other indicators.
* **What is Market Profile?**
Market Profile is a unique charting technique that organizes price and time data to reveal market structure. It's built from **Time Price Opportunities (TPOs)**, which are 30-minute periods of market activity. By stacking these TPOs, the script builds a distribution, showing which price levels were most accepted (heavily traded) and which were rejected (lightly traded) during a session.
* **What is the Value Area (VA)?**
The Value Area is the heart of the profile. It represents the price range where **70%** of the session's trading volume occurred. This is considered the "fair value" zone where both buyers and sellers were in general agreement.
* **Point of Control (POC):** The single price level with the most TPOs. This was the most accepted or "fairest" price of the session and acts as a gravitational line for price.
* **Value Area High (VAH):** The upper boundary of the 70% value zone.
* **Value Area Low (VAL):** The lower boundary of the 70% value zone.
VAH and VAL are dynamic support and resistance levels. Trading outside the previous session's value area can signal the start of a new trend.
***
### ## 📈 Key Features Explained
This script automatically calculates and displays the following critical market-generated information:
* **Multi-Timeframe Market Profile**
Automatically draws Daily, Weekly, and Monthly profiles, allowing you to analyze market structure across different time horizons. The script preserves up to 20 historical sessions to provide deep market context.
* **Naked Point of Control (nPOC)**
A "Naked" POC is a Point of Control from a previous session that has **not** been revisited by price. These levels often act as powerful magnets for price, representing areas of unfinished business that the market may seek to retest. The script tracks and displays Daily, Weekly, and Monthly nPOCs until they are touched.
* **Single Prints (Imbalance Zones)**
A Single Print is a price level where only one TPO traded during the session's development. This signifies a rapid, aggressive price move and an imbalanced market. These areas, like gaps in a traditional chart, are frequently revisited as the market seeks to "fill in" these thin parts of the profile.
* **Poor Structure (Unfinished Auctions)**
A **Poor High** or **Poor Low** occurs when the top or bottom of a profile is flat, with two or more TPOs at the extreme price. This suggests that the auction in that direction was weak and inconclusive. These weak structures often signal a high probability that price will eventually break that high or low.
***
### ## 💡 How to Use This Indicator
This tool is not a signal generator but an analytical framework to improve your trading decisions.
1. **Determine Market Context:** Start by asking: Is the current price trading *inside* or *outside* the previous session's Value Area?
* **Inside VA:** The market is in a state of balance or range-bound. Look for trades between the VAH and VAL.
* **Outside VA:** The market is in a state of imbalance and may be starting a trend. Look for continuation or acceptance of prices outside the prior value.
2. **Identify Key Levels:**
* Use historical **nPOCs** as potential profit targets or areas to watch for a price reaction.
* Treat historical **VAH** and **VAL** levels as significant support and resistance zones.
* Note where **Single Prints** are. These are often price magnets that may get "filled" in the future.
3. **Spot Weakness:**
* A **Poor High** suggests weak resistance that may be easily broken.
* A **Poor Low** suggests weak support, signaling a potential for a continued move lower if broken.
***
### ## ⚙️ Customization & Crypto Presets
The indicator is highly customizable, allowing you to change colors, transparency, the number of historical sessions, and more.
To help traders get started quickly, the indicator includes **built-in layout presets** specifically calibrated for major cryptocurrencies: ** BINANCE:BTCUSDT.P , BINANCE:ETHUSDT.P , and BINANCE:SOLUSDT.P **. These presets automatically adjust key visual parameters to better suit the unique price characteristics and volatility of each asset, providing an optimized view right out of the box.
***
### ## ⚠️ Disclaimer
This indicator is a tool for market analysis and should not be interpreted as direct buy or sell signals. It provides information based on historical price action, which does not guarantee future results. Trading involves significant risk, and you should always use proper risk management. This script is designed for use on standard chart types (e.g., Candlesticks, Bar) and may produce misleading information on non-standard charts.
Auctionmarkettheory
Fair Value MSThis indicator introduces rigid rules to familiar concepts to better capture and visualize Market Structure and Areas of Support and Resistance in a way that is both rule-based and reactive to market movements.
Typical "Market Structure" or "Zig-Zag" methods determine swing points based on fixed thresholds (length or percentage). While this does provide rigid structure, the results may be lagging or confusing due to the timing, since it is fixed to static parameters.
I believe the concept of Fair Value Gaps can solve this problem.
As you will notice, there are no length settings in this indicator.
> FVG Market Structure
Fair Value Gaps are a well known concept used to indicate directional intent, forming when price moves aggressively in one direction, leaving behind an imbalance between buyers and sellers. While the term FVG was popularized by ICT, the underlying concept predates them, known historically as imbalances, inefficiencies, or liquidity voids in institutional trading.
Note: For simplicity, in this indicator they'll be called FVGs.
By reading into this, we are able to clearly and rigidly define market structure simply by "looking" at the chart, using objective price events rather than subjective interpretation, or lengths.
By using FVGs to determine structure direction, the length, and speed of identification lies entirely on the market. If an FVG Down occurs immediately after a New Higher High forms, it is reasonable to assume there was a seller at that point, so the script would indicate a New Swing High.
The script is NOT stuck, waiting for a % retrace, or # bars to pass to identify it as such.
Sometimes the market is in a steady trend in a single direction and no FVGs form; therefore, no structure forms. -> Why would we try to impose structure on a clear trend?
Ultimately, the FVG Structure Method uses real reactions from the market to determine Market structure, and is not fixed to specific parameters.
As with other market structure indicators, "Market Structure Breaks" are still identifiable when price moves outside the most recent swing points.
These are helpful to indicate larger direction. In the following section you will see how these help us determine when we should start the search for an "Area of Interest (AOI)".
> Areas of Interest (AOIs)
"Area of Interest (AOI)" is a generalized term, and could refer to many types of zones you might recognize under different names. While the AOIs in this indicator are specialized in their own way, I have chosen to simply use the term "Area of Interest" because it’s more important to understand how they behave and why they exist than to focus on what they’re called.
The goal of an AOI is to point out reasonable areas where buyers or sellers may be staging, as is typical with support and resistance.
In order to reasonably identify these areas, we look for cause and effect relationships. When considering these relationships, it's easier to understand the placement of the points to define each zone.
(Buyer Examples)
Cause: Strong Buyers step in at Swing Low
Effect: Fair Value Gap Forms
Cause: Sustained Buying Pressure
Effect: Market Structure Breaks
In this example, The zone is drawn from the Swing Low, to the Bottom of the FVG closest to the swing point.
In theory, the participation at the swing point was strong and aggressive enough to create the FVG imbalance. Which then found acceptance and continued into a Market Structure Break. So with these AOIs, we are trying to locate the aggressive Buyers or Sellers which were positioned BEFORE the FVG.
These Zones are intended to act as areas to look for reactions from market participants, to judge where price may be going. When revisiting these zones, we look for a reaction or a break, to further provide us information to if the buyers or sellers are still there.
As seen in the screenshot above, The information we gain is not from the creation of these zones, but from the behavior we witness when these zones are revisited.
Technical Note: In this indicator, Market Structure Breaks are only considered when price closes outside the recent swing points. Wicks are not considered as confirmation, therefore are not used to detect structural breaks.
Inside each AOI you can optionally display a readout of the volume which accumulated during the time starting at the swing point and going until the closing bar of the FVG.
Note: We are counting volume until the closing bar of the FVG since the FVG is a 3 bar formation, and aggressive volume is required throughout to create the imbalance.
There are multiple FVGs that typically occur in a single direction, but we do not look to every single one to be indicative of structure, only the first FVG in the opposite direction of the previous direction (which is determined by previous FVGs)
You will probably notice, the AOIs do not form from the closest swing or FVG to the break, this is because we are targeting larger directional changes to draw these AOIs from.
Since they do not always happen perfectly every time, the AOI formation waits for an FVG to occur AND a Market structure break to happen. One without the other will result in no Zone displaying.
> Reflection Lines
While they may seem slightly redundant, Reflection Lines serve as reminders of previous support and resistance pivots. They are drawn at the same Pivots where and AOI is formed, and extend beyond the mitigation of the AOI.
These lines are often points of price to look for "Support Flips", a re-test pattern where price trades through previous support (or resistance) then returns to it and rejects, continuing into a larger move or trend.
Their namesake is based on the behavior of price, "reflecting" at these levels.
The Reflection lines are simple and change color based on price's location.
If price is above, we would typically look to a reflection line in with support in mind.
As a basic filter, these lines use an average price to determine their color, this way they will not change their color as frequently in choppy situations.
> Session Start/End Lines
For analysis purposes and trade review, it is helpful to analyze with context.
For that reason, I have implemented start and end session lines into the indicator, these are helpful when reviewing historical charts to not provide additional context.
By default, they are set to the NYSE Session, but can be changed to fit any needs.
These lines are not advanced, and simply draw a line as the chart passes the start and end of the sessions. It's very likely that you may need to adjust the session for your specific needs.
Note: The Timezone can be adjusted within the code if needed. By Default, the indicator uses "America/New_York" Timezone.
> Conclusion
If you’ve ever felt like your structure tools were confusing or lagging, drawing zones too late, or zones that simply don't make sense, this should feel like a breath of fresh air.
By removing arbitrary length settings and instead using FVGs to define structure and as a basis for AOIs, you're getting a more accurate look at what price is doing and where it's reacting from.
This indicator is rule-based, reactive, and aims to keep things logical without fluff or false confidence.
Enjoy!
Initial Balance Wave MapThis indicator visualizes the Initial Balance (IB) range for any session, marking the first hour's high and low. It includes optional midpoints, extensions (e.g. 1.5x IB, 2x IB), and customizable time windows. Additional features allow users to display session open, high, low, close, and VWAP reference points. Designed to support price action and session structure analysis, it adapts to various global futures and FX market opens. All display elements are optional and fully configurable.
This updated indicator builds upon the open-source foundation by @noop-noop with enhancements and user-facing labels tailored for Auction Market Theory, scalping, and structure-based trade setups.
Key updated Featured: Multiple previous day's IB levels carry forward into the current day's chart, as opposed to just the previous day's levels carrying forward to the new IB time.
🙌 Credits:
This script builds upon the excellent open-source work by @noop-noop. Original script available here .
Rotation Factor for TPO and OHLC (Plot)The Rotation Factor objectively measures attempted market direction(or market sentiment) for a given period. It records the cumulative directional attempts of auction rotations within a given period, thus, helping traders determine which way the market is trying to go and which market participant is exerting greater control or influence.
Theory
The premise is that a greater number of bars auctioning higher contrasted to bars auctioning lower indicates that buyers are exerting greater control over price within the given period(usually daily). In this case, the market is attempting to go higher (Market is Bullish). The same is true for a greater number of bars auctioning lower than higher, which, in this case, indicates that the sellers are exerting greater control over price within the given period and that the market is attempting to go lower (Market is Bearish).
Calculation
Each bar is individually measured in relation to the immediate previous bar, and calculations are reset at the beginning of each period.
For every bar, two variables are utilised: One for the highs and another for the lows. During bar start, these variables are initiated at 0.
As the period progresses, these variables are set accordingly: If the high of the current bar is higher than that of the previous bar, then the bar's highs variable is assigned a "+1". If the opposite is true, it is given a "-1". Finally, if both bar highs are equal, it is, instead, assigned a "0". The same is true for the lows: if the low of the current bar is higher than that of the previous low, then the bar's lows variable is assigned a "+1". Similarly, the opposite is given a "-1", while equal lows causes it to be assigned a "0". All highs and lows are then summed together resulting to a total, which becomes the Rotational Factor.
Presentation
Furthermore, this Rotation Factor Indicator is presented as a plot, which, unlike its classic variation, shows you how the rotation factor is developing. It also includes lines indicating the Top Rotation Factor and the Bottom Rotation Factor individually, the better to observe the developing auction.
Link to the Classic Variation:
Features
1. Customisable Tick Size/Granularity : The calculation tick size/ granularity is customisable which can be accessed through the indicator settings.
2. Customisable Labels and Lines : The colour and sizes used by the labels and lines are customisable the better for accessibility.
3. Period Separator : A separator is rendered to represent period borders (start and end). If separators are already present on your chart, you can remove them from the indicator settings.
4. Individual Top Rotation Factor and Bottom Rotation Factor plots : These two parts which becomes of the Rotation Factor are also presented individually, on their own plots, the better to observe the developing auction.
Works for both split Market Profile(TPO) charts and regular OHLC bars/candle charts
The Rotation Factor is usually used with a Split Market Profile (TPO). However, if no such tool is available, you will still be able to benefit from the Rotation Factor as the price ranges of Split Market Profiles and OHLC bars/candles are one and the same. In such cases, it is recommended that you set your chart to use a 30 minute timeframe and the indicator's period to "daily" to simulate a Split Market Profile.
Note :
The Rotation Factor is, to quote, "by no means not an all-conclusive indication of future market direction.". It only helps determine which way the market is trying to go by objectively measuring the market's directional attempts.
Rotation Factor for TPO and OHLC (Classic)The Rotation Factor objectively measures attempted market direction(or market sentiment) for a given period. It records the cumulative directional attempts of auction rotations within a given period, thus, helping traders determine which way the market is trying to go and which market participant is exerting greater control or influence.
Theory
The premise is that a greater number of bars auctioning higher contrasted to bars auctioning lower indicates that buyers are exerting greater control over price within the given period(usually daily). In this case, the market is attempting to go higher (Market is Bullish). The same is true for a greater number of bars auctioning lower than higher, which, in this case, indicates that the sellers are exerting greater control over price within the given period and that the market is attempting to go lower (Market is Bearish).
Calculation
Each bar is individually measured in relation to the immediate previous bar, and calculations are reset at the beginning of each period.
For every bar, two variables are utilised: One for the highs and another for the lows. During bar start, these variables are initiated at 0.
As the period progresses, these variables are set accordingly: If the high of the current bar is higher than that of the previous bar, then the bar's highs variable is assigned a "+1". If the opposite is true, it is given a "-1". Finally, if both bar highs are equal, it is, instead, assigned a "0". The same is true for the lows: if the low of the current bar is higher than that of the previous low, then the bar's lows variable is assigned a "+1". Similarly, the opposite is given a "-1", while equal lows causes it to be assigned a "0". All highs and lows are then summed together resulting to a total, which becomes the Rotational Factor.
Presentation
Furthermore, this Rotation Factor Indicator is presented as it is calculated, which is the presentation utilised by classic sources (hence the name classic).
Features
1. Customisable Tick Size/Granularity : The calculation tick size/ granularity is customisable which can be accessed through the indicator settings.
2. Customisable Labels : The colour and sizes used by the labels are customisable the better for accessibility.
3. Period Separator : A separator is rendered to represent period borders (start and end). If separators are already present on your chart, you can remove them from the indicator settings.
Works for both split Market Profile(TPO) charts and regular OHLC bars/candle charts
The Rotation Factor is usually used with a Split Market Profile (TPO). However, if no such tool is available, you will still be able to benefit from the Rotation Factor as the price ranges of Split Market Profiles and OHLC bars/candles are one and the same. In such cases, it is recommended that you set your chart to use a 30 minute timeframe and the indicator's period to "daily" to simulate a Split Market Profile.
Note :
The Rotation Factor is, to quote, "by no means not an all-conclusive indication of future market direction.". It only helps determine which way the market is trying to go by objectively measuring the market's directional attempts.
Failed AuctionAs we know, buyers and sellers take part in the market auction.
A failed auction is where price could not tick above or below a specific price. This means that there were no buyers willing to buy or sellers willing to sell beyond that price. Price then moves away in the other direction.
The failed auction acts as a magnet and becomes a target to revisit sooner or later. The failed auction is a successful/finished auction once it has been satisfied.
On the indicator, two adjacent candles with the exact same high or low are marked. The icon will appear on the high or low of the 2nd candle. This notifies us that there was a failed auction.
If you are in a trade, you can use the failed auction to hold onto the trade longer. If you are not in a trade, you should be cautious if a failed auction rests above or below you limit order.
Icons and colours are customisable. An option to have plotted lines for the failed auction is included.
Works on all timeframes.