Trend Lines and MoreMulti-Indicator consisting of several useful indicators in a single package.
TREND LINES
-By default the 20 SMA and 50 SMA are shown.
-Use "MOVING AVERAGE TYPE" to select SMA, EMA, Double-EMA, Triple-EMA, or Hull.
-Use "50 MA TREND COLOR" to have the 50 turn green/red for uptrend/downtrend.
-Use "DAILY SOURCE ONLY" to always show daily averages regardless of timeframe.
-Use "SHOW LONG MA" to also include 100, 150, and 200 moving averages.
-Use "SHOW MARKERS" to show a small colored marker identifying which line is which.
OTHER INDICATORS
-You can show Bollinger Bands and Parabolic SAR.
-You can highlight key reversal times (9:50-10:10 and 14:40-15:00).
-You can show price offset markers, where was the price "n" periods ago.
That last one is useful to show the level of prices which are about to "fall off" the moving average
and be replaced with current price. So for example, if current price is significantly below the
200-days-ago price, you can gauge the difficulty for the 200 MA to start climbing again.
ابحث في النصوص البرمجية عن "北证50+指数成分股"
Multi SMA EMA WMA HMA BB (4x3 MAs Bollinger Bands) Pro MTF - RRBMulti SMA EMA WMA HMA 4x3 Moving Averages with Bollinger Bands Pro MTF by RagingRocketBull 2018
Version 1.0
This indicator shows multiple MAs of any type SMA EMA WMA HMA etc with BB and MTF support, can show MAs as dynamically moving levels.
There are 4 MA groups + 1 BB group. You can assign any type/timeframe combo to a group, for example:
- EMAs 50,100,200 x H1, H4, D1, W1 (4 TFs x 3 MAs x 1 type)
- EMAs 8,13,21,55,100,200 x M15, H1 (2 TFs x 6 MAs x 1 type)
- D1 EMAs and SMAs 12,26,50,100,200,400 (1 TF x 6 MAs x 2 types)
- H1 WMAs 7,77,231; H4 HMAs 50,100,200; D1 EMAs 144,169,233; W1 SMAs 50,100,200 (4 TFs x 3 MAs x 4 types)
- +1 extra MA type/timeframe for BB
compile time: 25-30 sec
full redraw time after parameter change in UI: 3 sec
There are several versions: Simple, MTF, Pro MTF, Advanced MTF and Ultimate MTF. This is the Pro MTF version. The Differences are listed below. All versions have BB
- Simple: you have 2 groups of MAs that can be assigned any type (5+5)
- MTF: +2 custom Timeframes for each group (2x5 MTF)
- Pro MTF: +4 custom Timeframes for each group (4x3 MTF), MA levels and show max bars back options
- Advanced MTF: +2 extra MAs/group (4x5 MTF), custom Ticker/Symbol, backreferences for type, TF and MA lengths in UI
- Ultimate MTF: +individual settings for each MA, custom Ticker/Symbols
Features:
- 4x3 = 12 MAs of any type including Hull Moving Average (HMA)
- 4x MTF groups with step line smoothing
- BB +1 extra TF/type for BB MAs
- 12 MA levels with adjustable group offsets, indents and shift
- show max bars back
- you can show/hide both groups of MAs/levels and individual MAs
Notes:
1. based on 3EmaBB, uses plot*, barssince and security functions
2. you can't set certain constants from input due to Pinescript limitations - change the code as needed, recompile and use as a private version
3. Levels = trackprice implementation
4. Show Max Bars Back = show_last implementation
5. uses timeframe textbox instead of input resolution to allow for 120 240 and other custom TFs. Also supports TFs in hours: 2H or H2
6. swma has a fixed length = 4, alma and linreg have additional offset and smoothing params
7. Smoothing is applied by default for visual aesthetics on MTF. To use exact ma mtf values (lines with stair stepping) - disable it
MTF Notes:
- uses simple timeframe textbox instead of input resolution dropdown to allow for 120, 240 and other custom TFs, also supports timeframes in H: 2H, H2
- Groups that are not assigned a Custom TF will use Current Timeframe (0).
- MTF will work for any MA type assigned to the group
- MTF works both ways: you can display a higher TF MA/BB on a lower TF or a lower TF MA/BB on a higher TF.
- MTF MA values are normally aligned at the boundary of their native timeframe. This produces stair stepping when a higher TF MA is viewed on a lower TF.
Therefore X Y Point Density/Smoothing is applied by default on MA MTF for visual aesthetics. Set both to 0 to disable and see exact ma mtf values (lines with stair stepping and original mtf alignment).
- Smoothing is disabled for BB MTF bands because fill doesn't work with smoothed MAs after duplicate values are replaced with na.
- MTF MA Value fluctuation is possible on the current bar due to default security lookahead
Smoothing:
- X,Y == 0 - X,Y smoothing disabled (stair stepping on high TFs)
- X == 0, Y > 0 - X,Y smoothing applied to all TFs
- Y == 0, X > 0 - X smoothing applied to all TFs < deltaX_max_tf, Y smoothing disabled
- X > 0, Y > 0 - Y smoothing applied to all TFs, then X smoothing applied to all TFs < deltaX_max_tf
X Smoothing with Y == 0 - shows only every deltaX-th point starting from the first bar.
X Smoothing with Y > 0 - shows only every deltaX-th point starting from the last shown Y point, essentially filling huge gaps remaining after Y Smoothing with points and preserving the curve's general shape
X Smoothing on high TFs with already scarce points produces weird curve shapes, it works best only on high density lower TFs
Y Smoothing reduces points on all TFs, removes adjacent points with prices within deltaY, while preserving the smaller curve details.
A combination of X,Y produces the most accurate smoothing. Higher delta value - larger range, more points removed.
Show Max Bars Back:
- can't set plot show_last from input -> implemented using a timenow based range check
- you can't delete/modify history once plotted, so essentially it just sets a start point for plotting (from num_bars bars back) that works only in realtime mode (not in replay)
Levels:
You can plot current MA value using plot trackprice=true or by checking Show Price Line in Style. Problem is:
- you can only change color (not the dashed line style, width), have both ma + price line (not just the line), and it's full screen wide
- you can't set plot trackprice from input => implemented using plotshape/plotchar with fixed text labels serving as levels
- there's no other way of creating a dynamic level: hline, plot, offset - nothing else works.
- you can't plot a text var - all text strings must be constants, so you can't change the style, width and text labels without recompiling.
- from input you can only adjust offset, indent and shift for each level group, and change color
- the dot below each level line is the exact MA value. If you want just the line swap plotshape with plotchar, recompile and save as your private version, adjust Y shift.
To speed up redraw times: reduce last_bars to ~2000, recompile and use as your own private version
Pinescript is a rudimentary language (should be called Painscript instead) that can basically only plot data. You can't do much else. Please see the code for tips and hints.
Certain things just can't be done or require shady workarounds and weeks of testing trying to resolve weird node.js compiler errors.
Feel free to learn from/reuse/change the code as needed and use as your own private version. See comments in code. Good Luck!
Simple_longshort_signalsLong Entry
Criteria:
1) Green candle close above 50MA
2) Green candle close above 20MA
3) MA of RSI(14) is cross upward 50
Result: displays green up arrow
Long Exit
Criteria:
1) Three red candles in a row
2) Any candle close bellow 20MA
3) MA of RSI(14) cross downward 50
Result: displays green diamond
Short Entry
1) Red candle close bellow 50MA
2) Red candle close bellow 20MA
3) MA of RSI(14) is cross downward 50
Result: displays red down arrow
Short Exit
Criteria
1) Three green candles in a row
2) Any candle close above 20MA
3) MA of RSI(14) is cross upward 50
Result: displays red diamond
Noro's Double RSI Strategy 1.0Strategy uses only 2 RSI indicators. Slow and fast.
If slow RSI > 50 and fast RSI < 50 - to open a long-position
If slow RSI < 50 and fast RSI > 50 - to open a short-position
If the long-position is open and a candle green - to close a long-position
if the short-position is open and a candle red - to close a short-position
GoldenCross by PuffyThis is a simple trading strategy that seeks the Golden Cross and Death Cross on the 4HR chart. The fast moving indicator in this strategy is the EMA 50 and the slow moving indicator is the EMA 200. When the EMA 50 crosses over the EMA 200 the strategy indicates a buy. When the EMA 50 crosses below the EMA 200 the strategy indicates a sell. This strategy averages trades in the 40 - 50 day range and as such should not be used with heavy leverage.
Exponential Moving Average (Set of 3) [Krypt] + 13/34 EMAsI took Krypt's script and essentially added on to it.
the 20/50/100/200 EMAs should be used together as support and resistance as normal.
Wait for price to break 200 EMA
Wait for 50 EMA to cross 200 EMA
Wait for pullback to 50 EMA to open position
20 and 100 EMAs are for extra information about moving support and resistance
and 13/34 EMAs should be used in conjunction
When 13 EMA crosses 34 EMA, open position
When price gets far from 13/34, close position (because price will attempt to revert back to mean)
This is better for scalping and swing trades than the 20/50/100/200 setup.
Twitter: @AzorAhai06
MTF EMAExponential Moving Average indicator that can be configured to display different timeframe EMA's.
Timeframe is set in minutes. Max timeframe currently is the daily (1440 minutes). Any value higher than 1440 will result in no plot.
Examples:
Daily 50 EMA plotted on 4H chart
4H 50 EMA and Daily 50 EMA plotted on 1H chart
Can also work in reverse if needed.
Example, Daily 50 EMA plotted on Weekly Chart
Price vs VolImproved version of OBV/price (this one actually works)
Both lines show where price is going relative to volume metrics (one line uses OBV, the other uses accumulation/distribution).
Green and above 50 means price is rising faster then buying volume
Red and below 50 means price is falling faster then selling volume
you can add smoothing in the controls and color will go according to raw (even if smoothing goes above/below 50)
under the hood: changes price, OBV and AD to RSI for comparability, calculates the difference between price and the others, then an RSI on the result to create an <50< style indicator.
this script replaces the previouse from:
EMA-RSI-MACD-Volume-Candle Combo HÂN HÂN//@version=5
indicator("EMA-RSI-MACD-Volume-Candle Combo", overlay=true)
// === EMA 20 & 50 ===
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
goldenCross = ta.crossover(ema20, ema50) // EMA20 cắt lên EMA50
plot(ema20, color=color.yellow, title="EMA 20")
plot(ema50, color=color.orange, title="EMA 50")
// === RSI (14) ===
rsi = ta.rsi(close, 14)
rsiCondition = rsi <= 30
// === MACD ===
macd = ta.ema(close, 12) - ta.ema(close, 26)
signal = ta.ema(macd, 9)
macdCondition = macd > 0
// === Volume breakout ===
volMA = ta.sma(volume, 20)
volCondition = volume > volMA * 1.5 // Volume > 150% so với MA20
// === Candlestick reversal patterns ===
// Bullish Engulfing
bullEngulf = close < open and close > open and close >= open and open <= close
// Hammer
hammer = (close > open) and ((high - low) > 3 * (open - close)) and ((close - low) / (0.001 + high - low) > 0.6)
candleCondition = bullEngulf or hammer
// === Combined Signal ===
buySignal = goldenCross and rsiCondition and macdCondition and volCondition and candleCondition
// Plot signals on chart
plotshape(buySignal, title="BUY Signal", style=shape.labelup, color=color.green, text="BUY", location=location.belowbar, size=size.large)
// Alerts
alertcondition(buySignal, title="BUY Signal Alert", message="EMA20>EMA50 + RSI≤30 + MACD>0 + Volume Breakout + Reversal Candle")
MCDX Plus - Leading Banker with Ichimoku (Swing Opt)Understanding the Indicator
Components:
Green Bars (Retailer): Inverse on top (stacked from 20 downward), represent retail momentum. High values (>15) with a lime background signal retail dominance—often a sell or avoid zone.
Yellow Bars (Hot Money): Middle layer, indicate speculative momentum. Useful as a secondary confirmation.
Red/Fuchsia Bars (Banker): Bottom layer, show institutional (banker/hedge fund) momentum. Red when RSI_Banker ≥ BankerMA, fuchsia otherwise. Crossings above 5, 10, 15 are key buy signals.
Blue Line (Banker MA): Hull Moving Average (HMA) of Banker RSI, tracks institutional trend with minimal lag.
Orange Line (Hot Money MA): HMA of Hot Money RSI.
Green Line (Retailer MA): HMA of Retailer RSI.
Reference Lines: 0 (base), 5 (25% Banker Entry), 10 (50% Banker Building), 15 (75% Banker Control), buildThreshold (2.0 for early signals).
Backgrounds: Red (RSI_Banker > 15, strong buy), Lime (RSI_Retailer > 15, sell/avoid), Blue (earlyBuildSignal, potential entry).
Precision Features:
HMAs reduce lag for faster cross signals.
Shortened MA periods (default 8) align with quick price moves.
PriceEMA (50-period) filters entries/exits with trend confirmation.
Pro-Level Usage Strategy
1. Master Entry Timing
Signal: Look for a Golden Cross (Banker MA crosses above Retailer MA or Hot Money MA) + red bars >5 + price > priceEMA (50-period EMA of close) + blue background (earlyBuildSignal).
Why It Works: The HMA’s low lag catches early institutional buying (red bars rising), while price > priceEMA confirms an uptrend. The blue background (RSI_Banker > 2, positive ROC, volume > volMA) flags pre-breakout accumulation.
Pro Action:
Enter a small position on the Golden Cross with blue background.
Add to the position as red bars hit 10, confirmed by volume spikes (volume > volMA).
Set a stop-loss 2-3% below the recent low or the 20-period price EMA.
Target a take-profit at 10-15% or when red bars approach 15.
2. Nail Exit Timing
Signal: Look for a Dead Cross (Banker MA crosses below Retailer MA or Hot Money MA) + green bars >15 + price < priceEMA + lime background.
Why It Works: The HMA’s precision flags waning institutional interest (red bars falling), while green bars >15 and a lime background indicate retail overextension—a classic reversal point. Price < priceEMA confirms a downtrend.
Pro Action:
Exit partial profits on the Dead Cross if red bars drop below 10.
Full exit when green bars >15 and lime background appear, with a stop-loss moved to break-even.
Target a re-entry on the next Golden Cross if red bars recover.
3. Use Cross Signals as Triggers
Golden Cross (Buy): Banker MA > Retailer MA or Hot Money MA. Confirm with red bars >5 and price > priceEMA.
Dead Cross (Sell/Avoid): Banker MA < Retailer MA or Hot Money MA. Confirm with green bars >15 and price < priceEMA.
Pro Action:
Set TradingView alerts for these conditions (e.g., "GC: Banker > Retailer MA and Price > EMA50" for buy).
Use multiple timeframes (e.g., 1H for entry, 4H for exit) to filter noise.
Combine with candlestick patterns (e.g., bullish engulfing for entry) for confirmation.
4. Leverage Backgrounds for Momentum
Red Background (RSI_Banker > 15): Strong institutional control—hold or add to longs.
Lime Background (RSI_Retailer > 15): Retail dominance—exit or short (if your broker allows).
Blue Background (earlyBuildSignal): Early banker accumulation—prepare for entry, watch for Golden Cross.
Pro Action:
Scale into trades during red zones, scale out in lime zones.
Use blue zones to anticipate breakouts, entering only after cross confirmation.
5. Optimize with Volume and Price
Volume Confirmation: Enter only when volume > volMA (10-period SMA) during Golden Cross or red bar rises.
Price Action: Align entries with support/resistance breaks, exits with trendline breaks.
Pro Action:
Add a volume oscillator (e.g., OBV) to your chart to confirm spikes.
Use Fibonacci retracement (e.g., 50% level) with MCDX signals for precise targets.
6. Pro Risk Management
Position Sizing: Risk 1-2% of capital per trade, adjusting based on red bar height (e.g., larger size at 15).
Stop-Loss: Dynamic—below recent low for entries, above recent high for exits, or trailing 2% below price EMA.
Take-Profit: Scale out at 5-10-15 red bar levels or key price targets (e.g., 20% gain).
Risk-Reward: Aim for 1:3 or better, validated by backtesting.
Ichimoku Cloud
What It Does: Combines five lines—Tenkan-sen (conversion line), Kijun-sen (base line), Senkou Span A/B (cloud edges), and Chikou Span (lagging span)—to provide trend direction, support/resistance, and momentum. The cloud (area between Span A and B) acts as a dynamic zone to filter trades.
Benefits for MCDX Plus:
Trend Confirmation: Entry is stronger when a Golden Cross (Banker MA > Retailer MA) occurs above the cloud (bullish), or exit on Dead Cross below the cloud (bearish). This aligns with priceEMA (50-period) filtering.
Support/Resistance: The cloud’s edges (e.g., Senkou Span B) can act as profit targets or stop-loss levels, enhancing precision on CleanSpark’s sharp moves.
Leading Edge: The Tenkan-sen (default 9-period) and Kijun-sen (default 26-period) cross can signal momentum shifts before MCDX crosses, complementing the blue earlyBuildSignal.
Visual Clarity: Adds a contextual layer to your chart, making it easier to see if red bars >5 align with a bullish cloud breakout.
Drawbacks:
Complexity: Requires learning (e.g., cloud thickness indicates strength), which might clutter your workflow if you’re focused solely on red bars.
Lag in Volatile Markets: The cloud’s 26-period base can lag in fast reversals
Best For: Swing traders or those wanting a holistic trend filter. Backtests on similar scripts (e.g., Smart Money Flow Pro + Ichimoku) show 70-80% accuracy when cloud aligns with MCDX signals.
Technical Summary VWAP | RSI | VolatilityTechnical Summary VWAP | RSI | Volatility
The Quantum Trading Matrix is a multi-dimensional market-analysis dashboard designed as an educational and idea-generation tool to help traders read price structure, participation, momentum and volatility in one compact view. It is not an automated execution system; rather, it aggregates lightweight “quantum” signals — VWAP position, momentum oscillator behaviour, multi-EMA trend scoring, volume flow and institutional activity heuristics, market microstructure pivots and volatility measures — and synthesizes them into a single, transparent score and signal recommendation. The primary goal is to make explicit why a given market looks favourable or unfavourable by showing the individual ingredients and how they combine, enabling traders to learn, test and form rules based on observable market mechanics.
Each module of the matrix answers a distinct market question. VWAP and its percentage distance indicate whether the current price is trading above or below the intraday volume-weighted average — a proxy for intraday institutional control and value. The quantum momentum oscillator (fast and slow EMA difference scaled to percent) captures short-to-intermediate momentum shifts, providing a quickly responsive view of directional pressure. Multi-EMA trend scoring (8/21/50) produces a simple, transparent trend score by counting conditions such as price above EMAs and cross-EMAs ordering; this score is used to categorize market trend into descriptive buckets (e.g., STRONG UP, WEAK UP, NEUTRAL, DOWN). Volume analysis compares current volume to a recent moving average and computes a Z-score to detect spikes and unusual participation; additional buy/sell pressure heuristics (buyingPressure, sellingPressure, flowRatio) estimate whether upside or downside participation dominates the bar. Institutional activity is approximated by flagging large orders relative to volume baseline (e.g., volume > 2.5× MA) and estimating a dark pool proxy; this is a heuristic to highlight bars that likely had large players involved.
The dashboard also performs market-structure detection with small pivot windows to identify recent local support/resistance areas and computes price position relative to the daily high/low (dailyMid, pricePosition). Volatility is measured via ATR divided by price and bucketed into LOW/NORMAL/HIGH/EXTREME categories to help you adapt stop sizing and expectational horizons. Finally, all these pieces feed an interpretable scoring function that rewards alignment: VWAP above, strong flow ratio, bullish trend score, bullish momentum, and favorable RSI zone add to the overall score which is presented as a 0–100 metric and a colored emoji indicator for at-a-glance assessment.
The mashup is purposeful: each indicator covers a failure mode of the other. For example, momentum readings can be misleading during volatility spikes; VWAP informs whether institutions are on the bid or offer; volume Z-score detects abnormal participation that can validate a breakout; multi-EMA score mitigates single-EMA whipsaws by requiring a combination of price/EMA conditions. Combining these signals increases information content while keeping each component explainable — a key compliance requirement. The script intentionally emphasizes transparency: when it shows a BUY/SELL/HOLD recommendation, the dashboard shows the underlying sub-components so a trader can see whether VWAP, momentum, volume, trend or structure primarily drove the score.
For practical use, adopt a clear workflow: (1) check the matrix score and read the component tiles (VWAP position, momentum, trend and volume) to understand the drivers; (2) confirm market-structure support/resistance and pricePosition relative to the daily range; (3) require at least two corroborating components (for example, VWAP ABOVE + Momentum BULLISH or Volume spike + Trend STRONG UP) before considering entries; (4) use ATR-based stops or daily pivot distance for stop placement and size positions such that the trade risks a small, pre-defined percent of capital; (5) for intraday scalps shorten holding time and tighten stops, for swing trades increase lookback lengths and require multi-timeframe (higher TF) agreement. Treat the matrix as an idea filter and replay lab: when an alert triggers, replay the bars and observe which components anticipated the move and which lagged.
Parameter tuning matters. Shortening the momentum length makes the oscillator more sensitive (useful for scalping), while lengthening it reduces noise for swing contexts. Volume profile bars and MA length should match the instrument’s liquidity — increase the MA for low-liquidity stocks to reduce false institutional flags. The trend multiplier and signal sensitivity parameters let you calibrate how aggressively the matrix counts micro evidence into the score. Always backtest parameter sets across multiple periods and instruments; run walk-forward tests and keep a simple out-of-sample validation window to reduce overfitting risk.
Limitations and failure modes are explicit: institutional flags and dark-pool estimates are heuristics and cannot substitute for true tape or broker-level order flow; volume split by price range is an approximation and will not perfectly reflect signed volume; pivot detection with small windows may miss larger structural swings; VWAP is typically intraday-centric and less meaningful across multi-day swing contexts; the score is additive and may not capture non-linear relationships between features in extreme market regimes (e.g., flash crashes, circuit breaker events, or overnight gaps). The matrix is also susceptible to false signals during major news releases when price and volume behavior dislocate from typical patterns. Users should explicitly test behavior around earnings, macro data and low-liquidity periods.
To learn with the matrix, perform these experiments: (A) collect all BUY/SELL alerts over a 6-month period and measure median outcome at 5, 20 and 60 bars; (B) require additional gating conditions (e.g., only accept BUY when flowRatio>60 and trendScore≥4) and compare expectancy; (C) vary the institutional threshold (2×, 2.5×, 3× volumeMA) to see how many true positive spikes remain; (D) perform multi-instrument tests to ensure parameters are not tuned to a single ticker. Document every test and prefer robust, slightly lower returns with clearer logic rather than tuned “optimal” results that fail out of sample.
Originality statement: This script’s originality lies in the curated combination of intraday value (VWAP), multi-EMA trend scoring, momentum percent oscillator, volume Z-score plus buy/sell flow heuristics and a compact, interpretable scoring system. The script is not a simple indicator mashup; it is a didactic ensemble specifically designed to make internal rationale visible so traders can learn how each market characteristic contributes to actionable probability. The tool’s novelty is its emphasis on interpretability — showing the exact contributing signals behind a composite score — enabling reproducible testing and educational value.
Finally, for TradingView publication, include a clear description listing the modules, a short non-technical summary of how they interact, the tunable inputs, limitations and a risk disclaimer. Remove any promotional content or external contact links. If you used trademark symbols, either provide registration details or remove them. This transparent documentation satisfies TradingView’s requirement that mashups justify their composition and teach users how to use them.
Quantum Trading Matrix — multi-factor intraday dashboard (educational use only).
Purpose: Combines intraday VWAP position, a fast/slow EMA momentum percent oscillator, multi-EMA trend scoring (8/21/50), volume Z-score and buy/sell flow heuristics, pivot-based microstructure detection, and ATR-based volatility buckets to produce a transparent, componentized market score and trade-idea indicator. The mashup is intentional: VWAP identifies intraday value, momentum detects short bursts, EMAs provide structural trend bias, and volume/flow confirm participation. Signals require alignment of at least two components (for example, VWAP ABOVE + Momentum BULLISH + positive flow) for higher confidence.
Inputs: momentum period, volume MA/profile length, EMA configuration (8/21/50), trend multiplier, signal sensitivity, color and display options. Use shorter momentum lengths for scalps and longer for swing analysis. Increase volume MA for thinly traded instruments.
Limitations: Institutional/dark-pool estimates and flow heuristics are approximations, not actual exchange tape. VWAP is intraday-focused. Expect false signals during major news or low-liquidity sessions. Backtest and paper-trade before applying real capital.
Risk Disclaimer: For education and analysis only. Not financial advice. Use proper risk management. The author is not responsible for trading losses.
________________________________________
Risk & Misuse Disclaimer
This indicator is provided for education, analysis and idea generation only. It is not investment or financial advice and does not guarantee profits. Institutional activity flags, dark-pool estimates and flow heuristics are approximations and should not be treated as exchange tape. Backtest thoroughly and use demo/paper accounts before trading real capital. Always apply appropriate position sizing and stop-loss rules. The author is not responsible for any trading losses resulting from the use or misuse of this tool.
________________________________________
Risk Disclaimer: This tool is provided for education and analysis only. It is not financial advice and does not guarantee returns. Users assume all risk for trades made based on this script. Back test thoroughly and use proper risk management.
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.
ADX MTF mura visionOverview
ADX MTF — mura vision measures trend strength and visualizes a higher-timeframe (HTF) ADX on any chart. The current-TF ADX is drawn as a line; the HTF ADX is rendered as “step” segments to reflect closed HTF bars without repainting. Optional soft fills highlight the 20–25 (trend forming) and 40–50 (strong trend) zones.
How it works
ADX (current TF) : Classic Wilder formulation using DI components and RMA smoothing.
HTF ADX : Requested via request.security(..., lookahead_off, gaps_off).
When a new HTF bar opens, the previous value is frozen as a horizontal segment.
The current HTF bar is shown as a live moving segment.
This staircase look is expected on lower timeframes.
Auto timeframe mapping
If “Auto” is selected, the HTF is derived from the chart TF:
<30m → 60m, 30–<240m → 240m, 240m–<1D → 1D, 1D → 1W, 1W/2W → 1M, ≥1M → same.
Inputs
DI Length and ADX Smoothing — core ADX parameters.
Higher Time Frame — Auto or a fixed TF.
Line colors/widths for current ADX and HTF ADX.
Fill zone 20–25 and Fill zone 40–50 — optional light background fills.
Number of HTF ADX Bars — limits stored HTF segments to control chart load.
Reading the indicator
ADX < 20: typically range-bound conditions; trend setups require extra caution.
20–25: trend emergence; breakouts and continuation structures gain validity.
40–50: strong trend; favor continuation and manage with trailing stops.
>60 and turning down: possible trend exhaustion or transition toward range.
Note: ADX measures strength, not direction. Combine with your directional filter (e.g., price vs. MA, +DI/−DI, structure/levels).
Non-repainting behavior
HTF values use lookahead_off; closed HTF bars are never revised.
The only moving piece is the live segment for the current HTF bar.
Best practices
Use HTF ADX as a regime filter; time entries with the current-TF ADX rising through your threshold.
Pair with ATR-based stops and a MA/structure filter for direction.
Consider higher thresholds on highly volatile altcoins.
Performance notes
The script draws line segments for HTF bars. If your chart becomes heavy, reduce “Number of HTF ADX Bars.”
Disclaimer
This script is for educational purposes only and does not constitute financial advice. Trading involves risk.
Martingale Strategy Simulator [BackQuant]Martingale Strategy Simulator
Purpose
This indicator lets you study how a martingale-style position sizing rule interacts with a simple long or short trading signal. It computes an equity curve from bar-to-bar returns, adapts position size after losing streaks, caps exposure at a user limit, and summarizes risk with portfolio metrics. An optional Monte Carlo module projects possible future equity paths from your realized daily returns.
What a martingale is
A martingale sizing rule increases stake after losses and resets after a win. In its classical form from gambling, you double the bet after each loss so that a single win recovers all prior losses plus one unit of profit. In markets there is no fixed “even-money” payout and returns are multiplicative, so an exact recovery guarantee does not exist. The core idea is unchanged:
Lose one leg → increase next position size
Lose again → increase again
Win → reset to the base size
The expectation of your strategy still depends on the signal’s edge. Sizing does not create positive expectancy on its own. A martingale raises variance and tail risk by concentrating more capital as a losing streak develops.
What it plots
Equity – simulated portfolio equity including compounding
Buy & Hold – equity from holding the chart symbol for context
Optional helpers – last trade outcome, current streak length, current allocation fraction
Optional diagnostics – daily portfolio return, rolling drawdown, metrics table
Optional Monte Carlo probability cone – p5, p16, p50, p84, p95 aggregate bands
Model assumptions
Bar-close execution with no slippage or commissions
Shorting allowed and frictionless
No margin interest, borrow fees, or position limits
No intrabar moves or gaps within a bar (returns are close-to-close)
Sizing applies to equity fraction only and is capped by your setting
All results are hypothetical and for education only.
How the simulator applies it
1) Directional signal
You pick a simple directional rule that produces +1 for long or −1 for short each bar. Options include 100 HMA slope, RSI above or below 50, EMA or SMA crosses, CCI and other oscillators, ATR move, BB basis, and more. The stance is evaluated bar by bar. When the stance flips, the current trade ends and the next one starts.
2) Sizing after losses and wins
Position size is a fraction of equity:
Initial allocation – the starting fraction, for example 0.15 means 15 percent of equity
Increase after loss – multiply the next allocation by your factor after a losing leg, for example 2.00 to double
Reset after win – return to the initial allocation
Max allocation cap – hard ceiling to prevent runaway growth
At a high level the size after k consecutive losses is
alloc(k) = min( cap , base × factor^k ) .
In practice the simulator changes size only when a leg ends and its PnL is known.
3) Equity update
Let r_t = close_t / close_{t-1} − 1 be the symbol’s bar return, d_{t−1} ∈ {+1, −1} the prior bar stance, and a_{t−1} the prior bar allocation fraction. The simulator compounds:
eq_t = eq_{t−1} × (1 + a_{t−1} × d_{t−1} × r_t) .
This is bar-based and avoids intrabar lookahead. Costs, slippage, and borrowing costs are not modeled.
Why traders experiment with martingale sizing
Mean-reversion contexts – if the signal often snaps back after a string of losses, adding size near the tail of a move can pull the average entry closer to the turn
Behavioral or microstructure edges – some rules have modest edge but frequent small whipsaws; size escalation may shorten time-to-recovery when the edge manifests
Exploration and stress testing – studying the relationship between streaks, caps, and drawdowns is instructive even if you do not deploy martingale sizing live
Why martingale is dangerous
Martingale concentrates capital when the strategy is performing worst. The main risks are structural, not cosmetic:
Loss streaks are inevitable – even with a 55 percent win rate you should expect multi-loss runs. The probability of at least one k-loss streak in N trades rises quickly with N.
Size explodes geometrically – with factor 2.0 and base 10 percent, the sequence is 10, 20, 40, 80, 100 (capped) after five losses. Without a strict cap, required size becomes infeasible.
No fixed payout – in gambling, one win at even odds resets PnL. In markets, there is no guaranteed bounce nor fixed profit multiple. Trends can extend and gaps can skip levels.
Correlation of losses – losses cluster in trends and in volatility bursts. A martingale tends to be largest just when volatility is highest.
Margin and liquidity constraints – leverage limits, margin calls, position limits, and widening spreads can force liquidation before a mean reversion occurs.
Fat tails and regime shifts – assumptions of independent, Gaussian returns can understate tail risk. Structural breaks can keep the signal wrong for much longer than expected.
The simulator exposes these dynamics in the equity curve, Max Drawdown, VaR and CVaR, and via Monte Carlo sketches of forward uncertainty.
Interpreting losing streaks with numbers
A rough intuition: if your per-trade win probability is p and loss probability is q=1−p , the chance of a specific run of k consecutive losses is q^k . Over many trades, the chance that at least one k-loss run occurs grows with the number of opportunities. As a sanity check:
If p=0.55 , then q=0.45 . A 6-loss run has probability q^6 ≈ 0.008 on any six-trade window. Across hundreds of trades, a 6 to 8-loss run is not rare.
If your size factor is 1.5 and your base is 10 percent, after 8 losses the requested size is 10% × 1.5^8 ≈ 25.6% . With factor 2.0 it would try to be 10% × 2^8 = 256% but your cap will stop it. The equity curve will still wear the compounded drawdown from the sequence that led to the cap.
This is why the cap setting is central. It does not remove tail risk, but it prevents the sizing rule from demanding impossible positions
Note: The p and q math is illustrative. In live data the win rate and distribution can drift over time, so real streaks can be longer or shorter than the simple q^k intuition suggests..
Using the simulator productively
Parameter studies
Start with conservative settings. Increase one element at a time and watch how the equity, Max Drawdown, and CVaR respond.
Initial allocation – lower base reduces volatility and drawdowns across the board
Increase factor – set modestly above 1.0 if you want the effect at all; doubling is aggressive
Max cap – the most important brake; many users keep it between 20 and 50 percent
Signal selection
Keep sizing fixed and rotate signals to see how streak patterns differ. Trend-following signals tend to produce long wrong-way streaks in choppy ranges. Mean-reversion signals do the opposite. Martingale sizing interacts very differently with each.
Diagnostics to watch
Use the built-in metrics to quantify risk:
Max Drawdown – worst peak-to-trough equity loss
Sharpe and Sortino – volatility and downside-adjusted return
VaR 95 percent and CVaR – tail risk measures from the realized distribution
Alpha and Beta – relationship to your chosen benchmark
If you would like to check out the original performance metrics script with multiple assets with a better explanation on all metrics please see
Monte Carlo exploration
When enabled, the forecast draws many synthetic paths from your realized daily returns:
Choose a horizon and a number of runs
Review the bands: p5 to p95 for a wide risk envelope; p16 to p84 for a narrower range; p50 as the median path
Use the table to read the expected return over the horizon and the tail outcomes
Remember it is a sketch based on your recent distribution, not a predictor
Concrete examples
Example A: Modest martingale
Base 10 percent, factor 1.25, cap 40 percent, RSI>50 signal. You will see small escalations on 2 to 4 loss runs and frequent resets. The equity curve usually remains smooth unless the signal enters a prolonged wrong-way regime. Max DD may rise moderately versus fixed sizing.
Example B: Aggressive martingale
Base 15 percent, factor 2.0, cap 60 percent, EMA cross signal. The curve can look stellar during favorable regimes, then a single extended streak pushes allocation to the cap, and a few more losses drive deep drawdown. CVaR and Max DD jump sharply. This is a textbook case of high tail risk.
Strengths
Bar-by-bar, transparent computation of equity from stance and size
Explicit handling of wins, losses, streaks, and caps
Portable signal inputs so you can A–B test ideas quickly
Risk diagnostics and forward uncertainty visualization in one place
Example, Rolling Max Drawdown
Limitations and important notes
Martingale sizing can escalate drawdowns rapidly. The cap limits position size but not the possibility of extended adverse runs.
No commissions, slippage, margin interest, borrow costs, or liquidity limits are modeled.
Signals are evaluated on closes. Real execution and fills will differ.
Monte Carlo assumes independent draws from your recent return distribution. Markets often have serial correlation, fat tails, and regime changes.
All results are hypothetical. Use this as an educational tool, not a production risk engine.
Practical tips
Prefer gentle factors such as 1.1 to 1.3. Doubling is usually excessive outside of toy examples.
Keep a strict cap. Many users cap between 20 and 40 percent of equity per leg.
Stress test with different start dates and subperiods. Long flat or trending regimes are where martingale weaknesses appear.
Compare to an anti-martingale (increase after wins, cut after losses) to understand the other side of the trade-off.
If you deploy sizing live, add external guardrails such as a daily loss cut, volatility filters, and a global max drawdown stop.
Settings recap
Backtest start date and initial capital
Initial allocation, increase-after-loss factor, max allocation cap
Signal source selector
Trading days per year and risk-free rate
Benchmark symbol for Alpha and Beta
UI toggles for equity, buy and hold, labels, metrics, PnL, and drawdown
Monte Carlo controls for enable, runs, horizon, and result table
Final thoughts
A martingale is not a free lunch. It is a way to tilt capital allocation toward losing streaks. If the signal has a real edge and mean reversion is common, careful and capped escalation can reduce time-to-recovery. If the signal lacks edge or regimes shift, the same rule can magnify losses at the worst possible moment. This simulator makes those trade-offs visible so you can calibrate parameters, understand tail risk, and decide whether the approach belongs anywhere in your research workflow.
BBMA Enhanced Pro - Multi-Timeframe Band Breakout StrategyShort Title : BBMA Pro
Overview
The BBMA Enhanced Pro is a professional-grade trading indicator that builds on the Bollinger Bands Moving Average (BBMA) strategy, pioneered by Omar Ali , a Malaysian forex trader and educator. Combining Bollinger Bands with Weighted Moving Averages (WMA) , this indicator identifies high-probability breakout and reversal opportunities across multiple timeframes. With advanced features like multi-timeframe Extreme signal detection, eight professional visual themes, and a dual-mode dashboard, it’s designed for traders seeking precision in trending and consolidating markets. Optimized for dark chart backgrounds, it’s ideal for forex, stocks, and crypto trading.
History
The BBMA strategy was developed by Omar Ali (BBMA Oma Ally) in the early 2010s, gaining popularity in the forex trading community, particularly in Southeast Asia. Building on John Bollinger’s Bollinger Bands, Omar Ali integrated Weighted Moving Averages and a multi-timeframe approach to create a structured system for identifying reversals, breakouts, and extreme conditions. The BBMA Enhanced Pro refines this framework with modern features like real-time dashboards and customizable visualizations, making it accessible to both novice and experienced traders.
Key Features
Multi-Timeframe Extreme Signals : Detects Extreme signals (overbought/oversold conditions) on both current and higher timeframes simultaneously, a rare feature that enhances signal reliability through trend alignment.
Professional Visual Themes : Eight distinct themes (e.g., Neon Contrast, Fire Gradient) optimized for dark backgrounds.
Dual-Mode Dashboard : Choose between Full Professional (detailed metrics) or Simplified Trader (essential info with custom notes).
Bollinger Band Squeeze Detection : Identifies low volatility periods (narrow bands) signaling potential sideways markets or breakouts.
Confirmation Labels : Displays labels when current timeframe signals align with recent higher timeframe signals, highlighting potential consolidations or squeezes.
Timeframe Validation : Prevents selecting the same timeframe for current and higher timeframe analysis.
Customizable Visualization : Toggle signal dots, EMA 50, and confirmation labels for a clean chart experience.
How It Works
The BBMA Enhanced Pro combines Bollinger Bands (20-period SMA, ±2 standard deviations) with WMA (5 and 10 periods) to generate trade signals:
Buy Signal : WMA 5 Low crosses above the lower Bollinger Band, indicating a recovery from an oversold condition (Extreme buy).
Sell Signal : WMA 5 High crosses below the upper Bollinger Band, signaling a rejection from an overbought condition (Extreme sell).
Extreme Signals : Occur when prices or WMAs move significantly beyond the Bollinger Bands (±2σ), indicating statistically rare overextensions. These often coincide with Bollinger Band Squeezes (narrow bands, low standard deviation), signaling potential sideways markets or impending breakouts.
Multi-Timeframe Confirmation : The indicator’s unique strength is its ability to detect Extreme signals on both the current and higher timeframe (HTF) within the same chart. When the HTF generates an Extreme signal (e.g., buy), and the current timeframe follows with an identical signal, it suggests the lower timeframe is aligning with the HTF’s trend, increasing reliability. Labels appear only when this alignment occurs within a user-defined lookback period (default: 50 bars), highlighting periods of band contraction across timeframes.
Bollinger Band Squeeze : Narrow bands (low standard deviation) indicate reduced volatility, often preceding consolidation or breakouts. The indicator’s dashboard tracks band width, helping traders anticipate these phases.
Why Multi-Timeframe Extremes Matter
The BBMA Enhanced Pro’s multi-timeframe approach is rare and powerful. When the higher timeframe shows an Extreme signal followed by a similar signal on the current timeframe, it suggests the market is following the HTF’s trend or entering a consolidation phase. For example:
HTF Sideways First : If the HTF Bollinger Bands are shrinking (low volatility, low standard deviation), it signals a potential sideways market. Waiting for the current timeframe to show a similar Extreme signal confirms this consolidation, reducing the risk of false breakouts.
Risk Management : By requiring HTF confirmation, the indicator encourages traders to lower risk during uncertain periods, waiting for both timeframes to align in a low-volatility state before acting.
Usage Instructions
Select Display Mode :
Current TF Only : Shows Bollinger Bands and WMAs on the chart’s timeframe.
Higher TF Only : Displays HTF bands and WMAs.
Both Timeframes : Combines both for comprehensive analysis.
Choose Higher Timeframe : Select from 1min to 1D (e.g., 15min, 1hr). Ensure it differs from the current timeframe to avoid validation errors.
Enable Signal Dots : Visualize buy/sell Extreme signals as dots, sourced from current, HTF, or both timeframes.
Toggle Confirmation Labels : Display labels when current timeframe Extremes align with recent HTF Extremes, signaling potential squeezes or consolidations.
Customize Dashboard :
Full Professional Mode : View metrics like BB width, WMA trend, and last signal.
Simplified Trader Mode : Focus on essential info with custom trader notes.
Select Visual Theme : Choose from eight themes (e.g., Ice Crystal, Royal Purple) for optimal chart clarity.
Trading Example
Setup : 5min chart, HTF set to 1hr, signal dots and confirmation labels enabled.
Buy Scenario : On the 5min chart, WMA 5 Low crosses above the lower Bollinger Band (Extreme buy), confirmed by a recent 1hr Extreme buy signal within 50 bars. The dashboard shows narrow bands (squeeze), and a green label appears.
Action : Enter a long position, targeting the middle band, with a stop-loss below the recent low. The HTF confirmation suggests a strong trend or consolidation phase.
Sell Scenario : WMA 5 High crosses below the upper Bollinger Band on the 5min chart, confirmed by a recent 1hr Extreme sell signal. The dashboard indicates a squeeze, and a red label appears.
Action : Enter a short position, targeting the middle band, with a stop-loss above the recent high. The aligned signals suggest a potential reversal or sideways market.
Customization Options
BBMA Display Mode : Current TF Only, Higher TF Only, or Both Timeframes.
Higher Timeframe : 1min to 1D.
Visual Theme : Eight professional themes (e.g., Neon Contrast, Forest Glow).
Line Style : Smooth or Step Line for HTF plots.
Signal Dots : Enable/disable, select timeframe source (Current, Higher, or Both).
Confirmation Labels : Toggle and set lookback window (1-100 bars).
Dashboard : Enable/disable, choose mode (Full/Simplified), and set position (Top Right, Bottom Left, etc.).
Notes
Extreme Signals and Squeezes : Extreme signals often occur during Bollinger Band contraction (low standard deviation), signaling potential sideways markets or breakouts. Use HTF confirmation to filter false signals.
Risk Management : If the HTF shows a squeeze (narrow bands), wait for the current timeframe to confirm with an Extreme signal to reduce risk in choppy markets.
Limitations : Avoid trading Extremes in highly volatile markets without additional confirmation (e.g., volume, RSI).
Author Enhanced Professional Edition, inspired by Omar Ali’s BBMA strategy
Version : 6.0 Pro - Simplified
Last Updated : September 2025
License : Mozilla Public License 2.0
We’d love to hear your feedback! Share your thoughts or questions in the comments below.
Trading Advice By RajTrading Advice Strategy
This strategy is based on a simple moving average crossover system using the 50 EMA and the 200 EMA.
Buy Signal (Long): When the 50 EMA crosses above the 200 EMA, a bullish trend is detected and a BUY signal is generated.
Sell Signal (Short): When the 200 EMA crosses above the 50 EMA, a bearish trend is detected and a SELL signal is generated.
EMA lines are hidden on the chart for a clean look. Only BUY and SELL signals are shown as labels.
Suitable for trend-following traders who want clear entry signals without noise.
Can be combined with risk management tools like Stop Loss & Take Profit for better results. youtube.com BINANCE:BTCUSDT
Range FinderRange Finder Strategy for TradingView
Overview
The Range Finder Strategy is a sophisticated trading system designed for forex and cryptocurrency markets, leveraging dynamic range detection, wick-based rejection patterns, and EMA confluence to execute high-probability trades. This strategy identifies key price ranges using pivot points and triggers trades when price rejects from these boundaries with significant wick formations, aligning with the broader market trend as confirmed by EMA crossovers. It incorporates robust risk management, customizable parameters, and visual aids for clear trade visualization, making it suitable for both manual and automated trading on platforms like Bitget via webhook alerts.
Strategy Components
1. Dynamic Range Detection
Pivot Points: The strategy identifies range boundaries using pivot highs and lows, calculated with a user-defined Pivot Length (default: 5 bars left/right). These pivots mark significant swing points, defining the upper (range high) and lower (range low) boundaries of the price range.
Visualization: The range high is plotted as an orange line, and the range low as a purple line, using a broken line style (plot.style_linebr) to show only confirmed pivot levels, providing a clear visual of the trading range.
2. Wick-Based Rejection Pattern
Wick Detection: The strategy looks for rejection candles at the range boundaries, characterized by significant wicks. A wick is considered valid if its size is at least the user-defined Wick to Body Ratio (default: 1.1, or 10% larger than the candle body).
Sell Signal: Triggered when the high exceeds the range high, the candle closes bearish (close < open), and the upper wick meets the ratio requirement.
Buy Signal: Triggered when the low falls below the range low, the candle closes bullish (close > open), and the lower wick meets the ratio requirement.
Purpose: These wicks indicate strong rejection at key levels, often signaling a reversal back into the range, providing high-probability entry points.
3. EMA Trend Confirmation
EMA Calculation: Uses two Exponential Moving Averages (EMAs) calculated on a user-selectable timeframe (default: 5-minute):
EMA 200: Long-term trend indicator (plotted in red).
EMA 50: Short-term trend indicator (plotted in green).
Crossover Logic:
A bullish trend is confirmed when the EMA 50 crosses above the EMA 200 (ema_trend_up = true).
A bearish trend is confirmed when the EMA 50 crosses below the EMA 200 (ema_trend_down = true).
Confluence Requirement: Trades are only executed when the wick rejection aligns with the EMA trend (e.g., sell signals require close < ema200 and bearish trend; buy signals require close > ema200 and bullish trend).
4. Risk Management
Position Sizing: Calculated based on the user-defined Account Balance (default: $10,000) and Risk Per Trade (default: 2%). The position size is determined as risk_amount / stop_distance, where stop_distance is derived from the Average True Range (ATR, default period: 14).
Stop Loss (SL): Set using an ATR-based multiplier (SL Multiplier, default: 9.0). For sells, SL is placed above the high; for buys, below the low.
Take Profit (TP): Set using an ATR-based multiplier (TP Multiplier, default: 6.0) scaled by the Risk:Reward Ratio (default: 6.0), ensuring a favorable reward-to-risk profile.
Example: For a $10,000 account with 2% risk, if ATR is 0.5, the position size is 400 units, with SL and TP dynamically adjusted to market volatility.
5. Trade Execution
Sell Entry: Triggered on a wick rejection above the range high, with bearish EMA confluence (ema_trend_down and close < ema200). Enters a short position with calculated SL and TP.
Buy Entry: Triggered on a wick rejection below the range low, with bullish EMA confluence (ema_trend_up and close > ema200). Enters a long position with calculated SL and TP.
Exit Logic: Uses strategy.exit to set SL and TP levels, closing trades when either is hit.
6. Visual Feedback
Lines and Labels: Upon trade entry, the strategy plots:
Red SL line and label (e.g., "SL: 123.45").
Green TP line and label (e.g., "TP: 120.00").
Entry line (red for sell, green for buy) labeled with "Sell (Range Rejection)" or "Buy (Range Rejection)".
Customization: Users can adjust the Line Length (default: 25 bars) for how long lines persist and Label Position (left or right) for optimal chart visibility.
7. Alert Conditions
Webhook Integration: Generates alerts for Bitget webhook integration, providing JSON-formatted messages with trade details (action, contracts, market position, size, price, symbol, and timestamp).
Usage: Traders can set up automated trading by connecting these alerts to trading bots or platforms supporting webhooks.
On-Balance Volume with Multiple MA TypesOn-Balance Volume with Multiple MA Types
English Description
Overview
This is the first version of the "On-Balance Volume with Multiple MA Types" indicator designed to overlay directly on the price chart, a significant evolution from its previous iterations, which functioned solely as an oscillator in a separate window. The indicator calculates On-Balance Volume (OBV) and applies various smoothing methods to provide a clear view of volume dynamics in relation to price movements. It is pinned to the price scale for seamless integration with the chart.
Interpretation Recommendations
Price Pushing the OBV Line from Below: When the price chart pushes the OBV line upward and remains below it, this indicates rising volume, suggesting strong buying pressure.
Price Above the OBV Line: When the price chart is above the OBV line, it signals falling volume, indicating weakening momentum or selling pressure.
OBV Line Crossings: When the price crosses the OBV line, it represents a balance point in volume dynamics. The price level at the current crossing can be compared to the previous crossing to assess changes in market sentiment or momentum.
Moving Average Types
The indicator offers eight smoothing options for the OBV line, each with unique characteristics:
EMA (Exponential Moving Average): A weighted average that prioritizes recent data, providing a smooth yet responsive line.
DEMA (Double Exponential Moving Average): Uses two EMAs to reduce lag, offering faster response to volume changes.
HMA (Hull Moving Average): Combines weighted moving averages to minimize lag while maintaining smoothness.
WMA (Weighted Moving Average): Assigns more weight to recent data, balancing responsiveness and noise reduction.
TMA (Triangular Moving Average): A double-smoothed simple moving average, emphasizing central data points for smoother output.
VIDYA (Variable Index Dynamic Average): Adapts smoothing based on market volatility, using a CMO (Chande Momentum Oscillator) for dynamic weighting. Controlled by the VIDYA Alpha parameter (default: 0.2, range: 0–1), which adjusts sensitivity to volatility.
FRAMA (Fractal Adaptive Moving Average): Adjusts smoothing based on fractal dimensions of the OBV data, adapting to market conditions.
JMA (Jurik Moving Average): A proprietary adaptive average designed for minimal lag and high smoothness. Controlled by two parameters:
JMA Phase (default: 50, range: -100 to 100): Adjusts the balance between responsiveness and smoothness.
JMA Power (default: 1, range: 0.1+): Controls the strength of smoothing.
Input Parameters
OBV MA Length (default: 10): The lookback period for smoothing the OBV. Higher values produce smoother results but increase lag.
OBV MA Type (default: JMA): Selects the moving average type from the eight options listed above.
Line Width (default: 2): Thickness of the OBV line on the chart.
Bullish Color (default: Blue): Color of the OBV line when rising (indicating increasing volume).
Bearish Color (default: Red): Color of the OBV line when falling (indicating decreasing volume).
JMA Phase (default: 50): Adjusts the JMA’s responsiveness (used only when JMA is selected).
JMA Power (default: 1): Adjusts the JMA’s smoothing strength (used only when JMA is selected).
VIDYA Alpha (default: 0.2): Controls the sensitivity of VIDYA to market volatility (used only when VIDYA is selected).
How to Use
Add the indicator to your TradingView chart. It will overlay directly on the price chart, aligned with the price scale.
Adjust the OBV MA Type to select your preferred smoothing method based on your trading style (e.g., JMA for low lag, TMA for smoothness).
Modify the OBV MA Length to balance responsiveness and noise reduction. Shorter periods (e.g., 5–10) are better for short-term trading, while longer periods (e.g., 20–50) suit longer-term analysis.
Use the Bullish Color and Bearish Color to visually distinguish rising and falling volume trends.
For JMA or VIDYA, fine-tune the JMA Phase, JMA Power, or VIDYA Alpha to optimize the indicator for specific market conditions.
Interpret the OBV line in relation to price:
Watch for price pushing the OBV line upward (rising volume) or moving above it (falling volume).
Note crossings of the OBV line to identify balance points and compare with prior crossings to gauge momentum shifts.
Combine with other technical tools (e.g., support/resistance levels, trendlines) for a comprehensive trading strategy.
Notes
This indicator is designed to work on any timeframe and market, but its effectiveness depends on the chosen moving average type and parameters.
Experiment with different MA types and lengths to find the best fit for your trading approach.
The indicator is licensed under the Mozilla Public License 2.0 and copyrighted by TradingStrategyCourses © 2025.
Extended CANSLIM Indicator❖ Extended CANSLIM Indicator.
The Extended CANSLIM indicator is an indicator that concentrates all the tools usually used by CANSLIM traders.
It shows a table where all the stock fundamental information is shown at once first for the last quarter and then up to 5 years back.
The fundamental data is checked against well known CANSLIM validation criteria and is shown over 4 state levels.
1. Good = Value is CANSLIM Compliant.
2. Acceptable = Value is not CANSLIM compliant but still good. value is shown with a lighter background color.
3. Warning = Value deserves special attention. Value is shown over orange background color.
3. Stop = Value is non CANSLIM compliant or indicates a stop trading condition. Value is shown over red background color.
The indicator has also a set of technical tools calculated on price or index and shown directly on the chart.
❖ Fundamental data shown in the table.
The table is arranged in 4 sets of data:
1. Table Header, showing Indicator and Company data.
2. CANSLIM.
3. 3Rs: RS Rating, Revenue and ROE.
4. Extra Data: Piotroski score, ATR, Trend Days, D to E, Avg Vol and Vol today.
Sets 3 and 4 can be hidden from the table.
❖ Indicator and Compay Data.
The table header shows, Indicator name and version.
It then displays Company Name, sector and industry, human size and its capitalization.
❖ CANSLIM Data.
Displays either genuine CANSLIM data from TradinView or custom data as best effort when that data cannot be obtained in TV.
C = EPS diluted growth, Quarterly YoY.
>= 25% = Good, >= 0% = Acceptable, < 0% = Stop
A = EPS diluted growth, Annual YoY.
>= 25% = Good, >= 0% = Acceptable, < 0% = Stop
N = New High as best effort (Cust).
Always Good
S = Float shares as best effort.
Always Good
L = One year performance relative to S&P 500 (Cust),
Positive : 0% .. 50% = Neutral, 50%+ = Leader, 80%+ = Leader+, 100%+ = Leader++
Negative : 0% .. -10% = Laggard, -10% .. -30% = Laggard+, -30%+ = Laggard++
>= 50% = Good, >= 0% = Acceptable, >= -10% Warning, < -10% = Stop
I = Accumulation/Distribution days over last 25 days as a clue for institutional support (Cust).
A delta is calculated by subtracting Distribution to Accumulation days.
> 0 = Good, = 0 = Acceptable, < 0 = Warning, < -5 = Stop
M = Market direction and exposure measured on S&500 closing between averages (Cust).
Varies from 0% Full Bear to 100% Full Bull
>= 80% = Good, >= 60% = Acceptable, >= 40% = Warning, < 40% = Stop
❖ Extra non CANSLIM Data.
RS = RS Rating.
>= 90 = Good, >= 80 = Accept, >= 50 = Warning, < 50 = Stop
Rev. = Revenue Growth Quarterly YoY.
>= 0% = Good, <0% = Stop
ROE = Return on Equity, Quarterly YoY.
>= 17% = Good, >= 0% = Acceptable, < 0% = Stop
Piotr. = Piotroski Score, www.investopedia.com (TV)
>= 7 = Good, >= 4 = Acceptable, < 4 = Stop
ATR = Average True Range over the last 20 days (Cust).
0% - 2% = Acceptable, 2% - 4% = Ideal, 4% - 6% = Warning, 5%+ = Stop.
Trend Days = Days since EMA150 is over EMA200 (Cust).
Always Good
D. to E. = Days left before Earnings. Maybe not a good idea buying just before earnings (Cust).
>= 28 = Good, >= 21 = Acceptable, >= 14 = Warning, < 14 = Stop
Avg Vol. = 50d Average Volume (Cust).
>= 100K = Good, < 100K = Acceptable
Vol. Today = Today's percentage volume compared to 50d average (Cust).
Always Good.
❖ Historical Data.
Optionally selectable historical data can be displayed for C, A, Revenue and ROE up to 20 quarters if available.
Quarterly numbers can also be displayed for A, C and Revenue.
Information can be shown in Chronological or Reverse Chronological order (default).
Increasing growth quarters are shown in white, while diminuing ones are shown in Yellow.
Transition from Losing to Profitable quarters are shown with an exclamation mark ‘!’
Finally, losing quarters are shown between parenthesis.
❖ MAs on chart.
Displays 200, 100, 50 and 20 days MAs on chart.
The MAs are also automatically scaled in the 1W time frame.
❖ New 52 Week High on chart.
A sun is shown on the chart the first time that a new 52 week high is reached.
The N cell shows a filled sun when a 52 week high is no older than a month, an lighter sun when it’s no older than a quarter or a moon otherwise.
❖ Pocket Pivots on chart.
Small triangles below the price are signaling pocket pivots.
❖ Bases on chart, formerly Darvas Boxes.
Draw bases as defined by Darvas boxes, both top or bottom of bases can be selected to be shown in order to only show resistance or support.
❖ Market exposure/direction indicator.
When charting S&P500 (SPX), Nasdaq 100 Index (NDX), Nasdaq composite (IXIC) or Dow Jownes Index (DJIA), the indicator switches to Market Exposure indicator, showing also Accumulation/Distribution days when volume information is available. This indication which varies from 0% to 100% is what is shown under the M letter in the CANSLIM table which is calculated on the S&P500.
❖ Follow Through Days indicator.
If you are an adept of the Low-cheat entry, then you will be highly interested by the Follow Through days indicator as measured in the S&P 500 and shown as diamonds on the chart.
The follow-through days are calculated on S&P500 but shown in current stock chart so you don’t need to chart the S&P 500 to know that a follow through day occurred.
Follow Through days show correctly on Daily time frame and most are also shown on the Weekly time frame as well.
They are also classified according to the market zone in which they occur:
0%-5% from peak = Pullback : FT day is not shown.
5%-10% from peak = Minor Correction : Minor FT days is shown.
10%-20% from peak = Correction : Intermediate FT days us shown
20+% from peak = Bear Market : Makor FT days is shown
❖ RS Line and Rating indicator.
A RS Line and Rating indicator can be added to the chart.
Relative Strength Rating Accuracy.
Please note that the RS Rating is not 100% accurate when compared to IBD values.
❖ Earning Line indicator.
An Earning Line indicator can be added to the chart.
❖ ATR Bands and ATR Trade calculator.
The motivation for this calculator came from my own need to enter trades on volatile stocks where the simple 7% Stop Loss rule doest not work.
It simply calculates the number of shares you can buy at any moment based on current stock price and using the lower ATR band as a stop loss.
A few words about the ATR Bands.
On this indicator the ATR bands are not drawn as a classical channel that follows the price.
The lower band is drawn as a support until it’s broken on a closing basis. It can’t be in a down trend.
The upper band is drawn as a resistance until it’s broken on a closing basis. It can’t be in an up trend.
The idea is that when price starts to fall down from a peak, it should not violate its lower band ATR and that means that we can use that level as a Stop Loss.
You must look back for the stock volatility and find out which ATR multiplier works well meaning that the ATR bands are not violated on normal pullbacks. By default, the indicator uses 5x multiplier.
❖ Extra things, visual features and default settings.
The first square cell of current quarter displays a check mark ‘V’ if the CANSLIM criteria is OK or acceptable or a cross ‘X’ otherwise.
The first square cell of historical C and Rev show respectively the count of last consecutive positive quarters.
There are different color themes from “Forest” to “Space” you can chose from to best fit your eyes.
You also have different table sizes going from “Micro” to “Huge” for better adjustment to the size of your display.
The default settings view show: Pocket Pivots, FT Days, MA50, RS Line and ATR Bands.
That's all, Enjoy!
Jimb0ws Strategy Trending Info PanelsJimb0ws Strategy — Golden Candles + Bubble Zones
A price-action/EMA strategy built for FX scalping and intraday swings. It colors Golden Candles when strong bodies touch/skim EMA20/50 in trend (“bubble”) and optionally highlights Robin Candles (break of the prior golden body). Signals are throttled per bubble and filtered by multiple higher-timeframe conditions.
How it trades
Trend bubbles: Uses EMA20/50/100/200 alignment on the chart timeframe; also reads 1H & 4H bubbles for context.
Entries: BUY/SELL labels appear only when a golden setup aligns with fractal/structure checks and all active filters pass.
Stops/Targets (strategy mode):
• Longs: SL = EMA100 if EMA200 > EMA100, else SL = EMA200.
• Shorts: SL = EMA100 if EMA200 < EMA100, else SL = EMA200.
• TP = RR × risk (default 2R).
An on-chart SL/TP info label prints the exact prices at each signal.
Risk filter options: disable beyond 1H EMA50, proximity band around 1H EMA50, wick overdrive veto, session filter (toggle on/off), max signals per bubble.
Visuals & tools
Colored EMAs (20/50/100/200), bubble zone background.
4H info panel (state, start time, duration); Prev-Day ATR panel sits above it.
Optional 1H info panel and consolidation warning.
Fractal markers (size selectable).
Alerts
1H bubble state change (Long/Short/Consolidation).
BUY/SELL signals.
Inputs worth checking
Session & timezone, min body size, pip tolerances, proximity/WOD filters, max signals per bubble, RR, SL/TP label offset.
Notes
Best on FX pairs; pip = mintick × 10. Backtest and adjust to your instrument and session. This is not financial advice.
SatoshiMultiFrame RSI SatoshiMultiFrame 📈
SatoshiMultiFrame is an advanced, multi-timeframe version of the RSI indicator, designed to look and feel like the built-in TradingView RSI — but with more customization options and professional visual enhancements.
🎯 Features
Multi-Timeframe (MTF) Support – choose any timeframe for RSI calculation.
Customizable RSI Line – change color, thickness, and style (Solid / Dashed / Dotted).
Editable 30 / 50 / 70 Bands – fully customizable in the Style tab.
Smooth Gradient Fill for OB/OS Zones:
🟢 Green shading above Overbought (70)
🔴 Red shading below Oversold (30)
Customizable background for the entire panel.
No repainting – stable and reliable data.
⚙️ Inputs
RSI Length – default 14.
Source – select the price source (Close, Open, etc.).
RSI Timeframe – pick a higher or lower timeframe.
RSI Line Style – choose between Solid / Dashed / Dotted.
Dash Period & Dash Length – adjust the look of dashed lines.
🎨 Style Tab :
Change RSI line color, thickness, and optional MA line.
Edit colors and styles of 30 / 50 / 70 bands.
Enable/disable and recolor OB/OS gradient fills.
Adjust background color and transparency.
📌 How to Use :
Add the indicator to your chart.
In Inputs, set your preferred timeframe, RSI length, and line style.
In Style, adjust colors, thickness, and gradient effects to your preference.
Use the 50 line as a trend reference and monitor RSI behavior in OB/OS zones.
⚠️ Disclaimer: This tool is for educational purposes only and should not be considered financial advice. Always practice proper risk management.
Multi-Timeframe Bias Dashboard + VolatilityWhat it is: A corner table (overlay) that gives a quick higher-timeframe read for Daily / 4H / 1H using EMA alignment, MACD, RSI, plus a volatility gauge.
How it works (per timeframe):
EMA block (50/100/200): “Above/Below/Mixed” based on price vs all three EMAs.
MACD: “Bullish/Bearish/Neutral” from MACD line vs Signal and histogram sign.
RSI: Prints the value and an ↑/↓ based on 50 line.
Volatility: Compares ATR(14) to its SMA over 20 bars → High (>*1.2), Normal, Low (<*0.8).
Bias: Combines three votes (EMA, MACD, RSI):
Bullish if ≥2 bullish, Bearish if ≥2 bearish, else Mixed.
Display:
Rows: D / 4H / 1H.
Columns: Bias, EMA(50/100/200), RSI, MACD, Volatility.
Bias cell is color-coded (green/red/gray).
Position setting lets you park the table in Top Right / Bottom Right / Bottom Left (works on mobile too).
Use it for:
Quickly aligning intraday setups with higher-TF direction.
Skipping low-volatility periods.
Confirming momentum (MACD/RSI) when price returns to your OB/FVG zones.
Major Lows OscillatorDescription
The Major Lows Oscillator is a custom technical indicator designed to identify significant low-price areas by normalizing the current closing price relative to recent lowest lows and highest highs. The oscillator calculates a normalized price percentage over a configurable lookback period, applies exponential moving averages for smoothing, and inverts the result to highlight potential market bottoms.
Calculation Details
Lowest Low Lookback : Finds the lowest low over a user-defined period (default 100 bars).
Highest High Lookback : Calculates the highest high over a short period (default 1 bar), providing a dynamic normalization range.
Normalization : Normalizes the current close within the range defined by the lowest low and highest high, scaled to 0-100.
Smoothing : Applies a 10-period EMA, inversion, and weighted smoothing combining the last valid value and current oscillator reading.
Final Output : Applies a final EMA (period 1) and inverts the oscillator (100 - value) to emphasize major lows.
Features
Customizable midline level for signal alerts (default 50).
Visual midline reference line.
Alerts trigger on oscillator crossing below midline for automated monitoring.
Usage
Useful for complementing existing setups or integration in algorithmic trading strategies.
Changing the input parameters opens new ways to leverage the asymmetric range concept, allowing adaptation to different market regimes and enhancing the oscillator’s sensitivity and utility.
Examples of input combinations and their potential purposes include:
Extremely Asymmetric Setting: Lowest Low Lookback = 200, Highest High Lookback = 1
Focuses on deep long-term lows contrasted with immediate highs, ideal for spotting strong oversold levels within an otherwise bullish short-term momentum.
Symmetric Lookbacks: Lowest Low Lookback = Highest High Lookback = 50
Balances the range equally, creating a normalized oscillator that treats recent lows and highs with the same weight — useful for markets with balanced volatility.
Short but Equal Lookbacks: Lowest Low Lookback = Highest High Lookback = 10
Highly sensitive to recent price swings, this setting can detect rapid shifts and is suited for intraday or very short-term trading.
Inverted Extreme: Lowest Low Lookback = 1, Highest High Lookback = 100
Highlights very recent lows against a long-term high range, possibly signaling quick dips in a generally overextended market.
Inputs
Midline Level : Threshold for alerts (default 50).
Lowest Low Lookback Period : Bars evaluated for lowest low (default 100).
Highest High Lookback Period : Bars evaluated for highest high (default 1).
Alerts
Configured to trigger once per bar close when the oscillator crosses below the midline level.
---
Disclaimer
This indicator is for educational and analytical use only.