Trend Direction Helper (ZigZag and S/R and HH/LL labels)Hey everyone
First of all, I'd like to thank Ricardo Santos, Backtest Rookies for the inspiration for this script.
Actually, most of it is coming from them and I only mixed them up (and added my secret sauce ^^). If some of you are not thinking about a trading secret sauce, please get serious for a moment :)
Some of you asked me how I do to set the trend direction. You all understood that if you get an UP label, then the price should go up and vice-versa for down.
But it's not so easy to define the good signals for each asset and each timeframe. I'm going to repeat what I said yesterday because ... well... that's what trading is about
So quoting myself here "The inputs set by default will have to be changed for your asset/timeframe and can't be generic for everything. You have to play with the inputs until the signals will make sense to you
The indicator/strategy with a unique configuration that you'll never check or update according to the market condition DOES NOT exit. "
BUT... a bit of patience and practice and you might do wonders.
The Method
I never realized until now but by connecting the higher highs/lower lows, I was drawing zigzag lines.
The Zig Zag Master is Ricardo Santos . Please give him a follow, he's awesome
For those who don't want to draw on the chart or (my preferred choice) need some inspiration to define your trend directions, this script is for YOU (and your family, your pet, your girlfriend/boyfriend, ...)
I think that each asset/timeframe chart has its own history. What worked in a post could work in the future.
In that regard, if a trend direction worked in the past, that's the parameter that I'll use to trade with it in a demo account and make sure it's relevant. If not then I will adjust
If you're trading with new indicators or a new method right away on your real trading account, you're gonna have a bad time imgflip.com
Lines EVERYWHERE
The script draws the classical horizontal pivots + the zig zag lines + the Higher Highs/Lower Lows label in just 1 script. I'm very excited to share a script (on which I coded 100 lines out of 500) but no one else did it
The horizontal pivots part are coming from Backtest Rookies
For more security, you can add a pullback on a moving average after getting a signal. Pullbacks are necessary to limit any eventual loss or maximize your gains by getting in the trend sooner.
I really give you a solid method and a great script in my opinion. 6 years of experience given away for FREE :p (when Dave will start thinking as a business man instead :O)
Does it repaint ?
Getting this question twice a day. You guys are obsessed with the repainting :)
Short answer, yes because it will calculate the pivots and zig zags whenever new higher highs/lower lows will be formed.
However, the trend direction code is based on the candle close so it shouldn't repaint. If it does, please let me know
See you all on Monday
Love you all
Dave
____________________________________________________________
Be sure to hit the thumbs up. Building those indicators take a lot of time and likes are always rewarding for me :) (tips are accepted too)
- If you want to suggest some indicators that I can develop and share with the community, please use my personal TRELLO board
- I'm an officially approved PineEditor/LUA/MT4 approved mentor on codementor. You can request a coaching with me if you want and I'll teach you how to build kick-ass indicators and strategies
Jump on a 1 to 1 coaching with me
- You can also hire for a custom dev of your indicator/strategy/bot/chrome extension/python
Disclaimer:
Trading involves a high level of financial risk, and may not be appropriate because you may experience losses greater than your deposit. Leverage can be against you.
Do not trade with capital that you can not afford to lose. You must be aware and have a complete understanding of all the risks associated with the market and trading. We can not be held responsible for any loss you incur.
Trading also involves risks of gambling addiction.
Please notice I do not provide financial advice - my indicators, strategies, educational ideas are intended to provide only some source code for anyone interested in improving their trading
The proprietary indicators and strategies developed by Best Trading Indicator, the object of intellectual property rights are and remain the exclusive property of Best Trading Indicator, at the exclusion of images and videos and texts free of rights or provided by the Company or external legal or physical person.
No assignment of intellectual property rights is carried out through these Terms and Conditions.
Any total or partial reproduction, modification or use of these properties for any reason whatsoever is strictly prohibited without the express written authorization of the Company.
Cari skrip untuk "williams"
Combo Strategy 123 Reversal & Bill Williams. AC with Signal Line This is combo strategies for get a cumulative signal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Second strategy
This indicator plots the oscillator as a histogram where blue denotes
periods suited for buying and red . for selling. If the current value
of AO (Awesome Oscillator) is above previous, the period is considered
suited for buying and the period is marked blue. If the AO value is not
above previous, the period is considered suited for selling and the
indicator marks it as red.
You can make changes in the property for set calculating strategy MA, EMA, WMA
WARNING:
- For purpose educate only
- This script to change bars colors.
[AU] Fibonacci Fractal Regression ChannelFibonacci Fractal Regression Channel v01
Based upon:
Fractal Regression Channel V0 () by @RicardoSantos
Note: For use on 4H charts and lower intervals/timeframes
FRACHTALS"FRACHTALS" - A practical example of taking a joke entirely way, way too far
Speaking of which - Moon when?
#REKT
Credits/Acknowledgements/References:
Fractal detection + other functions (@RicardoSantos)
Laguerre RSI w/ self-Adjusting Alpha (@everget)
TB!G-Scalp Strategy [Alert]Scalping Crypto Assets Made Easy
TB!G-Scalp is a TradingView based alert and accompanying strategy PineV3 Script.
Backtest vs Realtime
When designing the algorithms for this strategy our focus was primarily on ease of use.This results in a beautiful yet easy to use scalping strategy. As input it takes a chart period and only one extra parameter for fine tuning. The backtest results are an accurate representation of it’s real-time behaviour.
What makes it tick?
Over the last 2 years we collected a lot of market data regarding Bull and Bear behaviours. This previous market behaviour echo’s into the current market trend.
By recognising these echo’s we are able to anticipate an upcoming micro reversal which eventually end up being a scalping strategy.
Interested
Access is provided to a limited amount of people and for the duration that is determined by it’s Alpha Decay Rate.
This ADR is expected to become problematic after 2.3 year of usage on a lot of 150 users.
Vilarso S1This indicator shows fractals. The main levels of support and resistance. Arrows point to buy and sell zones - great for scalping. And the most important thing is the 5 moving averages SMA by which you can determine the direction of the trend, its support and resistance zones. It is very convenient when different averages for junior and senior periods from 9 to 200 are displayed in one indicator. I installed the standard: 9, 21, 55, 100, 200.
Recommendation: You can reconfigure all 5 mediums on your own. And work out the medium crossings according to your trading strategy.
For example, on my daily timeframe, use my template, and on smaller timeframes you can edit by Fibonacci numbers: 5, 8, 13, 21, 34, 55, 89, 144, 233
Vilarso - recommends you to experiment!
Add to your favorite scripts and trade in profit!
Gator OscillatorThis indicator was originally developed by Bill M. Williams. It shows the degree of convergence / divergence of the Alligator lines.
Accelerator OscillatorThis indicator was originally developed by Bill M. Williams. Also known as Acceleration/Deceleration Oscillator.
Musical Harmonics - Start with a low.Octaves double from one octave to another, so start with octaves beginning with the number one, for example:
1 doubled is 2, 2 doubled is 4, 4 double is 8 and then we go on to this sequence:
1,2,4,8,16,32,64,126,256,512,1024,2048,etc,etc
Find one of the numbers near a range, so for example on this chart Ethereum was trading at 190.31. That price is in between the octaves of 126 and 256. The number I use as the low for the indicator is 126.
Working on updating with labels and such
BottomFinder Adv. Charts Suite V2.0With the advanced charts suite you get multiple indicators you can overlay on your charts, while only using one indicator slot. We made this after requests from our members, to assist those who use a free TV account. IT can take a minute or more to load... be patient! Its not advised to use them all at once, use them in combinations and see what works for you! I wanted to include more indicators, but hit some of the limits imposed by pine script. All options are off by default.
Included are:
Ichimoku Cloud
Support Resistance Fractal
Trailing Long/Short Stoploss
Bull Bear Squares
Triple Hull Moving Average
Standard Hull Moving Average
Fibonacci Daily
Advance Decline Lines
This indicator is available to all our members at no extra charge. If you would like access join us in the link from my signature. You can get a trial of our paid indicators and access to the free ones as well.
Please also like this indicator, and follow me on TradingView for access! We have many more great free indicators coming in the future!
3 Moving Average ExponentialSince I noticed there was no Script with actually 3 EMA together (all the ones I found said it was Exponential, but actually was Simple), i created this one.
The lengths, 17 72 305, are based on the phi cube theory, introduced by Bo Williams. The slow length (305) indicate a likely strong support/resistance and the region between the fast and medium lengths (17, 72) indicate where the price tends to return after a boost or little diversion from the price average.
Fractal HelperA spinoff from a previous script I published, this configurable indicator also selects highs and lows and then plots a trend line that bounces between them. In addition, it also iterates this up to two more times in a quasi-fractal manner, on larger time scales, and plots them on the same graph.
Of course this will not spit out Elliott waves, but with adjusting, it could aid in discerning one wave from another.
I may experiment with the security function again to get a better, longer L3 plot, although charts are limited in duration anyway.
Fractal Breakout V2Version 2 of my fractal pattern aid ( Version 1 ).
I added a bouncing line between the high and low trend lines, connecting consecutive extreme points. I also chased down a pesky bug in the slope calculation...and for now I have disabled the ability to change resolution basis for extreme detection (e.g. 30m on a 1hr chart).
For fun, I added some shading to make it more apparent at a glance what is happening, but if you find it gimmicky, there's an option to turn that off.
I am inexperienced with pattern recognition, so please send feedback if you have any ideas that would make this more useful.
Thanks!
Lemrin
Blast Off Momentum [DW]This study is an alternative experimental interpretation of the Blast Off Indicator by Larry Williams.
This formula takes positive and negative magnitudes rather than the absolute value. The result is then smoothed with an EMA, and twice smoothed to provide a signal line.
DAILY - 3-Condition Arrows - Buy & SellVersion 1.
On the DAILY time frame, this indicator will add a green BUY arrow to a stock price when the following 3 conditions are ALL true:
BUY (all 3 conditions are true)
1. Stock price > 50 EMA
2. MACD line above moving average
3. Williams %R (Best_Solve version) is above moving average
Conversely, a red SELL arrow will point out when the following 3 conditions are ALL true:
SELL (all 3 conditions are true)
1. Stock price < 50 EMA
2. MACD line below moving average
3. Williams %R (Best_Solve version) is below the moving average
WEEKLY - 3-Condition Arrows - Buy & SellVersion 1.
On the WEEKLY time frame, this indicator will add a green BUY arrow to a stock price when the following 3 conditions are ALL true:
BUY (all 3 conditions are true)
1. Stock price > 50 EMA
2. MACD line above moving average
3. Williams %R (Best_Solve version) is above moving average
Conversely, a red SELL arrow will point out when the following 3 conditions are ALL true:
SELL (all 3 conditions are true)
1. Stock price < 50 EMA
2. MACD line below moving average
3. Williams %R (Best_Solve version) is below the moving average
Fat Tony's Composite Momentum Histogram (v01)# Fat Tony's Composite Momentum Histogram
## What It Does
This indicator combines four momentum oscillators into a single composite signal that ranges approximately from -100 to +100. It identifies potential overbought and oversold conditions while weighting signals by volume activity to filter out weak moves.
The histogram shows momentum strength with color-coded bars:
- **Red bars** indicate extreme overbought conditions (above +100)
- **Green bars** indicate extreme oversold conditions (below -100)
- **Blue bars** show positive momentum in normal range
- **Orange bars** show negative momentum in normal range
## Core Components
The indicator blends these four momentum measures:
1. **Williams %R** - Measures where price closed relative to the high-low range
2. **Stochastic %K** - Compares closing price to the recent price range
3. **MACD Histogram** - Shows momentum changes via moving average convergence/divergence
4. **ROC (Rate of Change)** - Measures percentage price change, normalized by volatility
Each component is scaled to a -50 to +50 range, then averaged together. The MACD component uses adaptive scaling based on its historical volatility to remain relevant across different market conditions.
## Volume Weighting
The indicator amplifies signals when volume is elevated and dampens them when volume is low. It uses a logarithmic scaling approach to smooth extreme volume spikes. There's also a minimum volume filter that prevents signals from triggering during very low-volume periods.
## Settings Explained
**Momentum Settings:**
- **Length (14)** - Lookback period for Williams %R and Stochastic calculations
- **MACD Fast/Slow/Signal (12/26/9)** - Standard MACD parameters
- **ROC Length (10)** - Lookback for rate of change calculation
- **MACD StDev Length (200)** - Historical window for normalizing MACD values
**Levels:**
- **Overbought Level (+100)** - Threshold for extreme upside momentum
- **Oversold Level (-100)** - Threshold for extreme downside momentum
**Volume Settings:**
- **Enable Volume Weighting** - Toggle volume amplification on/off
- **Volume Sensitivity (1.5)** - Controls how much volume impacts the signal (higher = stronger impact)
- **Min Avg Volume (50,000)** - Filters out signals when 5-bar average volume is too low
**Components:**
- **Include ROC Component** - Toggle to add/remove ROC from the calculation
- **Enable Trend Filter** - Only allows signals aligned with the 200-period EMA trend
- **Show Component Plots** - Displays individual oscillator values for tuning purposes
## Trading Signals
**Entry Signals:**
- **Long (green triangle)** - Composite crosses above the oversold level with adequate volume
- **Short (red triangle)** - Composite crosses below the overbought level with adequate volume
**Exit Signals (when trend filter enabled):**
- **Long Exit** - Composite crosses below zero from positive territory
- **Short Exit** - Composite crosses above zero from negative territory
The indicator also provides alert conditions for automated notifications on these signal events.
Bifurcation Point Adaptive (Auto Oscillator ML)Bifurcation Point Adaptive - Auto Oscillator ML
Overview
Bifurcation Point Adaptive (🧬 BPA-ML) represents a paradigm shift in divergence-based trading systems. Rather than relying on static oscillator settings that quickly become obsolete as market dynamics shift, BPA-ML employs multi-armed bandit machine learning algorithms to continuously discover and adapt to the optimal oscillator configuration for your specific instrument and timeframe. This self-learning core is enhanced by a Cognitive Analytical Engine (CAE) that provides market-state intelligence, filtering out low-probability setups before they reach your chart.
The result is a system that doesn't just detect divergences - it understands context, learns from outcomes, and evolves with the market.
What Sets This Apart: Technical Comparison
The TradingView community has many excellent divergence indicators and several claiming "machine learning" capabilities. However, a detailed technical analysis reveals that BPA-ML operates at a fundamentally different level of sophistication.
Machine Learning: Real vs Marketing
Most indicators labeled "ML" or "AI" on TradingView use one of three approaches:
K-Nearest Neighbors (KNN): These indicators find similar historical patterns and assume current price will behave similarly. This is pattern matching, not learning. The system doesn't improve over time or adapt based on outcomes - it simply searches historical data for matches.
Clustering (K-Means): These indicators group volatility or market states into categories (high/medium/low). This is statistical classification, not machine learning. The clusters are recalculated but don't learn which classifications produce better results.
Gaussian Process Regression (GPR): These indicators use kernel weighting to create responsive moving averages. This is advanced curve fitting, not learning. The system doesn't evaluate outcomes or adjust strategy.
BPA-ML's Approach: True Reinforcement Learning
BPA-ML implements multi-armed bandit algorithms - a proven reinforcement learning technique used in clinical trials, A/B testing, and recommendation systems. This is fundamentally different:
Exploration vs Exploitation: The system actively balances trying new configurations (exploration) against using proven winners (exploitation). KNN and clustering don't do this - they simply process current data against historical patterns.
Reward-Based Learning: Every configuration is scored based on actual forward returns, normalized by volatility and clipped to prevent outlier dominance. The system receives a bonus when signals prove profitable. This creates a feedback loop where the indicator literally learns what works for your specific instrument and timeframe.
Four Proven Algorithms: UCB1 (Upper Confidence Bound), Thompson Sampling (Bayesian), Epsilon-Greedy, and Gradient-based learning. Each has different exploration characteristics backed by peer-reviewed research. You're not getting marketing buzzwords - you're getting battle-tested algorithms from academic computer science.
Continuous Adaptation: The learning never stops. As market microstructure evolves, the bandit discovers new optimal configurations. Other "adaptive" indicators recalculate but don't improve - they use the same logic on new data. BPA-ML fundamentally changes which logic it uses based on what's working.
The Configuration Grid: 40 Arms vs Fixed Settings
Traditional divergence indicators use a single oscillator with fixed parameters - typically RSI with length 14. More advanced systems might let you choose between RSI, Stochastic, or CCI, but you're still picking one manually.
BPA-ML maintains a grid of 40 candidate configurations:
- 5 oscillator families (RSI, Stochastic, CCI, MFI, Williams %R)
- 4 length parameters (short, medium, medium-long, long)
- 2 smoothing settings (fast, slow)
The bandit evaluates all 40 continuously and automatically selects the optimal one. When market microstructure changes - say, from trending crypto to ranging forex - the system discovers this and switches configurations without your intervention.
Why This Matters: Markets exhibit different characteristics. Bitcoin on 5-minute charts might favor fast Stochastic (high sensitivity to quick moves), while EUR/USD on 4-hour charts might favor smoothed RSI (filtering noise in steady trends). Manual optimization is guesswork. The bandit discovers these nuances mathematically.
Cognitive Analytical Engine: Beyond Simple Filters
Many divergence indicators include basic filters - perhaps checking if RSI is overbought/oversold or if volume increased. These are single-metric gates that treat all market states the same.
BPA-ML's CAE synthesizes five intelligence layers into a comprehensive market-state assessment:
Trend Conviction Score (TCS): Combines ADX normalization, multi-timeframe EMA alignment, and structural persistence. This isn't just "is ADX above 25?" - it's a weighted composite that captures trending vs ranging regimes with nuance. The threshold itself is adaptive via mini-bandit if enabled.
Directional Momentum Alignment (DMA): ATR-normalized EMA spread creates a regime-aware momentum indicator. The same price move reads differently in high vs low volatility environments. Most indicators ignore this context.
Exhaustion Modeling: Aggregates volume spikes, pin bar formations, extended runs without pullback, and extreme oscillator readings into a unified probability of climax. This multi-factor approach catches exhaustion signals that single metrics miss. High exhaustion can override trend filters - allowing reversal trades at genuine turning points that basic filters would block.
Adversarial Validation: Before approving a bullish signal, the engine quantifies both the bull case AND the bear case. If the opposing case dominates by a threshold, the signal is blocked. This is game-theory applied to trading - most indicators don't check if you're fighting obvious strength in the opposite direction.
Confidence Scoring: Every signal receives a 0-1 quality score blending all CAE components plus divergence strength. You can size positions by confidence - a concept absent in most divergence indicators that treat all signals identically.
Adaptive Parameters: Mini-Bandits
Even the filtering thresholds themselves learn. Most indicators have you set pivot lookback periods, minimum divergence strength, and trend filter strictness manually. These are instrument-specific - what works for one asset fails on another.
BPA-ML's mini-bandits optimize:
- Pivot lookback strictness (balance between catching small structures vs requiring major swings)
- Minimum slope change threshold (filter weak divergences vs allow early entries)
- TCS threshold for trend filtering (how strict counter-trend blocking should be)
These learn the same way the oscillator bandit does - via reward scoring and outcome evaluation. The entire system personalizes to your trading context.
Visual Intelligence: Five Presentation Modes
Most indicators offer basic customization - perhaps choosing colors or line thickness. BPA-ML includes five distinct visual modes, each designed for specific use cases:
Quantum Mode: Renders signals as probability clouds where opacity encodes confidence. High-confidence signals are bold and opaque; low-confidence signals are faint and translucent. This visually guides position sizing in a way that static markers cannot. No other divergence indicator I've found uses confidence-based visual encoding.
Holographic Mode: Multi-layer gradient bands create depth perception showing signal quality zones. Excellent for teaching and presentations.
Cyberpunk Mode: Neon centerlines with particle glow trails. High-contrast for immersive dark-theme trading.
Standard Mode: Professional dashed lines and zones. Clean, presentation-ready.
Minimal Mode: Maximum performance for backtesting and low-powered devices.
The visual system isn't cosmetic - it's part of the decision support infrastructure.
Dashboard: Real-Time Intelligence
Many indicators include dashboards showing current indicator values or basic statistics. BPA-ML's dashboard is a comprehensive control center:
Oscillator Section: Shows which configuration is currently selected, why it's selected (pull statistics, reward scores), and learning progression (warmup, learning, active).
CAE Section: Real-time TCS, DMA, Exhaustion, Adversarial cases, and Confidence scores with visual indicators (emoji-coded states, bar graphs, trend arrows).
Bandit Performance: Algorithm selection, mode (Switch vs Blend), arm distribution, differentiation metrics, learning diagnostics.
State Metrics Grid (Large mode): Normalized readings for trend alignment, momentum, volatility, volume flow, Bollinger position, ROC, directional movement, oscillator bias - all synthesized into a composite market state.
This level of transparency is rare. Most "black box" indicators hide their decision logic. BPA-ML shows you exactly why it's making decisions in real-time, enabling informed discretionary overrides.
Repainting: Complete Transparency
Many divergence indicators don't clearly disclose repainting behavior. BPA-ML offers three explicit timing modes:
Realtime: Shows developing signals on current bar. Repaints by design - this is a preview mode for learning, not for trading.
Confirmed: Signals lock at bar close. Zero repainting. Recommended for live trading.
Pivot Validated: Waits for full pivot confirmation (5+ bar delay). Highest purity, zero repainting, ideal for backtesting divergence quality.
You choose the mode based on your priority - speed vs certainty. The transparency empowers rather than obscures.
Educational Value: Learning Platform
Most indicators are tools - you use them, but you don't learn from them. BPA-ML is designed as a learning platform:
Advisory Mode: Signals always appear, but blocked signals receive warning annotations explaining why CAE would have filtered them. You see the decision logic in action without missing learning opportunities.
Dashboard Transparency: Real-time display of all metrics shows exactly how market state influences decisions.
Comprehensive Documentation: In-indicator tooltips, extensive publishing statement, and user guides explain not just what to click, but why the algorithms work and how to apply them strategically.
Algorithm Comparisons: By trying different bandit algorithms (UCB1 vs Thompson vs Epsilon vs Gradient), you learn the differences between exploration strategies - knowledge applicable beyond trading.
This isn't just a signal generator - it's an educational tool that teaches machine learning concepts, market intelligence interpretation, and systematic decision-making.
What This System Is NOT
To be completely transparent about positioning:
Not a Prediction System: BPA-ML doesn't predict future prices. It identifies structural divergences, assesses current market state, and learns which oscillator configurations historically correlated with better forward returns. The learning is retrospective optimization, not fortune telling.
Not Fully Automated: This is a decision support tool, not a push-button profit machine. You still need to execute trades, manage risk, and apply discretionary judgment. The confidence scores guide position sizing, but you determine final risk allocation.
Not Beginner-Friendly: The sophistication comes with complexity. This system requires understanding of divergence trading, basic machine learning concepts, and market state interpretation. It's designed for intermediate to advanced traders willing to invest time in learning the system.
Not Magic: Even with optimal configurations and intelligent filtering, markets are probabilistic. Losing trades are inevitable. The system improves your probability distribution - it doesn't eliminate risk or guarantee profits.
The Fundamental Difference
Here's the core distinction:
Traditional Divergence Indicators: Detect patterns and hope they work.
"ML" Indicators (KNN/Clustering): Detect patterns and compare to historical similarities.
BPA-ML: Detects patterns, evaluates outcomes, learns which detection methods work best for this specific context, understands market state before suggesting trades, and continuously improves without manual intervention.
The difference isn't incremental - it's architectural. This is trading system infrastructure with embedded intelligence, not just a pattern detector with filters.
Who This Is For
BPA-ML is ideal for traders who:
- Value systematic approaches over discretionary guessing
- Appreciate transparency in decision logic
- Are willing to let systems learn over 200+ bars before judging performance
- Trade liquid instruments on 5-minute to daily timeframes
- Want to learn machine learning concepts through practical application
- Seek professional-grade tools without institutional price tags
It's not ideal for:
- Absolute beginners needing simple plug-and-play systems
- 1-minute scalpers (noise dominates at very low timeframes)
- Traders of illiquid instruments (insufficient data for learning)
- Those seeking magic solutions without understanding methodology
- Impatient optimizers wanting instant perfection
What Makes This Original
The innovation in BPA-ML lies in three interconnected breakthroughs that work synergistically:
1. Multi-Armed Bandit Oscillator Selection
Traditional divergence indicators require manual optimization - you choose RSI with a length of 14, or Stochastic with specific settings, and hope they work. BPA-ML eliminates this guesswork through machine learning. The system maintains a grid of 40 candidate oscillator configurations spanning five oscillator families (RSI, Stochastic, CCI, MFI, Williams %R), four length parameters, and two smoothing settings. Using proven bandit algorithms (UCB1, Thompson Sampling, Epsilon-Greedy, or Gradient-based learning), the system continuously evaluates which configuration produces the best forward returns and automatically switches to the winning arm. This isn't random testing - it's intelligent exploration with exploitation, balancing the discovery of new opportunities against leveraging proven configurations.
2. Cognitive Analytical Engine (CAE)
Divergences occur constantly, but most fail. The CAE solves this by computing a comprehensive market intelligence layer:
Trend Conviction Score (TCS): Synthesizes ADX normalization, multi-timeframe EMA alignment, and structural persistence into a single 0-1 metric that quantifies how strongly the market is trending. When TCS exceeds your threshold, the system knows to avoid counter-trend trades unless other factors override.
Directional Momentum Alignment (DMA): Measures the spread between fast and slow EMAs, normalized by ATR. This creates a regime-aware momentum indicator that adjusts its interpretation based on current volatility.
Exhaustion Modeling: Aggregates volume spikes, pin bar formations, extended runs above/below EMAs, and extreme RSI readings into a probability that the current move is reaching climax. High exhaustion can override trend filters, allowing reversal trades at genuine turning points.
Adversarial Validation: Before approving a bullish signal, the engine quantifies both the bull case (proximity to support EMAs, oversold conditions, volume confirmation) and the bear case (distance to resistance, overbought conditions). If the opposing case dominates by your threshold, the signal is blocked or flagged with a warning.
Confidence Scoring: Every signal receives a 0-1 confidence score blending TCS, momentum magnitude, pullback quality, market state metrics, divergence strength, and adversarial advantage. You can gate signals on minimum confidence, ensuring only high-probability setups reach your attention.
3. Adaptive Parameter Mini-Bandits
Beyond the oscillator itself, BPA-ML uses additional bandit systems to optimize:
- Pivot lookback strictness
- Minimum slope change threshold
- TCS threshold for trend filtering
These parameters are often instrument-specific. The adaptive bandits learn these nuances automatically.
Why These Components Work Together
Each layer serves a specific purpose in the signal generation hierarchy:
Layer 1 - Oscillator Selection: The bandit ensures you're always using the oscillator configuration best suited to current market microstructure.
Layer 2 - Divergence Detection: With the optimal oscillator selected, the engine scans for structural divergences using confirmed pivots.
Layer 3 - CAE Filtering: Raw divergences are validated against market intelligence.
Layer 4 - Spacing & Timing: Quality signals need proper spacing to avoid over-trading.
This isn't a random collection of indicators. It's a decision pipeline where each stage refines signal quality, and the machine learning ensures the entire system stays calibrated to your specific trading context.
Core Components - Deep Dive
Divergence Engine
The foundation is a dual-mode divergence detector:
Regular Divergence: Price makes a higher high while oscillator makes a lower high (bearish), or price makes a lower low while oscillator makes a higher low (bullish). These signal potential reversals.
Hidden Divergence: Price makes a lower high while oscillator makes a higher high (bullish continuation), or price makes a higher low while oscillator makes a lower low (bearish continuation). These signal trend strength.
Pivots are confirmed using symmetric lookback periods. Divergence strength is quantified via slope separation between price and oscillator.
Signal Timing Modes
Realtime (live preview): Shows potential signals on current bar. Repaints by design. Use for learning only.
Confirmed (1-bar delay): Signals lock at bar close. No repainting. Recommended for live trading.
Pivot Validated: Waits for full pivot confirmation (5+ bar delay). Highest purity, best for backtesting.
Multi-Armed Bandit Algorithms
UCB1: Optimism under uncertainty. Excellent balance for most use cases.
Thompson Sampling: Bayesian approach with smooth exploration. Great for long-term adaptation.
Epsilon-Greedy: Simple exploitation with random exploration. Easy to understand.
Gradient-based: Lightweight weight adjustment based on rewards. Fast and efficient.
Bandit Operating Modes
Switch Mode: Uses top-ranked arm directly. Maximum amplitude, crisp signals.
Blend Mode: Softmax mixture with dominant-arm preservation. Ensemble stability while maintaining amplitude for overbought/oversold crossings.
How to Use This Indicator
Initial Setup
1. Apply BPA-ML to your chart
2. Select visual mode (Minimal/Standard/Holographic/Cyberpunk/Quantum)
3. Choose signal timing - "Confirmed (1-bar delay)" for live trading
4. Set Oscillator Type to "Auto (ML)" and enable it
5. Select bandit algorithm - UCB1 recommended
6. Choose Blend mode with temperature 0.4-0.5
CAE Configuration
Start with "Advisory" mode to learn the system. Signals appear with warnings if CAE would have blocked them.
Switch to "Filtering" mode when comfortable - CAE actively blocks low-quality signals.
Enable the three primary filters:
- Strong Trend Filter
- Adversarial Validation
- Confidence Gating
Parameter Guidance by Trading Style
Scalping (1-5 minute charts):
- Algorithm: Thompson or UCB1
- Mode: Blend (temp 0.3-0.4)
- Horizon: 8-12 bars
- Min Confidence: 0.30-0.40
- TCS Threshold: 0.70-0.80
- Spacing: 8-12 any, 16-24 same-side
Day Trading (15min-1H charts):
- Algorithm: UCB1
- Mode: Blend (temp 0.4-0.6)
- Horizon: 12-24 bars
- Min Confidence: 0.35-0.45
- TCS Threshold: 0.80-0.85
- Spacing: 12-20 any, 20-30 same-side
Swing Trading (4H-Daily charts):
- Algorithm: UCB1 or Thompson
- Mode: Blend (temp 0.6-1.0) or Switch
- Horizon: 20-40 bars
- Min Confidence: 0.40-0.55
- TCS Threshold: 0.85-0.95
- Spacing: 20-40 any, 30-60 same-side
Signal Interpretation
Bullish Signals: Green markers below price. Enter long when detected.
Bearish Signals: Red markers above price. Enter short when detected.
Blocked Signals: Orange X markers show filtered signals (Advisory mode).
Confidence Rings: Single ring at 50%+ confidence, double at 70%+. Use for position sizing.
Dashboard Metrics
Oscillator Section: Shows active type, value, state, and parameters.
Cognitive Engine:
- TCS: 0.80+ indicates strong trend
- DMA: Momentum direction and strength
- Exhaustion: 0.75+ warns of reversal
- Bull/Bear Case: Adversarial scoring
- Differential: Net directional advantage
Bandit Performance: Shows algorithm, mode, selected configuration, and learning diagnostics.
Visual Zones
- Bullish Zone: Blue/cyan tint - favorable for longs
- Bearish Zone: Red/magenta tint - favorable for shorts
- Exhaustion Zone: Yellow warning - reduce sizing
Visual Mode Selection
Minimal: Clean triangles, maximum performance
Standard: Dashed lines with zones, professional presentation
Holographic: Gradient bands, excellent for teaching
Cyberpunk: Neon glow trails, high contrast
Quantum: Probability cloud with confidence-based opacity
Calculation Methodology
Oscillator Computation
For each bandit arm: calculate base oscillator, apply smoothing, normalize to 0-100.
Switch mode: use top arm directly.
Blend mode: softmax mixture blended with dominant arm (70/30) to preserve amplitude.
Divergence Detection
1. Identify price and oscillator pivots using symmetric periods
2. Store recent pivots with bar indices
3. Scan for slope disagreements within lookback range
4. Require minimum slope separation
5. Classify as regular or hidden divergence
6. Compute strength score
CAE Metrics
TCS: 0.35×ADX + 0.35×structural + 0.30×alignment
DMA: (EMA21 - EMA55) / ATR14
Exhaustion: Aggregates volume, divergence, RSI extremes, pins, extended runs
Confidence: 0.30×TCS + 0.25×|DMA| + 0.20×pullback + 0.15×state + 0.10×divergence + adversarial
Bandit Rewards
Every horizon period: compute log return normalized by ATR, clip to ±0.5, bonus if signal was positive. Update arm statistics per algorithm.
Ideal Market Conditions
Best Performance:
- Liquid instruments with clear structure
- Trending markets with consolidations
- 5-minute to daily timeframes
- Consistent volume and participation
Learning Requirements:
- Minimum 200 bars for warmup
- Ideally 500-1000 bars for full confidence
- Performance improves as bandit accumulates data
Challenging Conditions:
- Extremely low liquidity
- Very low timeframes (1-minute or below)
- Extended sideways consolidation
- Fundamentally-driven gap markets
Dashboard Interpretation Guide
TCS:
- 0.00-0.50: Weak trend, reversals viable
- 0.50-0.75: Moderate trend, mixed approach
- 0.75-0.85: Strong trend, favor continuation
- 0.85-1.00: Very strong trend, counter-trend high risk
DMA:
- -2.0 to -1.0: Strong bearish
- -0.5 to 0.5: Neutral
- 1.0 to 2.0: Strong bullish
Exhaustion:
- 0.00-0.50: Fresh move
- 0.50-0.75: Mature, watch for reversals
- 0.75-0.85: High exhaustion
- 0.85-1.00: Critical, reversal imminent
Confidence:
- 0.00-0.30: Low quality
- 0.30-0.50: Moderate quality
- 0.50-0.70: High quality
- 0.70-1.00: Premium quality
Common Questions
Why no signals?
- Blend mode: lower temperature to 0.3-0.5
- Loosen OB/OS to 65/35
- Lower min confidence to 0.35
- Reduce spacing requirements
- Use Confirmed instead of Pivot Validated
Why frequent oscillator switching?
- Normal during warmup (first 200+ bars)
- After warmup: may indicate regime shifting market
- Lower temperature in Blend mode
- Reduce learning rate or epsilon
Blend vs Switch?
Use Switch for backtesting and maximum exploitation.
Use Blend for live trading with temperature 0.3-0.5 for stability.
Recalibration frequency?
Never needed. System continuously adapts via bandit learning and weight decay.
Risk Management Integration
Position Sizing:
- 0.30-0.50 confidence: 0.5-1.0% risk
- 0.50-0.70 confidence: 1.0-1.5% risk
- 0.70+ confidence: 1.5-2.0% risk (maximum)
Stop Placement:
- Reversals: beyond divergence pivot plus 1.0-1.5×ATR
- Continuations: beyond recent swing opposite direction
Targets:
- Primary: 2-3×ATR from entry
- Scale at interim levels
- Trail after 1.5×ATR in profit
Important Disclaimers
BPA-ML is an advanced technical analysis tool for identifying high-probability divergence patterns and assessing market state. It is not a complete trading system. Machine learning components adapt to historical patterns, which does not guarantee future performance. Proper risk management, position sizing, and additional confirmation methods are essential. No indicator eliminates losing trades.
Backtesting results may differ from live performance due to execution factors and dynamic bandit learning. Always validate on demo before committing real capital. CAE filtering reduces but does not eliminate false signals. Market conditions change rapidly. Use appropriate stops and never risk excessive capital on any single trade.
— Dskyz, Trade with insight. Trade with anticipation.
Composite Buy/Sell Score [-100 to +100] by LMComposite Buy/Sell Score (Stabilized + Sensitivity) by LM
Description:
This indicator calculates a composite trend strength score ranging from -100 to +100 by combining multiple popular technical indicators into a single, smoothed metric. It is designed to give traders a clear view of bullish and bearish trends, while filtering out short-term noise.
The score incorporates signals from:
PPO (Percentage Price Oscillator) – measures momentum via the difference between fast and slow EMAs.
ADX (Average Directional Index) – detects trend strength.
RSI (Relative Strength Index) – identifies short-term momentum swings.
Stochastic RSI – measures RSI momentum and speed of change.
MACD (Moving Average Convergence Divergence) – detects momentum shifts using EMA crossovers.
Williams %R – highlights overbought/oversold conditions.
Each component is weighted, smoothed, and optionally confirmed across a configurable number of bars, producing a stabilized composite score that reacts more reliably to significant trend changes.
Key Features:
Smoothed Composite Score
The final score is smoothed using an EMA to reduce volatility and emphasize meaningful trends.
A Sensitivity Multiplier allows traders to exaggerate the score for stronger trend signals or dampen it for quieter markets.
Customizable Inputs
You can adjust each indicator’s parameters, smoothing lengths, and confirm bars to suit your preferred timeframe and trading style.
The sensitivity multiplier allows fine-tuning the responsiveness of the trend line without changing underlying indicator calculations.
Visual Representation
Score Line: Green for positive (bullish) trends, red for negative (bearish) trends, gray near neutral.
Reference Lines:
0 = neutral
+100 = maximum bullish
-100 = maximum bearish
Adaptive Background: Optionally highlights the background intensity proportional to trend strength. Strong green for bullish trends, strong red for bearish trends.
Multi-Indicator Integration
Combines momentum, trend, and overbought/oversold signals into a single metric.
Helps identify clear entry/exit trends while avoiding whipsaw noise common in individual indicators.
Recommended Use:
Trend Identification: Look for sustained movement above 0 for bullish trends and below 0 for bearish trends.
Exaggerated Trends: Use the Sensitivity Multiplier to emphasize strong trends.
Filtering Noise: The smoothed score and confirmBars settings help reduce false signals from minor price fluctuations.
Inputs Overview:
Input Purpose
PPO Fast EMA / Slow EMA / Signal Controls PPO momentum sensitivity
ADX Length / Threshold Detects trend strength
RSI Length / Overbought / Oversold Measures short-term momentum
Stoch RSI Length / %K / %D Measures speed of RSI changes
MACD Fast / Slow / Signal Measures momentum crossover
Williams %R Length Detects overbought/oversold conditions
Final Score Smoothing Length EMA smoothing for final composite score
Confirm Bars for Each Signal Number of bars used to confirm individual indicator signals
Sensitivity Multiplier Scales the final composite score for exaggerated trend response
Highlight Background by Trend Strength Enables adaptive background coloring
This indicator is suitable for traders looking for a single, clear trend metric derived from multiple indicators. It can be applied to any timeframe and can help identify both strong and emerging trends in the market.
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.






















