Multi-Timeframe TTM Squeeze Pro with alerts and screenersBased of John Carters TTM Squeeze. Must open the settings and select wether you want to match the timeframe in your chart. This must be done in the pinescreener as well otherwise results will not be correct.
---
# **Squeeze Momentum Pro – Enhanced Screener + EMA Cross Alerts**
This custom version of the Squeeze Momentum indicator expands the standard TTM-style squeeze with screening and automated alert logic so you can quickly find high-quality setups across many tickers.
---
## **What This Script Does**
This indicator plots a three-level squeeze visual similar to TTM Squeeze:
Dot meanings in this indicator
Orange dot:
Strongest squeeze – Bollinger Bands are inside the tightest Keltner level (highest volatility compression).
Red dot:
Medium squeeze – still compressed, but not as tight as orange.
Black dot:
Weak squeeze / lowest level of volatility compression.
Price is coiling, but not as tight as the higher levels.
Green dot (“Fired”):
Squeeze has released — Bollinger Bands have expanded out of the channels and momentum is moving.
A momentum histogram is plotted to show directional pressure during the squeeze.
---
## **Major Improvements Added**
### **① Screenable Conditions for Stock Scanners**
This version includes multiple `alertcondition()` flags so the script can be used as a **Pine Screener inside TradingView**.
Currently it can screen for:
✔ Price closing above the 50-SMA
✔ Presence of an **orange (strong) squeeze dot**
✔ 6/20 EMA crossover signals inside a squeeze
These can be used inside the TradingView Screener or in watchlists to automatically highlight qualifying tickers.
---
### **② 6/20 EMA Trend Signals (Filtered by Squeeze)**
A crossover system was added:
* **Bullish Signal:** 6 EMA crosses above 20 EMA
* **Bearish Signal:** 6 EMA crosses below 20 EMA
But **these signals only trigger if the market is in a red or orange squeeze**, which helps remove noise and focus on valid setups.
---
### **③ Visual Markers Under the Histogram**
Whenever an EMA crossover occurs during a squeeze:
* A **green up-triangle** is plotted for a bullish cross
* A **red down-triangle** for a bearish cross
These markers are drawn **below the histogram**, keeping the display clean while still providing quick visual cues.
---
### **④ Fully Non-Repainting Logic**
All signals and squeeze calculations are based on standard fully-resolved `ta.*` functions, making the results stable both in backtesting and real-time.
---
## **Who This Script Helps**
This version is ideal for:
* Traders who use TradingView’s screener and want automated breakout/continuation filtering
* Traders who scan large watchlists for squeeze setups
* Users who want trend confirmation during volatility compression
---
## **How to Use It**
1. Add the script to your chart
2. Open TradingView Alerts or Screener
3. Select the conditions you want, for example:
* *“Orange Squeeze Detected”*
* *“Squeeze Fire after 3 squeeze dots*
* *“4 REd Dots in a row.”*
* *“Buy Alert”*
* *“EMA 6/20 Bullish Crossover (Squeeze Only)”*
* *“Close Above 50 SMA”*
Once active, TradingView will automatically flag symbols that meet the criteria.
---
## **Summary**
This enhanced Squeeze Momentum indicator turns the standard TTM-style visual into a **true screening and alert system** by adding:
* Multi-level squeezes
* EMA trend signals
* Screener-compatible alert conditions
* Clean visual signals
* Non-repainting logic
It helps traders quickly locate high-probability setups across any watchlist or market.
指标和策略
920 Order Flow SATY ATR//@version=6
indicator("Order-Flow / Volume Signals (No L2)", overlay=true)
//======================
// Inputs
//======================
rvolLen = input.int(20, "Relative Volume Lookback", minval=5)
rvolMin = input.float(1.1, "Min Relative Volume (× avg)", step=0.1)
wrbLen = input.int(20, "Wide-Range Lookback", minval=5)
wrbMult = input.float(1, "Wide-Range Multiplier", step=0.1)
upperCloseQ = input.float(0.60, "Close near High (0-1)", minval=0.0, maxval=1.0)
lowerCloseQ = input.float(0.40, "Close near Low (0-1)", minval=0.0, maxval=1.0)
cdLen = input.int(25, "Rolling CumDelta Window", minval=5)
useVWAP = input.bool(true, "Use VWAP Bias Filter")
showSignals = input.bool(true, "Show Long/Short OF Triangles")
//======================
// Core helpers
//======================
rng = high - low
tr = ta.tr(true)
avgTR = ta.sma(tr, wrbLen)
wrb = rng > wrbMult * avgTR
// Relative Volume
volAvg = ta.sma(volume, rvolLen)
rvol = volAvg > 0 ? volume / volAvg : 0.0
// Close location in bar (0..1)
clo = rng > 0 ? (close - low) / rng : 0.5
// VWAP (session) + SMAs
vwap = ta.vwap(close)
sma9 = ta.sma(close, 9)
sma20 = ta.sma(close, 20)
sma200= ta.sma(close, 200)
// CumDelta proxy (uptick/downtick signed volume)
tickSign = close > close ? 1.0 : close < close ? -1.0 : 0.0
delta = volume * tickSign
cumDelta = ta.cum(delta)
rollCD = cumDelta - cumDelta
//======================
// Signal conditions
//======================
volActive = rvol >= rvolMin
effortBuy = wrb and clo >= upperCloseQ
effortSell = wrb and clo <= lowerCloseQ
cdUp = ta.crossover(rollCD, 0)
cdDown = ta.crossunder(rollCD, 0)
biasBuy = not useVWAP or close > vwap
biasSell = not useVWAP or close < vwap
longOF = barstate.isconfirmed and volActive and effortBuy and cdUp and biasBuy
shortOF = barstate.isconfirmed and volActive and effortSell and cdDown and biasSell
//======================
// Plot ONLY on price chart
//======================
// SMAs & VWAP
plot(sma9, title="9 SMA", color=color.orange, linewidth=3)
plot(sma20, title="20 SMA", color=color.white, linewidth=3)
plot(sma200, title="200 SMA", color=color.black, linewidth=3)
plot(vwap, title="VWAP", color=color.new(color.aqua, 0), linewidth=3)
// Triangles with const text (no extra pane)
plotshape(showSignals and longOF, title="LONG OF",
style=shape.triangleup, location=location.belowbar, size=size.tiny,
color=color.new(color.green, 0), text="LONG OF")
plotshape(showSignals and shortOF, title="SHORT OF",
style=shape.triangledown, location=location.abovebar, size=size.tiny,
color=color.new(color.red, 0), text="SHORT OF")
// Alerts
alertcondition(longOF, title="LONG OF confirmed", message="LONG OF confirmed")
alertcondition(shortOF, title="SHORT OF confirmed", message="SHORT OF confirmed")
//────────────────────────────
// End-of-line labels (offset to the right)
//────────────────────────────
var label label9 = na
var label label20 = na
var label label200 = na
var label labelVW = na
if barstate.islast
// delete old labels before drawing new ones
label.delete(label9)
label.delete(label20)
label.delete(label200)
label.delete(labelVW)
// how far to move the labels rightward (increase if needed)
offsetBars = input.int(3)
label9 := label.new(bar_index + offsetBars, sma9, "9 SMA", style=label.style_label_left, textcolor=color.white, color=color.new(color.orange, 0))
label20 := label.new(bar_index + offsetBars, sma20, "20 SMA", style=label.style_label_left, textcolor=color.black, color=color.new(color.white, 0))
label200 := label.new(bar_index + offsetBars, sma200, "200 SMA", style=label.style_label_left, textcolor=color.white, color=color.new(color.black, 0))
labelVW := label.new(bar_index + offsetBars, vwap, "VWAP", style=label.style_label_left, textcolor=color.black, color=color.new(color.aqua, 0))
//────────────────────────────────────────────────────────────────────
//────────────────────────────────────────────
// Overnight High/Low + HOD/LOD (no POC)
//────────────────────────────────────────────
sessionRTH = input.session("0930-1600", "RTH Session (exchange tz)")
levelWidth = input.int(2, "HL line width", minval=1, maxval=5)
labelOffsetH = input.int(10, "HL label offset (bars to right)", minval=0)
isRTH = not na(time(timeframe.period, sessionRTH))
rthOpen = isRTH and not isRTH
// --- Track Overnight High/Low during NON-RTH; freeze at RTH open
// --- Track Overnight High/Low during NON-RTH; freeze at RTH open
var float onHigh = na
var float onLow = na
var int onHighBar = na
var int onLowBar = na
var float onHighFix = na
var float onLowFix = na
var int onHighFixBar = na
var int onLowFixBar = na
if not isRTH
if na(onHigh) or high > onHigh
onHigh := high
onHighBar := bar_index
if na(onLow) or low < onLow
onLow := low
onLowBar := bar_index
if rthOpen
onHighFix := onHigh
onLowFix := onLow
onHighFixBar := onHighBar
onLowFixBar := onLowBar
onHigh := na, onLow := na
onHighBar := na, onLowBar := na
// ──────────────────────────────────────────
// Candle coloring + labels for 9/20/VWAP crosses
// ──────────────────────────────────────────
showCrossLabels = input.bool(true, "Show cross labels")
// Helpers
minAll = math.min(math.min(sma9, sma20), vwap)
maxAll = math.max(math.max(sma9, sma20), vwap)
// All three lines
goldenAll = open <= minAll and close >= maxAll
deathAll = open >= maxAll and close <= minAll
// 9/20 only (exclude cases that also crossed VWAP)
dcUpOnly = open <= math.min(sma9, sma20) and close >= math.max(sma9, sma20) and not goldenAll
dcDownOnly = open >= math.max(sma9, sma20) and close <= math.min(sma9, sma20) and not deathAll
// Candle colors (priority: all three > 9/20 only)
var color cCol = na
cCol := goldenAll ? color.yellow : deathAll ? color.black :dcUpOnly ? color.lime :dcDownOnly ? color.red : na
barcolor(cCol)
// Labels
plotshape(showCrossLabels and barstate.isconfirmed and goldenAll, title="GOLDEN CROSS",
style=shape.labelup, location=location.belowbar, text="GOLDEN CROSS",
color=color.new(color.yellow, 0), textcolor=color.black, size=size.tiny)
plotshape(showCrossLabels and barstate.isconfirmed and deathAll, title="DEATH CROSS",
style=shape.labeldown, location=location.abovebar, text="DEATH CROSS",
color=color.new(color.black, 0), textcolor=color.white, size=size.tiny)
plotshape(showCrossLabels and barstate.isconfirmed and dcUpOnly, title="DC UP",
style=shape.labelup, location=location.belowbar, text="DC UP",
color=color.new(color.lime, 0), textcolor=color.black, size=size.tiny)
plotshape(showCrossLabels and barstate.isconfirmed and dcDownOnly, title="DC DOWN",
style=shape.labeldown, location=location.abovebar, text="DC DOWN",
color=color.new(color.red, 0), textcolor=color.white, size=size.tiny)
// ──────────────────────────────────────────
// Audible + alert conditions
// ──────────────────────────────────────────
alertcondition(goldenAll, title="GOLDEN CROSS", message="GOLDEN CROSS detected")
alertcondition(deathAll, title="DEATH CROSS", message="DEATH CROSS detected")
alertcondition(dcUpOnly, title="DC UP", message="Dual Cross UP detected")
alertcondition(dcDownOnly,title="DC DOWN", message="Dual Cross DOWN detected")
Turtle System 1 (20/10) + N-Stop + MTF Table V7.2🐢 Description: Turtle System 1 (20/10) IndicatorThis indicator implements the original trading signals of the Turtle Trading System 1 based on the classic Donchian Channels. It incorporates a historically correct, volatility-based Trailing Stop (N-Stop) and a Multi-Timeframe (MTF) status dashboard. The script is written in Pine Script v6, optimized for performance and reliability.📊 Core Logic and ParametersThe system is a pure trend-following model, utilizing the more widely known, conservative parameters of the Turtle System 1:FunctionParameterValueDescriptionEntry$\text{Donchian Breakout}$$\mathbf{20}$Buy/Sell upon breaking the 20-day High/Low.Exit (Turtle)$\text{Donchian Breakout}$$\mathbf{10}$Close the position upon breaking the 10-day Low/High.Volatility$\mathbf{N}$ (ATR Period)$\mathbf{20}$Calculation of market volatility using the Average True Range (ATR).Stop-LossMultiplier$\mathbf{2.0} BER:SETS the initial and Trailing Stop at $\mathbf{2N}$.🛠️ Key Technical Features1. Original Turtle Trailing Stop (Section 4)The stop-loss mechanism is implemented with the historically accurate Turtle Trailing Logic. The stop is not aggressively tied to the current candle's low/high, which often causes premature exits. Instead, the stop only trails in the direction of the trend, maximizing the previous stop price against the new calculated $\text{Close} \pm 2N$:$$\text{New Trailing Stop} = \text{max}(\text{Previous Stop}, \text{Close} \pm (2 \times N))$$2. Reliable Multi-Timeframe (MTF) Status (Section 6)The indicator features a robust MTF status table.Purpose: It calculates and persistently stores the Turtle System 1 status (LONG=1, SHORT=-1, FLAT=0) for various timeframes (1H, 4H, 8H, 1D, and 1W).Method: It uses global var int variables combined with request.security(), ensuring the status is accurately maintained and updated across different bars and timeframes, providing a reliable higher-timeframe context.3. VisualizationsChannels: The 20-period (Entry) and 10-period (Exit) Donchian Channels are plotted.Stop Line: The dynamic $\mathbf{2N}$ Trailing Stop is visible as a distinct line.Signals: plotshape markers indicate Entry and Exit.MTF Table: A clean, color-coded status summary is displayed in the upper right corner.
20W EMA – Macro Only (Perfectly Clean)Bitcoin 20 week moving average script showing buy / sell signals
Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)//@version=5
indicator("Day Trading Signals - Ultimate Pro (Dark Neon + Strong BB Cloud)", overlay=true, max_lines_count=500, max_labels_count=500)
// ===== INPUTS =====
ema_fast_len = input.int(9, "Fast EMA Length")
ema_slow_len = input.int(21, "Slow EMA Length")
rsi_len = input.int(12, "RSI Length")
rsi_overbought = input.int(70, "RSI Overbought Level")
rsi_oversold = input.int(30, "RSI Oversold Level")
bb_len = input.int(20, "Bollinger Bands Length")
bb_mult = input.float(2.0, "Bollinger Bands Multiplier")
sr_len = input.int(15, "Pivot Lookback for Support/Resistance")
min_ema_gap = input.float(0.0, "Minimum EMA Gap to Define Trend", step=0.1)
sr_lifespan = input.int(200, "Bars to Keep S/R Lines")
// Display options
show_bb = input.bool(true, "Show Bollinger Bands?")
show_ema = input.bool(true, "Show EMA Lines?")
show_sr = input.bool(true, "Show Support/Resistance Lines?")
show_bg = input.bool(true, "Show Background Trend Color?")
// ===== COLORS (Dark Neon Theme) =====
neon_teal = color.rgb(0, 255, 200)
neon_purple = color.rgb(180, 95, 255)
neon_orange = color.rgb(255, 160, 60)
neon_yellow = color.rgb(255, 235, 90)
neon_red = color.rgb(255, 70, 110)
neon_gray = color.rgb(140, 140, 160)
sr_support_col = color.rgb(0, 190, 140)
sr_resist_col = color.rgb(255, 90, 120)
// ===== INDICATORS =====
ema_fast = ta.ema(close, ema_fast_len)
ema_slow = ta.ema(close, ema_slow_len)
ema_gap = math.abs(ema_fast - ema_slow)
trend_up = (ema_fast > ema_slow) and (ema_gap > min_ema_gap)
trend_down = (ema_fast < ema_slow) and (ema_gap > min_ema_gap)
trend_flat = ema_gap <= min_ema_gap
rsi = ta.rsi(close, rsi_len)
bb_mid = ta.sma(close, bb_len)
bb_upper = bb_mid + bb_mult * ta.stdev(close, bb_len)
bb_lower = bb_mid - bb_mult * ta.stdev(close, bb_len)
// ===== SUPPORT / RESISTANCE =====
pivot_high = ta.pivothigh(high, sr_len, sr_len)
pivot_low = ta.pivotlow(low, sr_len, sr_len)
var line sup_lines = array.new_line()
var line res_lines = array.new_line()
if show_sr and not na(pivot_low)
l = line.new(bar_index - sr_len, pivot_low, bar_index, pivot_low, color=sr_support_col, width=2, extend=extend.right)
array.push(sup_lines, l)
if show_sr and not na(pivot_high)
l = line.new(bar_index - sr_len, pivot_high, bar_index, pivot_high, color=sr_resist_col, width=2, extend=extend.right)
array.push(res_lines, l)
// Delete old S/R lines
if array.size(sup_lines) > 0
for i = 0 to array.size(sup_lines) - 1
l = array.get(sup_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(sup_lines, i)
break
if array.size(res_lines) > 0
for i = 0 to array.size(res_lines) - 1
l = array.get(res_lines, i)
if bar_index - line.get_x2(l) > sr_lifespan
line.delete(l)
array.remove(res_lines, i)
break
// ===== BUY / SELL CONDITIONS =====
buy_cond = trend_up and not trend_flat and ta.crossover(ema_fast, ema_slow) and rsi < rsi_oversold and close < bb_lower
sell_cond = trend_down and not trend_flat and ta.crossunder(ema_fast, ema_slow) and rsi > rsi_overbought and close > bb_upper
// ===== SIGNAL PLOTS =====
plotshape(buy_cond, title="Buy Signal", location=location.belowbar, color=neon_teal, style=shape.labelup, text="BUY", size=size.small)
plotshape(sell_cond, title="Sell Signal", location=location.abovebar, color=neon_red, style=shape.labeldown, text="SELL", size=size.small)
// ===== EMA LINES =====
plot(show_ema ? ema_fast : na, color=neon_orange, title="EMA Fast", linewidth=2)
plot(show_ema ? ema_slow : na, color=neon_purple, title="EMA Slow", linewidth=2)
// ===== STRONG BOLLINGER BAND CLOUD =====
plot_bb_upper = plot(show_bb ? bb_upper : na, color=color.new(neon_yellow, 20), title="BB Upper")
plot_bb_lower = plot(show_bb ? bb_lower : na, color=color.new(neon_gray, 20), title="BB Lower")
plot(bb_mid, color=color.new(neon_gray, 50), title="BB Mid")
// More visible BB cloud (stronger contrast)
bb_cloud_color = trend_up ? color.new(neon_teal, 40) : trend_down ? color.new(neon_red, 40) : color.new(neon_gray, 70)
fill(plot_bb_upper, plot_bb_lower, color=show_bb ? bb_cloud_color : na, title="BB Cloud")
// ===== BACKGROUND COLOR (TREND ZONES) =====
bgcolor(show_bg ? (trend_up ? color.new(neon_teal, 92) : trend_down ? color.new(neon_red, 92) : color.new(neon_gray, 94)) : na)
// ===== ALERTS =====
alertcondition(buy_cond, title="Buy Signal", message="Buy signal triggered. Check chart.")
alertcondition(sell_cond, title="Sell Signal", message="Sell signal triggered. Check chart.")
Advanced Time Dividers & Killzones IndicatorOverview
A comprehensive Pine Script v6 indicator that displays customizable time period dividers and trading session killzones on your chart. Perfect for intraday traders who need clear visual separation of time periods and want to identify key trading sessions.
✨ Features
Time Period Dividers
Weekly Lines: Vertical lines marking the start of each week
Monthly Lines: Vertical lines marking the start of each month
Quarterly Lines: Vertical lines marking the start of each quarter (Q1, Q2, Q3, Q4)
Yearly Lines: Vertical lines marking the start of each year
Trading Session Killzones
London Session: 2:00-5:00 GMT (Blue shaded box)
New York Session: 7:00-10:00 GMT (Green shaded box)
London Close: 10:00-12:00 GMT (Orange shaded box)
Asia Session: 20:00-00:00 GMT (Pink shaded box)
🎨 Customization Options
Display Controls
Toggle each time divider type individually
Toggle each killzone individually
Adjust historical and future display range
Show/hide labels on dividers and killzones
Style Customization
Line Styles: Choose between Solid, Dashed, or Dotted lines
Line Width: Adjustable from 1 to 5 pixels
Colors: Fully customizable colors for each element with transparency control
Label Size: Choose from Tiny, Small, Normal, or Large
Period Settings
Control how many bars to display in the past (0-5000)
Control how many bars to display in the future (0-1000)
📋 Usage Instructions
Add to Chart: Add the indicator to any chart
Select Timeframe: Works best on intraday timeframes (1H, 15min, 5min) for killzones
Customize: Open settings to enable/disable features and customize colors
Trading: Use the dividers to identify time periods and killzones to spot high-liquidity sessions
💡 Trading Applications
Time Dividers
Weekly/Monthly Analysis: Identify major time period transitions
Market Structure: Analyze how price behaves at period boundaries
Event Correlation: Align with economic calendar events
Killzones
High Liquidity Periods: Trade during peak market activity
ICT Strategy: Follows Inner Circle Trader killzone concepts
Session-Based Trading: Focus on specific trading sessions
Volatility Windows: Identify when major moves typically occur
⚙️ Technical Details
Version: Pine Script v6
Type: Overlay indicator
Max Lines: 500 (optimized performance)
Max Boxes: 500 (for killzone visualization)
Timezone: GMT/UTC for killzones
Memory Efficient: Automatic cleanup of old objects
🎯 Best Practices
Combine with Price Action: Use dividers to frame your analysis
Focus on Killzones: Most significant price moves occur during these sessions
Adjust Transparency: Find the right balance between visibility and chart clarity
Use Labels Wisely: Toggle labels on/off based on your needs
Timeframe Selection: Use lower timeframes (≤1H) to see killzones clearly
📝 Notes
Killzone times are in GMT/UTC timezone
Works on all instruments (Forex, Crypto, Stocks, Futures)
Optimized for performance with automatic memory management
Fully compatible with other indicators
🔄 Updates & Support
This indicator is actively maintained. Feel free to suggest improvements or report issues in the comments.
ADX HUD LabelStatic ADX Strength Label
Drops a fixed label in the top-right corner of your chart that only tells you one thing: is the trend worth trading or not.
The label constantly updates the current ADX value and changes color: red below 20 (dead / choppy), yellow between 20–25 (warming up), and green above 25 (strong trend, go hunting).
Use it as a quick trend-filter so you’re not forcing trades when the market is caca chop.
Weighted RSI DivergenceWeighted RSI Divergence
A powerful divergence engine that grades every RSI divergence by strength, context, and confluence — helping you filter noise and focus only on the highest-probability reversal setups.
This script combines RSI divergences with five confirmation layers to produce confidence-weighted signals, clearer trade decisions, and alert-ready setups for both bullish and bearish reversals.
What This Indicator Detects
Bullish Divergence → Price makes a lower low while RSI makes a higher low
Bearish Divergence → Price makes a higher high while RSI makes a lower high
Confirmation Factors (Each Adds +1 to the Score)
Volume Spike: Above-average volume on the divergence bar
Trend Alignment: Divergence occurs in harmony with higher-timeframe trend dynamics
Key Level Proximity: Price tests significant support or resistance
Momentum Extremes: RSI reaches oversold/overbought thresholds
Candle Reversal Pattern: Engulfing, pin bar, or similar reversal structure
Confidence Scoring
1–2 → Low Confidence (gray)
3 → Medium Confidence (yellow)
4–5 → High Confidence (green/red)
Higher scores = higher-probability setups.
Visual Components
RSI plot with dynamic gradient coloring
Divergence lines mapped to RSI pivots
Signal labels showing confidence + factors
Background highlighting for high-confidence events
Real-time confidence meter for active bar conditions
Optional data table for factor-by-factor breakdown
Alerts Included
High-confidence bullish & bearish divergences
Medium-confidence signals
Any divergence meeting your minimum threshold
Best Practices
Prioritize setups with 4 or 5 confirmations
Use higher timeframes (4H, 1D, 1W) for more reliable signals
Combine with market structure and price action (S/R, HTF trend, liquidity zones)
Counter-trend divergences require stronger scores to validate
Final Notes
This script focuses on clarity, risk reduction, and selective trade timing. The confidence system helps distinguish weak divergences from high-probability reversal conditions — giving traders a structured, repeatable edge.
Coinbase Premium Index (Custom Tickers)📊 Coinbase Premium Index (Auto Symbol Support)
1. Overview
The Coinbase Premium Index is a widely used indicator to gauge the sentiment difference between US institutional investors (Coinbase Pro) and global retail/futures traders (Binance).
This script calculates the percentage difference between the Coinbase (USD pair) price and the Binance (USDT pair) price.
2. Key Features
🔄 Auto Symbol Matching (New): You no longer need to manually change tickers when switching charts.
If you are looking at a SOL/USDT chart, the indicator automatically detects "SOL" and compares COINBASE:SOLUSD vs BINANCE:SOLUSDT.
🛠 Manual Mode: Includes a manual override option if you wish to compare specific fixed tickers (e.g., strictly BTC).
🎨 Dynamic Visuals:
Histogram: Color-coded bars (Green/Red) indicate positive or negative premiums.
Smart Label: Displays the real-time premium value on the chart. The label color adapts to the trend, and hovering over it shows a Tooltip confirming exactly which tickers are being compared.
3. How to Interpret
The premium indicates the flow of funds and buying pressure:
🟢 Positive Premium (Green Bar):
Coinbase Price > Binance Price
Interpretation: Strong buying pressure from US institutions or spot whales. Often considered a Bullish signal.
🔴 Negative Premium (Red Bar):
Coinbase Price < Binance Price
Interpretation: Strong selling from US investors, or overheated buying in the offshore futures market (Binance). Often considered a Bearish or mean-reversion signal.
4. Settings Guide
Ticker Mode:
Auto (Current Chart): Automatically sets the comparison based on your current chart's base currency (Recommended).
Manual (Custom): Uses the specific tickers defined in the manual input fields below.
Manual Inputs: Enter tickers here if using Manual Mode (Default: COINBASE:BTCUSD vs BINANCE:BTCUSDT).
Bar & Label Settings: Customize colors, transparency, and the vertical position (Y-Offset) of the data label to fit your chart layout.
LiquidityPulse — RSI + Candle Strength Momentum Reversal SuiteLiquidityPulse — RSI + Candle Strength Momentum Reversal Suite description:
Non-repainting indicator.
⚙️ First-time Setup – Make the Candles Visible
To see the custom candle colours correctly you must disable the chart’s own candle borders and wicks:
Right-click anywhere on your chart (or click the ⚙ gear icon) and choose Settings.
Open the Appearance tab → Candles section.
Untick both Body Borders and Wicks (or set their colours to 100 % transparent).
Click OK.
Without this step the platform’s default candle styling can hide the indicator’s dynamic candle fills.
Overview
This script merges price-action strength with momentum extremes to highlight potentially significant market turning points:
Candle Strength 1–10 – Every candle is graded on a ten-point scale based on body size and volume relative to recent averages. Strong bullish or bearish candles are colour-coded with one of five optional themes (Classic, Cool, Neon, Pastel or Abyss).
RSI Extremes Filter – A standard 14-period RSI monitors overbought and oversold levels.
Only when both a high-grade candle and an RSI extreme occur together does the script optionally plot an arrow to mark a potential reversal area.
How It Works
Each candle receives a bull or bear strength score (1–10) using an internal candle-strength scoring formula.
RSI is checked across a user-defined look-back window (default 2 bars).
Bull Arrow Marker – printed below the bar only when
Bull strength ≥ Min candle strength (default 8), and
RSI dips below the oversold level (default 30) within the look-back window.
Bear Arrow Marker – printed above the bar only when
Bear strength ≥ Min candle strength (default 8), and
RSI rises above the overbought level (default 70) within the look-back window.
These dual conditions make the arrows intentionally rare depending on the settings used, and are designed to highlight momentum conditions associated with potential turning points
How to Use It in Your Own Trading
Market Context First – Apply the indicator only after you have identified the broader trend or key support/resistance areas on higher time-frames.
Confirmation, Not Prediction – Use the arrows as a confirmation of potential exhaustion or reversal; they are not intended as stand-alone entry triggers.
Adjust to Your Style –
Short-term traders might reduce the “RSI look-back bars” to 1 for quicker but more frequent alerts.
Swing traders may raise the “Min candle strength” to 9 or 10 to focus only on the strongest setups.
Combine with Risk Management – Always confirm with your own stop-loss and position-sizing rules.
Why this indicator is useful:
Confluence – It joins price-action strength (candle/volume) with a classic momentum oscillator (RSI), reducing noise from using either method alone.
Visual Clarity – Dynamic candle colouring makes market strength visible at a glance; depending on the settings used, rare arrows can highlight potential reversal areas based on momentum conditions.
Flexibility – All parameters adapt to any market or timeframe.
Educational Value – It helps traders learn how momentum extremes and candle strength interact—valuable for both beginners and experienced traders.
Inputs – Default Values
Min candle strength: 8
RSI look-back bars: 2
Overbought level: 70
Oversold level: 30
Candle-Strength engine: look-back 50 bars, ATR length 14, Body ≥ 0.5×ATR, Volume floor 10 000, Sensitivity 2
Optional features: five colour themes, strength number labels, label background at 42 % opacity.
All settings can be modified to suit different markets and trading styles.
Alerts
Two built-in alert conditions:
Bull Candle-RSI Condition
Bear Candle-RSI Condition
These can trigger alerts when the conditions are met.
If you have any questions about the indicator just pop me a message, happy trading!
Disclaimer
This script is 100 % my own original work.
Trading and investing involve substantial risk and are not suitable for every investor.
This indicator is provided for educational and informational purposes only to assist individuals with their own market analysis.
It is not a buy or sell signal and should not be considered financial advice.
Use it only in conjunction with your own analysis and trade at your own risk.
15 Seconds SMA Using multi-second, multi-timeframe Simple Moving Averages (SMA) — from 5 seconds up to 45 seconds with periods ranging from 30 to 900 candles — allows for an ultra-granular view of market microstructure.
This setup helps to:
Capture momentum shifts and micro-trends that occur before they appear on standard 1-minute or higher charts.
Identify accumulation and distribution zones in near real-time, as each second-based timeframe smooths out only its own volatility pocket.
Observe SMA alignment and divergence patterns to detect the earliest trend confirmations or exhaustion points.
Build a hierarchical structure of market flow, where short SMAs show reaction speed and longer SMAs show sustained intent.
Essentially, this template acts as a microscopic trend-tracking system, bridging the gap between tick data and minute-based analysis — invaluable for scalpers and high-frequency decision models.
15m ORB + FVG (ChadAnt)Core Logic
The indicator's logic revolves around three main phases:
1. Defining the 15-Minute Opening Range (ORB)
The script calculates the highest high (rangeHigh) and lowest low (rangeLow) that occurred during the first 15 minutes of the trading day.
This time window is defined by the sessionStr input, which defaults to 0930-0945 (exchange time).
The high and low of this range are plotted as small gray dots once the session ends (rangeSet = true).
2. Identifying a Fair Value Gap (FVG) Setup
After the 15-minute range is set, the indicator waits for a breakout of either the range high or range low.
A "Strict FVG breakout" requires two conditions on the first candle that closes beyond the range:
The candle before the breakout candle ( bars ago) must have been inside the range.
The breakout candle ( bar ago) must have closed outside the range.
A Fair Value Gap (FVG) must form on the most recent three candles (the current bar and the two previous bars).
Bullish FVG (Long Setup): The low of the current bar (low) is greater than the high of the bar two periods prior (high ). This FVG represents a price inefficiency that the trade expects to fill.
Bearish FVG (Short Setup): The high of the current bar (high) is less than the low of the bar two periods prior (low ).
If a valid FVG setup occurs, the indicator marks a pending setup and draws a colored box to highlight the FVG area (Green for Bullish FVG, Red for Bearish FVG).
3. Trade Entry and Management
If a pending setup is identified, the trade is structured as a re-entry trade into the FVG zone:
Entry Price: Set at the outer boundary of the FVG, which is the low of the current bar for a Long setup, or the high of the current bar for a Short setup.
Stop Loss (SL): Set at the opposite boundary of the FVG, which is the low for a Long setup, or the high for a Short setup.
The trade is triggered (tradeActive = true) once the price retraces to the pendingEntry level.
Risk/Reward (RR) Targets: Three Take Profit (TP) levels are calculated based on the distance between the Entry and Stop Loss:
$$\text{Risk} = | \text{Entry} - \text{SL} |$$
$$\text{TP}n = \text{Entry} \pm (\text{Risk} \times \text{RR}n)$$
where $n$ is 1, 2, or 3, corresponding to the input $\text{RR}1$, $\text{RR}2$, and $\text{RR}3$ values (defaults: 1.0, 1.5, and 2.0).
Trade Lines: Upon triggering, lines for the Entry, Stop Loss, and three Take Profit levels are drawn on the chart for a specified length (lineLength).
A crucial feature is the directional lock (highBroken / lowBroken):
If the price breaks a range level (e.g., simpleBrokeHigh) but without a valid FVG setup, the corresponding directional flag (e.g., highBroken) is set to true permanently for the day.
This prevents the indicator from looking for any subsequent trade setups in that direction for the rest of the day, suggesting that the initial move, without an FVG, exhausted the opportunity.
Alchemist Ranges By KousickAlchemist Ranges By Kousick
A Indicator For Alchemist Ranges and How He Trades in time
Turtle System 1 Long & Short (Donchian + N-Stop) + MTF Table V6 Turtle Trading Long & Short (System 1 – 20/10 Donchian + True 2N Trailing Stop) + Multi-Timeframe Dashboard – Pine Script v6This indicator is a 100 % faithful implementation of the famous original Turtle Trading System 1 (Richard Dennis & William Eckhardt) with the following genuine rules:Entry: 20-period Donchian Channel breakout (using the high/low of the previous completed bars only → )
Exit: Classic 10-period Donchian opposite breakout OR hit of the volatility-based stop
Risk Management: True 2N trailing stop (N = 20-period ATR). The stop is pulled tighter on every new favorable extreme (real Turtle trailing – not fixed!)
Fully dynamic position tracking (Long / Short / Flat) on the chart’s timeframe
Visual signals: green/red triangles for entries, diamonds for exits, trailing stop line, entry labels with current N and stop price
Unique Feature – Multi-Timeframe (MTF) Status Table
A clean table in the top-right corner instantly shows the current Turtle position status on five higher timeframes simultaneously:Turtle MTF
1H
4H
8H
1D
1W
Status
LONG / SHORT / FLAT (color-coded)
This allows you to see at a glance whether higher timeframes are already in a Turtle trend – perfect for trend confirmation, filtering, or multi-timeframe trading.Key Visual ElementsLime upper Donchian line (20-period high)
Red lower Donchian line (10-period low)
Gray channel fill
Fuchsia trailing 2N stop line (moves only in favorable direction)
Entry labels showing current N-value and exact stop price
Arrows and diamonds for entries/exits
Alerts
Two ready-to-use alert conditions:“Turtle Long Entry”
“Turtle Short Entry”
Works on any market and any chart timeframe (stocks, forex, futures, crypto).
Completely written and tested in Pine Script version 6.A true, clean, no-nonsense Turtle System 1 with real trailing volatility stops and a powerful higher-timeframe dashboard – exactly how the original Turtles traded (only better visualized)! Enjoy the trends!
Cumulative Volume Delta (HA Option)# **📘 Ultimate Guide to Trading With CVD Heikin Ashi (CVD+)**
## **🔍 What This Indicator Shows**
This tool plots **Cumulative Volume Delta (CVD)** as candlesticks—optionally transformed into **Heikin Ashi CVD candles**.
Instead of price, each candle represents the *battle between buyers and sellers* within your chosen timeframe.
**Volume Delta = Buying Volume – Selling Volume**
CVD takes all deltas and stacks them cumulatively, showing who is controlling the auction *over time*.
With Heikin Ashi smoothing layered on top, trend detection becomes cleaner, letting you see the “true pressure” behind price moves.
---
# **💡 Why CVD Is a Game Changer**
Most traders only see price.
Serious traders watch **pressure**.
CVD exposes what price hides:
* Absorption
* Hidden accumulation
* Seller exhaustion
* Fake breakouts
* True reversals
* Momentum strength / weakness
* Smart money footprint
When combined with Heikin-Ashi smoothing, you get delta trends with way less noise and fewer fake flips.
---
# **📈 How to Actually Use It (The Edge)**
## **1. Spot True Trend vs. Fake Trend**
If **price goes up** but **CVD goes down**, that’s:
* Passive sellers absorbing
* A weak rally
* High probability of reversal
If **price pulls back** but **CVD keeps rising**, that’s:
* Secret accumulation
* A continuation setup
* Great dip-buy opportunity
**Rule of thumb:**
🔹 *Follow the CVD trend, not the price noise.*
---
## **2. Catch Reversals Early**
Watch for:
### **🔻 Bearish Reversal Signals**
* CVD makes a **lower high**
* Heikin Ashi CVD prints **red bodies with rising upper shadows**
* Price makes one final push up on low delta
This is classic distribution → the drop usually follows fast.
### **🔹 Bullish Reversal Signals**
* CVD forms a **higher low**
* HA CVD flips from red to green with full bodies
* Price still looks weak = bottom forming
This is exactly how pros catch bottoms early.
---
## **3. Identify Absorption Levels**
If price hits a level multiple times but CVD keeps climbing (or falling), that level is being defended.
Example:
* Price stalls at support
* CVD keeps rising
= **Buyers absorbing sells → high-probability bounce**
Opposite works for resistance.
---
## **4. Validate Breakouts**
A breakout with *weak or negative CVD* is usually a trap.
A breakout with **strong, rising HA CVD** is real.
If CVD diverges from the breakout direction → fade it.
If CVD confirms → ride it.
---
## **5. Use Heikin Ashi to Stay in Trends**
HA smoothing removes the nasty chop of raw delta data.
Look for:
* Consecutive **full-body teal candles = strong buying wave**
* Consecutive **full-body red candles = strong selling wave**
* Small-bodied candles after a trend = momentum dying
This keeps you in winners longer and cuts losers faster.
---
# **🎯 Practical Trading Playbook**
### **A) Long Setup**
1. Price pullback into support
2. CVD stays bullish or makes a higher low
3. HA CVD flips green or prints a strong body
4. Enter long
5. Stop under CVD structural low
### **B) Short Setup**
1. Price pushes into resistance
2. CVD forms bearish divergence
3. HA CVD prints red bodies
4. Enter short
5. Stop above CVD swing high
### **C) Chop Filter**
No clear HA CVD trend = avoid trading → stop donating money to the market.
---
# **🧠 Tips for Mastery**
* Use lower timeframe delta (1m–5m) for scalping entries
* Use a higher anchor timeframe (1D) to define direction
* When price trends but CVD is flat → expect a fakeout
* When CVD trends but price is flat → expect a breakout
* Trade WITH delta, fade AGAINST delta
---
# **⚠️ Important Notes**
* Crypto = full tick-by-tick volume → CVD is extremely accurate
* Stocks = depends on your broker/data vendor
* Futures = best signal-to-noise ratio
* If your symbol has no volume → indicator will warn you
---
# **📥 Recommended Settings**
* **Anchor timeframe**: 1D or 4H
* **Lower timeframe**: 1m, 3m, or 5m
* **Heikin Ashi**: ON for trend filtering, OFF for raw delta
---
# **🔥 Final Word**
Price can lie.
Delta usually doesn’t.
CVD + Heikin Ashi gives you the closest thing to reading the market’s heartbeat in real time.
Use it to confirm breakouts, detect reversals early, identify real trend strength, and avoid getting caught in manipulation.
If you learn to read CVD well…
you stop trading price, and start trading the **intent** behind the price.
Quadro v6This implement QUADRO strategy.
Finding divergences on corelated RSI and analyzing them in real time.
More description on it will come later...
TenUp Bots S R - Fixed (ta.highest)//@version=5
indicator("TenUp Bots S R - Fixed (ta.highest)", overlay = true)
// Inputs
a = input.int(10, "Sensitivity (bars)", minval = 1, maxval = 9999)
d_pct = input.int(85, "Transparency (%)", minval = 0, maxval = 100)
// Convert 0-100% to 0-255 transparency (color.new uses 0..255)
transp = math.round(d_pct * 255 / 100)
// Colors with transparency applied
resColor = color.new(color.red, transp)
supColor = color.new(color.blue, transp)
// Helper (calculations only)
getRes(len) => ta.highest(high, len)
getSup(len) => ta.lowest(low, len)
// === PLOTS (all in global scope) ===
plot(getRes(a*1), title="Resistance 1", color=resColor, linewidth=2)
plot(getSup(a*1), title="Support 1", color=supColor, linewidth=2)
plot(getRes(a*2), title="Resistance 2", color=resColor, linewidth=2)
plot(getSup(a*2), title="Support 2", color=supColor, linewidth=2)
plot(getRes(a*3), title="Resistance 3", color=resColor, linewidth=2)
plot(getSup(a*3), title="Support 3", color=supColor, linewidth=2)
plot(getRes(a*4), title="Resistance 4", color=resColor, linewidth=2)
plot(getSup(a*4), title="Support 4", color=supColor, linewidth=2)
plot(getRes(a*5), title="Resistance 5", color=resColor, linewidth=2)
plot(getSup(a*5), title="Support 5", color=supColor, linewidth=2)
plot(getRes(a*6), title="Resistance 6", color=resColor, linewidth=2)
plot(getSup(a*6), title="Support 6", color=supColor, linewidth=2)
plot(getRes(a*7), title="Resistance 7", color=resColor, linewidth=2)
plot(getSup(a*7), title="Support 7", color=supColor, linewidth=2)
plot(getRes(a*8), title="Resistance 8", color=resColor, linewidth=2)
plot(getSup(a*8), title="Support 8", color=supColor, linewidth=2)
plot(getRes(a*9), title="Resistance 9", color=resColor, linewidth=2)
plot(getSup(a*9), title="Support 9", color=supColor, linewidth=2)
plot(getRes(a*10), title="Resistance 10", color=resColor, linewidth=2)
plot(getSup(a*10), title="Support 10", color=supColor, linewidth=2)
plot(getRes(a*15), title="Resistance 15", color=resColor, linewidth=2)
plot(getSup(a*15), title="Support 15", color=supColor, linewidth=2)
plot(getRes(a*20), title="Resistance 20", color=resColor, linewidth=2)
plot(getSup(a*20), title="Support 20", color=supColor, linewidth=2)
plot(getRes(a*25), title="Resistance 25", color=resColor, linewidth=2)
plot(getSup(a*25), title="Support 25", color=supColor, linewidth=2)
plot(getRes(a*30), title="Resistance 30", color=resColor, linewidth=2)
plot(getSup(a*30), title="Support 30", color=supColor, linewidth=2)
plot(getRes(a*35), title="Resistance 35", color=resColor, linewidth=2)
plot(getSup(a*35), title="Support 35", color=supColor, linewidth=2)
plot(getRes(a*40), title="Resistance 40", color=resColor, linewidth=2)
plot(getSup(a*40), title="Support 40", color=supColor, linewidth=2)
plot(getRes(a*45), title="Resistance 45", color=resColor, linewidth=2)
plot(getSup(a*45), title="Support 45", color=supColor, linewidth=2)
plot(getRes(a*50), title="Resistance 50", color=resColor, linewidth=2)
plot(getSup(a*50), title="Support 50", color=supColor, linewidth=2)
plot(getRes(a*75), title="Resistance 75", color=resColor, linewidth=2)
plot(getSup(a*75), title="Support 75", color=supColor, linewidth=2)
plot(getRes(a*100), title="Resistance 100", color=resColor, linewidth=2)
plot(getSup(a*100), title="Support 100", color=supColor, linewidth=2)
plot(getRes(a*150), title="Resistance 150", color=resColor, linewidth=2)
plot(getSup(a*150), title="Support 150", color=supColor, linewidth=2)
plot(getRes(a*200), title="Resistance 200", color=resColor, linewidth=2)
plot(getSup(a*200), title="Support 200", color=supColor, linewidth=2)
plot(getRes(a*250), title="Resistance 250", color=resColor, linewidth=2)
plot(getSup(a*250), title="Support 250", color=supColor, linewidth=2)
plot(getRes(a*300), title="Resistance 300", color=resColor, linewidth=2)
plot(getSup(a*300), title="Support 300", color=supColor, linewidth=2)
plot(getRes(a*350), title="Resistance 350", color=resColor, linewidth=2)
plot(getSup(a*350), title="Support 350", color=supColor, linewidth=2)
plot(getRes(a*400), title="Resistance 400", color=resColor, linewidth=2)
plot(getSup(a*400), title="Support 400", color=supColor, linewidth=2)
plot(getRes(a*450), title="Resistance 450", color=resColor, linewidth=2)
plot(getSup(a*450), title="Support 450", color=supColor, linewidth=2)
plot(getRes(a*500), title="Resistance 500", color=resColor, linewidth=2)
plot(getSup(a*500), title="Support 500", color=supColor, linewidth=2)
plot(getRes(a*750), title="Resistance 750", color=resColor, linewidth=2)
plot(getSup(a*750), title="Support 750", color=supColor, linewidth=2)
plot(getRes(a*1000), title="Resistance 1000", color=resColor, linewidth=2)
plot(getSup(a*1000), title="Support 1000", color=supColor, linewidth=2)
plot(getRes(a*1250), title="Resistance 1250", color=resColor, linewidth=2)
plot(getSup(a*1250), title="Support 1250", color=supColor, linewidth=2)
plot(getRes(a*1500), title="Resistance 1500", color=resColor, linewidth=2)
plot(getSup(a*1500), title="Support 1500", color=supColor, linewidth=2)
Market Cipher With DivegencesAnother look into classic ;)
My take on Market Cypher with new money line and DIVERGENCES!!!
Enjoy!
Understand Daily ATR & SDTR Context on SPXWHY
Every trader needs clarity.
Markets move quickly, volatility shifts without warning, and daily price action often feels chaotic unless you understand the context behind it.
When you know where you are inside the day’s expected range and volatility environment, decision-making becomes more objective, disciplined, and confident.
That’s the purpose of this tool:
to give traders a clearer sense of intraday reality so they can act with intention instead of impulse.
________________________________________
HOW
It does this by anchoring each session to a set of objective, volatility-based reference points:
• Daily ATR projections that outline the day’s typical movement range
• A standardized deviation envelope (SDTR) that highlights areas of expansion or exhaustion
• RTH-aligned resets, so the levels refresh cleanly at the start of each session
These elements work together to form a steady, unbiased framework around each trading day.
________________________________________
WHAT
The result is a daily ATR + SDTR context overlay, now available free on TradingView.
It provides:
• Expected daily high/low zones based on smoothed ATR
• A volatility shell around the prior close
• Daily context levels that reset automatically at each RTH open
• A clean, unobtrusive visual guide for interpreting intraday price behavior
It works on any intraday timeframe and integrates seamlessly with your existing workflow — structure, VWAP, volume analysis, price action, Fibonacci levels, or your preferred set of signals.
This isn’t a trading system.
It’s a lens — designed to help traders see the day more clearly.
SMA Cross + KC Breakout + ATR StopThis is the same script previously published with the exception of utilizing SMA vs EMA for those who prefer that moving average type.
EMA Cloud5 EMA works as a single indicator.
You can see 8-21-55-100-200 EMAs all together in one indicator.
There is also a cloud between the 8 and 21 EMA. When the 8 EMA is above the 21 EMA, the cloud appears green. When the 21 EMA is above the 8 EMA, the cloud appears red.






















