Entropy Chart Analysis [PhenLabs]📊 Entropy Chart analysis -
Version: PineScript™ v6
📌 Description
The Entropy Chart indicator analysis applies Approximate Entropy (ApEn) to identify zones of potential support and resistance on your price chart. It is designed to locate changes in the market’s predictability, with a focus on zones near significant psychological price levels (e.g., multiples of 50). By quantifying entropy, the indicator aims to identify zones where price action might stabilize (potential support) or become randomized (potential resistance).
This tool automates the visualization of these key areas for traders, which may have the effect of revealing reversal levels or consolidation zones that would be hard to discern through traditional means. It also filters the signals by proximity to key levels in an attempt to reduce noise and highlight higher-probability setups. These dynamic zones adapt to changing market conditions by stretching, merging, and expiring based on user-inputted rules.
🚀 Points of Innovation
Combines Approximate Entropy (ApEn) calculation with price action near significant levels.
Filters zone signals based on proximity (in ticks) to predefined significant price levels (multiples of 50).
Dynamically merges overlapping or nearby zones to consolidate signals and reduce chart clutter.
Uses ApEn crossovers relative to its moving average as the core trigger mechanism.
Provides distinct visual coloring for bullish, bearish, and merged (mixed-signal) zones.
Offers comprehensive customization for entropy calculation, zone sensitivity, level filtering, and visual appearance.
🔧 Core Components
Approximate Entropy (ApEn) Calculation : Measures the regularity or randomness of price fluctuations over a specified window. Low ApEn suggests predictability, while high ApEn suggests randomness.
Zone Trigger Logic : Creates potential support zones when ApEn crosses below its average (indicating increasing predictability) and potential resistance zones when it crosses above (indicating increasing randomness).
Significant Level Filter : Validates zone triggers only if they occur within a user-defined tick distance from significant price levels (multiples of 50).
Dynamic Zone Management : Automatically creates, extends, merges nearby zones based on tick distance, and removes the oldest zones to maintain a maximum limit.
Zone Visualization : Draws and updates colored boxes on the chart to represent active support, resistance, or mixed zones.
🔥 Key Features
Entropy-Based S/R Detection : Uses ApEn to identify potential support (low entropy) and resistance (high entropy) areas.
Significant Level Filtering : Enhances signal quality by focusing on entropy changes near key psychological price points.
Automatic Zone Drawing & Merging : Visualizes zones dynamically, merging close signals for clearer interpretation.
Highly Customizable : Allows traders to adjust parameters for ApEn calculation, zone detection thresholds, level filter sensitivity, merging distance, and visual styles.
Integrated Alerts : Provides built-in alert conditions for the formation of new bullish or bearish zones near significant levels.
Clear Visual Output : Uses distinct, customizable colors for buy (support), sell (resistance), and mixed (merged) zones.
🎨 Visualization
Buy Zones : Represented by greenish boxes (default: #26a69a), indicating potential support areas formed during low entropy periods near significant levels.
Sell Zones : Represented by reddish boxes (default: #ef5350), indicating potential resistance areas formed during high entropy periods near significant levels.
Mixed Zones : Represented by bluish/purple boxes (default: #8894ff), formed when a buy zone and a sell zone merge, indicating areas of potential consolidation or conflict.
Dynamic Extension : Active zones are automatically extended to the right with each new bar.
📖 Usage Guidelines
Calculation Parameters
Window Length
Default: 15
Range: 10-100
Description: Lookback period for ApEn calculation. Shorter lengths are more responsive; longer lengths are smoother.
Embedding Dimension (m)
Default: 2
Range: 1-6
Description: Length of patterns compared in ApEn calculation. Higher values detect more complex patterns but require more data.
Tolerance (r)
Default: 0.5
Range: 0.1-1.0 (step 0.1)
Description: Sensitivity factor for pattern matching (as a multiple of standard deviation). Lower values require closer matches (more sensitive).
Zone Settings
Zone Lookback
Default: 5
Range: 5-50
Description: Lookback period for the moving average of ApEn used in threshold calculations.
Zone Threshold
Default: 0.5
Range: 0.5-3.0
Description: Multiplier for the ApEn average to set crossover trigger levels. Higher values require larger ApEn deviations to create zones.
Maximum Zones
Default: 5
Range: 1-10
Description: Maximum number of active zones displayed. The oldest zones are removed first when the limit is reached.
Zone Merge Distance (Ticks)
Default: 5
Range: 1-50
Description: Maximum distance in ticks for two separate zones to be merged into one.
Level Filter Settings
Tick Size
Default: 0.25
Description: The minimum price increment for the asset. Must be set correctly for the specific instrument to ensure accurate level filtering.
Max Ticks Distance from Levels
Default: 40
Description: Maximum allowed distance (in ticks) from a significant level (multiple of 50) for a zone trigger to be valid.
Visual Settings
Buy Zone Color : Default: color.new(#26a69a, 83). Sets the fill color for support zones.
Sell Zone Color : Default: color.new(#ef5350, 83). Sets the fill color for resistance zones.
Mixed Zone Color : Default: color.new(#8894ff, 83). Sets the fill color for merged zones.
Buy Border Color : Default: #26a69a. Sets the border color for support zones.
Sell Border Color : Default: #ef5350. Sets the border color for resistance zones.
Mixed Border Color : Default: color.new(#a288ff, 50). Sets the border color for mixed zones.
Border Width : Default: 1, Range: 1-3. Sets the thickness of zone borders.
✅ Best Use Cases
Identifying potential support/resistance near significant psychological price levels (e.g., $50, $100 increments).
Detecting potential market turning points or consolidation zones based on shifts in price predictability.
Filtering entries or exits by confirming signals occurring near significant levels identified by the indicator.
Adding context to other technical analysis approaches by highlighting entropy-derived zones.
⚠️ Limitations
Parameter Dependency : Indicator performance is sensitive to parameter settings ( Window Length , Tolerance , Zone Threshold , Max Ticks Distance ), which may need optimization for different assets and timeframes.
Volatility Sensitivity : High market volatility or erratic price action can affect ApEn calculations and potentially lead to less reliable zone signals.
Fixed Level Filter : The significant level filter is based on multiples of 50. While common, this may not capture all relevant levels for every asset or market condition. Accurate Tick Size input is essential.
Not Standalone : Should be used in conjunction with other analysis methods (price action, volume, other indicators) for confirmation, not as a sole basis for trading decisions.
💡 What Makes This Unique
Entropy + Level Context : Uniquely combines ApEn analysis with a specific filter for proximity to significant price levels (multiples of 50), adding locational context to entropy signals.
Intelligent Zone Merging : Automatically consolidates nearby buy/sell zones based on tick distance, simplifying visual analysis and highlighting stronger confluence areas.
Targeted Signal Generation : Focuses alerts and zone creation on specific market conditions (entropy shifts near key levels).
🔬 How It Works
Calculate Entropy : The script computes the Approximate Entropy (ApEn) of the closing prices over the defined Window Length to quantify price predictability.
Check Triggers : It monitors ApEn relative to its moving average. A crossunder below a calculated threshold (avg_apen / zone_threshold) indicates potential support; a crossover above (avg_apen * zone_threshold) indicates potential resistance.
Filter by Level : A potential zone trigger is confirmed only if the low (for support) or high (for resistance) of the trigger bar is within the Max Ticks Distance of a significant price level (multiple of 50).
Manage & Draw Zones : If a trigger is confirmed, a new zone box is created. The script checks for overlaps with existing zones within the Zone Merge Distance and merges them if necessary. Zones are extended forward, and the oldest are removed to respect the Maximum Zones limit. Active zones are drawn and updated on the chart.
💡 Note:
Crucially, set the Tick Size parameter correctly for your specific trading instrument in the “Level Filter Settings”. Incorrect Tick Size will make the significant level filter inaccurate.
Experiment with parameters, especially Window Length , Tolerance (r) , Zone Threshold , and Max Ticks Distance , to tailor the indicator’s sensitivity to your preferred asset and timeframe.
Always use this indicator as part of a comprehensive trading plan, incorporating risk management and seeking confirmation from other analysis techniques.
Volatilityfilter
Volatility Regime Classifier | ATRP Percentile ZonesThis indicator helps you understand the current volatility environment of any asset by comparing recent ATR-based values to its historical range.
It defines four regimes:
🔴 Low Volatility: Volatility is decreasing
🟢 Normal: Volatility is increasing but still below average
🟠 High: Volatility is elevated
🟣 Extreme: Volatility is very high compared to recent history
⚙️ How it works
We calculate the Average True Range (ATR) as a percentage of price (ATRP), then compare a short-term ATR to a longer-term one. Their difference shows whether volatility is picking up or slowing down.
To make the signal more adaptive, we look at the distribution of recent volatility over a rolling window. We compute the 50th and 70th percentiles of that history to set dynamic thresholds.
About distribution & percentiles
Volatility in financial markets doesn't follow a normal (Gaussian) distribution, it's often skewed, with sudden spikes and fat tails. That means fixed thresholds (like "ATR > 20") can be misleading or irrelevant across assets and timeframes.
Using percentiles solves this:
The 50th percentile marks the middle of the recent volatility range.
The 70th percentile captures a zone where volatility is unusually high, but not too rare, which keeps the signal usable and not overly sensitive.
These levels offer a balance:
⚖️ not too reactive, not too slow — just enough to highlight meaningful shifts.
✅ Use cases
Spot changes in market conditions
Filter or adapt strategies depending on the regime
Adjust position sizing and risk dynamically
+ Average Candle Bodies RangeACBR, or, Average Candle Bodies Range is a volatility and momentum indicator designed to indicate periods of increasing volatility and/or momentum. The genesis of the idea formed from my pondering what a trend trader is really looking for in terms of a volatility indicator. Most indicators I've come across haven't, in my opinion, done a satisfactory job of highlighting this. I kept thinking about the ATR (I use it for stops and targets) but I realized I didn't care about highs or lows in regards to a candle's volatility or momentum, nor do I care about their relation to a previous close. What really matters to me is candle body expansion. That is all. So, I created this.
ACBR is extremely simple at its heart. I made it more complicated of course, because why would I want anything for myself to be simple? Originally it was envisaged to be a simple volatility indicator highlighting areas of increasing and decreasing volatility. Then I decided some folks might want an indicator that could show this in a directional manner, i.e., an oscillator, so I spent some more hours tackling that
To start, the original version of the indicator simply subtracts opening price from closing price if the candle closes above the open, and subtracts the close from the open if the candle closes below the open. This way we get a positive number that simply measures candle expansion. We then apply a moving average to these values in order to smooth them (if you want). To get an oscillator we always subtract the close from the open, thus when a candle closes below its open we get a negative number.
I've naturally added an optional signal line as a helpful way of gauging volatility because obviously the values themselves may not tell you much. But I've also added something that I call a baseline. You can use this in a few ways, but first let me explain the two options for how the baseline can be calculated. And what do I mean by 'baseline?' I think of it as an area of the indicator where if the ACBR is below you will not want to enter into any trades, and if the ACBR is above then you are free to enter trades based on your system (or you might want to enter in areas of low volatility if your system calls for that). Waddah Attar Explosion is another indicator that implements something similar. The baseline is calculated in two different ways: one of which is making a Donchian Channel of the ACBR, and then using the basis as the baseline, while the other is applying an RMA to the cb_dif, which is the base unit that makes up the ACBR. Now, the basis of a Donchian Channel typically is the average of the highs and the lows. If we did that here we would have a baseline much too high (but maybe not...), however, I've made the divisor user adjustable. In this way you can adjust the height (or I guess you might say 'width' if it's an oscillator) however you like, thus making the indicator more or less sensitive. In the case of using the ACBR as the baseline we apply a multiplier to the values in order to adjust the height. Apologies if I'm being overly verbose. If you want to skip all of this I have tooltips in the settings for all of the inputs that I think need an explanation.
When using the indicator as an oscillator there are baselines above and below the zero line. One funny thing: if using the ACBR as calculation type for the baselines in oscillator mode, the baselines themselves will oscillate around the zero line. There is no way to fix this due to the calculation. That isn't necessarily bad (based on my eyeball test), but I probably wouldn't use it in such a way. But experiment! They could actually be a very fine entry or confirmation indicator. And while I'm on the topic of confirmation indicators, using this indicator as an oscillator naturally makes it a confirmation indicator. It just happens to have a volatility measurement baked into it. It may also be used as an exit and continuation indicator. And speaking of these things, there are optional shapes for indicating when you might want to exit or take a continuation trade. I've added alerts for these things too.
Lastly, oscillator mode is good for identifying divergences.
Above we have the indicator set to directional, or oscillator, mode. Baselines are Donchian Channels. I changed the default EMA length from 4 to 24 in this case, otherwise all the settings are default, as in the main image for the indicator (which is clearly set to non-directional). The indicator is set to requiring an advancing signal line for background and bar colors. Background color is not on by default. Candle colors, as you can see are aqua when above the top baseline (and only when the signal line is advancing, as per the settings), magenta when below the bottom baseline, and grey for anything else. The red and blue X's are exit signals. There are two types: one, when the signal line weakens and, two, when the ACBR crosses above or below the signal line. There are also arrows. These are continuation signals (ACBR crossing signal line).
Same image as above, but the baselines are set to ACBR rather than Donchian Channels.
Again, the same image, but with everything but the ACBR Baseline turned off. You can see how this might make for an excellent confirmation indicator, but for the areas of chap. Maybe run a second instance of the indicator on your chart as a volatility indicator, as you would not be using it in that way in this instance.
Here I have bar coloring turned off except for signal line crosses NOT requiring the signal line to be advancing. Background coloring is also turned on. You can see that these all line up with continuation signals, or exits for purple candles.
Same image as above but requiring the signal line to be advancing. You can see that continuation signals are not contingent upon the signal line to be advancing. I had it setup that way at first, but of course it still gave false signals, so I thought more signals (not that there are many) is better than fewer. To be sure, just because the indicator shows a continuation signal does not mean you should always take it.