EMA Cross BUY SELL
ema1Length = input.int(10, "EMA1 Periyodu")
ema2Length = input.int(20, "EMA2 Periyodu")
emaLineWidth = input.int(3, "EMA Çizgi Kalınlığı", minval=1, maxval=10)
bgTransparency = input.int(85, "Arka Plan Saydamlığı", minval=0, maxval=100)
ema1 = ta.ema(close, ema1Length)
ema2 = ta.ema(close, ema2Length)
longSignal = ta.crossover(ema1, ema2)
shortSignal = ta.crossunder(ema1, ema2)
var int trend = 0
trend := longSignal ? 1 : shortSignal ? -1 : trend
barcolor(trend == 1 ? color.green : trend == -1 ? color.red : na)
bgcolor(trend == 1 ? color.new(color.green, bgTransparency) : trend == -1 ? color.new(color.red, bgTransparency) : na)
plot(ema1, color=trend == 1 ? color.green : trend == -1 ? color.red : color.gray, linewidth=emaLineWidth, title="EMA1")
plot(ema2, color=trend == 1 ? color.green : trend == -1 ? color.red : color.gray, linewidth=emaLineWidth, title="EMA2")
plotshape(longSignal, title="Al Ok", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.large)
plotshape(shortSignal, title="Sat Ok", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.large)
指标和策略
Basit BUY SELL//@version=5
indicator("Basit Yeşil Al - Kırmızı Sat", overlay=true)
// Mum renkleri
yesil = close > open
kirmizi = close < open
// Yeşil mumda AL oku
plotshape(yesil, title="AL", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.large, text="AL")
// Kırmızı mumda SAT oku
plotshape(kirmizi, title="SAT", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large, text="SAT")
SuperTrend Basit v5 - Agresif//@version=5
indicator("SuperTrend Basit v5 - Agresif", overlay=true)
// === Girdi ayarları ===
factor = input.float(3.0, "ATR Katsayısı")
atrPeriod = input.int(10, "ATR Periyodu")
// === Hesaplamalar ===
= ta.supertrend(factor, atrPeriod)
// === Çizim ===
bodyColor = direction == 1 ? color.new(color.lime, 0) : color.new(color.red, 0)
bgcolor(direction == 1 ? color.new(color.lime, 85) : color.new(color.red, 85))
plot(supertrend, color=bodyColor, linewidth=4, title="SuperTrend Çizgisi") // Kalın çizgi
// === Al/Sat sinyali ===
buySignal = ta.crossover(close, supertrend)
sellSignal = ta.crossunder(close, supertrend)
plotshape(buySignal, title="AL", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.large, text="AL")
plotshape(sellSignal, title="SAT", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large, text="SAT")
SuperTrend BUY SELL Color//@version=6
indicator("SuperTrend by Cell Color", overlay=true, precision=2)
// --- Parametreler ---
atrPeriod = input.int(10, "ATR Periyodu")
factor = input.float(3.0, "Çarpan")
showTrend = input.bool(true, "Trend Renkli Hücreleri Göster")
// --- ATR Hesaplama ---
atr = ta.atr(atrPeriod)
// --- SuperTrend Hesaplama ---
up = hl2 - factor * atr
dn = hl2 + factor * atr
var float trendUp = na
var float trendDown = na
var int trend = 1 // 1 = bullish, -1 = bearish
trendUp := (close > trendUp ? math.max(up, trendUp ) : up)
trendDown := (close < trendDown ? math.min(dn, trendDown ) : dn)
trend := close > trendDown ? 1 : close < trendUp ? -1 : trend
// --- Renkli Hücreler ---
barcolor(showTrend ? (trend == 1 ? color.new(color.green, 0) : color.new(color.red, 0)) : na)
// --- SuperTrend Çizgileri ---
plot(trend == 1 ? trendUp : na, color=color.green, style=plot.style_line, linewidth=2)
plot(trend == -1 ? trendDown : na, color=color.red, style=plot.style_line, linewidth=2)
Renkli EMA_MA CROSS
indicator("Renkli MA Kesişimi + Oklar", overlay=true, precision=2
fastLen = input.int(20, "Hızlı MA (Fast)")
slowLen = input.int(50, "Yavaş MA (Slow)")
maType = input.string("EMA", "MA Tipi", options= )
showArrows = input.bool(true, "Okları Göster")
fastMA = maType == "EMA" ? ta.ema(close, fastLen) : ta.sma(close, fastLen)
slowMA = maType == "EMA" ? ta.ema(close, slowLen) : ta.sma(close, slowLen)
barcolor(fastMA > slowMA ? color.new(color.green, 0) : color.new(color.red, 0))
longSignal = ta.crossover(fastMA, slowMA)
shortSignal = ta.crossunder(fastMA, slowMA)
plotshape(showArrows and longSignal, title="Al", style=shape.labelup, location=location.belowbar, color=color.green, size=size.large, text="AL")
plotshape(showArrows and shortSignal, title="Sat", style=shape.labeldown, location=location.abovebar, color=color.red, size=size.large, text="SAT")
plot(fastMA, color=color.blue, title="Hızlı MA")
plot(slowMA, color=color.orange, title="Yavaş MA")
EMA COLOR BUY SELL
indicator("EMA Tabanlı Renkli İndikatör", overlay=true)
emaLength = input.int(21, "EMA Periyodu")
fastEMA = ta.ema(close, emaLength)
slowEMA = ta.ema(close, emaLength * 2)
trendUp = fastEMA > slowEMA
trendDown = fastEMA < slowEMA
barcolor(trendUp ? color.new(color.green, 0) : trendDown ? color.new(color.red, 0) : color.gray)
plot(fastEMA, color=trendUp ? color.green : color.red, title="Fast EMA", linewidth=2)
plot(slowEMA, color=color.blue, title="Slow EMA", linewidth=2)
Daily Vertical Linesadjust the time hour and minute base on ur timeframe.
please note that for asian beijing time you will need to deduct 1 hour
Renkli Parabolic SAR - Sade Versiyon//@version=5
indicator("Renkli Parabolic SAR - Sade Versiyon", overlay=true)
// === PSAR Ayarları ===
psarStart = input.float(0.02, "PSAR Başlangıç (Step)", step=0.01)
psarIncrement = input.float(0.02, "PSAR Artış (Increment)", step=0.01)
psarMax = input.float(0.2, "PSAR Maksimum (Max)", step=0.01)
// === PSAR Hesaplama ===
psar = ta.sar(psarStart, psarIncrement, psarMax)
// === Trend Tespiti ===
bull = close > psar
bear = close < psar
// === Renk Ayarları ===
barColor = bull ? color.new(color.green, 0) : color.new(color.red, 0)
psarColor = bull ? color.green : color.red
bgColor = bull ? color.new(color.green, 90) : color.new(color.red, 90)
// === Mum ve PSAR ===
barcolor(barColor)
plotshape(bull, title="PSAR Bull", location=location.belowbar, style=shape.circle, size=size.tiny, color=color.green)
plotshape(bear, title="PSAR Bear", location=location.abovebar, style=shape.circle, size=size.tiny, color=color.red)
// === Arka Plan ===
bgcolor(bgColor)
// === Al / Sat Sinyalleri ===
buySignal = ta.crossover(close, psar)
sellSignal = ta.crossunder(close, psar)
plotshape(buySignal, title="AL", location=location.belowbar, style=shape.triangleup, size=size.large, color=color.lime)
plotshape(sellSignal, title="SAT", location=location.abovebar, style=shape.triangledown, size=size.large, color=color.red)
// === Alarm Koşulları ===
alertcondition(buySignal, title="AL Sinyali", message="Parabolic SAR Al Sinyali")
alertcondition(sellSignal, title="SAT Sinyali", message="Parabolic SAR Sat Sinyali")
Renkli EMA Crossover//@version=5
indicator("Renkli EMA Crossover", overlay=true)
// EMA periyotları
fastLength = input.int(9, "Hızlı EMA")
slowLength = input.int(21, "Yavaş EMA")
// EMA hesaplama
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
// EMA renkleri
fastColor = fastEMA > fastEMA ? color.green : color.red
slowColor = slowEMA > slowEMA ? color.blue : color.orange
// EMA çizgileri (agresif kalın)
plot(fastEMA, color=fastColor, linewidth=3, title="Hızlı EMA")
plot(slowEMA, color=slowColor, linewidth=3, title="Yavaş EMA")
// Kesişimler
bullCross = ta.crossover(fastEMA, slowEMA)
bearCross = ta.crossunder(fastEMA, slowEMA)
// Oklarla sinyal gösterimi
plotshape(bullCross, title="Al Sinyali", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.large)
plotshape(bearCross, title="Sat Sinyali", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.large)
RMA Trend
indicator("RMA Trend İndikatörü", overlay=true, timeframe="", timeframe_gaps=true)
length = input.int(14, "RMA Periyodu", minval=1)
src = input(close, "Kapanış Kaynağı")
rma_val = ta.rma(src, length)
rma_color = rma_val > rma_val ? color.new(color.lime, 0) : color.new(color.red, 0)
plot(rma_val, title="RMA", color=rma_color, linewidth=3
longSignal = ta.crossover(src, rma_val)
shortSignal = ta.crossunder(src, rma_val)
plotshape(longSignal, title="AL Sinyali", style=shape.triangleup, location=location.belowbar, color=color.new(color.lime, 0), size=size.large, text="AL")
plotshape(shortSignal, title="SAT Sinyali", style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.large, text="SAT")
bgcolor(rma_val > rma_val ? color.new(color.lime, 90) : color.new(color.red, 90))
Relative Volume Bollinger Band %
The Relative Volume Bollinger Band % indicator is a powerful tool designed for traders seeking insights into volume, Bollinger band and relative strength dynamics. This indicator assesses the deviation of a security's trading volume relative to the Bollinger band % indicator and the RSI moving average. Together, these shed light on potential zones of interests where market shifts have a high probability of occurring.
Key Features:
Period: Tailor the indicator's sensitivity by adjusting the period of the smooth moving average and/or the period of the Bollinger band.
How it Works:
Moving Average Calculation: The script computes the simple moving average (SMA) of the relative strength over a defined period. When the higher SMA (orange line) is in the top grey zone, the security is in a zone where it has a high probability of becoming bullish. When the higher SMA is in the lower grey zone, the security is in a zone where it has a high probability of becoming bearish.
-Bollinger Band %: The script also computes the BB% which is primarily used to confirm overbought and oversold areas. When overbought, it turns white and remains white until the overbuying pressure is released indicating that the security is about to become bearish. The script indicates a bearish reversal when the BB% and RVOL bars are both red or when there are no more yellow RVOL bars, if present. When the BB% is<0 and rising, it will also appear white with yellow RVOL bars above. This is a good indication that bulls are beginning to enter buying positions. Confirmation here is indicated when the yellow RVOL bars change to green.
Relative Volume: The indicator then also normalizes the difference volume to indicate areas of high and low volatility. This shows where higher than normal volumes are being traded and can be used as a good indication of when to enter or exit a trade when the above criterions are met.
Visual Representation: The result is visually represented on the chart using columns. Bright green columns signify bullish relative volume values that are much greater than normal. Green columns signify bullish relative volume values that are significant. Red columns represent bearish values that are significant. Blue columns on the BB% indicator represent significant bullish buying in overbought areas. Red columns on the BB% indicator that are < 0 represent a bearish trend that is in an oversold area. This is there to prevent early entry into the market.
Enhancements:
Areas of Interest: Optionally, Areas of interest are represented by red, yellow and green circles on the higher SMA line, aiding in the identification of significant deviations.
HA Line + Trend Oklar//@version=5
indicator("HA Line + Trend Oklar", overlay=true)
// Heiken Ashi hesaplamaları
haClose = (open + high + low + close) / 4
var float haOpen = na
haOpen := na(haOpen) ? (open + close) / 2 : (haOpen + haClose ) / 2
haHigh = math.max(high, math.max(haOpen, haClose))
haLow = math.min(low, math.min(haOpen, haClose))
// Trend yönüne göre renk
haColor = haClose >= haClose ? color.green : color.red
// HA kapanış çizgisi
plot(haClose, color=haColor, linewidth=3, title="HA Close Line")
// Agresif oklar ile trend gösterimi
upArrow = ta.crossover(haClose, haClose )
downArrow = ta.crossunder(haClose, haClose )
plotshape(upArrow, title="Up Arrow", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.large)
plotshape(downArrow, title="Down Arrow", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large)
Basit Trend AL/SAT//@version=5
indicator("Basit Trend AL/SAT", overlay=true)
yesil = close > open
kirmizi = close < open
1 = yeşil, -1 = kırmızı, 0 = başlangıç
var int trend = 0
trend := yesil ? 1 : kirmizi ? -1 : trend
al = yesil and trend != 1
sat = kirmizi and trend != -1
plotshape(al, title="AL", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.large, text="AL")
plotshape(sat, title="SAT", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large, text="SAT")
bgcolor(trend == 1 ? color.new(color.green, 85) : trend == -1 ? color.new(color.red, 85) : na)
Position Trdaing Lines (2 entries + live PnL)Position Trading Lines (2 entries + live PnL) is a utility script designed to visually manage a manual position on the chart, with clear TP/SL levels and real-time profit & loss.
The script does not place orders. It is meant to help you simulate / track an existing or planned position.
Features
• Up to 2 trades on the same symbol
• Each trade has:
• Direction: Long / Short
• Position size (lot)
• Entry price
• Take Profit (T.Profit) price
• Stop Loss (S.Loss) price
• Entry shift in bars from the last candle (to align with past or future entries)
• Visual lines on the price chart
• Horizontal line at the entry price
• Horizontal line at Take Profit
• Horizontal line at Stop Loss
• Informative labels
• Entry label showing: direction, size and @ entry price
• TP and SL labels showing:
• T.Profit / S.Loss
• position size
• @ price
• estimated PnL at that level
• If both trades share the same TP or SL price, a single combined label is shown with the total size and total PnL.
• Commissions
• Global commission input (percentage over notional).
• Commission is included in all PnL calculations.
• Live PnL label
• Real-time combined PnL of the active trades, updated on the last bar.
• Color changes with sign (green for profit, red for loss).
• Selective PnL for Trade 2
• Trade 2 has a switch: “Count PnL in total”.
• You can keep Trade 2 visible on the chart but exclude it from the combined PnL until it is actually active.
This tool is useful for discretionary traders who want a clean visual representation of their position, R:R, and projected outcomes directly on the chart, without relying on the broker’s position panel.
Hull MA Al-Sat/@version=6
indicator("Hull MA Al-Sat", overlay=true, max_lines_count=500, max_labels_count=500)
// Kullanıcı girişi
length = input.int(21, "HMA Periyodu")
hma_source = input.source(close, "HMA Kaynağı")
plotThickness = input.int(3, "Çizgi Kalınlığı")
// HMA hesaplama
wma1 = ta.wma(hma_source, math.round(length / 2))
wma2 = ta.wma(hma_source, length)
diff = 2 * wma1 - wma2
hma = ta.wma(diff, math.round(math.sqrt(length)))
// Renkli çizgi
hmaColor = hma > hma ? color.green : color.red
plot(hma, color=hmaColor, linewidth=plotThickness)
// Al/Sat okları
plotshape(ta.crossover(hma, hma ), title="Al", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.large)
plotshape(ta.crossunder(hma, hma ), title="Sat", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large)
ZLSMA Trend + Al/Sat Sinyali/@version=6
indicator("ZLSMA Trend + Al/Sat Sinyali", overlay=true, max_labels_count=500)
length = input.int(25, "ZLSMA Periyodu")
src = input.source(close, "Kaynak")
thickness = input.int(4, "Çizgi Kalınlığı")
colorUp = input.color(color.new(color.lime, 0), "Yükselen Renk")
colorDown = input.color(color.new(color.red, 0), "Düşen Renk")
ema1 = ta.ema(src, length)
ema2 = ta.ema(ema1, length)
zlsma = 2 * ema1 - ema2
trendUp = zlsma > zlsma
trendDown = zlsma < zlsma
zlsmaColor = trendUp ? colorUp : colorDown
plot(zlsma, title="ZLSMA", color=zlsmaColor, linewidth=thickness)
buySignal = ta.crossover(close, zlsma)
sellSignal = ta.crossunder(close, zlsma)
plotshape(buySignal, title="Al", location=location.belowbar, color=color.new(color.lime, 0), style=shape.triangleup, size=size.large, text="AL")
plotshape(sellSignal, title="Sat", location=location.abovebar, color=color.new(color.red, 0), style=shape.triangledown, size=size.large, text="SAT")
bgcolor(trendUp ? color.new(color.lime, 90) : color.new(color.red, 90))
T3 MA Basit ve Stabil//@version=5
indicator("T3 MA Basit ve Stabil", overlay=true)
length = input.int(14, "T3 Length")
vFactor = input.float(0.7, "vFactor")
lineWidth = input.int(3, "Çizgi Kalınlığı")
ema1 = ta.ema(close, length)
ema2 = ta.ema(ema1, length)
ema3 = ta.ema(ema2, length)
ema4 = ta.ema(ema3, length)
ema5 = ta.ema(ema4, length)
ema6 = ta.ema(ema5, length)
c1 = -vFactor * vFactor * vFactor
c2 = 3 * vFactor * vFactor + 3 * vFactor * vFactor * vFactor
c3 = -6 * vFactor * vFactor - 3 * vFactor - 3 * vFactor * vFactor * vFactor
c4 = 1 + 3 * vFactor + vFactor * vFactor * vFactor + 3 * vFactor * vFactor
t3 = c1*ema6 + c2*ema5 + c3*ema4 + c4*ema3
colorUp = color.green
colorDown = color.red
col = t3 > t3 ? colorUp : colorDown
plot(t3, color=col, linewidth=lineWidth)
barcolor(col)
plotshape(t3 > t3 and t3 <= t3 , location=location.belowbar, color=colorUp, style=shape.triangleup, size=size.small)
plotshape(t3 < t3 and t3 >= t3 , location=location.abovebar, color=colorDown, style=shape.triangledown, size=size.small)
Parabolic SAR (PSAR) - Basit//@version=5
indicator("Parabolic SAR (PSAR) - Basit", overlay=true)
start = input.float(0.02, "Start (Step)", step=0.01)
increment = input.float(0.02, "Increment", step=0.01)
maximum = input.float(0.2, "Maximum", step=0.01)
showDots = input.bool(true, "Dotları Göster")
showLine = input.bool(false, "PSAR Çizgisi Göster")
bgTrend = input.bool(true, "Arka planı trende göre renklendir")
psar = ta.sar(start, increment, maxim
bull = close > psar
bear = close < psar
psarColor = bull ? color.green : color.
plot(showLine ? psar : na, title="PSAR Line", color=psarColor, linewi
plotshape(showDots and bull, title="PSAR Bull Dot", location=location.belowbar, style=shape.circle, size=size.tiny, color=color.green)
plotshape(showDots and bear, title="PSAR Bear Dot", location=location.abovebar, style=shape.circle, size=size.tiny, color=color.red)
bgcolor(bgTrend ? (bull ? color.new(color.green, 90) : color.new(color.red, 90)) : n
buySignal = ta.crossover(close, psar)
sellSignal = ta.crossunder(close, psa
plotshape(buySignal, title="AL Sinyali", location=location.belowbar, style=shape.triangleup, size=size.small, color=color.green)
plotshape(sellSignal, title="SAT Sinyali", location=location.abovebar, style=shape.triangledown, size=size.small, color=color.red)
alertcondition(buySignal, title="AL (PSAR flip)", message="PSAR flip: AL sinyali")
alertcondition(sellSignal, title="SAT (PSAR flip)", message="PSAR flip: SAT sinyali")
Pops Dividend 7-Day RadarHow traders use it as a strategy anyway 🧠
In real life, this becomes a manual or semi-systematic strategy:
Strategy logic (human-driven):
Scan for highest yield stocks
Filter for ex-date within 7 days
Apply technical rules (trend, EMAs, support)
Enter before ex-date
Exit:
Before ex-date (momentum run-up)
On ex-date
Or after dividend (reversion play)
Indicator’s role:
“Tell me when a stock qualifies so I can decide how to trade it.”
That’s exactly what this tool does.
How we could turn this into a strategy-style framework
Even though Pine won’t let us backtest dividends properly, we can:
Build a rules-based checklist (entry/exit rules)
Create alerts that behave like strategy triggers
Combine with:
EMA trend filters
Volume conditions
ATR-based exits
Label it as:
“Pops Dividend Capture Playbook” (manual execution)
This keeps it honest, legal, and reliable.
Bottom line
🧩 Indicator = what we built
📘 Strategy = how you trade it using the indicator
⚠️ TradingView limitations prevent a true dividend strategy backtest
Order Flow Analysis [Master Alert]This script is a custom modification of the original "Order Flow Analysis" indicator by kingthies.
I have taken the original code and engineered a "Master Alert" system into it. Here is the breakdown of what this specific script does:
1. The Core Purpose: "One Ring to Rule Them All"
In the original script, if you wanted to catch every move, you would have to set up separate alerts for Divergences, Absorptions, Crosses, etc. This modified script combines all 8 possible signals into a single "Master Trigger."
2. What triggers the Alert?
The alert will fire if ANY of the following 4 events happen on a candle:
Divergence (The Arrows):
Green Arrow: Price makes lower low, Pressure makes higher low (Bullish).
Red Arrow: Price makes higher high, Pressure makes lower high (Bearish).
Absorption (The Transparent Bars):
Bull Absorption: Huge volume + Price won't drop (Hidden Buying).
Bear Absorption: Huge volume + Price won't rise (Hidden Selling).
Zero Line Crosses (The Sentiment Flip):
Bull Cross: Pressure score flips from Negative to Positive.
Bear Cross: Pressure score flips from Positive to Negative.
Strong Zones (Turbo Mode):
Strong Bull: Pressure score breaks above +50.
Strong Bear: Pressure score breaks below -50.
3. How to Use It
Add the script to your chart.
Create an Alert.
Select "Order Flow Master" as the Condition.
Select "MASTER ALERT (All Signals)".
Now, you will get a notification for every single significant event this indicator detects, without needing multiple alert slots.
RSI Divergence & Momentum Color//@version=5
// هذا مؤشر موحد يحدد الدايفرجنس (العادي والمخفي) ويقوم بتلوين الشموع حسب زخم RSI.
indicator(title="RSI Divergence & Momentum Color", shorttitle="RSI Divergence & MOM", overlay=true)
// --- 1. الإعدادات والمتغيرات (Inputs) ---
// إعدادات RSI
rsiLength = input.int(14, title="RSI Length", minval=1)
// إعدادات تحديد القمم والقيعان (Pivots)
pivotLeft = input.int(5, title="Pivot Lookback Left", minval=1)
pivotRight = input.int(5, title="Pivot Lookback Right", minval=1)
// --- 2. حساب مؤشر القوة النسبية (RSI Calculation) ---
rsi = ta.rsi(close, rsiLength)
// --- 3. تلوين الشموع حسب الزخم (RSI Momentum Color) ---
// فحص: هل RSI الحالي أكبر من RSI السابق؟
isRSIUp = rsi > rsi
// تحديد اللون بناءً على الشرط
var color colorRSI = na
// تلوين الشمعة باللون الأخضر إذا كان RSI صاعداً، وبالأحمر إذا كان هابطاً
if isRSIUp
colorRSI := color.new(color.green, 60) // أخضر فاتح
else
colorRSI := color.new(color.red, 60) // أحمر فاتح
// تطبيق تلوين الشمعة على الشارت الرئيسي
barcolor(colorRSI)
// --- 4. تحديد الدايفرجنس (Divergence Detection) ---
// تحديد القمم والقيعان على السعر
price_high_pivot = ta.pivothigh(high, pivotLeft, pivotRight)
price_low_pivot = ta.pivotlow(low, pivotLeft, pivotRight)
// تحديد القمم والقيعان على RSI
rsi_high_pivot = ta.pivothigh(rsi, pivotLeft, pivotRight)
rsi_low_pivot = ta.pivotlow(rsi, pivotLeft, pivotRight)
// *** المنطق المباشر للدايفرجنس (تظهر الإشارة عند القمة/القاع المكتملة) ***
// 🔵 الدايفرجنس العادي الصعودي (Regular Bullish Div)
isRegBull = price_low_pivot and rsi_low_pivot and low < low and rsi > rsi
// 🔴 الدايفرجنس العادي الهبوطي (Regular Bearish Div)
isRegBear = price_high_pivot and rsi_high_pivot and high > high and rsi < rsi
// 🟪 الدايفرجنس المخفي الصعودي (Hidden Bullish Div)
isHiddenBull = price_low_pivot and rsi_low_pivot and low > low and rsi < rsi
// 🟧 الدايفرجنس المخفي الهبوطي (Hidden Bearish Div)
isHiddenBear = price_high_pivot and rsi_high_pivot and high < high and rsi > rsi
// --- 5. رسم إشارات الدايفرجنس على السعر (Plotting Shapes) ---
// رسم الإشارات على الشارت الرئيسي (لتحديد مناطق الانعكاس/الاستمرار)
// 1. عادي صعودي (انعكاس)
plotshape(isRegBull, title="Regular Bullish Div", location=location.belowbar, style=shape.triangleup, color=color.green, size=size.small)
// 2. عادي هبوطي (انعكاس)
plotshape(isRegBear, title="Regular Bearish Div", location=location.abovebar, style=shape.triangledown, color=color.red, size=size.small)
// 3. مخفي صعودي (استمرار)
plotshape(isHiddenBull, title="Hidden Bullish Div", location=location.belowbar, style=shape.diamond, color=color.blue, size=size.small)
// 4. مخفي هبوطي (استمرار)
plotshape(isHiddenBear, title="Hidden Bearish Div", location=location.abovebar, style=shape.diamond, color=color.orange, size=size.small)
// --- 6. عرض مؤشر RSI في نافذة فرعية (Sub-Window) ---
// يجب إضافة مؤشر RSI بشكل منفصل لترى الدايفرجنس على منحنى RSI
// لكي تظهر الخطوط على منحنى RSI، يجب عليك إضافة كود المؤشر السابق (RSI Divergence Detector (Full))
// على نافذة RSI، ولكن هذا يتعارض مع طلبك دمج كل شيء.
// أفضل طريقة هي: قم بإضافة هذا المؤشر إلى الشارت، ثم أضف مؤشر RSI الافتراضي إلى نافذة جديدة.
// أو يمكنك إنشاء مؤشر RSI منفصل خاص بك في نافذة فرعية:
plot(rsi, title="RSI Value", color=color.rgb(100, 150, 200), display=display.none) // لا تعرض في الشارت الرئيسي
// لعرض RSI في نافذة فرعية، قم بإنشاء مؤشر جديد واضبط overlay=false
// أو استخدم المؤشر التالي (بما أن هذا المؤشر يحتوي على overlay=true، لن يرسم RSI أسفل الشارت).
// --- ملاحظة أخيرة: لرسم الخطوط على RSI أسفل الشارت ---
// لتحقيق ذلك بالضبط، يجب كتابة مؤشر ثانٍ بـ (overlay=false)
// يحتوي على نفس منطق الدايفرجنس. لتجنب ذلك، يكتفي هذا الكود برسم الإشارات
// على السعر (overlay=true) وتلوين الشموع.
Range-Weighted Volatility (Comparable)I wrote an indicator to measure volatility inside a range. It’s extremely useful for choosing a trading pair for grid strategies, because it lets you quickly, easily, and fairly identify which asset is the volatility leader. It measures volatility “fairly” relative to the asset’s trading range, not just by absolute price changes.
For example: if an asset trades in a 50–100 range and over a week it moves many, many times between 52 and 98, then it’s highly volatile. But if another asset trades in a 50–1000 range and makes the same 52–98 moves, its volatility is actually low — because the “weight” of that movement relative to the full range is small. The indicator accounts for this “movement weight” relative to the range, then sums these weights into a single number. That number makes it easy to judge whether an asset is suitable for a grid strategy.
That’s exactly what grids need: not just high volatility, but high volatility within a narrow range.
Settings: the Window (bars) field defines how many bars are used to calculate volatility. On a 5-minute chart, one week is 2016 bars (2460/57). By default, the script calculates over 30 days on 5-minute charts. The script also allows you to set a second symbol for comparison, so you can see both results on the same chart.
Написал индикатор для определения волатильности в диапазоне, очень-очень полезно для выбора торговой пары на гриде, позволяет легко и быстро и честно определить лидера по волатильности, при этом определяет ее "честно", относительно торгового диапазона, а не просто изменения цены.
Например если актив торгуется в диапазоне 50-100 и за неделю много-много раз сходил 52-98, то это очень волатильный актив, и в то же время если актив торгуется в диапазоне 50-1000 и сходил так же 52-98, то это будет низко волатильный актив, т.е. учитывается "вес" движения относительно диапазона и данные "веса" суммируются в одну единую цифру по которой и можно оценивать насколько актив подходит под грид стратегию.
А ведь именно это для гридов и нужно, не просто высокая волатильность, а именно высокая волатильность в узком диапазоне.
Касательно настроек , в поле Windows (bars) задается количество баров по которым скрипт будет считать волатильность, на 5-ти минутки неделя это 2016 (24*60/5*7), стандартно скрипт считает за 30 дней на 5-ти минутки. + в самом скрипте можно указать вторую пару для сравнения чтоб на одном графике увидеть результат.






















