Liquidity PeaksThe "Liquidity Peaks" indicator is a tool designed to identify significant supply and demand zones based on volumetric analysis. It analyzes the volume profile within a specified lookback range to pinpoint the most volumetric point and draw corresponding zones on the price chart.
The 𝐋𝐢𝐪. 𝐏𝐞𝐚𝐤𝐬 indicator utilizes volume data to identify key supply and demand areas on the price chart. By examining the volume profile within a defined lookback range, it highlights three distinct zones: liquidity grab, volume containment, and the most volumetric point.
Zones and their meanings:
Liquidity grab (Orange box): This zone represents a price level where there is a significant swipe of the previous demand zone within the volume range. It indicates a potential shift in market sentiment and serves as a key supply or demand area.
Volume containment (Gray box): This zone displays the area of volume contained before the peak in volume. It provides insights into the range where buying or selling pressure was concentrated, highlighting potential support or resistance levels.
Most volumetric point (Light blue box): This zone represents the point within the lookback range that exhibits the highest volume. It signifies a significant area of market interest and indicates a potential supply or demand level.
Adjustable options:
Adjust liquidity Grab: This option allows you to adjust the size of the boxes. When enabled, the box size is set to twice the size of the high or low of the candle's wick. This adjustment enhances the visibility and accuracy of identifying swipes at specific price levels.
Show origin: Enabling this option ensures that the liquidity boxes are drawn from the wick they were created from. This provides a clear visual reference to the specific candle and highlights the liquidity levels associated with it.
Utility:
The 𝐋𝐢𝐪. 𝐏𝐞𝐚𝐤𝐬 indicator is a valuable tool for traders and investors seeking to identify significant supply and demand zones in the market. By analyzing volume data and drawing corresponding zones on the chart, it helps to pinpoint areas where buying or selling pressure is likely to emerge.
Traders can utilize this information to identify potential support and resistance levels, plan their entries and exits, and make more informed trading decisions. The liquidity grab zones can act as potential reversal or breakout points, while the volume containment zones and most volumetric points provide insights into areas of high market interest.
It is important to note that this indicator should be used in conjunction with other technical analysis tools and indicators to confirm trading signals and validate market dynamics.
Example Charts:
חפש סקריפטים עבור "demand"
Directional Volume EStimate from Price Action (RedK D_VESPA)The "Directional Volume EStimate from Price Action (RedK D_VESPA)" is another weapon for the VPA (Volume Price Analysis) enthusiasts and traders who like to include volume-based insights & signals to their trading. The basic concept is to estimate the sell and buy split of the traded volume by extrapolating the price action represented by the shape of the associated price bar. We then create and plot an average of these "estimated buy & sell volumes" - the estimated average Net Volume is the balance between these 2 averages.
D_VESPA uses clear visualizations to represent the outcomes in a less distracting and more actionable way.
How does D_VESPA work?
-------------------------------------
The key assumption is that when price moves up, this is caused by "buy" volume (or increasing demand), and when the price moves down, this is due to "selling" volume (or increasing supply). Important to note that we are making our Buy/sell volume estimates here based on the shape of the price bar, and not looking into lower time frame volume data - This is a different approach and is still aligned to the key concepts of VPA.
Originally this work started as an improvement to my Supply/Demand Volume Viewer (V.Viewer) , I ended up re-writing the whole thing after some more research and work on VPA, to improve the estimation, visualization and usability / tradability.
Think of D_VESPA as the "Pro" version of V.Viewer -- and please go back and review the details of V.Viewer as the root concepts are the same so I won't repeat them here (as it comes to exploring Balance Zone and finding Price Convergence/Divergence)
Main Features of D_VESPA
--------------------------------------
- Update Supply/Demand calculation to include 2-bar gaps (improved algo)
- Add multiple options for the moving average (MA type) for the calculation - my preference is to use WMA
- Add option to show Net Volume as 3-color bars
- Visual simplification and improvements to be less distracting & more actionable
- added options to display/hide main visuals while maintaining the status line consistency (Avg Supply, Avg Demand, Avg Net)
- add alerts for NetVol moving into Buy (crosses 0 up) or Sell (crosses 0 down) modes - or swing from one mode to the other
(there are actually 2 sets of alerts, one set for the main NetVol plot, and the other for the secondary TF NetVol - give user more options on how to utilize D_VESPA)
Quick techie piece, how does the estimated buy/sell volume algo work ?
------------------------------------------------------------------------------------------
* per our assumption, buy volume is associated with price up-moves, sell volume is associated with price down-moves
* so each of the bulls and bears will get the equivalent of the top & bottom wicks,
* for up bars, bulls get the value of the "body", else the bears get the "body"
* open gaps are allocated to bulls or bears depending on the gap direction
The below sketch explains how D_VESPA estimates the Buy/Sell Volume split based on the bar shape (including gap) - the example shows a bullish bar with an opening gap up - but the concept is the same for a down-bar or a down-gap.
I kept both the "Volume Weighted" and "2-bar Gap Impact" as options in the indicator settings - these 2 options should be always kept selected. They are there for those who would like to experiment with the difference these changes have on the buy/sell estimation. The indicator will handle cases where there is no volume data for the selected symbol, and in that case, it will simply reflect Average Estimated Bull/Bear ratio of the price bar
The Secondary TF Est Average Net Volume:
---------------------------------------------------------
I added the ability to plot the Estimate Average Net Volume for a secondary timeframe - options 1W, 1D, 1H, or Same as Chart.
- this feature provides traders the confidence to trade the lower timeframes in the same direction as the prevailing "market mode"
- this also adds more MTF support beyond the existing TradingView's built-in MTF support capability - experiment with various settings between exposing the indicator's secondary TF plot, and changing the TF option in the indicator settings.
Note on the secondary TF NetVol plot:
- the secondary TF needs to be set to same as or higher TF than the chart's TF - if not, a warning sign would show and the plot will not be enabled. for example, a day trader may set the secondary TF to 1Hr or 1Day, while looking at 5min or 15min chart. A swing/trend trader who frequently uses the daily chart may set the secondary TF to weekly, and so on..
- the secondary TF NetVol plot is hidden by default and needs to be exposed thru the indicator settings.
the below chart shows D_VESPA on a the same (daily) chart, but with secondary TF plot for the weekly TF enabled
Final Thoughts
-------------------
* RedK D_VESPA is a volume indicator, that estimates buy/sell and net volume averages based on the price action reflected by the shape of the price bars - this can provide more insight on volume compared to the classic volume/VolAverage indicator and assist traders in exploring the market mode (buyers/sellers - bullish/bearish) and align trades to it.
* Because D_VESPA is a volume indicator, it can't be used alone to generate a trading signal - and needs to be combined with other indicators that analysis price value (range), momentum and trend. I recommend to at least combine D_VESPA with a variant of MACD and RSI to get a full view of the price action relative to the prevailing market and the broader trend.
* I found it very useful to take note and "read" how the Est Buy vs Est Sell lines move .. they sort of "tell a story" - experiment with this on your various chart and note the levels of estimate avg demand vs estimate avg supply that this indicator exposes for some very valuable insight about how the chart action is progressing. Please feel free to share feedback below.
FluidTrades - SMC Lite
Price action and supply and demand is a key strategy use in trading. We wanted it to be easy and efficient for user to identify these zones, so the user can focus less on marking up charts and focus more on executing trades.
This indicator shows you supply and demand zones by using pivot points to show you the recent highs and the recent lows.
Features
This indicator includes some features relevant to SMC , these are highlighted below:
Full internal & swing market structure labeling in real-time
Swing Structure: Displays the swing structure labels & solid lines on the chart (BOS).
Supply & demand ( bullish & bearish )
Swing Points: Displays swing points labels on chart such as HH, HL, LH, LL.
Options to style the indicator to more easily display these concepts
White OB (supply): search for short opportunities
Blue OB (demand): search for long opportunities
Break of structure ( BOS )
For markets to move up and down a break in market structure must occur. A break in market structure occurs when the market begins to shift direction and break the previous HH and HL or HL and LL of the market. We also integrated the feature that you can see the BOS lines. In the indicator settings you can adjust the color of the label.
Settings
SwingHigh/Low Length: Allows the user to select Historical (default) or Present, which displays only recent data on the chart.
Supply/demand box width: Allows user to change the size of the supply and demand box
History to keep: allows the user to select how many most recent supply & demand box appear on the chart.
Visual settings
Show zig zag : allow user to see market patters within the market
Show price action labels: allow user to turn on/off the (swing points)
Supply box color : allow users to change the color of their supply box
Demand box color : allow users to change the color of their supply box
Bos label color : allow users to change the color of their BOS label
Poi label color : allow user to change the color of their POI label
Price action label : allow users to change the color of their swing points labels
Zig zag color : allow users to change the color of the zig/zag market patters
Warning
Never blindly take a trade on a supply/demand box - wait for a proper market structure to occur before considering a trade.
Gap ZonesSharing a simple gap zone identifier, simply detects gap up/down areas and plots them for visual reference. Calculation uses new candle open compared to previous candle close and draws the zone, a mid point is plotted also as far too often it's significance is proven effective.
Works on any timeframe and market though I recommend utilizing timeframes such as weekly or daily for viewing at lower timeframes such as 5, 15 or 30 minutes.
Often price is observed reaching towards zone high/mid/low before rejection/bouncing. These gap zones can give quantitative basis for trade management.
Future features may include alerts based on price crossing up/down gap low, mid and highs. Feel free to message with any other suggestions.
SuperTrend Support & Resistance(My goal creating this indicator) : Provide a way to categorize and label key structures on multiple time frames so I can create a plan based on those observable facts.
The Underlying Concept / What is Momentum?
The Momentum shown is derived from a Mathematical Formula, SUPERTREND. When price closes above Supertrend Its bullish Momentum when its below Supertrend its Bearish Momentum. On the first bar bearish momentum is detected a resistance Level is made at the highest point of the previous bullish condition. On the first bar bullish momentum is detected a support Level is made at the lowest point of the previous bearish condition. As I become a better analyst I will find better techniques and this source code may become open-source, but as of now it remains protected. This indicator scans for bullish & bearish Momentum on the Timeframes selected by the user and when there is a shift in momentum on any of those time frames (price closes below or above SUPERTREND ) it notifies the trader with a Supply or Demand level with a unique color and Size to signify the severity of said level.
What is Severity?
Severity is How we differentiate the importance of different Highs and Lows. If Momentum is detected on a higher timeframe the Supply or Demand Level is updated. The Color and Size representing that higher timeframe will be shown. Demand and Supply Levels made by higher Timeframes are more SEVERE then a demand level made by a lower Timeframe.
Technical Inputs
- If you want to optimize the rate of signals to better fit your trading plan you would change the Factor input and ATR Length input. Increase factor and ATR Length to decrease the frequency of signals and decrease the Factor and ATR Length to increase the frequency of signals.
- to ensure the correct calculation of Support and Resistance levels change BAR_INDEX. BAR_INDEX creates a buffer at the start of the chart. For example: If you set BAR_INDEX to 300. The script will wait for 300 bars to elapse on the current chart before running. This allows the script more time to gather data. Which is needed in order for our dynamic lookback length to never return an error(Dynamic lookback length cant be negative or zero). The lower the timeframe the greater the amount of bars need. For Example if I open up a 30 sec chart I would enter 5000 as my BAR_INDEX since that will provide enough data to ensure the correct calculation of Support and Resistance levels.
Time Frame Inputs
- The indicator has 3 Time Frame Displays where you can choose how SEVERE You want the Supply and Demand Levels. For Example: 1min, 3min, 5min, 15 min Levels, 60 min levels Weekly Levels, etc.....The higher the Timeframe Selected the more SEVERE the Level.
- Use the Amount of time Frames input to increase or limit the amount of time frames that will be displayed onto the chart.
Display Inputs
- The toggle (Trend or Basic) option Lets the trend determine the colors of the Support and Resistance Levels or Basic where the color is strictly based on if its a high or a low ( Trend = HH,HL,LL,LH)
- Toggle options (Close) and (High & Low) creates Support and Resistance Levels using the Lowest close and Highest close or using the Lowest low and Highest high.
Toggle on both or toggle off both in order to use both these values when determining the trend of your chart. For Example this would mean (Price has to close higher then the highest high. Not only make a higher high or a
higher close) and the inverse (Price has to close lower then the lowest low. Not only make a lower low or a lower close)
How Trend Is being Determined ?
(Previous Supply Level > Current Supply Level ) if this statement is true then its s LH so the trend is bearish if this statement is false then its a HH so the trend is bullish
(Previous Demand Level > Current Demand Level ) if this statement is true then its a LL so the trend is bearish if this statement is false then its a HL so the trend is bullish
(Close > Current Supply Level ) if this statement is true technically price made a HH so the trend is bullish
(Close < Current Demand Level ) if this statement is true technically price made a LL so the trend is bearish
- Fully customize how you display and label Market Structure in specific timeframes. Line Length, Line Width, Line Style, Label Distance, Label Size, Label Background Size, and Background Color can all be customized.
- Lastly Is the Trend Chart. To Easily verify the current trend of any timeframes displayed by this indicator toggle on Chart On/Off . You also get the option to change the Chart Position and the size of the Trend Chart
*****The Current charts timeframe has to lower then a month to ensure correct calculation of Supply and Demand Levels*****
How it can be used ?
(Examples of Different ways you can use this indicator) : Easily categorize the severity of each and every Supply or Demand Level in the market (The higher the time frame the stronger the level)
: Quickly Determine the trend of any Timeframe
: Get a consistent view of a market and how different time frames are behaving but just use one chart.
: Take the discretion from hand drawing support and resistance lines out of your trading
: Find and categorize strong levels for potential breakouts
: Trend Analysis, Use multiple time frames to create a narrative based on observable facts from these time frames
: Different Targets to take money off the table
: Use labels to differentiate between different trend line setups
: Find Great places to move your stop loss too.
Mark LevelsMark Levels is marking liquidity pools by drawing lines on their pivots and labelling them so that you can instantly detect them on your realtime chart
It supports:
- marking previous and current day lows and highs
- marking previous and current week lows and highs
- marking previous and current month lows and highs
- marking equal lows and highs
technically it re-builds them on the last bar or as soon as new realtime bar is updated. it looks with 1k bars back to find higher timeframe ranges and find lows and highs there
Adjustments:
- changing the line style of the group
- changing the lines color and the labels on the groups
- currently pools are split on 2 groups Period Liquidity and Equal Pivots Liquidity.
Refracted EMARefracted EMA is a price based indicator with bands that is built on moving average.
The price range between the bands directly depends on relationship of Average True Range to Moving Average. This gives us very valuable variable constant that changes with the market moves.
So the bands expand and contract due to changes in volatility of the market, which makes this tool very flexible exposing psychological levels.
Customizable Pivot Support/Resistance Zones [MyTradingCoder]This script uses the standard pivot-high/pivot-low built-in methods to identify pivot points on the chart as a base calculation for the zones. Rather than displaying basic lines, it displays a zone from the original pivot point to the closest part of the available body on the same candle. The script comes in handy by utilizing Pinescripts available input.source() function to allow for an external indicators output value to be used within the indicator. Make sure to read all of the TOOLTIPS in the indicator settings menu to get a full understanding of what each setting does, and how it can affect the results that end up on the chart.
By enabling the custom filter in the indicator settings, you will notice you have the ability to filter out zones using an external indicator such as an RSI. Maybe you only want zones to be calculated/drawn when the RSI is overbought or oversold, or maybe you only want the zones to calculate/draw if the Supertrend is green or red. The list of possible filters that you can implement is too many to count. Feel free to play around with the indicator however you like, and configure something that you find to be the most useful for your trading.
On top of everything listed above, the indicator has pre-programmed built-in alertconditions so that you can potentially automate trading, or get a notification to your cell phone when a zone is being touched/broken.
Phantom - My Session RangeThis is a modification of a script by RobMinty, "FXN - Asian Session Range" The script provides functionality to track specific trading sessions based on user preference rather than just the market sessions open and close. The idea is to help you hold yourself accountable to your specific trading times as well as backtest various marketing timings suitable to your schedule.
This script utilizes RobMinty's pine code to visualize your market session. We have adjusted the script to project the end of the session before the candles print - as well as adding/subtracting the horizontal and/or vertical lines around the current session box. This should help you understand how much time you have left in your session with a quick visual representation. While we have made some additions and adjustments to RobMinty's script- The inputs and functions of the combined script have not changed significantly from the originals. Like the originals, the code has been made open-source. If this script is reused or modified, please provide credit to RobMinty. If you plan to use this specific code with the ability to remove lines from the box and project session end forward, please credit both of us.
Volume-based Support & Resistance ZonesThe new and improved Support & Resistance Zones indicator is here. This indicator is based on high volume at fractal lows or fractal highs with the zones based on the size of the wick for that timeframe’s candle.
This helps traders visualize which price levels are of the most significance for either reversals or continuation of the trend when zones are broken and then re-tested.
Original script is thanks to synapticex and additional modifications is thanks to Lij_MC. Credit to both of them for most of the logic behind this script.
Since then I have made many changes to this script as noted below:
Changed default S/R lines from plots to lines, and gave option to user to change between solid line, dashed line, or dotted line for both S/R lines.
Added additional time frame and gave more TF options for TF1 other than current TF. Now you will have 4 time frames to plot S/R zones from.
Gave user option to easily change line thickness for all S/R lines.
Made it easier to change colors of S/R lines and zones by consolidating the options under settings (rather than under style).
Added extensions to active SR Zones to extend all the way right.
Added option to extend or not extend the previous S/R zones up to next S/R zone.
Added optional time frame labels to active S/R zones, with left and right options as well as option to adjust how far to the right label is set.
Fixed issue where the higher time frame S/R zone was not properly starting from the high/low of fractal. Now any higher time frame S/R will begin exactly at the High/Low points. Note that this may not work perfectly on stocks and if a fractal high/low is too many bars in the past, it will revert to a default max bars back to avoid script errors.
Added to script a function that will prevent S/R zones from lower time frames displaying while on a higher time frame. This helps clean up the chart quite a bit.
Created arrays for each time frame's boxes and lines so that the number of S/R zones can be controlled for each time frame and limit memory consumption.
New alert options added and customized alert messages.
- The way this indicator works is it looks for fractal highs or fractal lows with volume that pierces above the volume's Moving Average. This moving average value can be modified in the settings for each time frame.
- The fractal highs will be confirmed with 3 successive higher highs followed by 2 successive lower highs and vice versa for the fractal lows.
- The zone is created from the fractal high/low and the close of the candle for whatever time frame you selected. The bigger the zone, the more significant that zone is.
- You can disable any zone, change the zones to show lines only, and modify all the colors, transparencies, and thickness of lines for all the zones.
- To create alerts, you first want to enable the types of alerts you want for each time frame in the indicator's settings. Then after you apply changes, right click on one of the zones on the chart, and click "Add Alert on Vol S/R Zones". You do not need to add a title as the correct alert messages are already built-in.
- More changes will be coming in the future!
I hope you find this indicator useful, if so please give it a thumbs up!
If you have any suggestions or features you would like to see, just let me know in the comment section. Thanks and enjoy!
Divina - Support and ResistanceGiven the positive feedback received on the first Dynamic Support/Resistance script, I've decided to rewrite it on Pine Script v5 and publish it with open source code.
The main Divina area (box) is derived from change in price and volume, while the other support and resistance levels are based on the golden ratio (Divina proportione) or Fibonacci numbers.
The box will start to paint if the previous closed bar satisfy a condition and it will be never be repainted in the future. Anyway the box and the levels will be extended until a new signal is detected.
The Divina Support and Resistance will help you to find good price zones on wich the market might take trading decision. It is not a strategy by per se, it should be used with other good trading techniques.
SD-Break
The supply trend line and the demand trend line are used to judge the main trend trend, and the supply and demand trend line is used to judge the local supply and demand intensity. When the supply and demand channel is located under the supply and demand trend channel, it is a strong downward trend; when the supply and demand channel is located above the supply and demand trend channel, it is a strong upward trend.In an uptrend, when the candle chart shows a significant uprush and the closing price has not been able to break through the supply line since then, we think the uptrend will present a red flag.In a downtrend, when the candle chart has a significant downtrend rebound and the closing price has not been able to break the demand line since then, we believe that the downtrend will be reversed.
[PX] Lookback LevelHey guys,
this indicator detects support and resistance level based on the number of times a level got tested in a certain range.
How does it work?
In the user input settings, you will be able to choose between two modes "Tested Level" and "Untested Level".
"Tested Level" will be detected by the number of times a certain low or high got tested in the "Lookback"-range, while fitting in the "Deviation"-range of the specific high or low. A crossing of the level is allowed. The "Untested Level" work the same way, but crossings of the level will eliminate it.
The indicator is highly dependent on which input you will use. Please play around with the settings and see how it works on different timeframes and symbols.
As always, it comes with styling options for the levels.
If some of you find it useful, please leave a like and hit the follow button :)
Happy trading,
paaax
[PX] VWAP Gap LevelHello guys,
another day, another method for detecting support and resistance level. This time it's all about the VWAP and daily gaps it might produce.
How does it work?
The indicator detects when a new daily candle begins and the VWAP makes a big move in either direction. Often it produces a gap and this is where the support or resistance level will be plotted. The idea behind it is, that those gaps get filled at some point in time. You can control how big a VWAP movement ("gap") has to be with the "VWAP Movement %" -setting. Also, you can adjust the style of the level.
If you find this indicator useful, please leave a "like" and hit that "follow" button :)
Have fun and happy trading :)))
[PX] MTF Standard Deviation LevelHello guys,
once again, I want to show you a different method for detecting support and resistance level. Today's approach is similar to the one I posted recently, but the way the level will be detected is different. I call it the multi-timeframe standard deviation level.
How does it work?
The method is similar to the way Bollinger Bands work. First, the indicator calculates the standard deviation, which can be influenced by the "Sensitivity"- and "Length"-setting.
Sensitiitiy - the higher the value, the fewer level will be shown
Length - simply the length for the standard deviation formula
Second, the detected value will be added (for resistance level) or substracted (for support level) from the current close. Once the upper or lower boundaries are crossed, a level will appear and keeps moving until the up- or downward movement finishes. Then the level will settle and stay in place.
Again, as seen in my previous indicator, you can control all the different styles and colors for the levels. The best part is, the whole thing works in a multi-timeframe fashion. In an example, you could select the "Daily" level and plot them on a 4-hour chart.
If you find this indicator useful, please leave a "like" and hit that "follow" button :)
Have fun, happy trading and once again Merry Christmas :)))
BBPivotIt can helps you to see BB pivots . It's based on bollinger bands .
Best Settings: (20,3) - (50,2)
Cheers :)
Dynamic SUPRES Multi Timeframe UpdateDynamic SUPRES can be interpreted in different ways. Each square marks an area of congestion that could serve as support and resistance.
FLASH UPDATE: Now is possible to choose the timeframe and the bars color on/off.
Dynamic SUPRESDynamic SUPRES can be interpreted in different ways. Each square marks an area of congestion that could serve as support and resistance.
Simple Turnover (Enhanced v2)📊 Simple Turnover (Enhanced)
🔹 Overview
The Simple Turnover Indicator calculates a stock’s turnover by combining both price and volume, and then compares it against quarterly highs. This helps traders quickly gauge whether market participation in a move is strong enough to confirm a breakout, or weak and likely to be false.
Unlike volume alone, turnover considers both traded volume and price level, giving a truer reflection of capital flow in/out of a stock.
________________________________________
🔹 Formulae Used
1. Average Price (SMA)
AvgPrice=SMA(Close,n)
2. Average Volume (SMA)
AvgVol=SMA(Volume,n)
3. Turnover (Raw)
Turnover raw=AvgPrice × AvgVol
4. Unit Adjustment
• If Millions → Turnover = Turnover raw × 10^−6
• If Crores → Turnover = Turnover raw × 10^−7
• If Raw → Turnover = Turnover raw
5. Quarterly High Turnover (qHigh)
Within each calendar quarter (Jan–Mar, Apr–Jun, Jul–Sep, Oct–Dec), we track the maximum turnover seen:
qHigh=max (Turnover within current quarter)
________________________________________
🔹 Visualization
• Bars → Color follows price candle:
o Green if Close ≥ Open
o Red if Close < Open
• Blue Line → Rolling Quarterly High Turnover (qHigh)
________________________________________
🔹 Strategy Use Case
The Simple Turnover Indicator is most effective for confirming true vs false breakouts.
• A true breakout should be supported by increasing turnover, showing real capital backing the move.
• A false breakout often occurs with weak or declining turnover, suggesting lack of conviction.
📌 Example Strategy (3H timeframe):
1. Identify a demand zone using your preferred supply-demand indicator.
2. From this demand zone, monitor turnover bars.
3. A potential long entry is validated when:
o The current turnover bar is at least 20% higher than the previous one or two bars.
o Example setting: SMA length = 5 (i.e., turnover = 5-bar average close × 5-bar average volume).
4. This confirms strong participation in the move, increasing probability of a sustained breakout.
________________________________________
🔹 Disclaimer
⚠️ This indicator/strategy does not guarantee 100% accurate results.
It is intended to improve the probability of identifying true breakouts.
The actual success of the strategy will depend on price action, market momentum, and prevailing market conditions.
Always use this as a supporting tool along with broader trading analysis and risk management.
DeltaFlow Volume Profile [BigBeluga]🔵 OVERVIEW
The DeltaFlow Volume Profile builds a compact volume profile next to price and enriches every bin with flow context : bullish vs. bearish participation (%), a per-bin Delta % , an optional Delta Heat Map , and a PoC band with the bin’s absolute volume. This lets you see not just where volume clustered, but who (buyers or sellers) dominated inside each price slice.
🔵 CONCEPTS
Binned Volume Profile : Price range over a user-defined LookBack is split into Bins ; each bin aggregates traded volume.
Bull/Bear Split : Within every bin, volume is separated by candle direction into Bull Volume and Bear Volume , then normalized to % of the bin’s displayed size.
Delta % : The difference between Bull % and Bear % for the bin. Positive = buyer dominance; negative = seller dominance.
Delta Heat Map : Bin background shading that scales with both total volume strength and delta bias.
PoC (Point of Control) : The most significant bin gets a PoC band and a label with its absolute volume.
🔵 FEATURES
Profile with Flow : A clean horizontal volume bar per bin plus stacked Bull % and Bear % .
Per-Bin Delta Label : A readable “Δ xx%” tag at the start of each bin shows dominance at a glance.
Delta Heat Map : Optional gradient that intensifies with higher volume and stronger delta.
PoC Highlight : Optional PoC band colored separately, labeled with absolute volume (e.g., “1.23M”).
Configurable Inputs : LookBack, number of Bins (10–100), toggles for Delta, Heat Map, Volume Bars, and PoC color.
Readable Colors : Separate inputs for bullish (volume +) and bearish (volume –) hues.
🔵 HOW TO USE
Set the window : Choose LookBack and Bins to balance detail vs. performance (more bins = finer resolution).
Enable “Volume Bars” to display the bull/bear split as two stacked percent bars inside each bin.
High Bull % near support → constructive demand.
High Bear % near resistance → active supply.
Use Δ labels (toggle “Delta”) to quickly spot bins with clear buyer/seller control; combine with price position for confluence.
Turn on Delta Heat Map to prioritize areas with both large volume and strong imbalance.
Watch the PoC : The PoC band marks the most traded (and often magnet) level; its label shows absolute size for context.
Trade ideas :
Breakout continuation when Δ stays positive across consecutive upper bins.
Reversion risk when price enters a large bearish-Δ cluster below.
Manage risk around the PoC; reactions there can be sharp.
🔵 CONCLUSION
DeltaFlow Volume Profile upgrades a classic profile with flow intelligence. The bull/bear split, explicit Δ %, heat-weighted backdrop, and PoC volume label make dominant participation and key price shelves obvious. Use it to filter levels, time entries with imbalance, and validate breakouts or fades with objective volume-flow evidence.
Hilega Milega v6 - Pure EMA/SMA (Nitesh Kumar) + Full BacktestHilega to milega
he Hilega Milega Strategy, inspired by the technique of Nitesh Kumar, is designed for intraday and swing traders who want structured entries and exits with clear demand–supply logic.
🔑 Core Features
Demand & Supply Zones – Automatically plots potential strong buying and selling zones for high-probability trades.
Trend Identification – Uses a blend of EMAs/SMA crossovers to identify bullish and bearish market bias.
Buy & Sell Signals – Generates real-time visual signals based on “Hilega Milega” rules for quick decision-making.
Risk Management – Suggested stop-loss levels are derived from recent demand–supply areas to minimize drawdowns.
Backtesting Enabled – Traders can test the performance across multiple assets (stocks, forex, crypto, commodities).
📊 How It Works
Buy Signal → When price action confirms a bullish zone with supporting trend filters.
Sell Signal → When price action confirms a bearish zone or reversal pattern.
Flat/Exit → Position closed when opposite signal triggers or demand–supply imbalance fades.
⚡ Best Use Cases
Intraday trading (5m, 15m, 1H charts).
Swing trading (4H, Daily charts).
Works across stocks, crypto, commodities, and forex.
⚠️ Disclaimer: This strategy is for educational purposes. Backtest thoroughly and apply proper risk management before live trading.
ATAI Volume analysis with price action V 1.00ATAI Volume Analysis with Price Action
1. Introduction
1.1 Overview
ATAI Volume Analysis with Price Action is a composite indicator designed for TradingView. It combines per‑side volume data —that is, how much buying and selling occurs during each bar—with standard price‑structure elements such as swings, trend lines and support/resistance. By blending these elements the script aims to help a trader understand which side is in control, whether a breakout is genuine, when markets are potentially exhausted and where liquidity providers might be active.
The indicator is built around TradingView’s up/down volume feed accessed via the TradingView/ta/10 library. The following excerpt from the script illustrates how this feed is configured:
import TradingView/ta/10 as tvta
// Determine lower timeframe string based on user choice and chart resolution
string lower_tf_breakout = use_custom_tf_input ? custom_tf_input :
timeframe.isseconds ? "1S" :
timeframe.isintraday ? "1" :
timeframe.isdaily ? "5" : "60"
// Request up/down volume (both positive)
= tvta.requestUpAndDownVolume(lower_tf_breakout)
Lower‑timeframe selection. If you do not specify a custom lower timeframe, the script chooses a default based on your chart resolution: 1 second for second charts, 1 minute for intraday charts, 5 minutes for daily charts and 60 minutes for anything longer. Smaller intervals provide a more precise view of buyer and seller flow but cover fewer bars. Larger intervals cover more history at the cost of granularity.
Tick vs. time bars. Many trading platforms offer a tick / intrabar calculation mode that updates an indicator on every trade rather than only on bar close. Turning on one‑tick calculation will give the most accurate split between buy and sell volume on the current bar, but it typically reduces the amount of historical data available. For the highest fidelity in live trading you can enable this mode; for studying longer histories you might prefer to disable it. When volume data is completely unavailable (some instruments and crypto pairs), all modules that rely on it will remain silent and only the price‑structure backbone will operate.
Figure caption, Each panel shows the indicator’s info table for a different volume sampling interval. In the left chart, the parentheses “(5)” beside the buy‑volume figure denote that the script is aggregating volume over five‑minute bars; the center chart uses “(1)” for one‑minute bars; and the right chart uses “(1T)” for a one‑tick interval. These notations tell you which lower timeframe is driving the volume calculations. Shorter intervals such as 1 minute or 1 tick provide finer detail on buyer and seller flow, but they cover fewer bars; longer intervals like five‑minute bars smooth the data and give more history.
Figure caption, The values in parentheses inside the info table come directly from the Breakout — Settings. The first row shows the custom lower-timeframe used for volume calculations (e.g., “(1)”, “(5)”, or “(1T)”)
2. Price‑Structure Backbone
Even without volume, the indicator draws structural features that underpin all other modules. These features are always on and serve as the reference levels for subsequent calculations.
2.1 What it draws
• Pivots: Swing highs and lows are detected using the pivot_left_input and pivot_right_input settings. A pivot high is identified when the high recorded pivot_right_input bars ago exceeds the highs of the preceding pivot_left_input bars and is also higher than (or equal to) the highs of the subsequent pivot_right_input bars; pivot lows follow the inverse logic. The indicator retains only a fixed number of such pivot points per side, as defined by point_count_input, discarding the oldest ones when the limit is exceeded.
• Trend lines: For each side, the indicator connects the earliest stored pivot and the most recent pivot (oldest high to newest high, and oldest low to newest low). When a new pivot is added or an old one drops out of the lookback window, the line’s endpoints—and therefore its slope—are recalculated accordingly.
• Horizontal support/resistance: The highest high and lowest low within the lookback window defined by length_input are plotted as horizontal dashed lines. These serve as short‑term support and resistance levels.
• Ranked labels: If showPivotLabels is enabled the indicator prints labels such as “HH1”, “HH2”, “LL1” and “LL2” near each pivot. The ranking is determined by comparing the price of each stored pivot: HH1 is the highest high, HH2 is the second highest, and so on; LL1 is the lowest low, LL2 is the second lowest. In the case of equal prices the newer pivot gets the better rank. Labels are offset from price using ½ × ATR × label_atr_multiplier, with the ATR length defined by label_atr_len_input. A dotted connector links each label to the candle’s wick.
2.2 Key settings
• length_input: Window length for finding the highest and lowest values and for determining trend line endpoints. A larger value considers more history and will generate longer trend lines and S/R levels.
• pivot_left_input, pivot_right_input: Strictness of swing confirmation. Higher values require more bars on either side to form a pivot; lower values create more pivots but may include minor swings.
• point_count_input: How many pivots are kept in memory on each side. When new pivots exceed this number the oldest ones are discarded.
• label_atr_len_input and label_atr_multiplier: Determine how far pivot labels are offset from the bar using ATR. Increasing the multiplier moves labels further away from price.
• Styling inputs for trend lines, horizontal lines and labels (color, width and line style).
Figure caption, The chart illustrates how the indicator’s price‑structure backbone operates. In this daily example, the script scans for bars where the high (or low) pivot_right_input bars back is higher (or lower) than the preceding pivot_left_input bars and higher or lower than the subsequent pivot_right_input bars; only those bars are marked as pivots.
These pivot points are stored and ranked: the highest high is labelled “HH1”, the second‑highest “HH2”, and so on, while lows are marked “LL1”, “LL2”, etc. Each label is offset from the price by half of an ATR‑based distance to keep the chart clear, and a dotted connector links the label to the actual candle.
The red diagonal line connects the earliest and latest stored high pivots, and the green line does the same for low pivots; when a new pivot is added or an old one drops out of the lookback window, the end‑points and slopes adjust accordingly. Dashed horizontal lines mark the highest high and lowest low within the current lookback window, providing visual support and resistance levels. Together, these elements form the structural backbone that other modules reference, even when volume data is unavailable.
3. Breakout Module
3.1 Concept
This module confirms that a price break beyond a recent high or low is supported by a genuine shift in buying or selling pressure. It requires price to clear the highest high (“HH1”) or lowest low (“LL1”) and, simultaneously, that the winning side shows a significant volume spike, dominance and ranking. Only when all volume and price conditions pass is a breakout labelled.
3.2 Inputs
• lookback_break_input : This controls the number of bars used to compute moving averages and percentiles for volume. A larger value smooths the averages and percentiles but makes the indicator respond more slowly.
• vol_mult_input : The “spike” multiplier; the current buy or sell volume must be at least this multiple of its moving average over the lookback window to qualify as a breakout.
• rank_threshold_input (0–100) : Defines a volume percentile cutoff: the current buyer/seller volume must be in the top (100−threshold)%(100−threshold)% of all volumes within the lookback window. For example, if set to 80, the current volume must be in the top 20 % of the lookback distribution.
• ratio_threshold_input (0–1) : Specifies the minimum share of total volume that the buyer (for a bullish breakout) or seller (for bearish) must hold on the current bar; the code also requires that the cumulative buyer volume over the lookback window exceeds the seller volume (and vice versa for bearish cases).
• use_custom_tf_input / custom_tf_input : When enabled, these inputs override the automatic choice of lower timeframe for up/down volume; otherwise the script selects a sensible default based on the chart’s timeframe.
• Label appearance settings : Separate options control the ATR-based offset length, offset multiplier, label size and colors for bullish and bearish breakout labels, as well as the connector style and width.
3.3 Detection logic
1. Data preparation : Retrieve per‑side volume from the lower timeframe and take absolute values. Build rolling arrays of the last lookback_break_input values to compute simple moving averages (SMAs), cumulative sums and percentile ranks for buy and sell volume.
2. Volume spike: A spike is flagged when the current buy (or, in the bearish case, sell) volume is at least vol_mult_input times its SMA over the lookback window.
3. Dominance test: The buyer’s (or seller’s) share of total volume on the current bar must meet or exceed ratio_threshold_input. In addition, the cumulative sum of buyer volume over the window must exceed the cumulative sum of seller volume for a bullish breakout (and vice versa for bearish). A separate requirement checks the sign of delta: for bullish breakouts delta_breakout must be non‑negative; for bearish breakouts it must be non‑positive.
4. Percentile rank: The current volume must fall within the top (100 – rank_threshold_input) percent of the lookback distribution—ensuring that the spike is unusually large relative to recent history.
5. Price test: For a bullish signal, the closing price must close above the highest pivot (HH1); for a bearish signal, the close must be below the lowest pivot (LL1).
6. Labeling: When all conditions above are satisfied, the indicator prints “Breakout ↑” above the bar (bullish) or “Breakout ↓” below the bar (bearish). Labels are offset using half of an ATR‑based distance and linked to the candle with a dotted connector.
Figure caption, (Breakout ↑ example) , On this daily chart, price pushes above the red trendline and the highest prior pivot (HH1). The indicator recognizes this as a valid breakout because the buyer‑side volume on the lower timeframe spikes above its recent moving average and buyers dominate the volume statistics over the lookback period; when combined with a close above HH1, this satisfies the breakout conditions. The “Breakout ↑” label appears above the candle, and the info table highlights that up‑volume is elevated relative to its 11‑bar average, buyer share exceeds the dominance threshold and money‑flow metrics support the move.
Figure caption, In this daily example, price breaks below the lowest pivot (LL1) and the lower green trendline. The indicator identifies this as a bearish breakout because sell‑side volume is sharply elevated—about twice its 11‑bar average—and sellers dominate both the bar and the lookback window. With the close falling below LL1, the script triggers a Breakout ↓ label and marks the corresponding row in the info table, which shows strong down volume, negative delta and a seller share comfortably above the dominance threshold.
4. Market Phase Module (Volume Only)
4.1 Concept
Not all markets trend; many cycle between periods of accumulation (buying pressure building up), distribution (selling pressure dominating) and neutral behavior. This module classifies the current bar into one of these phases without using ATR , relying solely on buyer and seller volume statistics. It looks at net flows, ratio changes and an OBV‑like cumulative line with dual‑reference (1‑ and 2‑bar) trends. The result is displayed both as on‑chart labels and in a dedicated row of the info table.
4.2 Inputs
• phase_period_len: Number of bars over which to compute sums and ratios for phase detection.
• phase_ratio_thresh : Minimum buyer share (for accumulation) or minimum seller share (for distribution, derived as 1 − phase_ratio_thresh) of the total volume.
• strict_mode: When enabled, both the 1‑bar and 2‑bar changes in each statistic must agree on the direction (strict confirmation); when disabled, only one of the two references needs to agree (looser confirmation).
• Color customisation for info table cells and label styling for accumulation and distribution phases, including ATR length, multiplier, label size, colors and connector styles.
• show_phase_module: Toggles the entire phase detection subsystem.
• show_phase_labels: Controls whether on‑chart labels are drawn when accumulation or distribution is detected.
4.3 Detection logic
The module computes three families of statistics over the volume window defined by phase_period_len:
1. Net sum (buyers minus sellers): net_sum_phase = Σ(buy) − Σ(sell). A positive value indicates a predominance of buyers. The code also computes the differences between the current value and the values 1 and 2 bars ago (d_net_1, d_net_2) to derive up/down trends.
2. Buyer ratio: The instantaneous ratio TF_buy_breakout / TF_tot_breakout and the window ratio Σ(buy) / Σ(total). The current ratio must exceed phase_ratio_thresh for accumulation or fall below 1 − phase_ratio_thresh for distribution. The first and second differences of the window ratio (d_ratio_1, d_ratio_2) determine trend direction.
3. OBV‑like cumulative net flow: An on‑balance volume analogue obv_net_phase increments by TF_buy_breakout − TF_sell_breakout each bar. Its differences over the last 1 and 2 bars (d_obv_1, d_obv_2) provide trend clues.
The algorithm then combines these signals:
• For strict mode , accumulation requires: (a) current ratio ≥ threshold, (b) cumulative ratio ≥ threshold, (c) both ratio differences ≥ 0, (d) net sum differences ≥ 0, and (e) OBV differences ≥ 0. Distribution is the mirror case.
• For loose mode , it relaxes the directional tests: either the 1‑ or the 2‑bar difference needs to agree in each category.
If all conditions for accumulation are satisfied, the phase is labelled “Accumulation” ; if all conditions for distribution are satisfied, it’s labelled “Distribution” ; otherwise the phase is “Neutral” .
4.4 Outputs
• Info table row : Row 8 displays “Market Phase (Vol)” on the left and the detected phase (Accumulation, Distribution or Neutral) on the right. The text colour of both cells matches a user‑selectable palette (typically green for accumulation, red for distribution and grey for neutral).
• On‑chart labels : When show_phase_labels is enabled and a phase persists for at least one bar, the module prints a label above the bar ( “Accum” ) or below the bar ( “Dist” ) with a dashed or dotted connector. The label is offset using ATR based on phase_label_atr_len_input and phase_label_multiplier and is styled according to user preferences.
Figure caption, The chart displays a red “Dist” label above a particular bar, indicating that the accumulation/distribution module identified a distribution phase at that point. The detection is based on seller dominance: during that bar, the net buyer-minus-seller flow and the OBV‑style cumulative flow were trending down, and the buyer ratio had dropped below the preset threshold. These conditions satisfy the distribution criteria in strict mode. The label is placed above the bar using an ATR‑based offset and a dashed connector. By the time of the current bar in the screenshot, the phase indicator shows “Neutral” in the info table—signaling that neither accumulation nor distribution conditions are currently met—yet the historical “Dist” label remains to mark where the prior distribution phase began.
Figure caption, In this example the market phase module has signaled an Accumulation phase. Three bars before the current candle, the algorithm detected a shift toward buyers: up‑volume exceeded its moving average, down‑volume was below average, and the buyer share of total volume climbed above the threshold while the on‑balance net flow and cumulative ratios were trending upwards. The blue “Accum” label anchored below that bar marks the start of the phase; it remains on the chart because successive bars continue to satisfy the accumulation conditions. The info table confirms this: the “Market Phase (Vol)” row still reads Accumulation, and the ratio and sum rows show buyers dominating both on the current bar and across the lookback window.
5. OB/OS Spike Module
5.1 What overbought/oversold means here
In many markets, a rapid extension up or down is often followed by a period of consolidation or reversal. The indicator interprets overbought (OB) conditions as abnormally strong selling risk at or after a price rally and oversold (OS) conditions as unusually strong buying risk after a decline. Importantly, these are not direct trade signals; rather they flag areas where caution or contrarian setups may be appropriate.
5.2 Inputs
• minHits_obos (1–7): Minimum number of oscillators that must agree on an overbought or oversold condition for a label to print.
• syncWin_obos: Length of a small sliding window over which oscillator votes are smoothed by taking the maximum count observed. This helps filter out choppy signals.
• Volume spike criteria: kVolRatio_obos (ratio of current volume to its SMA) and zVolThr_obos (Z‑score threshold) across volLen_obos. Either threshold can trigger a spike.
• Oscillator toggles and periods: Each of RSI, Stochastic (K and D), Williams %R, CCI, MFI, DeMarker and Stochastic RSI can be independently enabled; their periods are adjustable.
• Label appearance: ATR‑based offset, size, colors for OB and OS labels, plus connector style and width.
5.3 Detection logic
1. Directional volume spikes: Volume spikes are computed separately for buyer and seller volumes. A sell volume spike (sellVolSpike) flags a potential OverBought bar, while a buy volume spike (buyVolSpike) flags a potential OverSold bar. A spike occurs when the respective volume exceeds kVolRatio_obos times its simple moving average over the window or when its Z‑score exceeds zVolThr_obos.
2. Oscillator votes: For each enabled oscillator, calculate its overbought and oversold state using standard thresholds (e.g., RSI ≥ 70 for OB and ≤ 30 for OS; Stochastic %K/%D ≥ 80 for OB and ≤ 20 for OS; etc.). Count how many oscillators vote for OB and how many vote for OS.
3. Minimum hits: Apply the smoothing window syncWin_obos to the vote counts using a maximum‑of‑last‑N approach. A candidate bar is only considered if the smoothed OB hit count ≥ minHits_obos (for OverBought) or the smoothed OS hit count ≥ minHits_obos (for OverSold).
4. Tie‑breaking: If both OverBought and OverSold spike conditions are present on the same bar, compare the smoothed hit counts: the side with the higher count is selected; ties default to OverBought.
5. Label printing: When conditions are met, the bar is labelled as “OverBought X/7” above the candle or “OverSold X/7” below it. “X” is the number of oscillators confirming, and the bracket lists the abbreviations of contributing oscillators. Labels are offset from price using half of an ATR‑scaled distance and can optionally include a dotted or dashed connector line.
Figure caption, In this chart the overbought/oversold module has flagged an OverSold signal. A sell‑off from the prior highs brought price down to the lower trend‑line, where the bar marked “OverSold 3/7 DeM” appears. This label indicates that on that bar the module detected a buy‑side volume spike and that at least three of the seven enabled oscillators—in this case including the DeMarker—were in oversold territory. The label is printed below the candle with a dotted connector, signaling that the market may be temporarily exhausted on the downside. After this oversold print, price begins to rebound towards the upper red trend‑line and higher pivot levels.
Figure caption, This example shows the overbought/oversold module in action. In the left‑hand panel you can see the OB/OS settings where each oscillator (RSI, Stochastic, Williams %R, CCI, MFI, DeMarker and Stochastic RSI) can be enabled or disabled, and the ATR length and label offset multiplier adjusted. On the chart itself, price has pushed up to the descending red trendline and triggered an “OverBought 3/7” label. That means the sell‑side volume spiked relative to its average and three out of the seven enabled oscillators were in overbought territory. The label is offset above the candle by half of an ATR and connected with a dashed line, signaling that upside momentum may be overextended and a pause or pullback could follow.
6. Buyer/Seller Trap Module
6.1 Concept
A bull trap occurs when price appears to break above resistance, attracting buyers, but fails to sustain the move and quickly reverses, leaving a long upper wick and trapping late entrants. A bear trap is the opposite: price breaks below support, lures in sellers, then snaps back, leaving a long lower wick and trapping shorts. This module detects such traps by looking for price structure sweeps, order‑flow mismatches and dominance reversals. It uses a scoring system to differentiate risk from confirmed traps.
6.2 Inputs
• trap_lookback_len: Window length used to rank extremes and detect sweeps.
• trap_wick_threshold: Minimum proportion of a bar’s range that must be wick (upper for bull traps, lower for bear traps) to qualify as a sweep.
• trap_score_risk: Minimum aggregated score required to flag a trap risk. (The code defines a trap_score_confirm input, but confirmation is actually based on price reversal rather than a separate score threshold.)
• trap_confirm_bars: Maximum number of bars allowed for price to reverse and confirm the trap. If price does not reverse in this window, the risk label will expire or remain unconfirmed.
• Label settings: ATR length and multiplier for offsetting, size, colours for risk and confirmed labels, and connector style and width. Separate settings exist for bull and bear traps.
• Toggle inputs: show_trap_module and show_trap_labels enable the module and control whether labels are drawn on the chart.
6.3 Scoring logic
The module assigns points to several conditions and sums them to determine whether a trap risk is present. For bull traps, the score is built from the following (bear traps mirror the logic with highs and lows swapped):
1. Sweep (2 points): Price trades above the high pivot (HH1) but fails to close above it and leaves a long upper wick at least trap_wick_threshold × range. For bear traps, price dips below the low pivot (LL1), fails to close below and leaves a long lower wick.
2. Close break (1 point): Price closes beyond HH1 or LL1 without leaving a long wick.
3. Candle/delta mismatch (2 points): The candle closes bullish yet the order flow delta is negative or the seller ratio exceeds 50%, indicating hidden supply. Conversely, a bearish close with positive delta or buyer dominance suggests hidden demand.
4. Dominance inversion (2 points): The current bar’s buyer volume has the highest rank in the lookback window while cumulative sums favor sellers, or vice versa.
5. Low‑volume break (1 point): Price crosses the pivot but total volume is below its moving average.
The total score for each side is compared to trap_score_risk. If the score is high enough, a “Bull Trap Risk” or “Bear Trap Risk” label is drawn, offset from the candle by half of an ATR‑scaled distance using a dashed outline. If, within trap_confirm_bars, price reverses beyond the opposite level—drops back below the high pivot for bull traps or rises above the low pivot for bear traps—the label is upgraded to a solid “Bull Trap” or “Bear Trap” . In this version of the code, there is no separate score threshold for confirmation: the variable trap_score_confirm is unused; confirmation depends solely on a successful price reversal within the specified number of bars.
Figure caption, In this example the trap module has flagged a Bear Trap Risk. Price initially breaks below the most recent low pivot (LL1), but the bar closes back above that level and leaves a long lower wick, suggesting a failed push lower. Combined with a mismatch between the candle direction and the order flow (buyers regain control) and a reversal in volume dominance, the aggregate score exceeds the risk threshold, so a dashed “Bear Trap Risk” label prints beneath the bar. The green and red trend lines mark the current low and high pivot trajectories, while the horizontal dashed lines show the highest and lowest values in the lookback window. If, within the next few bars, price closes decisively above the support, the risk label would upgrade to a solid “Bear Trap” label.
Figure caption, In this example the trap module has identified both ends of a price range. Near the highs, price briefly pushes above the descending red trendline and the recent pivot high, but fails to close there and leaves a noticeable upper wick. That combination of a sweep above resistance and order‑flow mismatch generates a Bull Trap Risk label with a dashed outline, warning that the upside break may not hold. At the opposite extreme, price later dips below the green trendline and the labelled low pivot, then quickly snaps back and closes higher. The long lower wick and subsequent price reversal upgrade the previous bear‑trap risk into a confirmed Bear Trap (solid label), indicating that sellers were caught on a false breakdown. Horizontal dashed lines mark the highest high and lowest low of the lookback window, while the red and green diagonals connect the earliest and latest pivot highs and lows to visualize the range.
7. Sharp Move Module
7.1 Concept
Markets sometimes display absorption or climax behavior—periods when one side steadily gains the upper hand before price breaks out with a sharp move. This module evaluates several order‑flow and volume conditions to anticipate such moves. Users can choose how many conditions must be met to flag a risk and how many (plus a price break) are required for confirmation.
7.2 Inputs
• sharp Lookback: Number of bars in the window used to compute moving averages, sums, percentile ranks and reference levels.
• sharpPercentile: Minimum percentile rank for the current side’s volume; the current buy (or sell) volume must be greater than or equal to this percentile of historical volumes over the lookback window.
• sharpVolMult: Multiplier used in the volume climax check. The current side’s volume must exceed this multiple of its average to count as a climax.
• sharpRatioThr: Minimum dominance ratio (current side’s volume relative to the opposite side) used in both the instant and cumulative dominance checks.
• sharpChurnThr: Maximum ratio of a bar’s range to its ATR for absorption/churn detection; lower values indicate more absorption (large volume in a small range).
• sharpScoreRisk: Minimum number of conditions that must be true to print a risk label.
• sharpScoreConfirm: Minimum number of conditions plus a price break required for confirmation.
• sharpCvdThr: Threshold for cumulative delta divergence versus price change (positive for bullish accumulation, negative for bearish distribution).
• Label settings: ATR length (sharpATRlen) and multiplier (sharpLabelMult) for positioning labels, label size, colors and connector styles for bullish and bearish sharp moves.
• Toggles: enableSharp activates the module; show_sharp_labels controls whether labels are drawn.
7.3 Conditions (six per side)
For each side, the indicator computes six boolean conditions and sums them to form a score:
1. Dominance (instant and cumulative):
– Instant dominance: current buy volume ≥ sharpRatioThr × current sell volume.
– Cumulative dominance: sum of buy volumes over the window ≥ sharpRatioThr × sum of sell volumes (and vice versa for bearish checks).
2. Accumulation/Distribution divergence: Over the lookback window, cumulative delta rises by at least sharpCvdThr while price fails to rise (bullish), or cumulative delta falls by at least sharpCvdThr while price fails to fall (bearish).
3. Volume climax: The current side’s volume is ≥ sharpVolMult × its average and the product of volume and bar range is the highest in the lookback window.
4. Absorption/Churn: The current side’s volume divided by the bar’s range equals the highest value in the window and the bar’s range divided by ATR ≤ sharpChurnThr (indicating large volume within a small range).
5. Percentile rank: The current side’s volume percentile rank is ≥ sharp Percentile.
6. Mirror logic for sellers: The above checks are repeated with buyer and seller roles swapped and the price break levels reversed.
Each condition that passes contributes one point to the corresponding side’s score (0 or 1). Risk and confirmation thresholds are then applied to these scores.
7.4 Scoring and labels
• Risk: If scoreBull ≥ sharpScoreRisk, a “Sharp ↑ Risk” label is drawn above the bar. If scoreBear ≥ sharpScoreRisk, a “Sharp ↓ Risk” label is drawn below the bar.
• Confirmation: A risk label is upgraded to “Sharp ↑” when scoreBull ≥ sharpScoreConfirm and the bar closes above the highest recent pivot (HH1); for bearish cases, confirmation requires scoreBear ≥ sharpScoreConfirm and a close below the lowest pivot (LL1).
• Label positioning: Labels are offset from the candle by ATR × sharpLabelMult (full ATR times multiplier), not half, and may include a dashed or dotted connector line if enabled.
Figure caption, In this chart both bullish and bearish sharp‑move setups have been flagged. Earlier in the range, a “Sharp ↓ Risk” label appears beneath a candle: the sell‑side score met the risk threshold, signaling that the combination of strong sell volume, dominance and absorption within a narrow range suggested a potential sharp decline. The price did not close below the lower pivot, so this label remains a “risk” and no confirmation occurred. Later, as the market recovered and volume shifted back to the buy side, a “Sharp ↑ Risk” label prints above a candle near the top of the channel. Here, buy‑side dominance, cumulative delta divergence and a volume climax aligned, but price has not yet closed above the upper pivot (HH1), so the alert is still a risk rather than a confirmed sharp‑up move.
Figure caption, In this chart a Sharp ↑ label is displayed above a candle, indicating that the sharp move module has confirmed a bullish breakout. Prior bars satisfied the risk threshold — showing buy‑side dominance, positive cumulative delta divergence, a volume climax and strong absorption in a narrow range — and this candle closes above the highest recent pivot, upgrading the earlier “Sharp ↑ Risk” alert to a full Sharp ↑ signal. The green label is offset from the candle with a dashed connector, while the red and green trend lines trace the high and low pivot trajectories and the dashed horizontals mark the highest and lowest values of the lookback window.
8. Market‑Maker / Spread‑Capture Module
8.1 Concept
Liquidity providers often “capture the spread” by buying and selling in almost equal amounts within a very narrow price range. These bars can signal temporary congestion before a move or reflect algorithmic activity. This module flags bars where both buyer and seller volumes are high, the price range is only a few ticks and the buy/sell split remains close to 50%. It helps traders spot potential liquidity pockets.
8.2 Inputs
• scalpLookback: Window length used to compute volume averages.
• scalpVolMult: Multiplier applied to each side’s average volume; both buy and sell volumes must exceed this multiple.
• scalpTickCount: Maximum allowed number of ticks in a bar’s range (calculated as (high − low) / minTick). A value of 1 or 2 captures ultra‑small bars; increasing it relaxes the range requirement.
• scalpDeltaRatio: Maximum deviation from a perfect 50/50 split. For example, 0.05 means the buyer share must be between 45% and 55%.
• Label settings: ATR length, multiplier, size, colors, connector style and width.
• Toggles : show_scalp_module and show_scalp_labels to enable the module and its labels.
8.3 Signal
When, on the current bar, both TF_buy_breakout and TF_sell_breakout exceed scalpVolMult times their respective averages and (high − low)/minTick ≤ scalpTickCount and the buyer share is within scalpDeltaRatio of 50%, the module prints a “Spread ↔” label above the bar. The label uses the same ATR offset logic as other modules and draws a connector if enabled.
Figure caption, In this chart the spread‑capture module has identified a potential liquidity pocket. Buyer and seller volumes both spiked above their recent averages, yet the candle’s range measured only a couple of ticks and the buy/sell split stayed close to 50 %. This combination met the module’s criteria, so it printed a grey “Spread ↔” label above the bar. The red and green trend lines link the earliest and latest high and low pivots, and the dashed horizontals mark the highest high and lowest low within the current lookback window.
9. Money Flow Module
9.1 Concept
To translate volume into a monetary measure, this module multiplies each side’s volume by the closing price. It tracks buying and selling system money default currency on a per-bar basis and sums them over a chosen period. The difference between buy and sell currencies (Δ$) shows net inflow or outflow.
9.2 Inputs
• mf_period_len_mf: Number of bars used for summing buy and sell dollars.
• Label appearance settings: ATR length, multiplier, size, colors for up/down labels, and connector style and width.
• Toggles: Use enableMoneyFlowLabel_mf and showMFLabels to control whether the module and its labels are displayed.
9.3 Calculations
• Per-bar money: Buy $ = TF_buy_breakout × close; Sell $ = TF_sell_breakout × close. Their difference is Δ$ = Buy $ − Sell $.
• Summations: Over mf_period_len_mf bars, compute Σ Buy $, Σ Sell $ and ΣΔ$ using math.sum().
• Info table entries: Rows 9–13 display these values as texts like “↑ USD 1234 (1M)” or “ΣΔ USD −5678 (14)”, with colors reflecting whether buyers or sellers dominate.
• Money flow status: If Δ$ is positive the bar is marked “Money flow in” ; if negative, “Money flow out” ; if zero, “Neutral”. The cumulative status is similarly derived from ΣΔ.Labels print at the bar that changes the sign of ΣΔ, offset using ATR × label multiplier and styled per user preferences.
Figure caption, The chart illustrates a steady rise toward the highest recent pivot (HH1) with price riding between a rising green trend‑line and a red trend‑line drawn through earlier pivot highs. A green Money flow in label appears above the bar near the top of the channel, signaling that net dollar flow turned positive on this bar: buy‑side dollar volume exceeded sell‑side dollar volume, pushing the cumulative sum ΣΔ$ above zero. In the info table, the “Money flow (bar)” and “Money flow Σ” rows both read In, confirming that the indicator’s money‑flow module has detected an inflow at both bar and aggregate levels, while other modules (pivots, trend lines and support/resistance) remain active to provide structural context.
In this example the Money Flow module signals a net outflow. Price has been trending downward: successive high pivots form a falling red trend‑line and the low pivots form a descending green support line. When the latest bar broke below the previous low pivot (LL1), both the bar‑level and cumulative net dollar flow turned negative—selling volume at the close exceeded buying volume and pushed the cumulative Δ$ below zero. The module reacts by printing a red “Money flow out” label beneath the candle; the info table confirms that the “Money flow (bar)” and “Money flow Σ” rows both show Out, indicating sustained dominance of sellers in this period.
10. Info Table
10.1 Purpose
When enabled, the Info Table appears in the lower right of your chart. It summarises key values computed by the indicator—such as buy and sell volume, delta, total volume, breakout status, market phase, and money flow—so you can see at a glance which side is dominant and which signals are active.
10.2 Symbols
• ↑ / ↓ — Up (↑) denotes buy volume or money; down (↓) denotes sell volume or money.
• MA — Moving average. In the table it shows the average value of a series over the lookback period.
• Σ (Sigma) — Cumulative sum over the chosen lookback period.
• Δ (Delta) — Difference between buy and sell values.
• B / S — Buyer and seller share of total volume, expressed as percentages.
• Ref. Price — Reference price for breakout calculations, based on the latest pivot.
• Status — Indicates whether a breakout condition is currently active (True) or has failed.
10.3 Row definitions
1. Up volume / MA up volume – Displays current buy volume on the lower timeframe and its moving average over the lookback period.
2. Down volume / MA down volume – Shows current sell volume and its moving average; sell values are formatted in red for clarity.
3. Δ / ΣΔ – Lists the difference between buy and sell volume for the current bar and the cumulative delta volume over the lookback period.
4. Σ / MA Σ (Vol/MA) – Total volume (buy + sell) for the bar, with the ratio of this volume to its moving average; the right cell shows the average total volume.
5. B/S ratio – Buy and sell share of the total volume: current bar percentages and the average percentages across the lookback period.
6. Buyer Rank / Seller Rank – Ranks the bar’s buy and sell volumes among the last (n) bars; lower rank numbers indicate higher relative volume.
7. Σ Buy / Σ Sell – Sum of buy and sell volumes over the lookback window, indicating which side has traded more.
8. Breakout UP / DOWN – Shows the breakout thresholds (Ref. Price) and whether the breakout condition is active (True) or has failed.
9. Market Phase (Vol) – Reports the current volume‑only phase: Accumulation, Distribution or Neutral.
10. Money Flow – The final rows display dollar amounts and status:
– ↑ USD / Σ↑ USD – Buy dollars for the current bar and the cumulative sum over the money‑flow period.
– ↓ USD / Σ↓ USD – Sell dollars and their cumulative sum.
– Δ USD / ΣΔ USD – Net dollar difference (buy minus sell) for the bar and cumulatively.
– Money flow (bar) – Indicates whether the bar’s net dollar flow is positive (In), negative (Out) or neutral.
– Money flow Σ – Shows whether the cumulative net dollar flow across the chosen period is positive, negative or neutral.
The chart above shows a sequence of different signals from the indicator. A Bull Trap Risk appears after price briefly pushes above resistance but fails to hold, then a green Accum label identifies an accumulation phase. An upward breakout follows, confirmed by a Money flow in print. Later, a Sharp ↓ Risk warns of a possible sharp downturn; after price dips below support but quickly recovers, a Bear Trap label marks a false breakdown. The highlighted info table in the center summarizes key metrics at that moment, including current and average buy/sell volumes, net delta, total volume versus its moving average, breakout status (up and down), market phase (volume), and bar‑level and cumulative money flow (In/Out).
11. Conclusion & Final Remarks
This indicator was developed as a holistic study of market structure and order flow. It brings together several well‑known concepts from technical analysis—breakouts, accumulation and distribution phases, overbought and oversold extremes, bull and bear traps, sharp directional moves, market‑maker spread bars and money flow—into a single Pine Script tool. Each module is based on widely recognized trading ideas and was implemented after consulting reference materials and example strategies, so you can see in real time how these concepts interact on your chart.
A distinctive feature of this indicator is its reliance on per‑side volume: instead of tallying only total volume, it separately measures buy and sell transactions on a lower time frame. This approach gives a clearer view of who is in control—buyers or sellers—and helps filter breakouts, detect phases of accumulation or distribution, recognize potential traps, anticipate sharp moves and gauge whether liquidity providers are active. The money‑flow module extends this analysis by converting volume into currency values and tracking net inflow or outflow across a chosen window.
Although comprehensive, this indicator is intended solely as a guide. It highlights conditions and statistics that many traders find useful, but it does not generate trading signals or guarantee results. Ultimately, you remain responsible for your positions. Use the information presented here to inform your analysis, combine it with other tools and risk‑management techniques, and always make your own decisions when trading.
Candle Spread + ATR SMA Analysis
This indicator combines elements from two popular open-source scripts — Candle Range Compare
by @oldinvestor
and Objective Analysis of Spread (VSA)
by @Rin-Nin
— into a single tool for analyzing candle spreads (ranges and bodies) in relation to volatility benchmarks.
🔎 What It Does
Candle Decomposition:
Plots total candle ranges (high–low) in gray, for both up and down closes.
Plots up-close bodies (open–close) in white.
Plots down-close bodies in black.
This makes it easy to spot whether volatility comes from real price movement (body) or extended wicks.
ATR & SMA Volatility Bands:
Calculates ATR (Average True Range) and overlays it as a black line.
Plots four volatility envelopes derived from the SMA of the true range:
0.8× (blue, shaded)
1.3× (green)
1.8× (red)
3.0× (purple)
Colored fill zones highlight when candle spreads are below, within, or above key thresholds.
Visual Context:
Track expansion/contraction in spreads.
Compare bullish (white) vs bearish (black) bodies to gauge buying/selling pressure.
Identify when candles stretch beyond typical volatility ranges.
📈 How To Use It
VSA context: Wide down bars (black) beyond ATR bands may suggest supply; wide up bars (white) may indicate demand.
Trend confirmation: Expanding ranges above average thresholds (green/red/purple bands) often confirm momentum.
Reversal potential: Small bodies but large ranges (gray + wicks) frequently appear at turning points.
Volatility filter: Use ATR bands to filter trades — e.g., only act when candle ranges exceed 1.3× or 1.8× SMA thresholds.
🙏 Credits
This script is inspired by and combines ideas from:
Candle Range Compare
by @oldinvestor
Objective Analysis of Spread (VSA)
by @Rin-Nin
Big thanks to both authors for their valuable contributions to the TradingView community.
One thing I couldnt quite get to work is being able to display up and down wicks like in the candle range compare, so I just add that indicator to the chart as well, uncheck everything but the wick plots and there it is.