SMA Pro (Tick)Simple moving average based on 100 ticks, by default. Use for high volume markets like ES, NQ, and RTY.
Göstergeler ve stratejiler
Trend Discovery by Alex Trend States (Up / Reversal / Down)Author: © Alex Neighbors
Version: v6
The Call/Put Arrow Indicator is a complete market direction tool that identifies high-probability CALL (bullish) and PUT (bearish) opportunities using a combination of:
Simple Moving Averages (SMA)
RSI Momentum
MACD confirmation
VWAP trend filtering
Real-time trend classification (Trending Up, Trending Down, or Reversal)
It provides visual buy/sell arrows, trend labels, and alerts, helping traders quickly recognize optimal option entry points and directional momentum changes.
*** How It Works
✅ CALL Arrow (Green, Up Arrow Below Candle):
Triggered when:
Fast SMA > Slow SMA (uptrend)
RSI > Threshold (default 55)
MACD Line > Signal Line
(Optional) Price > VWAP
🔻 PUT Arrow (Red, Down Arrow Above Candle):
Triggered when:
Fast SMA < Slow SMA (downtrend)
RSI < Threshold (default 45)
MACD Line < Signal Line
(Optional) Price < VWAP
**Trend Detection System:
Trending Up: Both SMAs rising with bullish alignment
Trending Down: Both SMAs falling with bearish alignment
Trend Reversal: Detected instantly when Fast SMA crosses the Slow SMA (marked by a diamond)
Visuals
🟩 Green arrows below candles for CALL entries
🟥 Red arrows above candles for PUT entries
🟢/🔴 Diamonds mark trend reversals
Trend status panel in the top-right corner
Optional background or bar coloring for quick visual confirmation
Alerts
You can create alerts for:
CALL Buy Signal
PUT Buy Signal
Trend Reversal Up
Trend Reversal Down
All alerts trigger exactly when arrows or reversals appear on the chart.
--Best Use
Works on any symbol or timeframe (scalping, swing, or trend trading)
Optimized for SPX, QQQ, TSLA, and high-volume tickers
Ideal for traders combining options flow or price action confirmation
Customization
You can adjust:
SMA lengths
RSI thresholds
MACD parameters
VWAP filter toggle
Background/bar coloring and panel display
Why Traders Love It
Simple, clean chart visuals
Non-repainting, confirmed-bar signals
Multi-filter logic for high accuracy
Trend panel for instant context
Use this indicator to stay on the right side of the market.
Identify reversals early, trade the momentum confidently, and never miss your next CALL or PUT setup again.
Advanced Market Trend Analyzer//@version=5
indicator("Advanced Market Trend Analyzer", shorttitle="AMT Analyzer", overlay=true)
// Input parameters
rsi_length = input.int(14, "RSI Length")
ema_fast = input.int(9, "Fast EMA")
ema_slow = input.int(21, "Slow EMA")
volume_ma_length = input.int(20, "Volume MA Length")
overbought = input.int(70, "Overbought Level")
oversold = input.int(30, "Oversold Level")
Round Number Analyzer v3Round Number Analyzer v3 is an indicator designed to analyze how price interacts with round number levels (levels spaced at fixed intervals in points or pips).
The indicator does not generate entry/exit signals, but provides detailed statistics to better understand market dynamics around these key levels.
✨ Key Features
Cross Counting: detects every time the price crosses a round number level (up = Long, down = Short).
Continuations & Reversals: classifies each cross as:
Continuation: the move continues in the same direction as the previous sequence.
Reversal: the move changes direction compared to the previous sequence.
Sequence Classification (L1…L5+): each level is labelled based on its position within the consecutive cross sequence:
L1 = first level of the sequence,
L2 = second consecutive,
…
L5+ = fifth or higher.
Comprehensive Stats Table (top right corner):
Total crosses (Long, Short, Totals).
Total continuations + breakdown by L1…L5+.
Total reversals + breakdown by L1…L5+.
Percentages calculated against the proper denominator, displayed directly inside the cells next to the absolute values.
Date range of analysis (user-defined).
Customizable Step: Works in both points and pips, making the indicator suitable for indices and forex.
⚙️ Main Inputs
Start date / End date → sets the analysis period.
Step mode → Points or Pips.
Step value → distance between round levels.
Pip size → pip size (default = 0.0001, typical for forex).
📈 How to Interpret
A high continuation percentage after L1–L2 suggests the market tends to extend multiple times beyond the first breakout levels.
Higher reversal percentages at advanced levels (L4–L5+) may signal trend exhaustion.
The analysis helps estimate the probability of continuation or reversal depending on how many consecutive levels have already been crossed.
🔎 Practical Applications
Support for breakout or mean-reversion strategies.
Comparative analysis across different markets (e.g. indices vs forex) or different time periods.
📝 Notes
The indicator is timeframe-robust, as it accounts for multiple steps within the same candle, ensuring results do not depend on the selected timeframe (except for TradingView’s historical data limits).
It does not provide automatic trading signals, but serves as a quantitative analysis tool to refine your strategies.
---
Round Number Analyzer v3 è un indicatore pensato per analizzare come il prezzo interagisce con i livelli di round number (livelli a distanza fissa in punti o pips).
L’indicatore non genera segnali di ingresso/uscita, ma fornisce statistiche dettagliate utili per comprendere la dinamica del mercato attorno a questi livelli.
✨ Funzionalità principali
Conteggio dei Cross: rileva ogni volta che il prezzo attraversa un livello round (verso l’alto = Long, verso il basso = Short).
Continuations & Reversals: classifica ogni attraversamento come:
Continuation: il movimento prosegue nella stessa direzione della sequenza precedente.
Reversal: il movimento inverte la direzione rispetto alla sequenza precedente.
Classificazione per sequenza (L1…L5+): ogni livello è etichettato in base alla sua posizione nella sequenza di cross consecutivi:
L1 = primo livello della sequenza,
L2 = secondo consecutivo,
…
L5+ = quinto o superiore.
Statistiche complete in tabella (in alto a destra):
Cross totali (Long, Short, Totals).
Continuations totali + breakdown per L1…L5+.
Reversals totali + breakdown per L1…L5+.
Percentuali calcolate sul denominatore corretto, mostrate direttamente dentro le celle accanto ai valori assoluti.
Date range di analisi (impostabile dall’utente).
Step personalizzabile: puoi lavorare sia in punti che in pips, così l’indicatore è adatto sia per indici che per forex.
⚙️ Input principali
Start date / End date → imposta l’intervallo temporale di analisi.
Step mode → punti o pips.
Step value → ampiezza tra i livelli round.
Pip size → dimensione del pip (default = 0.0001, tipico per il forex).
📈 Come interpretarlo
Una percentuale di continuation molto alta dopo L1–L2 indica che il mercato tende a proseguire più volte oltre i primi livelli di breakout.
Percentuali di reversal più elevate nei livelli avanzati (L4–L5+) possono suggerire esaurimento della spinta.
L’analisi permette di stimare la probabilità che un movimento in corso continui o si inverta in base a quanti livelli sono già stati attraversati consecutivamente.
🔎 Applicazioni pratiche
Supporto per strategie di breakout o mean reversion.
Analisi comparativa tra mercati (es. indici vs forex) o tra periodi temporali diversi.
📝 Note
L’indicatore è timeframe-robust: il conteggio tiene conto di multipli step dentro la stessa candela, così i risultati non dipendono dal timeframe scelto (salvo i limiti di caricamento storico di TradingView).
Non fornisce segnali operativi automatici, ma è un tool di analisi quantitativa per affinare le proprie strategie.
BIF ASK WITH TREND Price Trend with PercentageBID ASK WITH TREND Price Trend with Percentage SHOW MARKET TREND AND MARKET VOLLUME
Multi-Timeframe MACD with Color Mix (Nikko)Multi-Timeframe MACD with Color Mix (Nikko) Indicator
This documentation explains the benefits of the "Multi-Timeframe MACD with Color Mix (Nikko)" indicator for traders and provides easy-to-follow steps on how to use it. Written as of 05:06 AM +07 on Saturday, October 04, 2025, this guide focuses on helping you, as a trader, get the most out of this tool with clear, practical advice before diving into the technical details.
Benefits for Traders
1. Multi-Timeframe Insight
This indicator lets you see momentum trends across 15-minute, 1-hour, 1-day, and 1-week timeframes all on one chart. This big-picture view helps you catch both quick market moves and long-term trends without flipping between charts, saving you time and giving you a fuller understanding of the market.
2. Visual Momentum Representation
The background changes from red to green based on short-term (15m) momentum, giving you a quick, easy-to-see signal—red means bearish (prices might drop), and green means bullish (prices might rise). The histogram uses a mix of red, green, and blue colors to show the combined strength of the 1-hour, 1-day, and 1-week timeframes, helping you spot strong trends at a glance (e.g., a bright mix for strong momentum, darker for weaker).
3. Enhanced Decision-Making
The background and histogram colors work together to confirm trends across different timeframes, making it less likely you’ll act on a false signal. This helps you feel more confident when deciding when to buy, sell, or hold.
4. Proactive Alert System
You can set alerts to notify you when the percentage of bullish timeframes hits your chosen levels (e.g., below 10% for bearish, above 90% for bullish). This keeps you in the loop on big momentum shifts without needing to watch the chart all day—perfect for when you’re busy.
5. Flexibility and Efficiency
You can turn timeframes on or off, adjust settings like speed of the moving averages, and tweak transparency to fit your trading style—whether you’re a fast scalper or a patient swing trader. Everything is shown on one chart, saving you effort, and the colors make it simple to read, even if you’re new to trading.
How to Use It
Getting Started
Add the Indicator: Load the "Multi-Timeframe MACD with Color Mix (Nikko)" onto your TradingView chart using the Pine Script editor or indicator library.
Pick Your Timeframes: Turn on the timeframes that match your trading—use 15m and 1h for quick trades, or 1d and 1w for longer holds—using the enable_15m, enable_1h, enable_1d, enable_1w, and enable_background options.
Reading the Colors
Background Gradient: Watch for red to signal bearish 15m momentum and green for bullish momentum. Adjust the Background_transparency (default 75%, or 25% opacity) if the chart feels too busy—try lowering it to 50 for clearer candlesticks in fast markets.
Histogram and EMA Colors:
The histogram and its Exponential Moving Average (EMA) line show a mix of red (1-week), green (1-day), and blue (1-hour) based on how strong the momentum is in each timeframe.
Brighter colors mean stronger momentum—white (all bright) shows all timeframes are pushing up hard, while darker shades (like gray or black) mean weaker or mixed momentum.
Turn off a timeframe (e.g., enable_1h = false) to see how it changes the color mix and focus on what matters to you.
Setting Alerts
Set Your Levels: Choose a threshold_low (default 10%) and threshold_high (default 90%) based on your comfort zone or past market patterns to catch big turns.
Get Notifications: Use TradingView alerts to get pings when the market hits your set levels, so you can act without staring at the screen.
Practical Tips
Pair with Other Tools: Use it with support/resistance lines or the RSI to double-check your moves and build a solid plan.
Tweak Settings: Adjust fast_length, slow_length, and signal_smoothing to match your asset’s speed, and bump up the lookback (default 50) for steadier trends in wild markets.
Practice First: Test different timeframe combos on a demo account to find what works best for you.
Understanding the Colors (Simple Explanation)
How Colors Work
The histogram and its EMA line use a color mix based on a simple idea from color theory, like mixing paints with red, green, and blue (RGB):
Red comes from the 1-week timeframe, green from 1-day, and blue from 1-hour.
When all three timeframes show strong upward momentum, they blend into bright white—the brightest color, like a super-bright light telling you the market’s roaring up.
If some timeframes are weak or pulling down, the mix gets darker (like gray or black), warning you the momentum might not be solid.
Brighter is Better
Bright Colors = Strong Opportunity: The brighter the histogram and EMA (closer to white), the more all your chosen timeframes are in agreement that prices are rising. This is your signal to think about buying or holding, as it points to a powerful trend you can ride.
Dark Colors = Caution: A darker mix (toward black) means some timeframes are lagging or bearish, suggesting you might wait or consider selling. It’s like a dim light saying, “Hold on, check again.”
Benefit in Practice: Watching the brightness helps you jump on the best trades fast. For example, a bright white histogram on a green background is like a green traffic light—go for it! A dark gray on red is like a red light—pause and rethink. This quick color check can save you from bad moves and boost your profits when the trend is strong.
Why It Helps
These colors are your fast friend in trading. A bright histogram means all your timeframes are cheering for an uptrend, giving you the confidence to act. A dull one tells you to be careful, helping you avoid traps. It’s like having a color-coded guide to pick the hottest market moments!
Technical Details
Input Parameters
Fast Length (default: 12): Short-term moving average speed.
Slow Length (default: 26): Long-term moving average speed.
Source (default: close): Price data used.
Signal Smoothing (default: 9): Smooths the signal line.
MA Type (default: EMA): Choose EMA or SMA.
Timeframe and Scaling
Timeframes: 15m, 1h, 1d, 1w, with on/off switches.
Lookback Period (default: 50): Sets the data window for trends.
Background Transparency (default: 75%): Controls background see-through level.
MACD Calculation
Per Timeframe: Uses request.security():
MACD Line: ta.ema(src, fast_length) - ta.ema(src, slow_length).
Signal Line: ta.ema(MACD, signal_length).
Histogram: (macd - signal) / 3.0.
Background Gradient
15m Normalization: norm_value = (hist_15m - hist_15m_min) / max(hist_15m_range, 1e-10), limited to 0-1.
RGB Mix: Red drops from 255 to 0, green rises from 0 to 255, blue stays 0.
Apply: color.new(color.rgb(r_val, g_val, b_val), Background_transparency).
Histogram and EMA Colors
Color Assignment:
1h: Blue (#0000FF) if hist_1h >= 0, else black.
1d: Green (#00FF00) if hist_1d >= 0, else black.
1w: Red (#FF0000) if hist_1w >= 0, else black.
Final Color: final_color = color.rgb(min(r, 255), min(g, 255), min(b, 255)).
Plotting: Histogram and EMA use final_color; MACD (#2962FF), signal (#FF6D00).
Alerts
Bullish Percentage: bullish_pct = (bullish_count / bullish_total) * 100, counting hist >= 0.
Triggers: Below threshold_low or above threshold_high.
--------------------------------------------------------------------
Conclusion
The "Multi-Timeframe MACD with Color Mix (Nikko)" is your all-in-one tool to spot trends, confirm moves, and trade smarter with its bright, easy-to-read colors. By using it wisely, you can sharpen your market edge and trade with more confidence.
This README is tailored for traders and reflects the indicator's practical value as of 05:06 AM +07 on October 04, 2025.
Multi-Timeframe 20 EMA PackMultiple 20 EMA's, each for a different time frame but all on the same chart.
This will help you make sure that the 20EMA has been crossed on all time frames before taking action.
X Pax ORThis indicator captures and visualizes the first 30 seconds of price action starting at 9:30 AM New York time and projects its influence throughout the trading day. Inspired by Pax's open range and level analysis, it provides a structured framework for observing how markets interact with an initial volatility burst.
Core Features
Opening 30s Range Box
At the 9:30:00–9:30:30 window, the indicator records the high and low of that short-lived but impactful moment. A translucent blue box is drawn from this range and extends to 4:00 PM, clearly defining the market’s first key battleground.
User-Defined Extension Levels
From the Opening Range High, upward extensions are projected in user-defined step sizes and counts.
From the Opening Range Low, downward extensions are projected using the same configurable step settings.
These levels adapt to your market and trading style, serving as volatility-based expansion markers to track order flow clustering and potential turning points.
Historical Preservation
Each day’s range box and extension lines are stored, allowing you to review prior sessions for pattern recognition.
Independent toggles let you display or hide historical boxes and historical extensions, keeping the chart clean when needed while retaining analytical depth when desired.
Real-Time Updates
Unlike delayed higher-timeframe methods, this indicator anchors directly to intraday action as it unfolds, ensuring levels are available in real time rather than only after candle closure.
Practical Use
Spot early breakouts or failed retests of the Opening 30s range.
Use extension levels as reference points for intraday trend continuation or reversal setups.
Compare current session levels vs. prior sessions to identify recurring order flow behavior.
Design Notes
Step size, extension count, color transparency, and historical storage are fully configurable.
Clean, minimalist presentation keeps focus on price interaction with levels rather than clutter.
Built for traders who value precision and structure in intraday analysis.
Tunç ŞatıroğluTunç Şatıroğlu's Technical Analysis Suite
Description:
This comprehensive Pine Script indicator, inspired by the technical analysis teachings of Tunç Şatıroğlu, integrates six powerful TradingView indicators into a single, user-friendly suite for robust trend, momentum, and divergence analysis. Each component has been carefully selected and enhanced by beytun to improve functionality, performance, and visual clarity, aligning with Şatıroğlu's approach to technical analysis. The default configuration is meticulously set to match the exact settings of the individual indicators as used by Tunç Şatıroğlu in his training, ensuring authenticity and ease of use for followers of his methodology. Whether you're a beginner or an experienced trader, this suite provides a versatile toolkit for analyzing markets across multiple timeframes.
Included Indicators:
1. WaveTrend with Crosses (by LazyBear, modified): A momentum oscillator that identifies overbought/oversold conditions and trend reversals with clear buy/sell signals via crosses and bar color highlights.
2. Kaufman Adaptive Moving Average (KAMA) (by HPotter, modified): A dynamic moving average that adapts to market volatility, offering a smoother trend-following signal.
3. SuperTrend (by Alex Orekhov, modified): A trend-following indicator that plots dynamic support/resistance levels with buy/sell signals and optional wicks for enhanced accuracy.
4. Nadaraya-Watson Envelope (by LuxAlgo, modified): A non-linear envelope that highlights potential reversals with customizable repainting options for smoother outputs.
5. Divergence for Many Indicators v4 (by LonesomeTheBlue, modified): Detects regular and hidden divergences across multiple indicators (MACD, RSI, Stochastic, CCI, Momentum, OBV, VWMA, CMF, MFI, and more) for early reversal signals.
6. Ichimoku Cloud (TradingView built-in, modified): A multi-faceted indicator for trend direction, support/resistance, and momentum, with enhanced visuals for the Kumo Cloud.
Key Features:
- Authentic Default Settings : Pre-configured to mirror the exact parameters used by Tunç Şatıroğlu for each indicator, ensuring alignment with his proven technical analysis approach.
- Customizable Settings : Enable/disable individual indicators and fine-tune parameters to suit your trading style while retaining the option to revert to Şatıroğlu’s defaults.
- Enhanced User Experience : Modifications improve visual clarity, performance, and usability, with options like repainting smoothing for Nadaraya-Watson and adjustable Ichimoku projection periods.
- Multi-Timeframe Analysis : Combines trend-following, momentum, and divergence tools for a holistic view of market dynamics.
- Alert Conditions : Built-in alerts for SuperTrend direction changes, buy/sell signals, and divergence detections to keep you informed.
- Visual Clarity : Overlays (KAMA, SuperTrend, Nadaraya-Watson, Ichimoku) and pane-based indicators (WaveTrend, Divergences) are clearly distinguished, with customizable colors and styles.
Notes:
- The Nadaraya-Watson Envelope and Ichimoku Cloud may repaint in their default modes. Use the "Repainting Smoothing" option for Nadaraya-Watson or adjust Ichimoku settings to mitigate repainting if preferred.
- Published under the MIT License, with components licensed under GPL-3.0 (SuperTrend), CC BY-NC-SA 4.0 (Nadaraya-Watson), MPL 2.0 (Divergence), and TradingView's terms (Ichimoku Cloud).
Usage:
Add this indicator to your TradingView chart to leverage Tunç Şatıroğlu’s exact indicator configurations out of the box. Customize settings as needed to align with your strategy, and use the combined signals to identify trends, reversals, and divergences. Ideal for traders following Şatıroğlu’s methodologies or anyone seeking a powerful, all-in-one technical analysis tool.
Credits:
Original authors: LazyBear, HPotter, Alex Orekhov, LuxAlgo, LonesomeTheBlue, and TradingView.
Modifications and integration by beytun .
License:
Published under the MIT License, incorporating code under GPL-3.0, CC BY-NC-SA 4.0, MPL 2.0, and TradingView’s terms where applicable.
RTH & ETH High/Low (Today & Prev)RTH and ETH High Low Indicator. This draws a line for the ETH and RTH highs and lows for todays session and yesterdays session. it allows you to toggle off any of the 8 potential levels as well as change the colour of the 8 levels. WIP
Live Position SizerThis position calculator locks onto the live price in real time and calculates your lot and quantity size for you. Best for scalping if you don't want to open a limit order. You input all the necessary data (Account size, risk, SL placement, LONG/SHORT position, etc...) It also has a nifty feature of allowing you the ability to see TP brackets (+1R, +2R, +3R).
The best way I have used it is seeing where my potential SL will go before I consider opening a position and inputting that. Then when I'm ready to open a position, I already have it calculated for me.
SM OTC style Supply/Demand Zones Lite+//@version=6
indicator("OTC SD MTF Lite+", "OTCSDmtf+", overlay=true, max_boxes_count=200, max_labels_count=200)
// ================= Inputs =================
useH4 = input.bool(true, "Show 4H zones")
useD1 = input.bool(true, "Show 1D zones")
useW1 = input.bool(true, "Show 1W zones")
useM1 = input.bool(false, "Show 1M zones")
baseLen = input.int(2, "Base length (HTF bars)", 1, 5)
wickPctMax = input.float(35.0, "Max wick % in base", 0, 100)
impulseX = input.float(1.5, "Departure body vs ATR (x)", 0.5, 5.0)
atrLen = input.int(14, "ATR length (HTF)")
extendBars = input.int(2000, "Extend bars on chart", 200, 10000)
maxPerTF = input.int(12, "Max zones per TF", 3, 30)
showLegend = input.bool(true, "Show tiny legend (4H/1D/1W/1M)")
onlyNearest = input.bool(false, "Show ONLY nearest zone above/below")
hideOverlapTF = input.bool(true, "Hide overlapping zones within each TF (keep newest)")
showNearestLabels = input.bool(false, "Show distance labels to nearest above/below")
// --- Hard cap for future drawing with xloc.bar_index ---
FUTURE_CAP = 500
// Colors (Demand hues per TF). Supply uses red for contrast.
colH4 = color.new(color.teal, 78)
colD1 = color.new(color.blue, 78)
colW1 = color.new(color.orange, 78)
colM1 = color.new(color.purple, 78)
colSup= color.new(color.red, 78)
// ================= Helpers =================
wickiness(h, l, o, c) =>
rng = math.max(h - l, syminfo.mintick)
topW = h - math.max(o, c)
botW = math.min(o, c) - l
100.0 * (topW + botW) / rng
// Returns: (dTrig, dProx, dDist, sTrig, sProx, sDist)
f_htfSignals(baseBars, wickMax, xImpulse, aLen) =>
float _o = open
float _h = high
float _l = low
float _c = close
float _atr = ta.atr(aLen)
bool ok = true
for i = 1 to baseBars
ok := ok and (wickiness(_h , _l , _o , _c ) <= wickMax)
bool bullDepart = _c > _o and (_c - _o) > xImpulse * _atr
bool bearDepart = _c < _o and (_o - _c) > xImpulse * _atr
float dTrig = 0.0
float dProx = na
float dDist = na
float sTrig = 0.0
float sProx = na
float sDist = na
if ok and bullDepart
float hi = ta.highest(_h, baseBars)
float lo = ta.lowest(_l, baseBars)
dTrig := 1.0
dProx := lo
dDist := hi
if ok and bearDepart
float hi2 = ta.highest(_h, baseBars)
float lo2 = ta.lowest(_l, baseBars)
sTrig := 1.0
sProx := hi2
sDist := lo2
// ================= Pull HTF signals =================
= request.security(syminfo.tickerid, "240", f_htfSignals(baseLen, wickPctMax, impulseX, atrLen))
= request.security(syminfo.tickerid, "D", f_htfSignals(baseLen, wickPctMax, impulseX, atrLen))
= request.security(syminfo.tickerid, "W", f_htfSignals(baseLen, wickPctMax, impulseX, atrLen))
= request.security(syminfo.tickerid, "M", f_htfSignals(baseLen, wickPctMax, impulseX, atrLen))
// ================= Storage per TF =================
var zH4 = array.new_box()
var aH4 = array.new_bool()
var lH4 = array.new_label()
var sH4 = array.new_int() // 1 = Demand, -1 = Supply
var zD1 = array.new_box()
var aD1 = array.new_bool()
var lD1 = array.new_label()
var sD1 = array.new_int()
var zW1 = array.new_box()
var aW1 = array.new_bool()
var lW1 = array.new_label()
var sW1 = array.new_int()
var zM1 = array.new_box()
var aM1 = array.new_bool()
var lM1 = array.new_label()
var sM1 = array.new_int()
// ================= Overlap utils =================
overlap(topA, botA, topB, botB) =>
not (topA < botB or botA > topB)
purgeOverlaps(arrB, arrA, arrL, newTop, newBot) =>
if hideOverlapTF and array.size(arrB) > 0
for i = 0 to array.size(arrB) - 1
if array.get(arrA, i)
box bOld = array.get(arrB, i)
float t = box.get_top(bOld)
float btm = box.get_bottom(bOld)
if overlap(newTop, newBot, t, btm)
box.delete(bOld)
label.delete(array.get(arrL, i))
array.set(arrA, i, false)
// ================= Add zone =================
addZone(arrB, arrA, arrL, arrS, topV, botV, baseColor, isDemand) =>
purgeOverlaps(arrB, arrA, arrL, topV, botV)
int leftX = bar_index - 1
int rightX = bar_index + math.min(extendBars, FUTURE_CAP) // respect +500 cap
box b = box.new(leftX, topV, rightX, botV, xloc=xloc.bar_index, bgcolor=baseColor, border_color=color.new(color.black, 0))
float ly = isDemand == 1 ? topV : botV
st = isDemand == 1 ? label.style_label_down : label.style_label_up
string tagTxt = isDemand == 1 ? "Demand" : "Supply"
label l = label.new(leftX, ly, tagTxt, xloc=xloc.bar_index, style=st, textcolor=color.white, color=color.new(color.black, 0), size=size.tiny)
array.push(arrB, b)
array.push(arrA, true)
array.push(arrL, l)
array.push(arrS, isDemand)
if array.size(arrB) > maxPerTF
box.delete(array.shift(arrB))
array.shift(arrA)
label.delete(array.shift(arrL))
array.shift(arrS)
// ================= Maintain / Invalidate =================
extendAll(arrB, arrA) =>
if array.size(arrB) > 0
for i = 0 to array.size(arrB) - 1
if array.get(arrA, i)
box.set_right(array.get(arrB, i), bar_index + math.min(extendBars, FUTURE_CAP)) // respect +500 cap
invalidate(arrB, arrA, arrL) =>
if array.size(arrB) > 0
for i = 0 to array.size(arrB) - 1
if array.get(arrA, i)
box b = array.get(arrB, i)
float t = box.get_top(b)
float btm = box.get_bottom(b)
// Close outside band → remove
if close > t or close < btm
box.delete(b)
label.delete(array.get(arrL, i))
array.set(arrA, i, false)
// ================= New HTF bar flags (strict booleans) =================
int chH4 = ta.change(time("240"))
int chD1 = ta.change(time("D"))
int chW1 = ta.change(time("W"))
int chM1 = ta.change(time("M"))
bool newBarH4 = useH4 and (not na(chH4)) and (chH4 != 0)
bool newBarD1 = useD1 and (not na(chD1)) and (chD1 != 0)
bool newBarW1 = useW1 and (not na(chW1)) and (chW1 != 0)
bool newBarM1 = useM1 and (not na(chM1)) and (chM1 != 0)
// ================= Create zones on new HTF bar =================
if newBarH4
if d4t > 0 and not na(d4p) and not na(d4d)
addZone(zH4, aH4, lH4, sH4, d4d, d4p, colH4, 1)
if s4t > 0 and not na(s4p) and not na(s4d)
addZone(zH4, aH4, lH4, sH4, s4p, s4d, colSup, -1)
if newBarD1
if d1t > 0 and not na(d1p) and not na(d1d)
addZone(zD1, aD1, lD1, sD1, d1d, d1p, colD1, 1)
if s1t > 0 and not na(s1p) and not na(s1d)
addZone(zD1, aD1, lD1, sD1, s1p, s1d, colSup, -1)
if newBarW1
if w1t > 0 and not na(w1p) and not na(w1d)
addZone(zW1, aW1, lW1, sW1, w1d, w1p, colW1, 1)
if swt > 0 and not na(swp) and not na(swd)
addZone(zW1, aW1, lW1, sW1, swp, swd, colSup, -1)
if newBarM1
if m1t > 0 and not na(m1p) and not na(m1d)
addZone(zM1, aM1, lM1, sM1, m1d, m1p, colM1, 1)
if smt > 0 and not na(smp) and not na(smd)
addZone(zM1, aM1, lM1, sM1, smp, smd, colSup, -1)
// ================= Maintain & Invalidate (every bar) =================
extendAll(zH4, aH4)
extendAll(zD1, aD1)
extendAll(zW1, aW1)
extendAll(zM1, aM1)
invalidate(zH4, aH4, lH4)
invalidate(zD1, aD1, lD1)
invalidate(zW1, aW1, lW1)
invalidate(zM1, aM1, lM1)
// ================= Nearest across all TFs =================
tfNearest(arrB, arrA) =>
int upIdx = -1
int dnIdx = -1
float upDist = 1e10
float dnDist = 1e10
float upBtm = na
float dnTop = na
if array.size(arrB) > 0
for i = 0 to array.size(arrB) - 1
if array.get(arrA, i)
box b = array.get(arrB, i)
float t = box.get_top(b)
float btm = box.get_bottom(b)
if btm >= close
float d = btm - close
if d < upDist
upDist := d
upIdx := i
upBtm := btm
if t <= close
float d2 = close - t
if d2 < dnDist
dnDist := d2
dnIdx := i
dnTop := t
= tfNearest(zH4, aH4)
= tfNearest(zD1, aD1)
= tfNearest(zW1, aW1)
= tfNearest(zM1, aM1)
float upBest = 1e10, dnBest = 1e10
int upArr = -1, upIdxSel = -1, dnArr = -1, dnIdxSel = -1
color upColor = color.new(color.white, 100), dnColor = color.new(color.white, 100)
if (not na(uh4y)) and uh4d < upBest
upBest := uh4d, upArr := 0, upIdxSel := uh4i, upColor := colH4
if (not na(ud1y)) and ud1d < upBest
upBest := ud1d, upArr := 1, upIdxSel := ud1i, upColor := colD1
if (not na(uw1y)) and uw1d < upBest
upBest := uw1d, upArr := 2, upIdxSel := uw1i, upColor := colW1
if (not na(um1y)) and um1d < upBest
upBest := um1d, upArr := 3, upIdxSel := um1i, upColor := colM1
if (not na(dh4y)) and dh4d < dnBest
dnBest := dh4d, dnArr := 0, dnIdxSel := dh4i, dnColor := colH4
if (not na(dd1y)) and dd1d < dnBest
dnBest := dd1d, dnArr := 1, dnIdxSel := dd1i, dnColor := colD1
if (not na(dw1y)) and dw1d < dnBest
dnBest := dw1d, dnArr := 2, dnIdxSel := dw1i, dnColor := colW1
if (not na(dm1y)) and dm1d < dnBest
dnBest := dm1d, dnArr := 3, dnIdxSel := dm1i, dnColor := colM1
// ================= Nearest-only visibility (optional) =================
hideAll(arrB, arrA) =>
if array.size(arrB) > 0
for i = 0 to array.size(arrB) - 1
if array.get(arrA, i)
box.set_bgcolor(array.get(arrB, i), color.new(color.white, 100))
box.set_border_color(array.get(arrB, i), color.new(color.white, 100))
showOne(arrB, arrA, arrS, idx, demColor) =>
if idx >= 0 and idx < array.size(arrB)
if array.get(arrA, idx)
bool isDemand = array.get(arrS, idx) == 1
color c = isDemand ? demColor : colSup
box.set_bgcolor(array.get(arrB, idx), c)
box.set_border_color(array.get(arrB, idx), color.new(color.black, 0))
if onlyNearest
hideAll(zH4, aH4), hideAll(zD1, aD1), hideAll(zW1, aW1), hideAll(zM1, aM1)
if upArr == 0
showOne(zH4, aH4, sH4, upIdxSel, upColor)
if upArr == 1
showOne(zD1, aD1, sD1, upIdxSel, upColor)
if upArr == 2
showOne(zW1, aW1, sW1, upIdxSel, upColor)
if upArr == 3
showOne(zM1, aM1, sM1, upIdxSel, upColor)
if dnArr == 0
showOne(zH4, aH4, sH4, dnIdxSel, dnColor)
if dnArr == 1
showOne(zD1, aD1, sD1, dnIdxSel, dnColor)
if dnArr == 2
showOne(zW1, aW1, sW1, dnIdxSel, dnColor)
if dnArr == 3
showOne(zM1, aM1, sM1, dnIdxSel, dnColor)
// ================= Nearest distance labels (optional) =================
var label nearUp = na
var label nearDn = na
makeNearLabel(y, txt) =>
label.new(bar_index, y, txt, xloc=xloc.bar_index, style=label.style_label_left, color=color.new(color.black, 0), textcolor=color.white, size=size.tiny)
if showNearestLabels
if not na(nearUp)
label.delete(nearUp)
if not na(nearDn)
label.delete(nearDn)
if upArr != -1
box bUp = upArr == 0 ? array.get(zH4, upIdxSel) : upArr == 1 ? array.get(zD1, upIdxSel) : upArr == 2 ? array.get(zW1, upIdxSel) : array.get(zM1, upIdxSel)
float upBtm = box.get_bottom(bUp)
float pctUp = math.round(10000.0 * (upBtm - close) / close) / 100.0
nearUp := makeNearLabel(upBtm, "Nearest Above ~ " + str.tostring(pctUp) + "%")
if dnArr != -1
box bDn = dnArr == 0 ? array.get(zH4, dnIdxSel) : dnArr == 1 ? array.get(zD1, dnIdxSel) : dnArr == 2 ? array.get(zW1, dnIdxSel) : array.get(zM1, dnIdxSel)
float dnTop = box.get_top(bDn)
float pctDn = math.round(10000.0 * (close - dnTop) / close) / 100.0
nearDn := makeNearLabel(dnTop, "Nearest Below ~ " + str.tostring(pctDn) + "%")
// ================= Tiny legend (dots) =================
var table legend = na
if showLegend and na(legend)
legend := table.new(position.top_left, 4, 1)
if showLegend and not na(legend)
table.cell(legend, 0, 0, "● 4H", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(legend, 1, 0, "● 1D", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(legend, 2, 0, "● 1W", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell(legend, 3, 0, "● 1M", text_color=color.white, bgcolor=color.new(color.black, 0))
table.cell_set_bgcolor(legend, 0, 0, color.new(color.teal, 70))
table.cell_set_bgcolor(legend, 1, 0, color.new(color.blue, 70))
table.cell_set_bgcolor(legend, 2, 0, color.new(color.orange, 70))
table.cell_set_bgcolor(legend, 3, 0, color.new(color.purple, 70))
DTM 444 BANDS 🚀DTM 444 BANDS 🚀:
The DTM 444 BANDS 🚀 is a powerful, multi-purpose trading indicator combining Supertrend, Dynamic Band Levels, Breakout Signals, and Volume Confirmation to help traders identify high-probability trade setups across different timeframes.
🔧 Key Features
✅ Multi-Timeframe Support
Analyze price action across any timeframe using the Timeframe input.
All band calculations (High, Low, Midline, and Supertrend) are pulled from a higher timeframe for clearer context.
✅ Dynamic Bands Based on Supertrend
High Band: Rolling highest of Supertrend over hiLen period.
Low Band: Rolling lowest of Supertrend over loLen period.
Midline: Midpoint of the above.
Acts like dynamic support/resistance, ideal for trend-following and breakout strategies.
✅ Dual Signal System
Breakout Signals (Buy and Sell): Triggered when price breaks the bands with volume confirmation.
Supertrend Crossover Signals (Buy1 and Sell1): Classic momentum entries with a confirmation twist.
Exit Signals: Optional take-profit/neutral indicators when price reverses.
✅ Volume Confirmation Filter (Optional)
Only triggers signals if the volume exceeds its 20-period SMA.
Helps filter out false breakouts and weak trends in low-liquidity periods.
✅ Visual Enhancements
Color-coded candles based on band positioning (e.g., red = weak, green = strong, etc.)
On-chart labels for each signal for quick reference.
Real-time Signal Dashboard using Pine Script tables showing:
Current signal
Volume filter status
Live volume vs volume SMA
🧪 Practical Use Cases
Trend Traders: Use the Supertrend cross and band breakouts to ride trends early.
Breakout Traders: Catch high-probability moves outside established ranges.
Swing Traders: Time entries and exits using color-coded bars and exit labels.
Volume-Sensitive Traders: Focus on trades with strong volume backing.
📊 Backtest Snapshot
Based on the example chart for Reliance Industries (RELIANCE.NS) on the weekly timeframe:
Several profitable buy and breakout signals during uptrends.
Timely exits and breakdown alerts before reversals.
Volume filter keeps trades clean and avoids noise.
⚙️ Customizable Parameters
High Length and Low Length (default: 19)
Supertrend Multiplier and ATR Length
Volume Filter: Toggle ON/OFF
Volume SMA Length: Default 20
Custom Timeframe: Choose any higher timeframe for multi-timeframe analysis
📢 Alerts Ready
Fully integrated with TradingView alerts:
Breakout & Breakdown
Supertrend crossovers
All alerts respect the volume filter setting
🏁 Final Thoughts
DTM 444 BANDS 🚀 is a versatile and adaptive trading system that blends trend analysis, volatility bands, and volume validation. Whether you're a trend trader, breakout hunter, or swing trader — this tool gives you a structured edge with clear visual cues and real-time alerts.
MARA / mNAV=1 (x)What it does
This script overlays two signals on the MARA chart:
mNAV=1 fair-value line — the MARA price implied by Bitcoin NAV:
mNAV1 = (BTC price × BTC holdings) / MARA shares
Premium/Discount ratio — how far MARA trades vs. its NAV fair value:
Ratio = Close / mNAV1 (1.00 = fair; >1 = premium; <1 = discount)
Inputs
Shares outstanding (default: 370,460,000)
BTC holdings (official or estimated; you can roll forward +25 BTC/day if you want)
BTC symbol used for pricing (e.g., BTCUSD, BTCUSDT, BTCUSDTPERP)
How to use
When Price < mNAV=1 and Ratio < 1.00 → MARA trades at a discount to BTC NAV (potential mean-reversion if BTC is stable).
When Price > mNAV=1 and Ratio > 1.00 → premium (premium often compresses during BTC chop/weakness).
Rule of thumb (with ~53k BTC and 370.46M shares): +$1,000 BTC ≈ +$0.14 on the mNAV=1 line.
Visuals
Blue line = mNAV=1 (fair value) plotted directly on the MARA chart.
Purple line = Ratio (×) on a separate right-hand scale centered around 1.00.
Optional shading: green when Ratio > 1.05 (+5% premium), red when Ratio < 0.95 (−5% discount).
Alerts (suggested)
Premium > +5%: Ratio > 1.05
Discount < −5%: Ratio < 0.95
Notes
This is a proxy for NAV parity; it assumes your BTC holdings input is correct (official last report or your estimate).
Choice of BTC symbol matters; use the feed that best matches your workflow (spot, perp, or index).
The ratio is most informative when BTC is range-bound; during fast BTC moves MARA can overshoot temporarily.
Current Price (Customizable) by DRtradeCurrent Price Line & Dynamic Label (Fully Customizable)
The ultimate tool for clear, real-time price visualization.
This powerful, lightweight indicator draws a clean horizontal line at the current market price, updating instantly with every price tick. Unlike other current price line scripts, this tool ensures you always see where the price is right now and provides full control over every visual element.
Key Features:
- Real-Time Tracking: The line moves dynamically with price ticks within the current candle, eliminating lag and providing true current market price awareness.
- Line Extension Control: Choose to extend: Left, Right, or Both. Helpful for scalpers and options traders
- Visual Customizations: Color, Style, Size, Width, etc.
- Label Positioning: Left of Candle, Above Candle, or Right of Candle
All customization options are available in the indicator's settings menu.
Ping me with feature reqeusts.
Ultra Clean Support / Resistance LevelsThis provides an Ultra Clean look for Support and Resistance levels
Ultra Clean Support / Resistance LevelsThis Provides a very clean Support and Resistance level on any timeframe
Monthly Melodies by Bryan Ramirez Three months make up a quarter. My indicator highlights each month in a distinct color: the first month in green, the second in yellow, and the third in orange. Each month functions as its own time window, where the algorithm may lean toward one side of the market more than the other. I like pairing this with Steve Moore’s seasonal tendencies for added context. This approach applies across Futures, Forex, and Crypto.
Impulse Range Compression & Expansion (IRCE)📌 Impulse Range Compression & Expansion (IRCE) – Visualizing Price Traps Before Breakouts
📖 Overview
The IRCE Indicator is a precision breakout detection tool designed to identify consolidation traps and price coil zones before expansion moves occur. Unlike traditional volatility indicators that rely solely on statistical thresholds (e.g., Bollinger Bands or ATR), IRCE focuses on behavioral price compression, detecting tight-range candle clusters and validating breakouts through body expansion and/or volume surges.
This makes it ideal for traders looking to:
• Catch breakouts from range traps
• Avoid choppy and premature signals
• Spot early-stage momentum moves based on clean price behavior
⸻
⚙️ How It Works
1. Impulse Range Compression Detection
• Measures the high-low range of each candle
• Compares it to a user-defined average range (default 7 bars)
• Flags candles where the range is significantly smaller (e.g., <60% of average)
• Groups these into tight clusters, indicating compression zones or potential “trap ranges”
2. Cluster Box Construction
• When a valid cluster (e.g., 3 or more tight candles) is detected, the indicator:
• Marks the high and low of the cluster
• Draws a shaded box over this “trap zone”
• This helps visually track where price has coiled before a breakout
3. Breakout Confirmation Logic
A breakout from the trap zone is only validated when:
• Price closes above the cluster high (bullish) or below the cluster low (bearish)
• One or both of the following confirm strength:
• Body Expansion: Current candle body is 120%+ of recent average
• Volume Expansion: Volume exceeds recent volume average
4. Optional Trend Filter
• An optional EMA filter (default: 50 EMA) ensures breakout signals align with trend direction
• Helps filter out countertrend noise in ranging markets
5. Signal Cooldown
• Prevents repeated signals by enforcing a cooldown period (e.g., 10 bars) between entries
⸻
🖥️ Visual Elements
• 📦 Yellow compression boxes represent tight price traps
• 🟢 Buy labels appear when price breaks above the trap with confirmation
• 🔴 Sell labels appear when price breaks below with confirmation
• All visuals are non-repainting and updated in real-time
🧠 How to Use
1. Wait for a yellow trap box to appear
2. Watch for a confirmed breakout from the trap zone
3. Take the trade in the direction of the breakout:
• Only if it satisfies body or volume confirmation
• And if trend alignment is enabled, it must match EMA direction
4. Place stops just outside the opposite end of the trap zone
5. Use risk/reward ratios or structure levels for exits
This logic works great on:
• Lower timeframes (scalping breakouts)
• Higher timeframes (detecting price coiling before major moves)
• Any market: Stocks, Crypto, FX, Commodities
⸻
🔒 Technical Notes
• ✅ No repainting
• ✅ No future-looking logic
• ✅ Suitable for both discretionary and systematic traders
• ✅ Built in Pine Script v6