Thorp Kelly Risk Engine [JOAT]Thorp Kelly Risk Engine
Introduction
Thorp Kelly Risk Engine is a risk-quality study that tracks virtual outcomes, Kelly estimates, Bayesian shrinkage, drawdown pressure, survival score, and deployment state.
This open-source indicator is designed as a context tool, not a standalone trading system. It focuses on explaining the current market state with restrained visuals and confirmed-bar logic where signals are used.
Core Concepts
1. Virtual Outcome Tracker
Trend setups create virtual reward/risk outcomes measured in ATR units.
2. Kelly Estimate
Win rate and payoff ratio produce full and fractional Kelly-style estimates.
3. Bayesian Shrinkage
A prior win rate reduces overconfidence when sample size is small.
4. Survival and Desk Score
Drawdown, volatility, signal density, convexity, and uncertainty combine into risk state.
kelly = (payoff * winRate - lossRate) / payoff
Features
Virtual outcome sampling
Fractional and Bayesian Kelly estimates
Drawdown throttle and volatility brake
Ruin-adjusted Kelly
Prime, defense, and lockdown states
Input Parameters
Trend, RSI, and ATR lengths
Reward and risk ATR
Kelly fraction and max allocation
Minimum sample and drawdown brake
Display toggles and HUD position
How to Use This Script
Use TKR as risk context. Prime states suggest healthier virtual samples; defensive and lockdown states warn that model risk is elevated.
Limitations
The script uses historical OHLCV data and cannot know future prices.
Signals and states can be late during fast reversals because confirmed-bar logic is used to reduce repainting.
Model outputs should be interpreted with market context, risk controls, and independent analysis.
No visual state should be treated as a certain trade outcome.
Originality Statement
TKR is original in combining Kelly math, Bayesian shrinkage, drawdown throttling, survival scoring, and uncertainty cones.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice, investment advice, or a recommendation to buy or sell any financial instrument. All calculations are derived from historical market data and may produce inaccurate readings in some market conditions. No indicator can predict future market behavior. Use proper risk management and independent judgment.
-Made with passion by jackofalltrades
Indicator

Entropic Liquidity Manifold [JOAT]Entropic Liquidity Manifold
Introduction
Entropic Liquidity Manifold builds an adaptive POC-style liquidity mean using volume density, auction entropy, displacement, and release scoring.
This open-source indicator is designed as a context tool, not a standalone trading system. It focuses on explaining the current market state with restrained visuals and confirmed-bar logic where signals are used.
Core Concepts
1. Adaptive Manifold
The equilibrium updates faster when density and entropy rise.
2. Volume Density
Volume divided by bar range estimates participation concentration.
3. Auction Entropy
Close location identifies whether the auction is balanced or directional.
4. Absorption vs Release
High density with balance supports absorption, while displacement with direction supports release.
manifold := manifold + adaptiveAlpha * (hlc3 - manifold)
Features
Adaptive liquidity mean
Upper and lower shelves
Entropy trace
Absorption node markers
L+ and L- release labels
Input Parameters
Density and entropy memory
Release and absorption gates
Cooldown
Manifold, candle, and HUD toggles
HUD position selector
How to Use This Script
Use the manifold as an adaptive auction reference. Absorption nodes mark balance; L+ and L- mark confirmed directional release.
Limitations
The script uses historical OHLCV data and cannot know future prices.
Signals and states can be late during fast reversals because confirmed-bar logic is used to reduce repainting.
Model outputs should be interpreted with market context, risk controls, and independent analysis.
No visual state should be treated as a certain trade outcome.
Originality Statement
ELM is original in combining adaptive equilibrium, density, entropy, displacement, and release scoring.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice, investment advice, or a recommendation to buy or sell any financial instrument. All calculations are derived from historical market data and may produce inaccurate readings in some market conditions. No indicator can predict future market behavior. Use proper risk management and independent judgment.
-Made with passion by jackofalltrades
Indicator

Price Density Clouds [EXCAVO]Continuous Kernel-Density Map of Where Price Has Actually Traded
The Price Density Clouds builds a smooth, continuous probability density of
price over a lookback window and paints it as gradient clouds directly behind
the candles. Dense, saturated clouds mark value zones - the equilibrium levels
where the market has spent the most time and where price tends to stall and
revert. Thin, transparent gaps mark inefficiency zones - levels price travels
through quickly. A dashed POC line marks the single highest-probability price,
and the Value Area High / Low bracket the core of the distribution.
This is not a bin-based volume profile. Instead of chopping price into discrete
buckets, KDE sums a smooth gaussian kernel around every price point, producing a
continuous density curve with no bin-edge artefacts. The bandwidth is set
automatically by Silverman's rule, so the smoothing adapts to the instrument's
own volatility.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ HOW TO USE
Step 1 → Add the indicator. Gradient clouds appear behind the candles
over the lookback window, brightest at the highest-probability
levels and fading out toward thin zones.
Step 2 → Read the clouds. Saturated bands = value / equilibrium where
price tends to stall and mean-revert. Faint gaps = inefficiency
where price moves fast - natural travel targets.
Step 3 → Use the POC. The dashed POC line is the single most-traded
level - a robust magnet and support / resistance anchor. Price
far from POC has a statistical pull back toward it.
Step 4 → Use the Value Area. The dotted Value Area High / Low bracket
the core of the distribution (default 70%). Acceptance inside the
area is balance; rejection outside it is imbalance worth trading.
Step 5 → Check the side profile. The gradient density profile on the
right of the last bar is the same density rotated 90 degrees - a
quick read of the full distribution shape at a glance.
Step 6 → Combine with structure. Clouds are context, not direction.
They pair well with trend, sweep, and breakout tools - a breakout
into a thin zone tends to run; a breakout into a dense zone tends
to stall.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ HOW IT CALCULATES
◆ Gaussian Kernel Density
Every close in the lookback window contributes a gaussian bell curve centred at
its own price. The curves are summed across the price range to produce a single
continuous density function: density(x) = sum over j of exp(-0.5 x ((x - price_j)
/ h)^2). Levels where many bars cluster get tall, overlapping kernels and a high
density; isolated levels get a low density.
◆ Silverman Bandwidth
The kernel width h controls smoothness. It is set automatically by Silverman's
rule of thumb: h = 1.06 x sigma x n^(-1/5), where sigma is the stdev of the
lookback prices and n is the sample size. The Bandwidth Multiplier input scales
this for sharper or smoother clouds. Auto-bandwidth means the same settings
adapt across instruments and timeframes.
◆ Normalisation and POC
The density is evaluated at Resolution levels between the lookback high and low,
then normalised so the peak equals 1.0. That peak level is the POC (Point of
Control) - the single highest-probability price. Cloud opacity and colour are
driven by each level's normalised density.
◆ Value Area
Starting at the POC, the algorithm expands outward, each step absorbing the
denser of the two neighbouring levels, until the enclosed density reaches the
Value Area % of the total (default 70). The price extent reached becomes the
Value Area High and Low.
◆ Gradient Rendering
Each density band of the cloud is drawn as a horizontal box tinted by a
two-colour gradient: the Low Density Color at thin levels through to the High
Density Color at the POC, with opacity ramping in parallel. Adjacent bands tile
continuously, so the cloud reads as a smooth heat-map rather than discrete
blocks. The same gradient drives the right-side density profile, whose width
per level scales with density - at the default resolution the edge reads as a
near-smooth wave while keeping the per-level gradient colour.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ WHAT MAKES IT DIFFERENT
◆ Continuous Density, Not Bins
Standard volume / price profiles split price into discrete bins, so the result
depends heavily on bin size and shows hard edges. KDE produces a smooth
continuous curve - no bin-edge artefacts, no arbitrary bucket count, just the
true shape of where price has traded.
◆ Auto-Adaptive Bandwidth
Silverman's rule sizes the smoothing from the instrument's own volatility and
sample size. The clouds stay meaningful on BTC, EURUSD, gold or an index with
the same default settings.
◆ Value Structure In One View
POC, Value Area High / Low and the full density shape are all on the chart at
once, with a matching side profile - the complete market-profile read without a
separate pane or a session reset.
◆ Premium Gradient Visual
A smooth two-colour density gradient behind the candles with parallel opacity
ramp, a clean dashed POC, dotted value-area lines, and a right-side profile
histogram. The clouds sit behind price as context and never clutter the read.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ DASHBOARD
Real-time panel (top right) with the current value read:
POC - price of the highest-density level
Value Area High - upper bound of the value area
Value Area Low - lower bound of the value area
Price Zone - whether price is Above Value, In Value, or Below Value
Lookback - bars used to build the distribution
Legend table (bottom left) explains every colour. Both panels toggle in the
Dashboard settings.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
▸ SETTINGS
Engine
Lookback Period - 200 (bars used to build the price distribution)
Resolution - 120 (number of horizontal density bands; higher = smoother gradient and profile edge, up to 200)
Bandwidth Multiplier - 1.0 (smoothness; 1.0 = Silverman auto, higher = broader clouds)
Value Area % - 70 (percentage of total density that defines the value area)
Visualization
Low Density Color - blue (thin / inefficiency end of the gradient)
High Density Color - orange (dense / value end of the gradient)
POC Line Color - near-white (high contrast against the dense orange cloud the POC sits in)
Min Cloud Opacity - 8 (opacity of the lowest-density band; keeps empty zones faint)
Max Cloud Opacity - 65 (opacity of the POC band)
Show POC Line - ON
Show Value Area - ON (dotted Value Area High / Low lines)
Value Area Highlight - ON (boosts band opacity inside the value area so the 70% core pops)
Show Side Profile - ON
Profile Outline - ON (thin bright line tracing the right edge of the profile for a crisp silhouette)
Cloud Forward Extend - 10 (bars the clouds extend right of the last bar)
Dashboard
Show Dashboard - ON
Dashboard Position - Top Right
Show Legend - ON
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Best regards,
EXCAVO
Disclaimer
Trading involves significant risk. This indicator is a technical analysis tool
and does not constitute financial advice, investment recommendations, or a
guarantee of future results. Past indicator behavior does not guarantee future
performance. Always use proper risk management and your own judgment.
Indicator

Parallax Density Atlas [JOAT]Parallax Density Atlas
Introduction
Parallax Density Atlas is an open-source price-acceptance overlay that maps where the market has spent the most time doing business across a recent lookback. It combines a kernel density estimate of recent closing prices with percentile-based value rails so the user can see both the smooth acceptance curve and the practical operating envelope around it.
The problem Parallax solves is hidden value structure. Traders often know whether price is moving, but not whether that movement is taking place inside accepted value, above value, or below value. Parallax puts that information directly on the chart through a point of control, value area boundaries, rails, cloud zones, and a concise dashboard.
Core Concepts
1. Kernel density estimation
The script evaluates a Gaussian kernel across recent closes to estimate continuous price density:
densitySum += gaussianKernel((evalPrice - samplePrice) / bandwidth)
densityValue = densitySum / (array.size(closeSample) * bandwidth)
This creates a smooth value map instead of a stepped histogram alone.
2. Point of control and value area
The highest-density node becomes the point of control. From there, the script expands outward until the target percentage of total density is captured, defining the value area high and low.
3. Percentile rails
In parallel with the KDE engine, the script maintains sorted close samples and derives lower and upper rails from user-defined percentiles. Those rails create a stable operating envelope around recent value.
4. Density cloud
Only the densest accepted zones inside the value area are shaded as a cloud, keeping the display focused on high-importance price zones rather than every possible level.
5. Context and skew
The dashboard reports whether current price is accepted inside value, expanding above value, or trading below accepted value, along with skew and rail width.
Features
KDE value map: Smooth density estimate built from recent closes
Point of control: Highest-density price node marked directly on the chart
Value area boundaries: High and low edges of accepted price territory
Percentile value rails: Smoothed lower and upper rails from sorted price samples
Density cloud: Highlights only the strongest accepted zones
Right-side profile: Extends density visually to the right of current price
Optional candle tinting: Reflects where price sits inside the value structure
Top-right dashboard: Shows POC, value area, rail width, skew, and current location state
Input Parameters
Density Engine:
Lookback
Density Steps
Bandwidth Multiplier
Value Area Percent
Value Rails:
Lower Rail Percentile
Upper Rail Percentile
Rail Smoothing
Visual System:
Profile Width Bars
Cloud Threshold
Show Density Cloud
Show Right Profile
Tint Candles
Show Dashboard
How to Use This Indicator
Step 1: Start with location
Read whether price is inside value, above value, or below value. This defines whether the market is rotating in accepted territory or exploring away from it.
Step 2: Use POC as the acceptance anchor
The point of control marks the most accepted price in the sample window. Reactions around it can frame mean-reversion and acceptance behavior.
Step 3: Compare rails with value area
The rails provide a smoothed operating envelope while the value area shows the densest accepted region. Using both together gives a more complete value map.
Step 4: Monitor skew
Positive skew means the density center is leaning upward in the sample range. Negative skew means accepted value is leaning lower.
Indicator Limitations
The density map is lookback-dependent and will evolve as old data leaves the sample
KDE on closing prices is an acceptance approximation, not a full order-flow model
Strong trends can stay outside accepted value for extended periods
Originality Statement
Parallax Density Atlas is original in how it pairs a continuous KDE-based value map with percentile rails and a selective density cloud in one overlay. It is published because:
The script combines smooth value estimation with rail-based structure instead of using one method alone
It focuses the cloud only on high-density accepted regions, preserving chart cleanliness
The dashboard turns the density map into a practical location framework rather than a purely visual profile
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice and does not guarantee future market behavior. Value zones can shift as new data enters the sample, and persistent trends can stay outside accepted areas longer than expected. Always use independent judgment and proper risk management.
Indicator

True VolumeThis indicator is designed to provide in-depth analysis of volume data from multiple sources and distinguish highly liquid candles by measuring the density of the volume. By focusing on the density and concentration of volume, rather than just the volume itself, it offers a more nuanced view of the market. This can be particularly beneficial in markets like cryptocurrencies, where understanding the role of market makers versus retail traders is crucial for strategic trading.
This is how it works:
Multiple Asset Integration:
Unlike standard volume indicators, True Volume allows the inclusion of up to four different assets (or the same asset from various exchanges) into its volume calculations. This feature provides a broader and more accurate total volume representation, essential in markets like cryptocurrencies where volume is dispersed across multiple exchanges.
Adjustable Time Anchors:
It offers various time anchor options, allowing traders to analyze volume data over different time periods or a specific amount of lookback candles. This flexibility helps in understanding volume trends over both short and long-term time frames.
Volume Density Analysis:
The core of this indicator is the innovative concept of Volume Density. It's calculated using a sigmoid function that normalizes the volume-to-price movement ratio in a unique way without needing a max cap or having the density column spike off the chart. This method helps in distinguishing between normal volume fluctuations and those that are unusually dense for the given price movement. This distinction is key in identifying potential market maker activities.
The Visuals:
The Volume Density is displayed in a unique way without compromising the original volume bars or cap the density. Infinite density can essentially be represented without having an infinitely large bar or caping out the density data. There's also two different color themes, optional bar color, and an option to flip the density bars up-side down for a different representation. Each of the original volume sources can be displayed separately as well. All colors as customizable as well for your own preference.
Price Volume Trend (PVT):
Included in this indicator is also the Price Volume Trend, which cumulatively measures the density delta, offering insights into the longer-term momentum of the market.
How do I trade it?
This indicator aims to give you insight into 'the other side of the trade', the Market Makers. When you buy, they provide liquidity by selling to you. That drives the Volume Density up.
Consider whether the market maker is currently long or short and might need to cover their position by wicking price back, or "adjust inventory". Especially towards the end of a market session.
Consider dense candles during market gaps or weekends to be market manipulation moves.
The density also goes up when stop losses are hit. If price makes a higher high or lower low, high density could indicate a liquidation event. Indicator

KERPD Noise Filter - Kaufman Efficiency Ratio and Price DensityThis indicator combines Kaufman Efficiency Ratio (KER) and Price Density theories to create a unique market noise filter that is 'right on time' compared to using KER or Price Density alone. All data is normalized and merged into a single output. Additionally, this indicator provides the ability to consider background noise and background noise buoyancy to allow dynamic observation of noise level and asset specific calibration of the indicator (if desired).
The basic theory surrounding usage is that: higher values = lower noise, while lower values = higher noise in market.
Notes: NON-DIRECTIONAL Kaufman Efficiency Ratio used. Threshold period of 30 to 40 applies to Kaufman Efficiency Ratio systems if standard length of 20 is applied; maintained despite incorporation of Price Density normalized data.
TRADING USES:
-Trend strategies, mean reversion/reversal/contrarian strategies, and identification/avoidance of ranging market conditions.
-Trend strategy where KERPD is above a certain value; generally a trend is forming/continuing as noise levels fall in the market.
-Mean reversion/reversal/contrarian strategies when KERPD exits a trending condition and falls below a certain value (additional signal confluence confirming for a strong reversal in price required); generally a reversal is forming as noise levels increase in the market.
-A filter to screen out ranging/choppy conditions where breakouts are frequently fake-outs and or price fails to move significantly; noise level is high, in addition to the background buoyancy level.
-In an adaptive trading systems to assist in determining whether to apply a trend following algorithm or a mean reversion algorithm.
THEORY / THOUGHT SPACE:
The market is a jungle. When apex predators are present it often goes quiet (institutions moving price), when absent the jungle is loud.
There is always background noise that scales with the anticipation of the silence, which has features of buoyancy that act to calibrate the beginning of the silence and return to background noise conditions.
Trend traders hunt in low noise conditions. Reversion traders hunt in the onset of low noise into static conditions. Ranges can be avoided during high noise and buoyant background noise conditions.
Distance between the noise line and background noise can help inform decision making.
CALIBRATION:
- Set the Noise Threshold % color change line so that the color cut off is where your trend/reversion should begin.
- Set the Background Noise Buoyancy Calibration Decimal % to match the beginning/end of the color change Noise Threshold % line. Match the Background Noise Baseline Decimal %' to the number set for buoyancy.
- Additionally, create your own custom settings; 33/34 and 50 length also provides interesting results.
- A color change tape option can be enabled by un-commenting the lines at the bottom of this script.
Market Usage:
Stock, Crypto, Forex, and Others
Excellent for: NDQ, J225, US30, SPX
Market Conditions:
Trend, Reversal, Ranging Indicator

MathProbabilityDistributionLibrary "MathProbabilityDistribution"
Probability Distribution Functions.
name(idx) Indexed names helper function.
Parameters:
idx : int, position in the range (0, 6).
Returns: string, distribution name.
usage:
.name(1)
Notes:
(0) => 'StdNormal'
(1) => 'Normal'
(2) => 'Skew Normal'
(3) => 'Student T'
(4) => 'Skew Student T'
(5) => 'GED'
(6) => 'Skew GED'
zscore(position, mean, deviation) Z-score helper function for x calculation.
Parameters:
position : float, position.
mean : float, mean.
deviation : float, standard deviation.
Returns: float, z-score.
usage:
.zscore(1.5, 2.0, 1.0)
std_normal(position) Standard Normal Distribution.
Parameters:
position : float, position.
Returns: float, probability density.
usage:
.std_normal(0.6)
normal(position, mean, scale) Normal Distribution.
Parameters:
position : float, position in the distribution.
mean : float, mean of the distribution, default=0.0 for standard distribution.
scale : float, scale of the distribution, default=1.0 for standard distribution.
Returns: float, probability density.
usage:
.normal(0.6)
skew_normal(position, skew, mean, scale) Skew Normal Distribution.
Parameters:
position : float, position in the distribution.
skew : float, skewness of the distribution.
mean : float, mean of the distribution, default=0.0 for standard distribution.
scale : float, scale of the distribution, default=1.0 for standard distribution.
Returns: float, probability density.
usage:
.skew_normal(0.8, -2.0)
ged(position, shape, mean, scale) Generalized Error Distribution.
Parameters:
position : float, position.
shape : float, shape.
mean : float, mean, default=0.0 for standard distribution.
scale : float, scale, default=1.0 for standard distribution.
Returns: float, probability.
usage:
.ged(0.8, -2.0)
skew_ged(position, shape, skew, mean, scale) Skew Generalized Error Distribution.
Parameters:
position : float, position.
shape : float, shape.
skew : float, skew.
mean : float, mean, default=0.0 for standard distribution.
scale : float, scale, default=1.0 for standard distribution.
Returns: float, probability.
usage:
.skew_ged(0.8, 2.0, 1.0)
student_t(position, shape, mean, scale) Student-T Distribution.
Parameters:
position : float, position.
shape : float, shape.
mean : float, mean, default=0.0 for standard distribution.
scale : float, scale, default=1.0 for standard distribution.
Returns: float, probability.
usage:
.student_t(0.8, 2.0, 1.0)
skew_student_t(position, shape, skew, mean, scale) Skew Student-T Distribution.
Parameters:
position : float, position.
shape : float, shape.
skew : float, skew.
mean : float, mean, default=0.0 for standard distribution.
scale : float, scale, default=1.0 for standard distribution.
Returns: float, probability.
usage:
.skew_student_t(0.8, 2.0, 1.0)
select(distribution, position, mean, scale, shape, skew, log) Conditional Distribution.
Parameters:
distribution : string, distribution name.
position : float, position.
mean : float, mean, default=0.0 for standard distribution.
scale : float, scale, default=1.0 for standard distribution.
shape : float, shape.
skew : float, skew.
log : bool, if true apply log() to the result.
Returns: float, probability.
usage:
.select('StdNormal', __CYCLE4F__, log=true) Library

Probability Distribution HistogramProbability Distribution Histogram
During data exploration it is often useful to plot the distribution of the data one is exploring. This indicator plots the distribution of data between different bins.
Essentially, what we do is we look at the min and max of the entire data set to determine its range. When we have the range of the data, we decide how many bins we want to divide this range into, so that the more bins we get, the smaller the range (a.k.a. width) for each bin becomes. We then place each data point in its corresponding bin, to see how many of the data points end up in each bin. For instance, if we have a data set where the smallest number is 5 and the biggest number is 105, we get a range of 100. If we then decide on 20 bins, each bin will have a width of 5. So the left-most bin would therefore correspond to values between 5 and 10, and the bin to the right would correspond to values between 10 and 15, and so on.
Once we have distributed all the data points into their corresponding bins, we compare the count in each bin to the total number of data points, to get a percentage of the total for each bin. So if we have 100 data points, and the left-most bin has 2 data points in it, that would equal 2%. This is also known as probability mass (or well, an approximation of it at least, since we're dealing with a bin, and not an exact number).
Usage
This is not an indicator that will give you any trading signals. This indicator is made to help you examine data. It can take any input you give it and plot how that data is distributed.
The indicator can transform the data in a few ways to help you get the most out of your data exploration. For instance, it is usually more accurate to use logarithmic data than raw data, so there is an option to transform the data using the natural logarithmic function. There is also an option to transform the data into %-Change form or by using data differencing.
Another option that the indicator has is the ability to trim data from the data set before plotting the distribution. This can help if you know there are outliers that are made up of corrupted data or data that is not relevant to your research.
I also included the option to plot the normal distribution as well, for comparison. This can be useful when the data is made up of residuals from a prediction model, to see if the residuals seem to be normally distributed or not.
Indicator

Indicator

Volume DensitySince we don't have tick count per time interval, let's do it this way. Basically "bigger the move bigger the volume" rule applies in most times, making volume alone kinda useless. What is more interesting, is when there was a huge volume within a relatively small range, or vice versa, a huge move without equally increased volume.
Without diving into details, bars with low volatility and serious volume are aprox. areas of possible future reversals/pullbacks, while volumeless high volatility moves should not cause any serious stops in price action.
This is just a small easy script to highlight this process. "Mathematically speaking, it's just a reciprocal of quotient of awfewefaffwqg..... Nah, not this time.
HOW IT WORKS:
Volume Density = 1/(range/volume)
We take range of a bar (high minus low), divide it by volume of the same bar, in order to neutralize this "bigger-bigger" relationship. Then we memorize this number, take 1 and divide 1 by this number, in order to inverse the result. So now, small bars with big volume will be rated higher than just by using classic volume histogram.
I suppose it would be easy to use it along with classic volume histogram, and assess the differences between these 2 histograms.
///
Probs some1 has already posted smth like this before idk, but if it aint the case, here it is, for you. Indicator
