Candle Eraser (New York Time, Dropdown)If you want to focus on first 3 hours of Asia, London> and New York, inspired by Stacey Burke Trading 12 Candle Window Concept
- Set your time to UTC-4 New York
Candlestick analysis
Linda MACD Divergence w/ Lines + Cam FilterThis is the first draft. Advise using 3 for Diff for Divergence.
BU BE Combined Indicator with Momentum**Bullish Engulfing and Bearish Engulfing Indicator with Momentum**
🔍 **Description:**
This indicator detects Bullish Engulfing (BE) and Bearish Engulfing (BE) candlestick patterns of type 1 and type 2 with strong momentum confirmation. Only signals with high momentum are displayed.
🚀 **Key Features:**
* Identifies Bullish Engulfing type 1 and type 2, as well as Bearish Engulfing type 1 and type 2 patterns.
* Momentum confirmation: strong bullish candles are highlighted in blue, strong bearish candles in yellow.
* Prevents false signals by ensuring only valid momentum patterns are displayed.
✅ **Benefits:**
* Helps traders identify candlestick patterns with strong momentum.
* Enhances the accuracy of technical analysis.
🚨 **Note:**
This indicator is a technical analysis tool and does not guarantee profit. Use it in combination with other technical analysis methods.
💡 **Usage Tips:**
* Suitable for time frames M15 and above.
* Best used with price action strategies or your preferred entry method.
Enjoy more precise trading with the Bullish Engulfing and Bearish Engulfing Indicator with Momentum! 🚀
BU BE Combined Indicator with Momentum**Bullish Engulfing and Bearish Engulfing Indicator with Momentum**
🔍 **Description:**
This indicator detects Bullish Engulfing (BE) and Bearish Engulfing (BE) candlestick patterns of type 1 and type 2 with strong momentum confirmation. Only signals with high momentum are displayed.
🚀 **Key Features:**
* Identifies Bullish Engulfing type 1 and type 2, as well as Bearish Engulfing type 1 and type 2 patterns.
* Momentum confirmation: strong bullish candles are highlighted in blue, strong bearish candles in yellow.
* Prevents false signals by ensuring only valid momentum patterns are displayed.
✅ **Benefits:**
* Helps traders identify candlestick patterns with strong momentum.
* Enhances the accuracy of technical analysis.
🚨 **Note:**
This indicator is a technical analysis tool and does not guarantee profit. Use it in combination with other technical analysis methods.
💡 **Usage Tips:**
* Suitable for time frames M15 and above.
* Best used with price action strategies or your preferred entry method.
Enjoy more precise trading with the Bullish Engulfing and Bearish Engulfing Indicator with Momentum! 🚀
Trend-Based High Vol Doji (Pullback Reversal)This TradingView script identifies high-probability reversal Doji candles that appear after pullbacks within a larger trend, using Heiken Ashi candles and volume confirmation.
ORB PRO - StabilIT works.the strategy is really good and will make everyone tons and tons of money and totally not make you part of the liquidity I target on a day to day basis the strategy is really good and will make everyone tons and tons of money and totally not make you partthe strategy is really good and will make everyone tons and tons of money and totally not make you part of the liquidity I target on a day to day basis the strategy is really good and will make everyone tons and tons of money and totally not make you partthe strategy is really good and will make everyone tons and tons of money and totally not make you part of the liquidity I target on a day to day basis the strategy is really good and will make everyone tons and tons of money and totally not make you partthe strategy is really good and will make everyone tons and tons of money and totally not make you part of the liquidity I target on a day to day basis the strategy is really good and will make everyone tons and tons of money and totally not make you partthe strategy is really good and will make everyone tons and tons of money and totally not make you part of the liquidity I target on a day to day basis the strategy is really good and will make everyone tons and tons of money and totally not make you part
Moving Average Convergence DivergenceThe MACD indicator dedicated to the K-line kinetic theory has added different background colors for the yellow line above and below the zero axis + modified the default value of the MACD energy column (*2)
K线动能理论专用的MACD指标,添加了黄线在零轴之上和之下不同的背景色+修改了默认的MACD能量柱的值(*2)
A+ Trade Checklist
See bearish or bullish trends for QQQ and SPY
Check if the ticker is above or below important levels like Previous Day High/Low and Premarket High/Low
Set your own X-minute High/Low and see if the price is above or below
Set your own EMA and check if the price is above or below
Choose the corner of the chart to display the table
Customize all colors to match your preferences
Trend [ALEXtrader]📊 Indicator Description (XAU/USD 1H - TradingView)
This indicator detects accumulation and distribution zones using low volatility periods, followed by breakouts, to generate BUY or SELL signals. It marks entries, take profit (TP), and stop loss (SL) levels directly on the chart, and visually highlights the price consolidation zones with colored rectangles.
✅ Key Features:
Signal Labels:
Green (BUY): Entry after price breaks upward from a consolidation box.
Red (SELL): Entry after price breaks downward from a consolidation box.
Each signal includes:
Entry price
TP (Take Profit) level
SL (Stop Loss) level
Colored Boxes (Rectangles):
Represent consolidation zones or accumulation/distribution phases.
Appear before a breakout signal is generated.
Colors vary slightly (e.g., blue, purple, gray) for visual distinction.
Calculation Logic (implied):
Boxes likely based on price range during low volatility periods.
Breakouts are detected when price closes outside the range of the box.
TP and SL levels are probably determined by a fixed ratio or measured from the box size.
Volume Histogram:
Displayed below the chart for additional context, possibly to confirm breakout strength.
ALEX Trader📊 Indicator Description (XAU/USD 1H - TradingView)
This indicator detects accumulation and distribution zones using low volatility periods, followed by breakouts, to generate BUY or SELL signals. It marks entries, take profit (TP), and stop loss (SL) levels directly on the chart, and visually highlights the price consolidation zones with colored rectangles.
✅ Key Features:
Signal Labels:
Green (BUY): Entry after price breaks upward from a consolidation box.
Red (SELL): Entry after price breaks downward from a consolidation box.
Each signal includes:
Entry price
TP (Take Profit) level
SL (Stop Loss) level
Colored Boxes (Rectangles):
Represent consolidation zones or accumulation/distribution phases.
Appear before a breakout signal is generated.
Colors vary slightly (e.g., blue, purple, gray) for visual distinction.
Calculation Logic (implied):
Boxes likely based on price range during low volatility periods.
Breakouts are detected when price closes outside the range of the box.
TP and SL levels are probably determined by a fixed ratio or measured from the box size.
Volume Histogram:
Displayed below the chart for additional context, possibly to confirm breakout strength.
Sniper Entry Pro v1.6.2 – Bubble Polished Edition
//@version=5
indicator("Sniper Entry Pro v1.6.2 – Bubble Polished Edition", overlay=true)
// === INPUTS ===
showSignals = input.bool(true, "Show Entry Signals")
showDelta = input.bool(true, "Show Delta Strength?")
showBubbles = input.bool(true, "Show Signal Bubbles?")
showSMA = input.bool(true, "Show Moving Averages?")
showTargets = input.bool(true, "Show TP1/TP2/TP3?")
showSidewaysAlert = input.bool(true, "Show Sideways Market Warning?")
// === INDICATORS ===
rsi = ta.rsi(close, 14)
cci = ta.cci(close, 20)
sma10 = ta.sma(close, 10)
sma20 = ta.sma(close, 20)
sma50 = ta.sma(close, 50)
sma100 = ta.sma(close, 100)
sma200 = ta.sma(close, 200)
// === DELTA & FOOTPRINT LOGIC ===
delta = (close - open) * volume
normalizedDelta = volume != 0 ? delta / volume : 0
upperWick = high - math.max(close, open)
lowerWick = math.min(close, open) - low
body = math.abs(close - open)
isRejection = upperWick > body * 1.5 or lowerWick > body * 1.5
prevHigh = ta.highest(close , 5)
prevLow = ta.lowest(close , 5)
bosUp = close > prevHigh
bosDown = close < prevLow
footprintBuy = normalizedDelta > 0.2 and rsi < 40 and cci < -100 and isRejection and bosUp
footprintSell = normalizedDelta < -0.2 and rsi > 60 and cci > 100 and isRejection and bosDown
// === SCORE SYSTEM
scoreBuy = (rsi >= 45 and rsi <= 51 ? 1 : 0) + (isRejection ? 1 : 0) + (normalizedDelta > 0 ? 1 : 0) + (close > sma20 ? 1 : 0)
scoreSell = (rsi < 55 ? 1 : 0) + (isRejection ? 1 : 0) + (normalizedDelta < 0 ? 1 : 0) + (close < sma20 ? 1 : 0)
watchBuy = scoreBuy == 3 and normalizedDelta > 0
watchSell = scoreSell == 3 and normalizedDelta < 0
call = (scoreBuy >= 4 or (scoreBuy == 3 and footprintBuy))
put = (scoreSell >= 4 or (scoreSell == 3 and footprintSell))
// === ENTRY / TP/SL
entry = close
zzDepth = 12
swingHigh = ta.highest(high, zzDepth)
swingLow = ta.lowest(low, zzDepth)
tp1 = call ? entry + (entry - swingLow) * 0.5 : put ? entry - (swingHigh - entry) * 0.5 : na
tp2 = call ? entry + (entry - swingLow) * 0.75 : put ? entry - (swingHigh - entry) * 0.75 : na
tp3 = call ? entry + (entry - swingLow) : put ? entry - (swingHigh - entry) : na
sl = call ? swingLow : put ? swingHigh : na
// === BAR COLORING
barcolor(showSignals ? (call ? color.green : put ? color.red : watchBuy ? color.new(color.green, 60) : watchSell ? color.new(color.red, 60) : na) : na)
// === DELTA LABEL
if showDelta
label.new(bar_index, low - syminfo.mintick * 10, str.tostring(delta, "#.##"), textcolor=color.white, size=size.tiny, style=label.style_label_left, color=delta > 0 ? color.new(color.green, 60) : color.new(color.red, 60))
// === BUBBLES (POSITIONED SOFTLY)
bodyTop = math.max(open, close)
bodyBot = math.min(open, close)
offsetY = syminfo.mintick * 20
if showBubbles and call
label.new(bar_index, bodyBot - offsetY, "CALL", style=label.style_label_up, size=size.normal, textcolor=color.white, color=color.new(color.green, 0))
if showBubbles and put
label.new(bar_index, bodyTop + offsetY, "PUT", style=label.style_label_down, size=size.normal, textcolor=color.white, color=color.new(color.red, 0))
if showBubbles and watchBuy
label.new(bar_index, bodyBot - offsetY, "B3", style=label.style_label_up, size=size.small, textcolor=color.white, color=color.new(color.green, 80))
if showBubbles and watchSell
label.new(bar_index, bodyTop + offsetY, "S3", style=label.style_label_down, size=size.small, textcolor=color.white, color=color.new(color.red, 80))
// === TP/SL PLOTS
plot(showTargets and not na(tp1) ? tp1 : na, title="TP1", color=color.green, style=plot.style_linebr)
plot(showTargets and not na(tp2) ? tp2 : na, title="TP2", color=color.teal, style=plot.style_linebr)
plot(showTargets and not na(tp3) ? tp3 : na, title="TP3", color=color.blue, style=plot.style_linebr)
plot(showTargets and not na(sl) ? sl : na, title="SL", color=color.red, style=plot.style_linebr)
// === SMA
plot(showSMA ? sma10 : na, color=color.gray, title="SMA10")
plot(showSMA ? sma20 : na, color=color.blue, title="SMA20")
plot(showSMA ? sma50 : na, color=color.orange, title="SMA50")
plot(showSMA ? sma100 : na, color=color.purple, title="SMA100")
plot(showSMA ? sma200 : na, color=color.red, title="SMA200")
// === SIDEWAYS WARNING
range20 = ta.highest(high, 20) - ta.lowest(low, 20)
atr14 = ta.atr(14)
isSideways = range20 < atr14 * 1.5
if showSidewaysAlert and isSideways
label.new(bar_index, high + syminfo.mintick * 30, "⚠️ Sideways", style=label.style_label_down, textcolor=color.black, size=size.small, color=color.new(color.yellow, 60))
// === ALERTS
alertcondition(call, title="CALL Confirmed", message="CALL Signal Triggered")
alertcondition(put, title="PUT Confirmed", message="PUT Signal Triggered")
alertcondition(watchBuy, title="Watch Buy", message="Watch Buy Signal")
alertcondition(watchSell, title="Watch Sell", message="Watch Sell Signal")
Golden Pattern Detector Pro v2.0 – All Patterns Edition
//@version=5
indicator("Golden Pattern Detector Pro v2.0 – All Patterns Edition", overlay=true)
// === Inputs ===
showCup = input.bool(true, title="Show Cup & Handle")
showHNS = input.bool(true, title="Show Head & Shoulders")
showDouble = input.bool(true, title="Show Double Top / Bottom")
showWedge = input.bool(true, title="Show Wedge Pattern")
showTriangle = input.bool(true, title="Show Triangle Pattern")
showAdamEve = input.bool(true, title="Show Adam & Eve Pattern")
showChannel = input.bool(true, title="Show Price Channel")
showTargets = input.bool(true, title="Show TP Targets")
showLabels = input.bool(true, title="Show Pattern Labels")
forceMode = input.bool(false, title="Enable Force Mode (Relax Pattern Conditions)")
// === Helpers ===
pivotHigh = ta.pivothigh(high, 5, 5)
pivotLow = ta.pivotlow(low, 5, 5)
relDiff(a, b) => math.abs(a - b) / a
createLabel(_x, _y, _txt, _style, _txtcolor) =>
if showLabels
label.new(x=_x, y=_y, text=_txt, style=_style, textcolor=_txtcolor)
// === Cup & Handle ===
if showCup
cupBottom = pivotLow
leftRim = pivotHigh
rightRim = pivotHigh
handleLow = pivotLow
if not na(cupBottom) and not na(leftRim) and not na(rightRim)
rimDiff = relDiff(leftRim, rightRim)
rimTol = forceMode ? 0.4 : 0.2
isCup = leftRim > cupBottom and rightRim > cupBottom and rimDiff < rimTol
if isCup
line.new(bar_index , leftRim, bar_index , cupBottom, color=color.green)
line.new(bar_index , cupBottom, bar_index , rightRim, color=color.green)
if not na(handleLow)
line.new(bar_index , rightRim, bar_index, handleLow, color=color.orange)
createLabel(bar_index, high, "Cup & Handle", label.style_label_up, color.green)
if showTargets
tp = rightRim + (rightRim - cupBottom)
line.new(bar_index + 1, rightRim, bar_index + 10, tp, color=color.green, style=line.style_dashed)
// === Head & Shoulders ===
if showHNS
ls = pivotHigh
h = pivotHigh
rs = pivotHigh
nl = pivotLow
if not na(ls) and not na(h) and not na(rs)
diff = relDiff(ls, rs)
tol = forceMode ? 0.4 : 0.2
isHNS = h > ls and h > rs and diff < tol
if isHNS and not na(nl)
line.new(bar_index , nl, bar_index, nl, color=color.red)
createLabel(bar_index, high, "Head & Shoulders", label.style_label_down, color.red)
if showTargets
tp = nl - (h - nl)
line.new(bar_index + 1, nl, bar_index + 10, tp, color=color.red, style=line.style_dashed)
// === Double Top / Bottom ===
if showDouble
top1 = pivotHigh
top2 = pivotHigh
bot1 = pivotLow
bot2 = pivotLow
tol = forceMode ? 0.03 : 0.01
isTop = not na(top1) and not na(top2) and relDiff(top1, top2) < tol
isBot = not na(bot1) and not na(bot2) and relDiff(bot1, bot2) < tol
if isTop and not na(pivotLow )
nl = pivotLow
line.new(bar_index , nl, bar_index, nl, color=color.red)
createLabel(bar_index, high, "Double Top", label.style_label_down, color.red)
if showTargets
tp = nl - (top1 - nl)
line.new(bar_index + 1, nl, bar_index + 10, tp, color=color.red, style=line.style_dashed)
if isBot and not na(pivotHigh )
nl = pivotHigh
line.new(bar_index , nl, bar_index, nl, color=color.green)
createLabel(bar_index, low, "Double Bottom", label.style_label_up, color.green)
if showTargets
tp = nl + (nl - bot1)
line.new(bar_index + 1, nl, bar_index + 10, tp, color=color.green, style=line.style_dashed)
// === Wedge ===
if showWedge
top1 = pivotHigh
top2 = pivotHigh
bot1 = pivotLow
bot2 = pivotLow
if not na(top1) and not na(top2) and not na(bot1) and not na(bot2)
isFall = top1 > top2 and bot1 > bot2
isRise = top1 < top2 and bot1 < bot2
if isFall
line.new(bar_index , top1, bar_index , top2, color=color.green)
line.new(bar_index , bot1, bar_index , bot2, color=color.green)
createLabel(bar_index, low, "Falling Wedge", label.style_label_up, color.green)
if isRise
line.new(bar_index , top1, bar_index , top2, color=color.red)
line.new(bar_index , bot1, bar_index , bot2, color=color.red)
createLabel(bar_index, high, "Rising Wedge", label.style_label_down, color.red)
// === Triangle ===
if showTriangle
h1 = pivotHigh
h2 = pivotHigh
l1 = pivotLow
l2 = pivotLow
if not na(h1) and not na(h2) and not na(l1) and not na(l2)
isSym = h1 > h2 and l1 < l2
isAsc = h1 > h2 and l1 > l2
isDesc = h1 < h2 and l1 < l2
if isSym
line.new(bar_index , h1, bar_index , h2, color=color.orange)
line.new(bar_index , l1, bar_index , l2, color=color.orange)
createLabel(bar_index, high, "Symmetrical Triangle", label.style_label_down, color.orange)
if isAsc
line.new(bar_index , h1, bar_index , h2, color=color.green)
line.new(bar_index , l1, bar_index , l2, color=color.green)
createLabel(bar_index, high, "Ascending Triangle", label.style_label_down, color.green)
if isDesc
line.new(bar_index , h1, bar_index , h2, color=color.red)
line.new(bar_index , l1, bar_index , l2, color=color.red)
createLabel(bar_index, high, "Descending Triangle", label.style_label_down, color.red)
// === Adam & Eve ===
if showAdamEve
adam = pivotLow
eve = pivotLow
neckline = pivotHigh
if not na(adam) and not na(eve) and not na(neckline) and adam == eve
line.new(bar_index, neckline, bar_index + 10, neckline, color=color.fuchsia)
createLabel(bar_index, low, "Adam & Eve", label.style_label_up, color.fuchsia)
// === Channel ===
if showChannel
chH1 = pivotHigh
chH2 = pivotHigh
chL1 = pivotLow
chL2 = pivotLow
if not na(chH1) and not na(chH2) and not na(chL1) and not na(chL2)
line.new(bar_index , chH1, bar_index , chH2, color=color.blue)
line.new(bar_index , chL1, bar_index , chL2, color=color.blue)
createLabel(bar_index, high, "Price Channel", label.style_label_down, color.blue)
Golden Pattern – Head & Shoulders v2.2//@version=5
indicator("Golden Pattern – Head & Shoulders v2.2", overlay=true)
enable_HS = input.bool(true, "Enable Head & Shoulders Detection")
show_targets = input.bool(true, "Show TP1/TP2/TP3 Levels")
min_dist = input.int(5, "Min Distance Between Points", minval=3)
sensitivity = input.float(1.5, "Deviation %", minval=0.1)
sl_buffer = input.float(0.5, "SL Buffer %")
// نقاط محورية
ph = ta.pivothigh(high, min_dist, min_dist)
pl = ta.pivotlow(low, min_dist, min_dist)
// تخزين الرأس والكتفين
var float sh1 = na
var float head = na
var float sh2 = na
var int sh1_bar = na
var int head_bar = na
var int sh2_bar = na
var float ish1 = na
var float ihead = na
var float ish2 = na
var int ish1_bar = na
var int ihead_bar = na
var int ish2_bar = na
// رأس وكتفين (بيع)
if not na(ph)
if na(sh1)
sh1 := ph
sh1_bar := bar_index
else if na(head) and ph > sh1 and bar_index - sh1_bar > min_dist
head := ph
head_bar := bar_index
else if na(sh2) and ph < head and math.abs(ph - sh1)/sh1 < sensitivity/100 and bar_index - head_bar > min_dist
sh2 := ph
sh2_bar := bar_index
else
sh1 := ph
sh1_bar := bar_index
head := na
sh2 := na
// رأس وكتفين معكوس (شراء)
if not na(pl)
if na(ish1)
ish1 := pl
ish1_bar := bar_index
else if na(ihead) and pl < ish1 and bar_index - ish1_bar > min_dist
ihead := pl
ihead_bar := bar_index
else if na(ish2) and pl > ihead and math.abs(pl - ish1)/ish1 < sensitivity/100 and bar_index - ihead_bar > min_dist
ish2 := pl
ish2_bar := bar_index
else
ish1 := pl
ish1_bar := bar_index
ihead := na
ish2 := na
// خطوط الرقبة
neckline_sell = (sh1 + sh2) / 2
neckline_buy = (ish1 + ish2) / 2
sell_break = enable_HS and not na(sh2) and close < neckline_sell and bar_index > sh2_bar
buy_break = enable_HS and not na(ish2) and close > neckline_buy and bar_index > ish2_bar
// TP / SL
depth_sell = head - neckline_sell
depth_buy = neckline_buy - ihead
tp1_sell = sell_break ? close - depth_sell : na
tp2_sell = sell_break ? close - depth_sell * 1.5 : na
tp3_sell = sell_break ? close - depth_sell * 2.0 : na
sl_sell = sell_break ? head + head * sl_buffer / 100 : na
tp1_buy = buy_break ? close + depth_buy : na
tp2_buy = buy_break ? close + depth_buy * 1.5 : na
tp3_buy = buy_break ? close + depth_buy * 2.0 : na
sl_buy = buy_break ? ihead - ihead * sl_buffer / 100 : na
// منع التكرار
var bool lastBuyPlotted = false
var bool lastSellPlotted = false
var bool plotBuySignal = false
var bool plotSellSignal = false
plotBuySignal := false
plotSellSignal := false
if buy_break and not lastBuyPlotted
plotBuySignal := true
lastBuyPlotted := true
lastSellPlotted := false
if sell_break and not lastSellPlotted
plotSellSignal := true
lastSellPlotted := true
lastBuyPlotted := false
// إشارات الدخول
plotshape(plotBuySignal, location=location.belowbar, style=shape.labelup, color=color.green, text="BUY")
plotshape(plotSellSignal, location=location.abovebar, style=shape.labeldown, color=color.red, text="SELL")
// رسم الأهداف (مع زر تحكم)
if plotBuySignal and show_targets
line.new(bar_index, tp1_buy, bar_index + 20, tp1_buy, color=color.green)
line.new(bar_index, tp2_buy, bar_index + 20, tp2_buy, color=color.teal)
line.new(bar_index, tp3_buy, bar_index + 20, tp3_buy, color=color.blue)
line.new(bar_index, sl_buy, bar_index + 20, sl_buy, color=color.red)
if plotSellSignal and show_targets
line.new(bar_index, tp1_sell, bar_index + 20, tp1_sell, color=color.green)
line.new(bar_index, tp2_sell, bar_index + 20, tp2_sell, color=color.teal)
line.new(bar_index, tp3_sell, bar_index + 20, tp3_sell, color=color.blue)
line.new(bar_index, sl_sell, bar_index + 20, sl_sell, color=color.red)
Sniper Pro v4.6 – Final Dynamic Edition//@version=5
indicator("Sniper Pro v4.6 – Final Dynamic Edition", overlay=true)
// === INPUTS ===
showInfoBubble = input.bool(true, "Show Info Bubble")
showSMBubble = input.bool(true, "Show Smart Money Bubble")
showVWAP = input.bool(true, "Show VWAP")
showSMA20 = input.bool(true, "Show SMA20")
showSideways = input.bool(true, "Show Sideways Warning")
depth = input.int(12, "Golden Zone Depth")
// === INDICATORS ===
sma20 = ta.sma(close, 20)
vwapVal = ta.vwap
// === GOLDEN ZONE ===
ph = ta.pivothigh(high, depth, depth)
pl = ta.pivotlow(low, depth, depth)
var float lastHigh = na
var float lastLow = na
lastHigh := not na(ph) ? ph : lastHigh
lastLow := not na(pl) ? pl : lastLow
fullrange = lastHigh - lastLow
goldenTop = lastHigh - fullrange * 0.618
goldenBot = lastHigh - fullrange * 0.786
inGoldenZone = close >= goldenBot and close <= goldenTop
// === DELTA ===
delta = (close - open) * volume
absDelta = math.abs(delta)
deltaStr = absDelta > 1e6 ? str.tostring(delta / 1e6, "#.##") + "M" :
absDelta > 1e3 ? str.tostring(delta / 1e3, "#.##") + "K" :
str.tostring(delta, "#.##")
// === CANDLE STRENGTH ===
body = math.abs(close - open)
wick = high - low
strength = body / (wick + 1e-10)
strengthLevel = strength > 0.8 ? "5/5" : strength > 0.6 ? "4/5" : strength > 0.4 ? "3/5" : strength > 0.2 ? "2/5" : "1/5"
// === CANDLE PATTERNS ===
bullEngulf = close > open and close < open and close > open and open < close
bearEngulf = close < open and close > open and close < open and open > close
hammer = close > open and (open - low) > 1.5 * body
shootingStar = open > close and (high - open) > 1.5 * body
morningStar = close < open and close < open and close > ((open + close ) / 2)
eveningStar = close > open and close > open and close < ((open + close ) / 2)
pattern = bullEngulf ? "Bull Engulfing" : bearEngulf ? "Bear Engulfing" : hammer ? "Hammer" :
shootingStar ? "Shooting Star" : morningStar ? "Morning Star" :
eveningStar ? "Evening Star" : ""
// === BAR COLORING ===
barcolor(absDelta > 2 * ta.sma(absDelta, 14) ? (delta > 0 ? color.green : color.red) : na)
// === DYNAMIC INFO BUBBLE ===
var label infoBubble = na
if na(infoBubble)
infoBubble := label.new(bar_index, high, "", style=label.style_label_up, size=size.small, textcolor=color.white, color=color.new(color.gray, 80))
if showInfoBubble
infoText = "O: " + str.tostring(open, "#.##") +
" H: " + str.tostring(high, "#.##") +
" L: " + str.tostring(low, "#.##") +
" C: " + str.tostring(close, "#.##") +
" Δ: " + deltaStr +
(pattern != "" ? " Pattern: " + pattern : "") +
" Power: " + strengthLevel
label.set_xy(infoBubble, bar_index, high + syminfo.mintick * 15)
label.set_text(infoBubble, infoText)
// === SMART MONEY BUBBLE ===
efficiency = body / (wick + 1e-10)
isExplosive = efficiency > 0.6 and absDelta > 2 * ta.sma(absDelta, 14)
smBuy = close > open and isExplosive and inGoldenZone and close > sma20
smSell = close < open and isExplosive and inGoldenZone and close < sma20
var label smBubble = na
if not na(smBubble)
label.delete(smBubble)
if showSMBubble and (smBuy or smSell)
smBubble := label.new(bar_index, smBuy ? low - syminfo.mintick * 15 : high + syminfo.mintick * 15,smBuy ? "SM Buy" : "SM Sell",style=smBuy ? label.style_label_up : label.style_label_down,size=size.normal,color=smBuy ? color.yellow : color.orange,textcolor=color.black)
// === SIDEWAYS WARNING ===
range20 = ta.highest(high, 20) - ta.lowest(low, 20)
atr = ta.atr(14)
isSideways = range20 < atr * 1.5
blinking = showSideways and isSideways and bar_index % 2 == 0
plotshape(blinking, title="Sideways", location=location.top, style=shape.triangleup, size=size.small, color=color.new(color.yellow, 0), text="⚠️")
// === PLOTS ===
plot(showVWAP ? vwapVal : na, title="VWAP", color=color.aqua)
plot(showSMA20 ? sma20 : na, title="SMA20", color=color.yellow)
plot(goldenTop, title="Golden Top", color=color.yellow)
plot(goldenBot, title="Golden Bottom", color=color.orange)
Bertozzi Mini Dollar
This echnical indicator uses an adaptive Gaussian filter to calculate dynamic bands around the price, based on the mean absolute error (MAE). It allows you to switch between two modes:
Repaint Mode (Live Preview) : Bands are adjusted in real time with greater smoothness, but with less historical accuracy.
Fixed Mode (No-Repaint) : Bands are calculated without repainting, ensuring reliability for automated testing and strategies.
Buy and sell signals are generated when price crosses above or below the dynamic bands and can be used to detect short-term reversals.
Ideal for high volatility assets such as the mini dollar (WDO), providing a powerful statistical and visual perspective for scalping or day trading.
CSD, EC, ECSD & SPECIdentify Cliniq Model 5 elements. Identify EC with a line from previous H/L closed beyond, CSD, ECSD, and SPEC with markers. Or just use bar colors for SPEC.
Sniper Pro v4.4 – Candle & Flow Intelligence Edition
//@version=5
indicator("Sniper Pro v4.4 – Candle & Flow Intelligence Edition", overlay=true)
// === INPUTS ===
minScore = input.int(3, "Min Conditions for Entry", minval=1, maxval=5)
filterSideways = input.bool(true, "Block in Sideways?")
showDelta = input.bool(true, "Show Delta Counter?")
showSMA20 = input.bool(true, "Show SMA20")
showGoldenZone = input.bool(true, "Show Golden Zone?")
callColor = input.color(color.green, "CALL Color")
putColor = input.color(color.red, "PUT Color")
watchBuyCol = input.color(color.new(color.green, 70), "Watch Buy Color")
watchSellCol = input.color(color.new(color.red, 70), "Watch Sell Color")
// === INDICATORS ===
sma20 = ta.sma(close, 20)
// === DELTA CALCULATIONS ===
delta = (close - open) * volume
normalizedDelta = volume != 0 ? delta / volume : 0
deltaStrength = delta - delta
// === EXPLOSIVE CANDLE ===
body = math.abs(close - open)
wickTop = high - math.max(close, open)
wickBottom = math.min(close, open) - low
isRejection = wickTop > body or wickBottom > body
highVolume = volume > ta.highest(volume, 5)
efficiency = body / volume
isExplosive = isRejection and highVolume and efficiency > 0
// === SMART MONEY CANDLE LOGIC ===
smBuy = isExplosive and delta > 0 and close > open and close > sma20
smSell = isExplosive and delta < 0 and close < open and close < sma20
smStrength = math.min(5, math.round(math.abs(delta) / 100000))
if smBuy
label.new(bar_index, low, "SM Buy " + str.tostring(smStrength), style=label.style_label_up, size=size.normal, color=color.new(color.yellow, 0), textcolor=color.black)
if smSell
label.new(bar_index, high, "SM Sell " + str.tostring(smStrength), style=label.style_label_down, size=size.normal, color=color.new(color.orange, 0), textcolor=color.black)
// === BASIC SIGNAL SYSTEM ===
inGoldenZone = close > sma20 * 0.96 and close < sma20 * 1.04
buyScore = (inGoldenZone ? 1 : 0) + (normalizedDelta > 0.2 ? 1 : 0) + (close > sma20 ? 1 : 0)
sellScore = (inGoldenZone ? 1 : 0) + (normalizedDelta < -0.2 ? 1 : 0) + (close < sma20 ? 1 : 0)
watchBuy = buyScore == (minScore - 1)
watchSell = sellScore == (minScore - 1)
call = buyScore >= minScore
put = sellScore >= minScore
// === COLORING ===
barcolor(call ? callColor : put ? putColor : watchBuy ? watchBuyCol : watchSell ? watchSellCol : na)
// === LABELS ===
if call
label.new(bar_index, low, "CALL", style=label.style_label_up, size=size.normal, color=callColor, textcolor=color.white)
if put
label.new(bar_index, high, "PUT", style=label.style_label_down, size=size.normal, color=putColor, textcolor=color.white)
// === DELTA LABEL ===
deltaLabel = str.tostring(delta, "#.##")
if showDelta
label.new(bar_index, close, deltaLabel, style=label.style_label_left, size=size.tiny, textcolor=color.white, color=delta > 0 ? color.new(color.green, 70) : color.new(color.red, 70))
// === PLOTS ===
plot(showSMA20 ? sma20 : na, title="SMA20", color=color.yellow)
EMA-MACD-RSI Strategy PRO//@version=5
strategy("EMA-MACD-RSI Strategy PRO", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Indicatori ===
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
macdLine = ta.ema(close, 12) - ta.ema(close, 26)
signalLine = ta.ema(macdLine, 9)
rsi = ta.rsi(close, 14)
// === Condizioni Long ===
longCond = ta.crossover(ema20, ema50) and macdLine > signalLine and rsi > 50
if (longCond)
strategy.entry("Long", strategy.long)
// === Condizioni Short ===
shortCond = ta.crossunder(ema20, ema50) and macdLine < signalLine and rsi < 50
if (shortCond)
strategy.entry("Short", strategy.short)
// === Uscita ===
exitLong = ta.crossunder(macdLine, signalLine)
exitShort = ta.crossover(macdLine, signalLine)
if (exitLong)
strategy.close("Long")
if (exitShort)
strategy.close("Short")
// === Plot indicatori ===
plot(ema20, title="EMA 20", color=color.orange)
plot(ema50, title="EMA 50", color=color.teal)
// === Dashboard ===
var table dash = table.new(position.top_right, 2, 4, border_width=1)
if bar_index % 1 == 0
table.cell(dash, 0, 0, "Segnale", text_color=color.white, bgcolor=color.gray)
table.cell(dash, 1, 0, longCond ? "LONG" : shortCond ? "SHORT" : "-", text_color=color.white, bgcolor=longCond ? color.green : shortCond ? color.red : color.gray)
table.cell(dash, 0, 1, "RSI", text_color=color.white, bgcolor=color.gray)
table.cell(dash, 1, 1, str.tostring(rsi, format.mintick), text_color=color.white)
table.cell(dash, 0, 2, "MACD > Signal", text_color=color.white, bgcolor=color.gray)
table.cell(dash, 1, 2, str.tostring(macdLine > signalLine), text_color=color.white)
table.cell(dash, 0, 3, "EMA20 > EMA50", text_color=color.white, bgcolor=color.gray)
table.cell(dash, 1, 3, str.tostring(ema20 > ema50), text_color=color.white)
// === Alert ===
alertcondition(longCond, title="Segnale Long", message="LONG: EMA20 > EMA50, MACD > Signal, RSI > 50")
alertcondition(shortCond, title="Segnale Short", message="SHORT: EMA20 < EMA50, MACD < Signal, RSI < 50")
Strategia 9-30 Candle con Dashboard//@version=5
indicator("Strategia 9-30 Candle con Dashboard", overlay=true)
// Impostazioni EMA
ema9 = ta.ema(close, 9)
ema30 = ta.ema(close, 30)
plot(ema9, color=color.blue, title="EMA 9")
plot(ema30, color=color.red, title="EMA 30")
// RSI e filtro
rsi = ta.rsi(close, 14)
rsiFiltroLong = rsi > 50
rsiFiltroShort = rsi < 50
// Volume e filtro
volFiltroLong = volume > ta.sma(volume, 20)
volFiltroShort = volume > ta.sma(volume, 20)
// Condizioni LONG
longCondition = ta.crossover(ema9, ema30) and close > ema9 and close > ema30 and rsiFiltroLong and volFiltroLong
plotshape(longCondition, title="Entrata Long", location=location.belowbar, color=color.green, style=shape.labelup, text="LONG")
exitLong = ta.crossunder(ema9, ema30)
plotshape(exitLong, title="Uscita Long", location=location.abovebar, color=color.orange, style=shape.labeldown, text="EXIT")
// Condizioni SHORT
shortCondition = ta.crossunder(ema9, ema30) and close < ema9 and close < ema30 and rsiFiltroShort and volFiltroShort
plotshape(shortCondition, title="Entrata Short", location=location.abovebar, color=color.red, style=shape.labeldown, text="SHORT")
exitShort = ta.crossover(ema9, ema30)
plotshape(exitShort, title="Uscita Short", location=location.belowbar, color=color.orange, style=shape.labelup, text="EXIT")
// Background per segnali forti
bgcolor(longCondition ? color.new(color.green, 85) : na, title="BG Long")
bgcolor(shortCondition ? color.new(color.red, 85) : na, title="BG Short")
// Trailing Stop
var float trailPriceLong = na
var float trailPriceShort = na
trailPerc = input.float(0.5, title="Trailing Stop %", minval=0.1, step=0.1)
if (longCondition)
trailPriceLong := close * (1 - trailPerc / 100)
else if (close > trailPriceLong and not na(trailPriceLong))
trailPriceLong := math.max(trailPriceLong, close * (1 - trailPerc / 100))
if (shortCondition)
trailPriceShort := close * (1 + trailPerc / 100)
else if (close < trailPriceShort and not na(trailPriceShort))
trailPriceShort := math.min(trailPriceShort, close * (1 + trailPerc / 100))
plot(trailPriceLong, title="Trailing Stop Long", color=color.green, style=plot.style_linebr, linewidth=1)
plot(trailPriceShort, title="Trailing Stop Short", color=color.red, style=plot.style_linebr, linewidth=1)
// Dashboard
var table dashboard = table.new(position.top_right, 2, 4, border_width=1)
bgCol = color.new(color.gray, 90)
signal = longCondition ? "LONG" : shortCondition ? "SHORT" : "-"
signalColor = longCondition ? color.green : shortCondition ? color.red : color.gray
if bar_index % 1 == 0
table.cell(dashboard, 0, 0, "Segnale:", text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 1, 0, signal, text_color=color.white, bgcolor=signalColor)
table.cell(dashboard, 0, 1, "RSI:", text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 1, 1, str.tostring(rsi, format.mintick), text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 0, 2, "Volume:", text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 1, 2, str.tostring(volume, format.volume), text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 0, 3, "EMA9 > EMA30:", text_color=color.white, bgcolor=bgCol)
table.cell(dashboard, 1, 3, str.tostring(ema9 > ema30), text_color=color.white, bgcolor=bgCol)
// Alert
alertcondition(longCondition, title="Segnale Long", message="LONG: EMA9 incrocia EMA30, RSI > 50, volume alto")
alertcondition(shortCondition, title="Segnale Short", message="SHORT: EMA9 incrocia EMA30 verso il basso, RSI < 50, volume alto")
alertcondition(exitLong, title="Uscita Long", message="Uscita da LONG: EMA9 incrocia EMA30 verso il basso")
alertcondition(exitShort, title="Uscita Short", message="Uscita da SHORT: EMA9 incrocia EMA30 verso l'alto")
AlgoFlex Gold (XAUUSD)**AlgoFlex Gold 5 Min HA Signals**
**Description**
Unlock precision buy/sell signals on XAUUSD using Heikin Ashi candles on the 5-minute timeframe. AlgoFlex Gold combines momentum detection with dynamic take-profit and stop-loss levels to help you catch short-term swings in gold with clear entry and exit guidance.
**Key Features**
* **Heikin Ashi Momentum Filter**: Smooths noise for cleaner trends.
* **Real-Time Buy/Sell Alerts**: Notifications fire immediately when setups trigger.
**How to Use**
1. Apply this script to any XAUUSD chart.
2. Set your chart type to **Heikin Ashi** and timeframe to **5 minutes**.
3. Enable Alerts: open TradingView’s Alerts panel, choose an AlgoFlex Gold condition (Buy or Sell), configure “Once Per Bar Close,” then **Create**.
**Disclaimer**
Signals are **recommendations only**. Always manage your own risk—losses can exceed deposits.
---
🔒 **Invite-Only Access**
This script is available by subscription only. To subscribe and unlock all AlgoFlex indicators:
• **Download “AlgoFlex Algo Market”** on the App Store or Google Play
• Purchase your invite-only access to XAUUSD Gold and the full suite of Forex, Indices & Commodities scripts
• Get in-app support.
Elevate your gold trading—subscribe today!
EMA MAs 7EMA(ERJUANSTURK)All ema mas values are entered. 20, 50, 100,150,200,300,400. The indicator is designed simply and elegantly.
Price Action Forecast (ERJUANSTURK)█ Overview
The Price Action Color Forecast Indicator, is an innovative trading tool that uses the power of historical price action and candlestick patterns to predict potential future market movements. By analyzing the colors of the candlesticks and identifying specific price action events, this indicator provides traders with valuable insights into future market behavior based on past performance.
█ Calculations
The Price Action Color Forecast Indicator systematically analyzes historical price action events based on the colors of the candlesticks. Upon identifying a current price action coloring event, the indicator searches through its past data to find similar patterns that have happened before. By examining these past events and their outcomes, the indicator projects potential future price movements, offering traders valuable insights into how the market might react to the current price action event.
The indicator prioritizes the analysis of the most recent candlesticks before methodically progressing toward earlier data. This approach ensures that the generated candle forecast is based on the latest market dynamics.
The core functionality of the Price Action Color Forecast Indicator:
Analyzing historical price action events based on the colors of the candlesticks.
Identifying similar events from the past that correspond to the current price action coloring event.
Projecting potential future price action based on the outcomes of past similar events.
█ Example
In this example, we can see that the current price action pattern matches with a similar historical price action pattern that shares the same characteristics regarding candle coloring. The historical outcome is then projected into the future. This helps traders to understand how the past pattern evolved over time.
█ How to use
The indicator provides traders with valuable insights into how the market might react to the current price action event by examining similar historical patterns and projecting potential future price movements.
█ Settings
Candle series
The candle lookback length refers to the number of bars, starting from the current one, that will be examined in order to find a similar event in the past.
Forecast Candles
Number of candles to project into the future.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.