Elev8+ Impulse Levels | Smart Support & ResistanceElev8+ Impulse Levels
Why does price reject specific levels that look "empty" on the chart?
The answer usually lies in the past. These are Institutional Impulses—footprints left behind by massive market moves that algorithms and smart money defend days or even weeks later.
The Elev8+ Impulse Levels indicator is designed to automatically reveal this hidden Market Structure. It scans for the "Perfect Storm" of Volume + Aggression and projects these critical levels forward for you.
🧠 How It Works (The Logic)
This is not a standard Support & Resistance tool. It does not look for swing highs or lows. Instead, it detects Market Intent.
The indicator highlights specific candles where:
Volume Spikes: Buying or Selling pressure exceeds the average by a significant multiplier.
Volatility Expands: The candle body is unusually large relative to recent price action (ATR).
When these two factors combine, it signals that a major player has entered the market. The closing price of this impulse becomes a "Line in the Sand" for future price action.
🎯 How to Trade This Strategy
We built a "Smart Line" feature into this tool that changes the visual style of the level based on price behavior. This helps you trade two distinct setups:
1. The Defense (Bounce)
Visual: 🟢 Solid Lines
The Setup: A Solid Line represents a Fresh Level that has never been touched.
Why it works: Institutions often defend their entry price. When price returns to a fresh Solid Line, look for a rejection or a bounce.
2. The Flip (Break & Retest)
Visual: ◌ Dotted Lines
The Setup: When a candle closes past a level, the indicator automatically dims it to a Dotted Line.
Why it works: This signals a "Breaker Block." If a Support level (Green) is broken, it often flips to become Resistance. Watch for price to come back and "kiss" the Dotted Line from the other side before continuing the trend.
✨ Key Features
Smart Visualization: Lines automatically switch from Solid to Dotted when broken, keeping your chart analysis clean and logical.
Impulse Coloring: The indicator highlights the specific candle that created the level, so you can see the origin of the move.
Fully Customizable: Adjust the sensitivity of the Volume and Size detection to fit any asset class (Crypto, Forex, Futures, or Stocks).
🚀 The Elev8+ Workflow
Elev8+ Impulse Levels gives you the "Map"—it tells you where the market is likely to react.
To know exactly when to enter, we recommend pairing this tool with our premium Elev8+ Reversal Indicator, which specializes in timing the entry signal precisely when price hits these high-value levels.
Build your narrative. See the structure. Elev8 your trading.
Disclaimer: Trading involves high risk. This tool is for educational purposes to assist with technical analysis and does not guarantee future performance.
Indikator dan strategi
Volume-Gated Trend Ribbon [QuantAlgo]🟢 Overview
The Volume-Gated Trend Ribbon employs a selective price-updating mechanism that filters market noise through volume validation, creating a trend-following system that responds exclusively to significant price movements. The indicator gates price updates to moving average calculations based on volume threshold crossovers, ensuring that only bars with significant participation influence the trend direction. By interpolating between fast and slow moving averages to create a multi-layered visual ribbon, the indicator provides traders and investors with an adaptive trend identification framework that distinguishes between volume-backed directional shifts and low-conviction price fluctuations across multiple timeframes and asset classes.
🟢 How It Works
The indicator first establishes a dynamic baseline by calculating the simple moving average of volume over a configurable lookback period, then applies a user-defined multiplier to determine the significance threshold:
avgVol = ta.sma(volume, volPeriod)
highVol = volume >= avgVol * volMult
The gated price mechanism employs conditional updating where the close price is only captured and stored when volume exceeds the threshold. During low-volume periods, the indicator maintains the last qualified price level rather than tracking every minor fluctuation:
var float gatedClose = close
if highVol
gatedClose := close
Dual moving averages are calculated using the gated price input, with the indicator supporting various MA types. The fast and slow periods create the outer boundaries of the trend ribbon:
fastMA = volMA(gatedClose, close, fastPeriod)
slowMA = volMA(gatedClose, close, slowPeriod)
Ribbon interpolation creates intermediate layers by blending the fast and slow moving averages using weighted combinations, establishing a gradient effect that visually represents trend strength and momentum distribution:
midFastMA = fastMA * 0.67 + slowMA * 0.33
midSlowMA = fastMA * 0.33 + slowMA * 0.67
Trend state determination compares the fast MA against the slow MA, establishing bullish regimes when the faster average trades above the slower average and bearish regimes during the inverse relationship. Signal generation triggers on state transitions, producing alerts when the directional bias shifts:
bullish = fastMA > slowMA
longSignal = trendState == 1 and trendState != 1
shortSignal = trendState == -1 and trendState != -1
The visualization architecture constructs a three-tiered opacity gradient where the ribbon's core (between mid-slow and slow MAs) displays the highest opacity, the inner layer (between mid-fast and mid-slow) shows medium opacity, and the outer layer (between fast and mid-fast) presents the lightest fill, creating depth perception that emphasizes the trend center while acknowledging edge uncertainty.
🟢 How to Use This Indicator
▶ Long and Short Signals: The indicator generates long/buy signals when the trend state transitions to bullish (fast MA crosses above slow MA) and short/sell signals when transitioning to bearish (fast MA crosses below slow MA). Because these crossovers only reflect volume-validated price movements, they represent significant level of participation rather than random noise, providing higher-conviction entry signals that filter out false breakouts occurring on thin volume.
▶ Ribbon Width Dynamics: The spacing between the fast and slow moving averages creates the ribbon width, which serves as a visual proxy for trend strength and volatility. Expanding ribbons indicate accelerating directional movement with increasing separation between short-term and long-term momentum, suggesting robust trend development. Conversely, contracting ribbons signal momentum deceleration, potential trend exhaustion, or impending consolidation as the fast MA converges toward the slow MA.
▶ Preconfigured Presets: Three optimized parameter sets accommodate different trading styles and market conditions. Default provides balanced trend identification suitable for swing trading on daily timeframes with moderate volume filtering and responsiveness. Fast Response delivers aggressive signal generation optimized for intraday scalping on 1-15 minute charts, using lower volume thresholds and shorter moving average periods to capture rapid momentum shifts. Smooth Trend offers conservative trend confirmation ideal for position trading on 4-hour to weekly charts, employing stricter volume requirements and extended periods to filter noise and identify only the most robust directional moves.
▶ Built-in Alerts: Three alert conditions enable automated monitoring: Bullish Trend Signal triggers when the fast MA crosses above the slow MA confirming uptrend initiation, Bearish Trend Signal activates when the fast MA crosses below the slow MA confirming downtrend initiation, and Trend Change alerts on any directional transition regardless of direction. These notifications allow you to respond to volume-validated regime shifts without continuous chart monitoring.
▶ Color Customization: Six visual themes (Classic, Aqua, Cosmic, Ember, Neon, plus Custom) accommodate different chart backgrounds and display preferences, ensuring optimal contrast and visual clarity across trading environments. The adjustable fill opacity control (0-100%) allows fine-tuning of ribbon prominence, with lower opacity values create subtle background context while higher values produce bold trend emphasis. Optional bar coloring extends the trend indication directly to the price bars, providing immediate directional reference without requiring visual cross-reference to the ribbon itself.
ORB Pro - NY Opening Range Breakout [Elev8+]**ORB Pro - NY Opening Range Breakout ** is a comprehensive, professional-grade toolkit designed for intraday traders who rely on the **Opening Range Breakout (ORB)** strategy.
Unlike standard ORB indicators that simply draw lines, this suite offers a complete dashboard-driven system that monitors **four distinct sessions** simultaneously, providing real-time status updates and precision alerts.
### 🎯 What is the Opening Range Breakout (ORB)?
The Opening Range is the price range established during the first period of the trading session (e.g., the first 15 or 30 minutes). This period represents the initial balance between buyers and sellers. A breakout from this range often signals the likely trend direction for the remainder of the session.
### 🚀 Key Features
**1. Multi-ORB Monitoring**
Stop switching settings constantly. This suite monitors four key ranges at once:
* **Pre-Market 15m** (08:00 – 08:15 ET)
* **Pre-Market 30m** (08:00 – 08:30 ET)
* **NY Cash Open 15m** (09:30 – 09:45 ET)
* **NY Cash Open 30m** (09:30 – 10:00 ET)
**2. Smart Status Dashboard**
A compact panel in the bottom-right corner gives you the live state of every session:
* **⏳ Waiting:** The session has not started yet.
* **⚡ Forming:** The range is currently being built.
* **↔️ Range:** The range has formed, but price is still contained within the range.
* **🚀 BULL / 📉 BEAR:** A confirmed breakout has occurred.
* **⛔ OFF:** The session is disabled in settings.
**3. "Dynamic Resolution" Technology**
This is a unique pro feature.
* **Precision:** The script *always* calculates the High/Low levels using 1-minute data, ensuring your support/resistance lines are pixel-perfect regardless of your chart timeframe.
* **Flexibility:** Breakout signals (Alerts/Labels) are triggered based on your *current* chart timeframe. This allows you to trade a 5m or 15m breakout strategy while keeping 1m-level precision on your levels.
**4. Visual Clarity**
* **Breakout Labels:** Automatically plots "BULL" or "BEAR" labels on the exact candle that confirms a breakout.
* **Profit Targets:** Optional toggle to show 1x and 2x profit targets projected from the breakout level.
* **Time-Bound Signals:** Signals are strictly time-bound to the active window to prevent late, low-quality alerts.
### 🛠️ How to Use
1. **Add to Chart:** Works best on intraday timeframes (1m, 5m, 15m).
2. **Configure:** Enable the sessions you trade (e.g., NY 15m) in the settings.
3. **Wait for Forming:** Watch the box form live. The dashboard will show "⚡ Forming".
4. **Trade the Break:** Wait for a candle **Close** outside the range. The dashboard will flip to "BULL" or "BEAR" and a label will appear.
5. **Manage Risk:** Use the opposite side of the range or the midline as your stop loss.
### ⚙️ Settings Overview
* **Global Settings:** Toggle forming boxes, dashboard, and label visibility.
* **Breakout Method:** Choose between **Close** (safer) or **Wick** (aggressive) for signal triggers.
* **Session Groups:** Individually enable/disable the 4 distinct sessions and customize their colors/styles.
---
*Disclaimer: This tool is for educational and analytical purposes only. Past performance of a strategy does not guarantee future results. Always manage your risk.*
ORB Strategy + Backtesting (fixed timestamp) - Lines Adjusted⚡ ORB Strategy + Backtesting (Pine Script v5)
This script implements a complete Opening Range Breakout (ORB) strategy, featuring built-in backtesting, advanced TP/SL visualization, full style customization, and a performance dashboard. It is designed for traders who want to clearly evaluate breakout performance directly on the chart.
🕑 ORB Window Configuration
🔹 Session selection: choose between Market Timezone or Custom Session.
🔹 Timezone support: configurable from UTC-8 to UTC+12.
🔹 Daily limit: option to allow only one trade per day.
🔹 Risk/Reward (RR) settings:
Configurable TP1, TP2, and TP3 levels.
Stop Loss calculated dynamically from the ORB range.
📊 Backtesting Engine
🔹 Interactive dashboard showing trades, wins, losses, and win rate.
🔹 Adjustable partial exits for each TP (TP1, TP2, TP3).
🔹 Automatic calculation of percentage-based profit and loss.
🔹 Tracks total trades, total profit, and average profit per trade.
🎨 Visual Customization
🔹 Fully customizable colors:
ORB high/low lines and range fill.
Buy/Sell entry labels.
TP and SL lines with background zones.
🔹 Line style and thickness options (solid, dotted, dashed).
🔹 Visibility controls for each TP/SL level.
🔹 Clear profit and loss zones drawn directly on the chart.
🚀 Trading Logic
🔹 LONG entries: triggered when price breaks above the ORB high.
🔹 SHORT entries: triggered when price breaks below the ORB low.
🔹 Automatic calculation of Stop Loss and TP1, TP2, TP3 based on ORB range and RR.
🔹 Customizable BUY / SELL labels displayed at entry.
✅ TP / SL Detection
🔹 Real-time detection of TP1, TP2, TP3, and SL hits.
🔹 Prevents double counting of the same level.
🔹 Extended TP/SL lines with shaded zones for better clarity.
📈 Backtesting Dashboard
🔹 Displayed in the top-right corner of the chart.
🔹 Shows:
Total trades
Wins / Losses
Win rate (%)
Total profit (%)
Average profit per trade
🔹 Fully customizable panel color.
✨ Summary
This script combines:
Opening Range detection
Breakout trading logic with advanced risk management
Professional-grade visualizations
Integrated historical performance tracking
High customization for sessions, styles, and colors
💡 Ideal for traders who want to trade ORB setups with clarity, structure, and measurable results.
Index & Stock Options Reference Tool-(ISORT) [Arjo]The Index & Stock Options Reference Tool-(ISORT) is an indicator that helps users observe price trend direction together with commonly used option strike levels for selected indices and stocks in Indian market .
The indicator integrates a smoothed trend framework with structured option-related data to help users observe how price direction aligns with commonly referenced option strike levels .
It does not generate trading signals, does not provide buy or sell recommendations, and does not evaluate profitability .
Key Features
1. Trend Context Engine
Uses a Super-Smoother filter combined with EMA smoothing
Highlights directional context through color-based trend states
Designed to reduce short-term noise
2. Dynamic ATM & Strike Reference
Automatically computes ATM strike and offset strike levels to select OTM strike
Strike intervals adapt to the selected index or stock
Supports both NSE and BSE instruments, including SENSEX
3. Expiry Awareness
User-selectable expiry date inputs
Displays a visual warning if the selected expiry has already passed
Helps avoid referencing outdated option contracts
4. Option Price Reference Panel
Displays last observed CALL and PUT prices (when available)
Allows optional manual entry values for analytical comparison
All price values are shown strictly as references
5. Informational Table Overlay
Customizable on-chart table layout
Displays strike, timestamp, price reference, and arithmetic P&L values
Table values are informational only, not predictive or advisory
How to Use
1. Select the Underlying Instrument
Choose whether to reference the current chart symbol or a custom index/stock from the input settings
Supported instruments include major NSE indices, selected stocks, and SENSEX
2. Configure Expiry Parameters
Enter the option expiry date using the Day, Month, and Year inputs
If an expired date is selected, the indicator will display a visual warning
This helps ensure option references remain time-relevant
3. Observe Trend Context
The smoothed trend line provides directional context only
Color changes reflect shifts in price structure, not trade instructions
This trend is intended for contextual analysis, not timing entries
4. Review Strike References
The indicator automatically calculates ATM and offset strike levels
Strike spacing adjusts based on the selected index or stock
These values serve as reference levels commonly observed in options markets
5. Interpret the Information Table
The on-chart table displays:
Strike level
Timestamp of the most recent context change
Last observed option price (when available)
Arithmetic price difference values
All values are informational references only and do not represent performance or outcomes
6. Optional Manual Inputs
Manual price fields can be used to compare external reference values
These inputs do not trigger signals or automated calculations
Important Notes
This indicator is not a trading system
It does not generate buy or sell signals
It does not provide financial or trading advice
It is intended for learning, observation, and market study
Disclaimer
This script is provided for educational and analytical purposes only. It does not constitute investment advice, trading advice. The author assumes no responsibility for decisions made using this indicator.
Happy Trading (Arjo)
Auto Trend [theUltimator5]The Auto Trend indicator was designed to be a unique pattern detection indicator without the use of standard pivot point logic or high/low lines. It is a study in pattern detection by using iterative best-fit logic.
The indicator automatically identifies and draws trend channels by analyzing price action across configurable lookback periods. It finds optimal high and low trendlines that contain price movement, with a middle line marking the trend's center.
Key Features:
Automatic Pattern Detection - Intelligently searches for the best lookback period where price stays within the channel boundaries
Dual Pattern Modes - Choose between Short (20-66 bars) for quick patterns or Long (50-500 bars) for extended trends. Note - the long pattern is fully configurable and can be set anywhere up to 5000 bars.
Smart Caching - Optimized performance that only recalculates when necessary
Customizable Starting Point - Click directly on the chart to set where the trend channel begins
Flexible Lookback Range - Set minimum and maximum lookback periods to match your trading style
Visual Debugging - Optional label displays the active lookback period and violation count
How It Works:
The indicator divides the lookback period into thirds, finds the highest and lowest closes in the first and last thirds, then draws trendlines connecting these points. It can automatically search through different lookback periods to find the one with the fewest price violations (closes outside the channel).
Settings:
Use Auto Lookback - Enable automatic optimal lookback detection
Pattern Length - Short (faster, 1-bar increments) or Long (broader, 5-bar increments)
Min/Max Lookback - Define the search range for the Long pattern
Manual Lookback - Override auto-detection with a fixed period
Custom Colors - Personalize the high, low, and middle line colors
Starting Point - Select where the trend analysis begins
Use Cases:
Identify dominant trend channels across different timeframes
Spot potential support and resistance levels
Determine trend strength and consistency
Time entries and exits based on channel position
The indicator supports up to 5000 bars of historical data for comprehensive trend analysis.
Victor aimstar past strategy -v1Introducing the ultimate all-in-one DIY strategy builder indicator, With over 30+ famous indicators (some with custom configuration/settings) indicators included, you now have the power to mix and match to create your own custom strategy for shorter time or longer time frames depending on your trading style. Say goodbye to cluttered charts and manual/visual confirmation of multiple indicators and hello to endless possibilities with this indicator.
What it does
==================
This indicator basically help users to do 2 things:
1) Strategy Builder
With more than 30 indicators available, you can select any combination you prefer and the indicator will generate buy and sell signals accordingly. Alternative to the time-consuming process of manually confirming signals from multiple indicators! This indicator streamlines the process by automatically printing buy and sell signals based on your chosen combination of indicators. No more staring at the screen for hours on end, simply set up alerts and let the indicator do the work for you.
Razzere Cloned! EzAlgo V.8.1showBuySell = input(true, "Show Buy & Sell", group="BUY & SELL SIGNALS")
hassasiyet = input.float(3, "Hassasiyet (1-6)", 0.1, 99999, group="BUY & SELL SIGNALS")
percentStop = input.float(1, "Stop Loss % (0 to Disable)", 0, group="BUY & SELL SIGNALS")
offsetSignal = input.float(5, "Signals Offset", 0, group="BUY & SELL SIGNALS")
showRibbon = input(true, "Show Trend Ribbon", group="TREND RIBBON")
smooth1 = input.int(5, "Smoothing 1", 1, group="TREND RIBBON")
smooth2 = input.int(8, "Smoothing 2", 1, group="TREND RIBBON")
showreversal = input(true, "Show Reversals", group="REVERSAL SIGNALS")
showPdHlc = input(false, "Show P.D H/L/C", group="PREVIOUS DAY HIGH LOW CLOSE")
lineColor = input.color(color.yellow, "Line Colors", group="PREVIOUS DAY HIGH LOW CLOSE")
lineWidth = input.int(1, "Width Lines", group="PREVIOUS DAY HIGH LOW CLOSE")
lineStyle = input.string("Solid", "Line Style", )
labelSize = input.string("normal", "Label Text Size", )
labelColor = input.color(color.yellow, "Label Text Colors")
showEmas = input(false, "Show EMAs", group="EMA")
srcEma1 = input(close, "Source EMA 1")
lenEma1 = input.int(7, "Length EMA 1", 1)
srcEma2 = input(close, "Source EMA 2")
lenEma2 = input.int(21, "Length EMA 2", 1)
srcEma3 = input(close, "Source EMA 3")
lenEma3 = input.int(144, "Length EMA 3", 1)
showSwing = input(false, "Show Swing Points", group="SWING POINTS")
prdSwing = input.int(10, "Swing Point Period", 2, group="SWING POINTS")
colorPos = input(color.new(color.green, 50), "Positive Swing Color")
colorNeg = input(color.new(color.red, 50), "Negative Swing Color")
showDashboard = input(true, "Show Dashboard", group="TREND DASHBOARD")
locationDashboard = input.string("Middle Right", "Table Location", , group="TREND DASHBOARD")
tableTextColor = input(color.white, "Table Text Color", group="TREND DASHBOARD")
tableBgColor = input(#2A2A2A, "Table Background Color", group="TREND DASHBOARD")
sizeDashboard = input.string("Normal", "Table Size", , group="TREND DASHBOARD")
showRevBands = input.bool(true, "Show Reversal Bands", group="REVERSAL BANDS")
lenRevBands = input.int(30, "Length", group="REVERSAL BANDS")
// Fonksiyonlar
smoothrng(x, t, m) =>
wper = t * 2 - 1
avrng = ta.ema(math.abs(x - x ), t)
smoothrng = ta.ema(avrng, wper) * m
rngfilt(x, r) =>
rngfilt = x
rngfilt := x > nz(rngfilt ) ? x - r < nz(rngfilt ) ? nz(rngfilt ) : x - r : x + r > nz(rngfilt ) ? nz(rngfilt ) : x + r
percWidth(len, perc) => (ta.highest(len) - ta.lowest(len)) * perc / 100
securityNoRep(sym, res, src) => request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on)
swingPoints(prd) =>
pivHi = ta.pivothigh(prd, prd)
pivLo = ta.pivotlow (prd, prd)
last_pivHi = ta.valuewhen(pivHi, pivHi, 1)
last_pivLo = ta.valuewhen(pivLo, pivLo, 1)
hh = pivHi and pivHi > last_pivHi ? pivHi : na
lh = pivHi and pivHi < last_pivHi ? pivHi : na
hl = pivLo and pivLo > last_pivLo ? pivLo : na
ll = pivLo and pivLo < last_pivLo ? pivLo : na
f_chartTfInMinutes() =>
float _resInMinutes = timeframe.multiplier * (
timeframe.isseconds ? 1 :
timeframe.isminutes ? 1. :
timeframe.isdaily ? 60. * 24 :
timeframe.isweekly ? 60. * 24 * 7 :
timeframe.ismonthly ? 60. * 24 * 30.4375 : na)
f_kc(src, len, hassasiyet) =>
basis = ta.sma(src, len)
span = ta.atr(len)
wavetrend(src, chlLen, avgLen) =>
esa = ta.ema(src, chlLen)
d = ta.ema(math.abs(src - esa), chlLen)
ci = (src - esa) / (0.015 * d)
wt1 = ta.ema(ci, avgLen)
wt2 = ta.sma(wt1, 3)
f_top_fractal(src) => src < src and src < src and src > src and src > src
f_bot_fractal(src) => src > src and src > src and src < src and src < src
f_fractalize (src) => f_top_fractal(src) ? 1 : f_bot_fractal(src) ? -1 : 0
f_findDivs(src, topLimit, botLimit) =>
fractalTop = f_fractalize(src) > 0 and src >= topLimit ? src : na
fractalBot = f_fractalize(src) < 0 and src <= botLimit ? src : na
highPrev = ta.valuewhen(fractalTop, src , 0)
highPrice = ta.valuewhen(fractalTop, high , 0)
lowPrev = ta.valuewhen(fractalBot, src , 0)
lowPrice = ta.valuewhen(fractalBot, low , 0)
bearSignal = fractalTop and high > highPrice and src < highPrev
bullSignal = fractalBot and low < lowPrice and src > lowPrev
// Bileşen...
source = close
smrng1 = smoothrng(source, 27, 1.5)
smrng2 = smoothrng(source, 55, hassasiyet)
smrng = (smrng1 + smrng2) / 2
filt = rngfilt(source, smrng)
up = 0.0, up := filt > filt ? nz(up ) + 1 : filt < filt ? 0 : nz(up )
dn = 0.0, dn := filt < filt ? nz(dn ) + 1 : filt > filt ? 0 : nz(dn )
bullCond = bool(na), bullCond := source > filt and source > source and up > 0 or source > filt and source < source and up > 0
bearCond = bool(na), bearCond := source < filt and source < source and dn > 0 or source < filt and source > source and dn > 0
lastCond = 0, lastCond := bullCond ? 1 : bearCond ? -1 : lastCond
bull = bullCond and lastCond == -1
bear = bearCond and lastCond == 1
countBull = ta.barssince(bull)
countBear = ta.barssince(bear)
trigger = nz(countBull, bar_index) < nz(countBear, bar_index) ? 1 : 0
ribbon1 = ta.sma(close, smooth1)
ribbon2 = ta.sma(close, smooth2)
rsi = ta.rsi(close, 21)
rsiOb = rsi > 70 and rsi > ta.ema(rsi, 10)
rsiOs = rsi < 30 and rsi < ta.ema(rsi, 10)
dHigh = securityNoRep(syminfo.tickerid, "D", high )
dLow = securityNoRep(syminfo.tickerid, "D", low )
dClose = securityNoRep(syminfo.tickerid, "D", close )
ema1 = ta.ema(srcEma1, lenEma1)
ema2 = ta.ema(srcEma2, lenEma2)
ema3 = ta.ema(srcEma3, lenEma3)
= swingPoints(prdSwing)
ema = ta.ema(close, 144)
emaBull = close > ema
equal_tf(res) => str.tonumber(res) == f_chartTfInMinutes() and not timeframe.isseconds
higher_tf(res) => str.tonumber(res) > f_chartTfInMinutes() or timeframe.isseconds
too_small_tf(res) => (timeframe.isweekly and res=="1") or (timeframe.ismonthly and str.tonumber(res) < 10)
securityNoRep1(sym, res, src) =>
bool bull_ = na
bull_ := equal_tf(res) ? src : bull_
bull_ := higher_tf(res) ? request.security(sym, res, src, barmerge.gaps_off, barmerge.lookahead_on) : bull_
bull_array = request.security_lower_tf(syminfo.tickerid, higher_tf(res) ? str.tostring(f_chartTfInMinutes()) + (timeframe.isseconds ? "S" : "") : too_small_tf(res) ? (timeframe.isweekly ? "3" : "10") : res, src)
if array.size(bull_array) > 1 and not equal_tf(res) and not higher_tf(res)
bull_ := array.pop(bull_array)
array.clear(bull_array)
bull_
TF1Bull = securityNoRep1(syminfo.tickerid, "1" , emaBull)
TF3Bull = securityNoRep1(syminfo.tickerid, "3" , emaBull)
TF5Bull = securityNoRep1(syminfo.tickerid, "5" , emaBull)
TF15Bull = securityNoRep1(syminfo.tickerid, "15" , emaBull)
TF30Bull = securityNoRep1(syminfo.tickerid, "30" , emaBull)
TF60Bull = securityNoRep1(syminfo.tickerid, "60" , emaBull)
TF120Bull = securityNoRep1(syminfo.tickerid, "120" , emaBull)
TF240Bull = securityNoRep1(syminfo.tickerid, "240" , emaBull)
TF480Bull = securityNoRep1(syminfo.tickerid, "480" , emaBull)
TFDBull = securityNoRep1(syminfo.tickerid, "1440", emaBull)
= f_kc(close, lenRevBands, 3)
= f_kc(close, lenRevBands, 4)
= f_kc(close, lenRevBands, 5)
= f_kc(close, lenRevBands, 6)
= wavetrend(hlc3, 9, 12)
= f_findDivs(wt2, 15, -40)
= f_findDivs(wt2, 45, -65)
wtDivBull = wtDivBull1 or wtDivBull2
wtDivBear = wtDivBear1 or wtDivBear2
// Renkler
cyan = #00DBFF, cyan30 = color.new(cyan, 70)
pink = #E91E63, pink30 = color.new(pink, 70)
red = #FF5252, red30 = color.new(red , 70)
// Plotlar
off = percWidth(300, offsetSignal)
plotshape(showBuySell and bull ? low - off : na, "Buy Label" , shape.labelup , location.absolute, cyan, 0, "Buy" , color.white, size=size.normal)
plotshape(showBuySell and bear ? high + off : na, "Sell Label", shape.labeldown, location.absolute, pink, 0, "Sell", color.white, size=size.normal)
plotshape(ta.crossover(wt1, wt2) and wt2 <= -53, "Mild Buy" , shape.xcross, location.belowbar, cyan, size=size.tiny)
plotshape(ta.crossunder(wt1, wt2) and wt2 >= 53, "Mild Sell", shape.xcross, location.abovebar, pink, size=size.tiny)
plotshape(wtDivBull, "Divergence Buy ", shape.triangleup , location.belowbar, cyan, size=size.tiny)
plotshape(wtDivBear, "Divergence Sell", shape.triangledown, location.abovebar, pink, size=size.tiny)
barcolor(up > dn ? cyan : pink)
plotshape(showreversal and rsiOs, "Reversal Buy" , shape.diamond, location.belowbar, cyan30, size=size.tiny)
plotshape(showreversal and rsiOb, "Reversal Sell", shape.diamond, location.abovebar, pink30, size=size.tiny)
lStyle = lineStyle == "Solid" ? line.style_solid : lineStyle == "Dotted" ? line.style_dotted : line.style_dashed
lSize = labelSize == "small" ? size.small : labelSize == "normal" ? size.normal : size.large
dHighLine = showPdHlc ? line.new(bar_index, dHigh, bar_index + 1, dHigh , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dHighLine )
dLowLine = showPdHlc ? line.new(bar_index, dLow , bar_index + 1, dLow , xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dLowLine )
dCloseLine = showPdHlc ? line.new(bar_index, dClose, bar_index + 1, dClose, xloc.bar_index, extend.both, lineColor, lStyle, lineWidth) : na, line.delete(dCloseLine )
dHighLabel = showPdHlc ? label.new(bar_index + 100, dHigh , "P.D.H", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dHighLabel )
dLowLabel = showPdHlc ? label.new(bar_index + 100, dLow , "P.D.L", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dLowLabel )
dCloseLabel = showPdHlc ? label.new(bar_index + 100, dClose, "P.D.C", xloc.bar_index, yloc.price, #000000, label.style_none, labelColor, lSize) : na, label.delete(dCloseLabel )
plot(showEmas ? ema1 : na, "EMA 1", color.green , 2)
plot(showEmas ? ema2 : na, "EMA 2", color.purple, 2)
plot(showEmas ? ema3 : na, "EMA 3", color.yellow, 2)
plotshape(showSwing ? hh : na, "", shape.triangledown, location.abovebar, color.new(color.green, 50), -prdSwing, "HH", colorPos, false)
plotshape(showSwing ? hl : na, "", shape.triangleup , location.belowbar, color.new(color.green, 50), -prdSwing, "HL", colorPos, false)
plotshape(showSwing ? lh : na, "", shape.triangledown, location.abovebar, color.new(color.red , 50), -prdSwing, "LH", colorNeg, false)
plotshape(showSwing ? ll : na, "", shape.triangleup , location.belowbar, color.new(color.red , 50), -prdSwing, "LL", colorNeg, false)
srcStop = close
atrBand = srcStop * (percentStop / 100)
atrStop = trigger ? srcStop - atrBand : srcStop + atrBand
lastTrade(src) => ta.valuewhen(bull or bear, src, 0)
entry_y = lastTrade(srcStop)
stop_y = lastTrade(atrStop)
tp1_y = (entry_y - lastTrade(atrStop)) * 1 + entry_y
tp2_y = (entry_y - lastTrade(atrStop)) * 2 + entry_y
tp3_y = (entry_y - lastTrade(atrStop)) * 3 + entry_y
labelTpSl(y, txt, color) =>
label labelTpSl = percentStop != 0 ? label.new(bar_index + 1, y, txt, xloc.bar_index, yloc.price, color, label.style_label_left, color.white, size.normal) : na
label.delete(labelTpSl )
labelTpSl(entry_y, "Entry: " + str.tostring(math.round_to_mintick(entry_y)), color.gray)
labelTpSl(stop_y , "Stop Loss: " + str.tostring(math.round_to_mintick(stop_y)), color.red)
labelTpSl(tp1_y, "Take Profit 1: " + str.tostring(math.round_to_mintick(tp1_y)), color.green)
labelTpSl(tp2_y, "Take Profit 2: " + str.tostring(math.round_to_mintick(tp2_y)), color.green)
labelTpSl(tp3_y, "Take Profit 3: " + str.tostring(math.round_to_mintick(tp3_y)), color.green)
lineTpSl(y, color) =>
line lineTpSl = percentStop != 0 ? line.new(bar_index - (trigger ? countBull : countBear) + 4, y, bar_index + 1, y, xloc.bar_index, extend.none, color, line.style_solid) : na
line.delete(lineTpSl )
lineTpSl(entry_y, color.gray)
lineTpSl(stop_y, color.red)
lineTpSl(tp1_y, color.green)
lineTpSl(tp2_y, color.green)
lineTpSl(tp3_y, color.green)
var dashboard_loc = locationDashboard == "Top Right" ? position.top_right : locationDashboard == "Middle Right" ? position.middle_right : locationDashboard == "Bottom Right" ? position.bottom_right : locationDashboard == "Top Center" ? position.top_center : locationDashboard == "Middle Center" ? position.middle_center : locationDashboard == "Bottom Center" ? position.bottom_center : locationDashboard == "Top Left" ? position.top_left : locationDashboard == "Middle Left" ? position.middle_left : position.bottom_left
var dashboard_size = sizeDashboard == "Large" ? size.large : sizeDashboard == "Normal" ? size.normal : sizeDashboard == "Small" ? size.small : size.tiny
var dashboard = showDashboard ? table.new(dashboard_loc, 2, 15, tableBgColor, #000000, 2, tableBgColor, 1) : na
dashboard_cell(column, row, txt, signal=false) => table.cell(dashboard, column, row, txt, 0, 0, signal ? #000000 : tableTextColor, text_size=dashboard_size)
dashboard_cell_bg(column, row, col) => table.cell_set_bgcolor(dashboard, column, row, col)
if barstate.islast and showDashboard
dashboard_cell(0, 0 , "EzAlgo")
dashboard_cell(0, 1 , "Current Position")
dashboard_cell(0, 2 , "Current Trend")
dashboard_cell(0, 3 , "Volume")
dashboard_cell(0, 4 , "Timeframe")
dashboard_cell(0, 5 , "1 min:")
dashboard_cell(0, 6 , "3 min:")
dashboard_cell(0, 7 , "5 min:")
dashboard_cell(0, 8 , "15 min:")
dashboard_cell(0, 9 , "30 min:")
dashboard_cell(0, 10, "1 H:")
dashboard_cell(0, 11, "2 H:")
dashboard_cell(0, 12, "4 H:")
dashboard_cell(0, 13, "8 H:")
dashboard_cell(0, 14, "Daily:")
dashboard_cell(1, 0 , "V.8.1")
dashboard_cell(1, 1 , trigger ? "Buy" : "Sell", true), dashboard_cell_bg(1, 1, trigger ? color.green : color.red)
dashboard_cell(1, 2 , emaBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 2, emaBull ? color.green : color.red)
dashboard_cell(1, 3 , str.tostring(volume))
dashboard_cell(1, 4 , "Trends")
dashboard_cell(1, 5 , TF1Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 5 , TF1Bull ? color.green : color.red)
dashboard_cell(1, 6 , TF3Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 6 , TF3Bull ? color.green : color.red)
dashboard_cell(1, 7 , TF5Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 7 , TF5Bull ? color.green : color.red)
dashboard_cell(1, 8 , TF15Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 8 , TF15Bull ? color.green : color.red)
dashboard_cell(1, 9 , TF30Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 9 , TF30Bull ? color.green : color.red)
dashboard_cell(1, 10, TF60Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 10, TF60Bull ? color.green : color.red)
dashboard_cell(1, 11, TF120Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 11, TF120Bull ? color.green : color.red)
dashboard_cell(1, 12, TF240Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 12, TF240Bull ? color.green : color.red)
dashboard_cell(1, 13, TF480Bull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 13, TF480Bull ? color.green : color.red)
dashboard_cell(1, 14, TFDBull ? "Bullish" : "Bearish", true), dashboard_cell_bg(1, 14, TFDBull ? color.green : color.red)
plot(showRevBands ? upperKC1 : na, "Rev.Zone Upper 1", red30)
plot(showRevBands ? upperKC2 : na, "Rev.Zone Upper 2", red30)
plot(showRevBands ? upperKC3 : na, "Rev.Zone Upper 3", red30)
plot(showRevBands ? upperKC4 : na, "Rev.Zone Upper 4", red30)
plot(showRevBands ? lowerKC4 : na, "Rev.Zone Lower 4", cyan30)
plot(showRevBands ? lowerKC3 : na, "Rev.Zone Lower 3", cyan30)
plot(showRevBands ? lowerKC2 : na, "Rev.Zone Lower 2", cyan30)
plot(showRevBands ? lowerKC1 : na, "Rev.Zone Lower 1", cyan30)
fill(plot(showRibbon ? ribbon1 : na, "", na, editable=false), plot(showRibbon ? ribbon2 : na, "", na, editable=false), ribbon1 > ribbon2 ? cyan30 : pink30, "Ribbon Fill Color")
// Alarmlar
alert01 = ta.crossover(ribbon1, ribbon2)
alert02 = bull
alert03 = wtDivBull
alert04 = wtDivBear
alert05 = bull or bear
alert06 = ta.crossover(wt1, wt2) and wt2 <= -53
alert07 = ta.crossunder(wt1, wt2) and wt2 >= 53
alert08 = ta.crossunder(ribbon1, ribbon2)
alert09 = rsiOb or rsiOs
alert10 = bear
alert11 = ta.cross(ribbon1, ribbon2)
alerts(sym) =>
if alert02 or alert03 or alert04 or alert06 or alert07 or alert10
alert_text = alert02 ? "Buy Signal EzAlgo" : alert03 ? "Strong Buy Signal EzAlgo" : alert04 ? "Strong Sell Signal EzAlgo" : alert06 ? "Mild Buy Signal EzAlgo" : alert07 ? "Mild Sell Signal EzAlgo" : "Sell Signal EzAlgo"
alert(alert_text, alert.freq_once_per_bar_close)
alerts(syminfo.tickerid)
alertcondition(alert01, "Blue Trend Ribbon Alert", "Blue Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert02, "Buy Signal", "Buy Signal EzAlgo")
alertcondition(alert03, "Divergence Buy Alert", "Strong Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert04, "Divergence Sell Alert", "Strong Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert05, "Either Buy or Sell Signal", "EzAlgo Signal")
alertcondition(alert06, "Mild Buy Alert", "Mild Buy Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert07, "Mild Sell Alert", "Mild Sell Signal EzAlgo, TimeFrame={{interval}}")
alertcondition(alert08, "Red Trend Ribbon Alert", "Red Trend Ribbon, TimeFrame={{interval}}")
alertcondition(alert09, "Reversal Signal", "Reversal Signal")
alertcondition(alert10, "Sell Signal", "Sell Signal EzAlgo")
alertcondition(alert11, "Trend Ribbon Color Change Alert", "Trend Ribbon Color Change, TimeFrame={{interval}}")
Precision Trend ScalpingThis indicator is used specifically for heiken ashi candles. It indicates a reversal signal and only appears when a high volume doji candle forms and should develop in real time.
Sideways Zone Breakout 📘 Sideways Zone Breakout – Indicator Description
Sideways Zone Breakout is a visual market-structure indicator designed to identify low-volatility consolidation zones and highlight potential breakout opportunities when price exits these zones.
This indicator focuses on detecting periods where price trades within a tight range, often referred to as sideways or consolidation phases, and visually marks these zones directly on the chart for clarity.
🔍 Core Concept
Markets often spend time moving sideways before making a directional move.
This indicator aims to:
Detect price compression
Visually highlight the sideways zone
Signal when price breaks above or below the zone boundaries
Instead of predicting direction, it simply reacts to range expansion after consolidation.
⚙️ How the Indicator Works
1️⃣ Sideways Zone Detection
The indicator looks back over a user-defined number of candles
It calculates the highest high and lowest low within that window
If the total price range remains within a defined percentage of the current price, the market is considered sideways
This helps filter out trending and highly volatile conditions.
2️⃣ Visual Zone Representation
When a sideways condition is detected:
A clear price zone is drawn between the recent high and low
The zone is displayed using a soft gradient fill for better visibility
Outer borders are added to enhance zone clarity without cluttering the chart
This makes consolidation areas easy to spot at a glance.
3️⃣ Breakout Identification
Once a sideways zone is active:
A bullish breakout is marked when price closes above the upper boundary
A bearish breakout is marked when price closes below the lower boundary
Directional arrows and labels are plotted directly on the chart to indicate these events.
📊 Visual Elements Included
Sideways consolidation zones with gradient fill
Upper and lower zone boundaries
Buy and Sell arrows on breakout
Optional text labels for clear interpretation
All visuals are designed to remain lightweight and readable on any chart theme.
🔧 User Inputs
Sideways Lookback (candles): Controls how many past candles are used to define the range
Max Range % (tightness): Determines how tight the range must be to qualify as sideways
Adjusting these inputs allows users to adapt the indicator to different instruments and timeframes.
📈 Usage Guidelines
Can be applied to any market or timeframe
Works well as a context or confirmation tool
Best used alongside volume, trend, or risk management tools
Signals should be validated with proper trade planning
⚠️ Disclaimer
This indicator is provided as open-source for educational and analytical purposes only.
It does not generate trade recommendations or guarantee outcomes.
Market conditions vary, and users are responsible for their own trading decisions.
Trend Break Targets [MarkitTick]Trend Break Targets
Trend Break Targets is a technical analysis tool designed to assist traders in identifying trendline breakouts and projecting potential price targets based on market geometry. Unlike fully automated indicators that guess trendlines, this tool provides you with precise control by allowing you to manually Pivot Point the trendline to specific points in time, while automating the complex math of target projection and structure mapping.
Theoretical Basis & Concepts
This indicator is grounded in classic technical analysis principles found in foundational trading literature. It automates the following methodology:
Drawing a trend line between two key points to represent dynamic support or resistance.
Identifying a breakout when the price closes above or below this line, potentially signaling a change in trend.
Calculating a price target by measuring the vertical distance between the breakout line and the last high/low (pivot), then projecting that same distance in the direction of the breakout.
This concept is based on methods and "Measured Move" theories explained in classic books such as "Technical Analysis of Stock Trends" by Edwards & Magee, "Technical Analysis of the Financial Markets" by John Murphy, and in Thomas Bulkowski's Price Pattern Studies.
How It Works
Pivot Pointed Trendline Construction The script draws a trendline between two user-defined points in time (Start Date and End Date). It calculates the slope between these points and extends the line infinitely to the right, allowing you to define the exact structure (e.g., a resistance trendline on a wedge).
Breakout Detection The script monitors the "Price Source" (High, Low, or Close) relative to the extended trendline.
A Bullish Breakout (BC) occurs when the Close crosses above a bearish trendline.
A Bearish Breakout (BC) occurs when the Close crosses below a bullish trendline.
Dynamic Target Projection (The Math) Upon a confirmed breakout, the script automatically calculates three distinct targets by identifying the most significant "Swing Point" (Pivot) prior to the breakout.
Distance (D): The vertical distance between the Trendline and the Pivot Price at the specific bar where the pivot occurred.
Target 1 (T1): The Breakout Price +/- (Distance × 1.0). This represents a classic 1:1 measured move.
Target 2 (T2): The Breakout Price +/- (Distance × 1.618). Based on the Golden Ratio extension.
Target 3 (T3): The Breakout Price +/- (Distance × 2.618).
Market Structure (CHOCH) The script includes an optional Change of Character (CHOCH) module. This runs independently of the trendline logic, identifying local Swing Highs and Swing Lows based on the "Swing Detection Length." It plots dashed lines and labels to visualize immediate shifts in market structure.
How to Use This Tool
This is an interactive tool that requires user input to define the setup.
Identify a Setup: Locate a clear trend, wedge, or flag pattern on your chart.
Set Pivot Points: Go to the Indicator Settings. Input the exact Start Date and End Date corresponding to the two main touches of your trendline.
Monitor for Breakout: The script will extend the line. Wait for a "BC" label to appear.
Trade Management: Once "BC" prints, the T1, T2, and T3 lines will instantly render. These can be used as potential take-profit zones or areas to tighten stop-losses.
Settings & Configuration
Indicator Settings
Start/End Date: The timestamp Pivot Points for your trendline.
Price Source: Determines what price (High or Low) Pivot Points the line and triggers the breakout.
Pivot Left/Right: Adjusts the sensitivity for finding the "Pivot Before Break" used for target calculations.
Extend Target Line: How far forward the target lines are drawn.
Visual Style
Colors: Fully customizable colors for the Trendline, Breakout Labels, and each Target level (T1, T2, T3).
Gold Bullish Reversal
This analysis dissects a confirmed bullish reversal on Gold using a custom Trend Break system. The setup identifies a transition from a bearish corrective phase to bullish momentum, validated by a structural break and a geometric target projection.
Trend Identification (The Pivot Points) The descending white trendline serves as the primary dynamic resistance, defining the bearish correction.
Pivot Points: The line is drawn connecting two significant swing highs, marked by Label 1 and Label 2.
Logic: These points represent the "lower highs" characteristic of the previous downtrend. As long as price remained below this trajectory, the bearish bias was intact.
The Trigger: Breakout & Confirmation The transition occurs at the candle marked BC (Breakout Candle).
Breakout Criteria: The indicator logic dictates that a signal is only valid when the bar closes above the trendline. This filters out intraday wicks and ensures genuine buyer commitment.
CHOCH Confluence: Immediately following the breakout, a CHOCH (Change of Character) label appears. This signals a shift in market structure, indicating that the internal lower-high/lower-low sequence has been violated, adding probability to the reversal.
Target Projection: The Measured Move The vertical green lines (T1, T2) represent profit objectives derived from the depth of the prior move. The logic calculates the distance between the breakout line and the lowest pivot prior to the break.
T1 (Standard Target): This is a 1:1 projection of the pre-breakout volatility. We see price action initially stalling near this level, confirming it as a zone of interest.
T2 (Golden Ratio Extension): The second target is calculated as the initial distance multiplied by 1.618 (Fibonacci Golden Ratio). The chart shows the price rallying aggressively through T1 to tap the T2 zone, often considered an exhaustion or major take-profit level in harmonic extensions.
Conclusion Gold has successfully invalidated the 4-hour bearish trendline. The confluence of a confirmed close above resistance (BC) and a structural shift (CHOCH) provided a high-probability long setup. The price has now fulfilled the T2 (1.618) extension, suggesting traders should watch for consolidation or a reaction at this key Fibonacci resistance level.
Bearish Trendline Breakdown
The image displays a Bearish Trendline Breakdown on the Gold (XAUUSD) 4-hour chart. The indicator is actually functioning in "Low" mode here (connecting swing lows to form support), which triggers the bearish logic found in the code. Here is the step-by-step breakdown:
The Setup: Pivot Points & Trendline
Visual: The Blue Labels "1" and "2" connected by a white diagonal line.
Code Logic: These are the user-defined start and end points.
Pivot Point 1 (startDate): The starting pivot of the trendline.
Pivot Point 2 (endDate): The ending pivot.
Trendline: The code draws a line between these two points and extends it to the right (extend.right). In this specific image, the line acts as a Support Trendline.
The Trigger: Break Candle (BC)
Visual: The Red Label "BC" appearing just below the white trendline.
Code Logic: This is the execution signal. The code detects a "Down Break" (dnBreak) because the Price Source was likely set to "Low" and the candle's Close was lower than the Trendline Price at that specific bar (close < currLinePrice). This confirms the support level has been breached.
The Projection: Targets (T1 & T2)
Visual: The Green Labels "T1" and "T2" with dotted horizontal lines projected downward.
Code Logic: These are profit targets based on a "Measured Move."
Pivot Calculation: The script looks back for a recent "Pivot High" (the peak before the crash) to calculate the volatility/distance (dist) between that peak and the trendline.
T1 (Conservative): The price is projected downward by 1x that distance (currLinePrice - dist).
T2 (Extended): The price is projected downward by 1.618x that distance (Golden Ratio extension).
Market Context: CHOCH
Visual: The small Red/Orange "CHOCH" labels appearing above the price action.
Code Logic: This is a secondary confirmation system running independently of the trendline. It detects a Change of Character (structural shift). The red labels indicate a "Bearish CHOCH," meaning the price broke below a significant prior swing low (last_swing_low). This supports the bearish bias of the trendline break.
Disclaimer This tool is for educational and technical analysis purposes only. Breakouts can fail (fake-outs), and past geometric patterns do not guarantee future price action. Always manage risk and use this tool in conjunction with other forms of analysis.
able FRVP Reversal# able FRVP Reversal - Complete User Guide
## 📌 Overview
**able FRVP Reversal** is a professional-grade Volume Profile indicator with an integrated reversal detection system. It combines Fixed Range Volume Profile (FRVP) analysis with a confluence-based reversal scoring system to identify high-probability turning points at key volume levels.
---
## ✨ Key Features
| Feature | Description |
|---------|-------------|
| **Session-Based Volume Profile** | Automatically resets at the beginning of each regular trading session |
| **POC (Point of Control)** | Highest volume price level - strongest support/resistance |
| **VAH (Value Area High)** | Upper boundary of the 70% value area - resistance zone |
| **VAL (Value Area Low)** | Lower boundary of the 70% value area - support zone |
| **Confluence Scoring System** | 5-point scoring system for reversal detection |
| **Smart Cooldown** | Prevents signal spam with customizable cooldown period |
| **Real-time Info Table** | Displays all key metrics in a retro-style dashboard |
---
## 🔧 Installation
1. Open TradingView and go to **Pine Editor**
2. Delete any existing code and paste the indicator code
3. Click **"Add to Chart"**
4. Configure settings as needed
---
## ⚙️ Settings Explained
### 📊 Volume Profile Settings
| Setting | Default | Description |
|---------|---------|-------------|
| **Number of Rows** | 50 | Resolution of the volume profile (more rows = finer detail) |
| **Value Area %** | 70 | Percentage of volume to include in Value Area (industry standard: 70%) |
| **Profile Width** | 40 | Visual width of the histogram on chart |
| **Show Histogram** | ✓ | Display volume histogram bars |
| **Show POC/VAH/VAL** | ✓ | Display the three key levels |
| **Show Labels** | ✓ | Display price labels for each level |
| **Extend Lines** | ✓ | Extend levels to the right of current price |
| **Extend Length** | 100 | How far to extend the lines (in bars) |
### 🔄 Reversal Detection Settings
| Setting | Default | Description |
|---------|---------|-------------|
| **Enable Reversal Detection** | ✓ | Turn reversal signals on/off |
| **Min Confluence Score** | 3 | Minimum score required to trigger signal (1-5) |
| **Cooldown Bars** | 10 | Minimum bars between signals to prevent spam |
#### Understanding Min Confluence Score:
- **Score 1-2**: Very sensitive, many signals (not recommended)
- **Score 3**: Balanced - good for most traders ⭐ Recommended
- **Score 4**: Conservative - fewer but higher quality signals
- **Score 5**: Very strict - only strongest reversals
### 🎨 Color Settings
All colors are fully customizable:
- **POC Line**: Default Gold (#FFD700)
- **VAH Line**: Default Coral Red (#FF6B6B)
- **VAL Line**: Default Teal (#4ECDC4)
- **Bullish Reversal**: Default Green (#00E676)
- **Bearish Reversal**: Default Red (#FF5252)
---
## 📖 How to Read the Indicator
### Volume Profile Histogram
```
█████████████ ← High volume = Strong S/R
████████ ← Medium volume
████ ← Low volume = Weak S/R
██
```
- **Darker/Longer bars** = More trading activity at that price
- **Inside Value Area** = Colored based on session direction (Bull/Bear)
- **Outside Value Area** = Muted gray color
### Key Levels
| Level | Color | Meaning |
|-------|-------|---------|
| **POC** | Yellow | Price with highest volume - Strongest magnet |
| **VAH** | Red | Upper resistance - Look for bearish reversals |
| **VAL** | Teal | Lower support - Look for bullish reversals |
---
## 🔄 Reversal Detection System
### How the Scoring System Works
The indicator uses a **5-point confluence scoring system**. Each condition adds 1 point:
#### 🟢 Bullish Reversal Score (at VAL)
| Condition | Points | Description |
|-----------|--------|-------------|
| Price at VAL Zone | +1 | Price is within VAL ± 0.2 ATR |
| Bullish Candle | +1 | Close > Open (green candle) |
| RSI Oversold | +1 | RSI < 35 |
| Rejection Wick | +1 | Lower wick > 1.5× body size |
| Failed Breakdown | +1 | Touched below VAL but closed above |
#### 🔴 Bearish Reversal Score (at VAH)
| Condition | Points | Description |
|-----------|--------|-------------|
| Price at VAH Zone | +1 | Price is within VAH ± 0.2 ATR |
| Bearish Candle | +1 | Close < Open (red candle) |
| RSI Overbought | +1 | RSI > 65 |
| Rejection Wick | +1 | Upper wick > 1.5× body size |
| Failed Breakout | +1 | Touched above VAH but closed below |
### Signal Quality Ratings
| Score | Rating | Meaning |
|-------|--------|---------|
| 5/5 | ★★★ | Excellent - Highest probability |
| 4/5 | ★★ | Good - High probability |
| 3/5 | ★ | Acceptable - Moderate probability |
| <3 | - | No signal triggered |
---
## 📋 Info Table Explained
```
╔═ able-REV ═╗ 15 ████████ SCR
─────────────────────────────────────
ZONE UPPER VA ▒▒▓▓████ ▲
POC 4272.680 ██████·· ▲
VAH 4322.745 ████···· ·
VAL 4264.977 ██████·· ·
═ SCORE ═════════════════════════════
BULL 0/5 ········ ·
BEAR 1/5 ░······· ·
RSI 49 ▒▒▓▓···· ·
◄SIGNAL► WAIT ········ ·
```
| Row | Description |
|-----|-------------|
| **ZONE** | Current price position relative to Value Area |
| **POC/VAH/VAL** | Price levels with distance indicators |
| **BULL Score** | Current bullish confluence score |
| **BEAR Score** | Current bearish confluence score |
| **RSI** | RSI value with OB/OS status |
| **SIGNAL** | Current signal status (BUY/SELL/WAIT) |
### Zone Types
| Zone | Meaning | Bias |
|------|---------|------|
| ABOVE VAH | Price broke above resistance | Bullish (but watch for rejection) |
| ⚠ AT VAH | Price testing resistance | Watch for bearish reversal |
| UPPER VA | Price in upper value area | Slight bullish bias |
| LOWER VA | Price in lower value area | Slight bearish bias |
| ⚠ AT VAL | Price testing support | Watch for bullish reversal |
| BELOW VAL | Price broke below support | Bearish (but watch for rejection) |
---
## 📈 Trading Strategies
### Strategy 1: VAH Rejection (Bearish Reversal)
**Setup:**
1. Price approaches or touches VAH (red dashed line)
2. BEAR score reaches 3+ (or your minimum setting)
3. REV signal appears above the candle
**Entry:**
- Enter SHORT on signal candle close
- Or wait for confirmation candle
**Stop Loss:**
- Above the signal candle high
- Or above VAH + 0.5 ATR
**Take Profit:**
- First target: POC (yellow line)
- Second target: VAL (teal line)
---
### Strategy 2: VAL Bounce (Bullish Reversal)
**Setup:**
1. Price approaches or touches VAL (teal dashed line)
2. BULL score reaches 3+ (or your minimum setting)
3. REV signal appears below the candle
**Entry:**
- Enter LONG on signal candle close
- Or wait for confirmation candle
**Stop Loss:**
- Below the signal candle low
- Or below VAL - 0.5 ATR
**Take Profit:**
- First target: POC (yellow line)
- Second target: VAH (red line)
---
### Strategy 3: POC Bounce
**Setup:**
1. Price pulls back to POC after trending
2. POC acts as support/resistance
3. Watch for reversal candle patterns
**Entry:**
- Long if bullish candle at POC from below
- Short if bearish candle at POC from above
**Stop Loss:**
- Other side of POC ± buffer
---
## ⚠️ Important Notes
### When Signals Work Best
✅ **High Probability Setups:**
- Score 4-5 with clear rejection wick
- RSI confirms (oversold for long, overbought for short)
- First test of VAH/VAL in the session
- Clear trend before reversal
❌ **Low Probability Setups:**
- Score barely meeting minimum (3/5)
- Multiple tests of same level (level weakening)
- Low volume/choppy market
- News events pending
### Risk Management Rules
1. **Never risk more than 1-2% per trade**
2. **Always use stop loss** - place beyond the level
3. **Wait for candle close** - don't enter on wick touches
4. **Respect the cooldown** - avoid overtrading
5. **Consider the trend** - counter-trend reversals are riskier
---
## 🔔 Alerts
The indicator includes built-in alerts:
| Alert | Trigger |
|-------|---------|
| VAL Bullish Reversal | BULL score meets minimum at VAL |
| VAH Bearish Reversal | BEAR score meets minimum at VAH |
### Setting Up Alerts:
1. Right-click on the chart
2. Select "Add Alert"
3. Choose "able FRVP Reversal" as condition
4. Select desired alert type
5. Configure notification method
---
## 💡 Pro Tips
1. **Combine with trend analysis** - Reversals in trend direction are more reliable
2. **Watch for confluence with other S/R** - If VAH/VAL aligns with round numbers, previous highs/lows, or fib levels, the level is stronger
3. **Volume confirmation** - Higher volume on reversal candle = stronger signal
4. **Time of day matters** - Reversals during active trading hours are more reliable
5. **Adjust sensitivity by market** - Volatile assets may need higher Min Confluence Score
6. **Use multiple timeframes** - Check if reversal level aligns with higher timeframe levels
---
## 🔧 Recommended Settings by Trading Style
| Style | Min Confluence | Cooldown | Best For |
|-------|----------------|----------|----------|
| Scalping | 3 | 5-7 | Quick trades, more signals |
| Day Trading | 3-4 | 10-15 | Balanced approach |
| Swing Trading | 4-5 | 20+ | Fewer, higher quality signals |
---
## ❓ Troubleshooting
| Issue | Solution |
|-------|----------|
| No signals appearing | Lower Min Confluence Score or check if market is ranging |
| Too many signals | Increase Min Confluence Score or Cooldown Bars |
| Levels not showing | Enable Show POC/VAH/VAL in settings |
| Histogram too wide/narrow | Adjust Profile Width setting |
---
## 📞 Support
For questions, suggestions, or bug reports, please contact the developer.
---
**Version:** 1.0
**Last Updated:** 2024
**Platform:** TradingView (Pine Script v6)
Absorption BubblesSUMMARY
This indicator visualizes absorption events by plotting bubbles on candle wicks where volume activity suggests one side of the market is absorbing the other’s pressure. Instead of raw volume, the script normalizes activity against a rolling standard deviation defined by the Lookback Period. Bubbles appear on upper or lower wicks depending on whether buyers or sellers are absorbing pressure. The goal is to highlight whether aggressive orders are being accepted or absorbed at key price points.
METHODOLOGY
Absorption occurs when one side of the market absorbs aggressive orders from the other, preventing continuation. The script measures normalized volume against a user‑defined threshold to filter out weaker signals.
Green bubbles on upper wicks → Selling absorption (buyers push price up, sellers absorb the buying).
Red bubbles on lower wicks → Buying absorption (sellers push price down, buyers absorb the selling).
Red‑colored bars highlight candles where large volume is concentrated inside the body, signifying aggressive selling activity.
Green‑colored bars highlight candles where large volume is concentrated inside the body, signifying aggressive buying activity.
The Lookback Period controls how many bars are used to calculate the rolling standard deviation of volume, letting traders adjust sensitivity to recent vs. longer‑term activity. Optional significant volume lines extend forward, marking areas where absorption was strongest.
FUNCTIONS
Normalized volume detection using rolling standard deviation
Adjustable Lookback Period for volume normalization
Dynamic bubble plotting on candle wicks (size scales with absorption strength)
Separate visualization for buying vs. selling absorption
Alerts for buying absorption, selling absorption, or any absorption event (only at bar close)
Bar coloring when large absorption occurs inside candle bodies
APPLICATION
Setup: Add the script to any chart and timeframe. Adjust the Absorption Threshold to filter out weaker bubbles and the Lookback Period to control how volume normalization is calculated. Red bubbles highlight buying absorption, often signalling potential price pivots - price can often go upwards from this. Green bubbles mark selling absorption, reflecting resistance to upward moves - price may go downwards from this.
Interpretation:
Green bubbles on upper wicks = sellers absorbing buying pressure.
Red bubbles on lower wicks = buyers absorbing selling pressure.
Larger bubbles = stronger absorption relative to recent volume.
Settings & Use:
Raising the Absorption Threshold filters out smaller bubbles, leaving only significant absorption events.
Changing the Lookback Period alters how “normal” volume is defined — shorter periods make the script more sensitive, longer periods smooth out noise.
Alerts can be set for buying absorption, selling absorption, or any absorption event, and they only trigger at bar close to avoid noise.
Volatility Targeting: Single Asset [BackQuant]Volatility Targeting: Single Asset
An educational example that demonstrates how volatility targeting can scale exposure up or down on one symbol, then applies a simple EMA cross for long or short direction and a higher timeframe style regime filter to gate risk. It builds a synthetic equity curve and compares it to buy and hold and a benchmark.
Important disclaimer
This script is a concept and education example only . It is not a complete trading system and it is not meant for live execution. It does not model many real world constraints, and its equity curve is only a simplified simulation. If you want to trade any idea like this, you need a proper strategy() implementation, realistic execution assumptions, and robust backtesting with out of sample validation.
Single asset vs the full portfolio concept
This indicator is the single asset, long short version of the broader volatility targeted momentum portfolio concept. The original multi asset concept and full portfolio implementation is here:
That portfolio script is about allocating across multiple assets with a portfolio view. This script is intentionally simpler and focuses on one symbol so you can clearly see how volatility targeting behaves, how the scaling interacts with trend direction, and what an equity curve comparison looks like.
What this indicator is trying to demonstrate
Volatility targeting is a risk scaling framework. The core idea is simple:
If realized volatility is low relative to a target, you can scale position size up so the strategy behaves like it has a stable risk budget.
If realized volatility is high relative to a target, you scale down to avoid getting blown around by the market.
Instead of always being 1x long or 1x short, exposure becomes dynamic. This is often used in risk parity style systems, trend following overlays, and volatility controlled products.
This script combines that risk scaling with a simple trend direction model:
Fast and slow EMA cross determines whether the strategy is long or short.
A second, longer EMA cross acts as a regime filter that decides whether the system is ACTIVE or effectively in CASH.
An equity curve is built from the scaled returns so you can visualize how the framework behaves across regimes.
How the logic works step by step
1) Returns and simple momentum
The script uses log returns for the base return stream:
ret = log(price / price )
It also computes a simple momentum value:
mom = price / price - 1
In this version, momentum is mainly informational since the directional signal is the EMA cross. The lookback input is shared with volatility estimation to keep the concept compact.
2) Realized volatility estimation
Realized volatility is estimated as the standard deviation of returns over the lookback window, then annualized:
vol = stdev(ret, lookback) * sqrt(tradingdays)
The Trading Days/Year input controls annualization:
252 is typical for traditional markets.
365 is typical for crypto since it trades daily.
3) Volatility targeting multiplier
Once realized vol is estimated, the script computes a scaling factor that tries to push realized volatility toward the target:
volMult = targetVol / vol
This is then clamped into a reasonable range:
Minimum 0.1 so exposure never goes to zero just because vol spikes.
Maximum 5.0 so exposure is not allowed to lever infinitely during ultra low volatility periods.
This clamp is one of the most important “sanity rails” in any volatility targeted system. Without it, very low volatility regimes can create unrealistic leverage.
4) Scaled return stream
The per bar return used for the equity curve is the raw return multiplied by the volatility multiplier:
sr = ret * volMult
Think of this as the return you would have earned if you scaled exposure to match the volatility budget.
5) Long short direction via EMA cross
Direction is determined by a fast and slow EMA cross on price:
If fast EMA is above slow EMA, direction is long.
If fast EMA is below slow EMA, direction is short.
This produces dir as either +1 or -1. The scaled return stream is then signed by direction:
avgRet = dir * sr
So the strategy return is volatility targeted and directionally flipped depending on trend.
6) Regime filter: ACTIVE vs CASH
A second EMA pair acts as a top level regime filter:
If fast regime EMA is above slow regime EMA, the system is ACTIVE.
If fast regime EMA is below slow regime EMA, the system is considered CASH, meaning it does not compound equity.
This is designed to reduce participation in long bear phases or low quality environments, depending on how you set the regime lengths. By default it is a classic 50 and 200 EMA cross structure.
Important detail, the script applies regime_filter when compounding equity, meaning it uses the prior bar regime state to avoid ambiguous same bar updates.
7) Equity curve construction
The script builds a synthetic equity curve starting from Initial Capital after Start Date . Each bar:
If regime was ACTIVE on the previous bar, equity compounds by (1 + netRet).
If regime was CASH, equity stays flat.
Fees are modeled very simply as a per bar penalty on returns:
netRet = avgRet - (fee_rate * avgRet)
This is not realistic execution modeling, it is just a simple turnover penalty knob to show how friction can reduce compounded performance. Real backtesting should model trade based costs, spreads, funding, and slippage.
Benchmark and buy and hold comparison
The script pulls a benchmark symbol via request.security and builds a buy and hold equity curve starting from the same date and initial capital. The buy and hold curve is based on benchmark price appreciation, not the strategy’s asset price, so you can compare:
Strategy equity on the chart symbol.
Buy and hold equity for the selected benchmark instrument.
By default the benchmark is TVC:SPX, but you can set it to anything, for crypto you might set it to BTC, or a sector index, or a dominance proxy depending on your study.
What it plots
If enabled, the indicator plots:
Strategy Equity as a line, colored by recent direction of equity change, using Positive Equity Color and Negative Equity Color .
Buy and Hold Equity for the chosen benchmark as a line.
Optional labels that tag each curve on the right side of the chart.
This makes it easy to visually see when volatility targeting and regime gating change the shape of the equity curve relative to a simple passive hold.
Metrics table explained
If Show Metrics Table is enabled, a table is built and populated with common performance statistics based on the simulated daily returns of the strategy equity curve after the start date. These include:
Net Profit (%) total return relative to initial capital.
Max DD (%) maximum drawdown computed from equity peaks, stored over time.
Win Rate percent of positive return bars.
Annual Mean Returns (% p/y) mean daily return annualized.
Annual Stdev Returns (% p/y) volatility of daily returns annualized.
Variance of annualized returns.
Sortino Ratio annualized return divided by downside deviation, using negative return stdev.
Sharpe Ratio risk adjusted return using the risk free rate input.
Omega Ratio positive return sum divided by negative return sum.
Gain to Pain total return sum divided by absolute loss sum.
CAGR (% p/y) compounded annual growth rate based on time since start date.
Portfolio Alpha (% p/y) alpha versus benchmark using beta and the benchmark mean.
Portfolio Beta covariance of strategy returns with benchmark returns divided by benchmark variance.
Skewness of Returns actually the script computes a conditional value based on the lower 5 percent tail of returns, so it behaves more like a simple CVaR style tail loss estimate than classic skewness.
Important note, these are calculated from the synthetic equity stream in an indicator context. They are useful for concept exploration, but they are not a substitute for professional backtesting where trade timing, fills, funding, and leverage constraints are accurately represented.
How to interpret the system conceptually
Vol targeting effect
When volatility rises, volMult falls, so the strategy de risks and the equity curve typically becomes smoother. When volatility compresses, volMult rises, so the system takes more exposure and tries to maintain a stable risk budget.
This is why volatility targeting is often used as a “risk equalizer”, it can reduce the “biggest drawdowns happen only because vol expanded” problem, at the cost of potentially under participating in explosive upside if volatility rises during a trend.
Long short directional effect
Because direction is an EMA cross:
In strong trends, the direction stays stable and the scaled return stream compounds in that trend direction.
In choppy ranges, the EMA cross can flip and create whipsaws, which is where fees and regime filtering matter most.
Regime filter effect
The 50 and 200 style filter tries to:
Keep the system active in sustained up regimes.
Reduce exposure during long down regimes or extended weakness.
It will always be late at turning points, by design. It is a slow filter meant to reduce deep participation, not to catch bottoms.
Common applications
This script is mainly for understanding and research, but conceptually, volatility targeting overlays are used for:
Risk budgeting normalize risk so your exposure is not accidentally huge in high vol regimes.
System comparison see how a simple trend model behaves with and without vol scaling.
Parameter exploration test how target volatility, lookback length, and regime lengths change the shape of equity and drawdowns.
Framework building as a reference blueprint before implementing a proper strategy() version with trade based execution logic.
Tuning guidance
Lookback lower values react faster to vol shifts but can create unstable scaling, higher values smooth scaling but react slower to regime changes.
Target volatility higher targets increase exposure and drawdown potential, lower targets reduce exposure and usually lower drawdowns, but can under perform in strong trends.
Signal EMAs tighter EMAs increase trade frequency, wider EMAs reduce churn but react slower.
Regime EMAs slower regime filters reduce false toggles but will miss early trend transitions.
Fees if you crank this up you will see how sensitive higher turnover parameter sets are to friction.
Final note
This is a compact educational demonstration of a volatility targeted, long short single asset framework with a regime gate and a synthetic equity curve. If you want a production ready implementation, the correct next step is to convert this concept into a strategy() script, add realistic execution and cost modeling, test across multiple timeframes and market regimes, and validate out of sample before making any decision based on the results.
VEGA (Velocity of Efficient Gain Adaptation)VEGA (Velocity of Efficient Gain Adaptation)
VEGA is a momentum oscillator that measures the velocity of an efficiency-weighted adaptive moving average. Unlike traditional momentum indicators that react uniformly to all price movements, VEGA intelligently adapts its sensitivity based on market conditions—responding quickly during trending periods and filtering noise during consolidation.
--------------------------------
What Makes VEGA Different
Efficiency-Driven Adaptation
At its core, VEGA uses the Efficiency Ratio (ER) to distinguish between trending and choppy markets. When price moves efficiently in one direction, VEGA's underlying adaptive MA speeds up to capture the move. When price chops sideways, it slows down to avoid whipsaws. This creates a momentum reading that's inherently cleaner than fixed-period alternatives.
Linear Regression Smoothed Source
VEGA offers an optional LinReg-smoothed price source that blends regular candles with linear regression values. This pre-smoothing reduces noise before it ever enters the calculation, resulting in a histogram that's easier to read without sacrificing responsiveness. The mix ratio lets you dial in exactly how much smoothing you want.
Z-Score Normalization with Dead Zone
Rather than arbitrary oscillator bounds, VEGA normalizes output as standard deviations from the mean. This gives statistically meaningful levels: readings above +2σ or below -2σ represent genuinely extreme momentum. The configurable dead zone (with Snap, Soft Fade, or None modes) filters out insignificant movements near zero, keeping you focused on signals that matter.
--------------------------------
How It Works
1. Source Preparation — Price is smoothed via a LinReg/regular candle blend
2. Efficiency Ratio — Measures directional movement vs total movement over the lookback period
3. Adaptive MA — Applies variable smoothing based on efficiency (fast during trends, slow during chop)
4. Velocity — Calculates the rate of change of the adaptive MA
5. Normalization — Converts to Z-Score (standard deviations) or ATR-normalized percentage
6. Dead Zone — Optionally filters near-zero values to reduce noise
--------------------------------
How To Read VEGA
Signal and Interpretation
Histogram above zero | Bullish momentum
Histogram below zero | Bearish momentum
Bright color | Momentum accelerating
Faded color | Momentum decelerating
Beyond ±1σ bands | Above-average momentum
Beyond ±2σ bands | Extreme momentum (potential reversal zone)
Zero line cross*| Momentum shift
--------------------------------
Key Settings
ER Length — Lookback for efficiency ratio calculation. Higher = smoother, slower adaptation.
Fast/Slow Smoothing — Controls the adaptive MA's responsiveness range. The MA blends between these based on efficiency.
LinReg Settings — Enable smoothed candles and adjust the blend ratio (0 = regular candles, 1 = full LinReg, 0.5 = 50/50 mix).
Z-Score Lookback — Period for calculating mean and standard deviation. Shorter = more reactive normalization.
Dead Zone Type — How to handle near-zero values:
Snap — Hard cutoff to zero
Soft Fade — Gradual reduction toward zero
None — No filtering
Dead Zone Threshold — Values within this Z-Score range are affected by the dead zone setting.
VEGA works on any timeframe and any market. For best results, adjust the ER Length and LinReg settings to match your trading style and the volatility characteristics of your instrument.
SuperTrend Long/Short Signals With Fibonacci“By using the updated version of the previously published indicator with a Fibonacci extension, you can obtain multiple take-profit levels and make profitable trades.
Wishing you plenty of profits.
USDT Market Cap Change [Alpha Extract]A sophisticated stablecoin market analysis tool that tracks USDT market capitalization changes across daily and 60-day periods with statistical normalization and gradient intensity visualization. Utilizing z-score methodology for overbought/oversold detection and dynamic color gradients reflecting change magnitude, this indicator delivers institutional-grade market liquidity assessment through stablecoin flow analysis. The system's dual-timeframe approach combined with statistical normalization provides comprehensive market sentiment measurement based on capital inflows and outflows from the dominant stablecoin.
🔶 Advanced Market Cap Tracking Framework
Implements daily USDT market capitalization monitoring with dual-period change calculations measuring both 1-day and 60-day net capital flows. The system retrieves real-time CRYPTOCAP:USDT data on daily timeframe resolution, calculating absolute dollar changes to quantify stablecoin supply expansion or contraction as primary market liquidity indicator.
// Core Market Cap Analysis
USDT = request.security("CRYPTOCAP:USDT", "D", close)
USDT_60D_Change = USDT - USDT
USDT_1D_Change = USDT - USDT
🔶 Dynamic Gradient Intensity System
Features sophisticated color gradient engine that intensifies visual representation based on change magnitude relative to recent extremes. The system normalizes current 60-day change against configurable lookback period maximum, applying gradient strength calculation to transition colors from neutral tones through progressively intense blues (negative) or reds (positive) based on flow direction and magnitude.
🔶 Statistical Z-Score Normalization Engine
Implements comprehensive z-score calculation framework that normalizes 60-day market cap changes using rolling mean and standard deviation for objective overbought/oversold determination. The system applies statistical normalization over configurable periods, enabling cross-temporal comparison and threshold-based regime identification independent of absolute market cap levels.
// Z-Score Normalization
Change_Mean = ta.sma(USDT_60D_Change, Normalization_Length)
Change_StdDev = ta.stdev(USDT_60D_Change, Normalization_Length)
Z_Score = Change_StdDev > 0 ? (USDT_60D_Change - Change_Mean) / Change_StdDev : 0.0
🔶 Multi-Tier Threshold Detection System
Provides four-level regime classification including standard overbought (+1.5σ), standard oversold (-1.5σ), extreme overbought (+2.5σ), and extreme oversold (-2.5σ) thresholds with configurable adjustment. The system identifies market liquidity extremes when stablecoin inflows or outflows reach statistically significant levels, indicating potential market turning points or trend exhaustion.
🔶 Dual-Timeframe Flow Visualization
Features layered area plots displaying both 60-day strategic flows and 1-day tactical movements with distinct color coding for instant flow direction assessment. The system overlays short-term daily changes on longer-term 60-day trends, enabling traders to identify divergences between tactical and strategic capital flows into or out of stablecoin reserves.
🔶 Gradient Color Psychology Framework
Implements intuitive color scheme where red gradients indicate capital inflow (bullish for crypto as USDT supply expands for buying) and blue gradients show capital outflow (bearish as USDT is redeemed). The intensity progression from pale to vivid colors communicates flow magnitude, with extreme colors signaling statistically significant liquidity events requiring attention.
🔶 Background Zone Highlighting System
Provides subtle background coloring when z-score breaches overbought or oversold thresholds, creating visual alerts without obscuring primary data. The system applies translucent red backgrounds during overbought conditions and blue during oversold states, enabling instant regime recognition across chart timeframes.
🔶 Configurable Normalization Architecture
Features adjustable gradient lookback and statistical normalization periods enabling optimization across different market cycles and trading timeframes. The system allows traders to calibrate sensitivity by modifying the window used for maximum change detection (gradient) and mean/standard deviation calculation (z-score), adapting to volatile or stable market regimes.
🔶 Market Liquidity Interpretation Framework
Tracks USDT supply changes as proxy for overall cryptocurrency market liquidity conditions, where expanding market cap indicates fresh capital entering crypto markets and contracting cap suggests capital flight. The system provides leading indicator properties as large stablecoin inflows often precede major market rallies while outflows may signal distribution phases.
🔶 Why Choose USDT Market Cap Change ?
This indicator delivers sophisticated stablecoin flow analysis through statistical normalization and gradient visualization of USDT market capitalization changes. Unlike traditional market sentiment indicators that rely on price action alone, this tool measures actual capital flows through the dominant stablecoin, providing objective assessment of market liquidity conditions. The combination of dual-timeframe tracking, z-score normalization for overbought/oversold detection, and intensity-based gradient coloring makes it essential for traders seeking macro-level market assessment and regime change detection across cryptocurrency markets. The indicator excels at identifying liquidity extremes that often precede major market reversals or trend accelerations.
Hull MA Al-Sat/@version=6
indicator("Hull MA Al-Sat", overlay=true, max_lines_count=500, max_labels_count=500)
// Kullanıcı girişi
length = input.int(21, "HMA Periyodu")
hma_source = input.source(close, "HMA Kaynağı")
plotThickness = input.int(3, "Çizgi Kalınlığı")
// HMA hesaplama
wma1 = ta.wma(hma_source, math.round(length / 2))
wma2 = ta.wma(hma_source, length)
diff = 2 * wma1 - wma2
hma = ta.wma(diff, math.round(math.sqrt(length)))
// Renkli çizgi
hmaColor = hma > hma ? color.green : color.red
plot(hma, color=hmaColor, linewidth=plotThickness)
// Al/Sat okları
plotshape(ta.crossover(hma, hma ), title="Al", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.large)
plotshape(ta.crossunder(hma, hma ), title="Sat", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large)
Bottom & Top ReversalBottom & Top Reversal
Bottom Reversal (Bullish):
Opens gap down but recovers strongly
Makes new low but closes above previous close
Lime green arrow + label
Top Reversal (Bearish):
Opens gap up but fails
Makes new high but closes below previous close
Red arrow + label
Extra features:
Status table showing active patterns
Toggle each pattern on/off
Background highlights
Alert system
SuperTrend Long/Short Signals“Provides trend-based long and short signals. With regular use while adhering to the entry, stop-loss, and take-profit levels, profits can be achieved.”
Abyss Protocol OneAbyss Protocol One — Momentum Exhaustion Trading System
Overview
Abyss Protocol One is a momentum exhaustion indicator designed to identify high-probability reversal points by detecting when price momentum has reached extreme levels. It combines Chande Momentum Oscillator (CMO) threshold signals with dynamic volatility-adjusted bands and multiple protective filters to generate buy and sell signals.
Core Concept
The indicator operates on the principle that extreme momentum readings (CMO reaching ±80) often precede mean reversion. Rather than chasing trends, Abyss Protocol waits for momentum exhaustion before signaling entries and exits.
Key Components
1. Dynamic Bands (Money Line ± ATR)
Center line uses linear regression (Money Line) for smooth trend representation
Bands expand and contract based on Bollinger Band Width Percentile (BBWP)
Low volatility (BBWP < 30): Tighter bands using lower multiplier
High volatility (BBWP > 70): Wider bands using higher multiplier
Bands visually adapt to current market conditions
2. CMO Exhaustion Signals
BUY Signal: CMO drops below -80 (oversold/momentum exhaustion to downside)
SELL Signal: CMO rises above +80 (overbought/momentum exhaustion to upside)
Thresholds are configurable for different assets and timeframes
3. ADX Filter
Signals only fire when ADX exceeds minimum threshold (default: 22)
Ensures there's enough directional movement to trade
Prevents signals during choppy, directionless markets
4. Band Contraction Filter
Calculates band width percentile rank over configurable lookback
When bands are contracted (below 18th percentile), ALL signals are blocked
Prevents trading during low-volatility squeeze periods where breakout direction is uncertain
5. Consecutive Buy Limit
Maximum of 3 consecutive buys allowed before a sell is required
Prevents overexposure during extended downtrends
Counter resets when a sell signal fires
6. Underwater Protection
Tracks rolling average of recent entry prices (last 10 entries within 7 days)
Blocks sell signals if current price is below average entry price
Prevents locking in losses during drawdowns
7. Signal Cooldown
Minimum 5-bar cooldown between signals
Prevents rapid-fire signals during volatile swings
8. Extreme Move Detection
Detects when price penetrates beyond bands by more than 0.6 × ATR
Extreme signals can bypass normal cooldown period
Fire intra-bar for faster response to capitulation/blow-off moves
Still respects max consecutive buys and underwater protection
Visual Features
Trend State Detection
The indicator classifies market conditions into six states based on EMA stack, price position, and directional indicators:
STRONG UP: Full bullish alignment (EMA stack + price above trend + bullish DI + ADX > threshold)
UP: Moderate bullish conditions
NEUTRAL: No clear directional bias
DOWN: Moderate bearish conditions
STRONG DOWN: Full bearish alignment
CONTRACTED: Bands squeezed, volatility low
ADX Trend Bar
Colored dots at chart bottom provide instant trend state visibility:
Lime = Strong Uptrend
Blue = Uptrend
Orange = Neutral
Red = Downtrend
Maroon = Strong Downtrend
White = Contracted
Volume Spike Highlighting
Purple background highlights candles where volume exceeds 2x the 20-bar average, helping identify institutional activity or significant market events.
Signal Labels
Buy labels show consecutive buy count (e.g., "BUY 2/3"), price, and CMO value
Sell labels show consecutive sell count, price, and CMO value
Extreme signals display in distinct colors (cyan for buys, fuchsia for sells)
Signal candles turn bright blue for easy identification
Info Panel
Real-time dashboard displaying:
Current trend state
CMO value with threshold status
CMO thresholds (buy/sell levels)
ADX with directional indicator (▲/▼) and signal eligibility
BBWP percentage
Buy/Sell counters
Average entry price (with underwater shield indicator 🛡 when protected)
Price position relative to Money Line
Band width percentile rank
Extreme move status
Signals status (OPEN/BLOCKED)
Recommended Use
Timeframe: 5-15 minute charts (parameters tuned for this range)
Best suited for: Assets with regular oscillations between overbought/oversold extremes
Trading style: Mean reversion, momentum exhaustion, scaled entries
Parameters Summary
Money Line Length: 12 — Smoothing for center line
ATR Length: 10 — Volatility measurement
Band Multiplier (Low/High Vol): 1.5 / 2.5 — Dynamic band width
CMO Length: 9 — Momentum calculation period
CMO Buy/Sell Threshold: -80 / +80 — Signal trigger levels
ADX Min for Signals: 22 — Minimum trend strength
Signal Cooldown: 5 bars — Minimum bars between signals
Max Consecutive Buys: 3 — Position scaling limit
Band Contraction Threshold: 18th %ile — Low volatility filter
Band Contraction Lookback: 188 bars — Percentile calculation period
Extreme Penetration: 0.6 × ATR — Threshold for extreme signals
MNQ Pro Scalping | SMA20 + VWAP Color //@version=5
TIFFANY//@version=5
indicator("MNQ Pro Scalping | SMA20 + VWAP Color + ATR SLTP + Fake Breakout", overlay=true)
// ===== INPUTS =====
smaLen = input.int(20, "SMA Length")
atrLen = input.int(14, "ATR Length")
slMult = input.float(1.0, "SL = ATR x", step=0.1)
tpMult = input.float(1.5, "TP = ATR x", step=0.1)
showNY = input.bool(true, "Only New York Session (09:30–16:00 ET)")
// ===== NY SESSION FILTER =====
inNY = not showNY or time(timeframe.period, "0930-1600")
// ===== SMA 20 =====
sma20 = ta.sma(close, smaLen)
smaColor = close > sma20 ? color.green : color.red
plot(sma20, "SMA 20", color=smaColor, linewidth=2)
// ===== VWAP (COLOR CHANGE) =====
vwapVal = ta.vwap(hlc3)
vwapColor = close > vwapVal ? color.green : color.red
plot(vwapVal, "VWAP", color=vwapColor, linewidth=2)
// ===== ATR =====
atr = ta.atr(atrLen)
// ===== CROSS CONDITIONS =====
crossUp = ta.crossover(close, sma20)
crossDown = ta.crossunder(close, sma20)
// ===== VALID TRADE CONDITIONS =====
longCond = crossUp and close > vwapVal and inNY
shortCond = crossDown and close < vwapVal and inNY
// ===== ATR SL / TP LEVELS =====
longSL = close - atr * slMult
longTP = close + atr * tpMult
shortSL = close + atr * slMult
shortTP = close - atr * tpMult
// ===== PLOT SL / TP WHEN SIGNAL =====
plot(longCond ? longSL : na, "Long SL", color=color.red, style=plot.style_linebr)
plot(longCond ? longTP : na, "Long TP", color=color.green, style=plot.style_linebr)
plot(shortCond ? shortSL : na, "Short SL", color=color.red, style=plot.style_linebr)
plot(shortCond ? shortTP : na, "Short TP", color=color.green, style=plot.style_linebr)
// ===== FAKE BREAKOUT DETECTION =====
// Giá cắt SMA nhưng đóng nến quay ngược lại
fakeUp = ta.crossover(high, sma20) and close < sma20
fakeDown = ta.crossunder(low, sma20) and close > sma20
plotshape(fakeUp and inNY, title="Fake Up", style=shape.xcross, location=location.abovebar, color=color.red, size=size.small)
plotshape(fakeDown and inNY, title="Fake Down", style=shape.xcross, location=location.belowbar, color=color.green, size=size.small)
// ===== SIGNAL SHAPES =====
plotshape(longCond, title="LONG", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCond, title="SHORT", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// ===== ALERTS =====
alertcondition(longCond,
title="MNQ LONG – ATR Setup",
message="MNQ LONG: Cross ABOVE SMA20 | Above VWAP | ATR SL/TP valid")
alertcondition(shortCond,
title="MNQ SHORT – ATR Setup",
message="MNQ SHORT: Cross BELOW SMA20 | Below VWAP | ATR SL/TP valid")
alertcondition(fakeUp,
title="Fake Breakout UP",
message="WARNING: Fake breakout ABOVE SMA20")
alertcondition(fakeDown,
title="Fake Breakout DOWN",
message="WARNING: Fake breakout BELOW SMA20")






















