YUNSA YUNLU

Bahri ind

264
//version=5
indicator("MACD DEMA + Squeeze Momentum", shorttitle='MACD DEMA + SQZMOM', overlay=false)

// Inputs for MACD DEMA
sma = input.int(12, title='DEMA Courte')
lma = input.int(26, title='DEMA Longue')
tsp = input.int(9, title='Signal')
dolignes = input.bool(true, title="Lignes")

// Calculate DEMA
MMEslowa = ta.ema(close, lma)
MMEslowb = ta.ema(MMEslowa, lma)
DEMAslow = (2 * MMEslowa) - MMEslowb

MMEfasta = ta.ema(close, sma)
MMEfastb = ta.ema(MMEfasta, sma)
DEMAfast = (2 * MMEfasta) - MMEfastb

LigneMACDZeroLag = DEMAfast - DEMAslow

MMEsignala = ta.ema(LigneMACDZeroLag, tsp)
MMEsignalb = ta.ema(MMEsignala, tsp)
Lignesignal = (2 * MMEsignala) - MMEsignalb

MACDZeroLag = LigneMACDZeroLag - Lignesignal

swap1 = MACDZeroLag > 0 ? color.green : color.red

plot(MACDZeroLag, color=swap1, style=plot.style_columns, title='Histo', histbase=0)
p1 = plot(dolignes ? LigneMACDZeroLag : na, color=color.blue, title='LigneMACD')
p2 = plot(dolignes ? Lignesignal : na, color=color.red, title='Signal')
fill(p1, p2, color=color.blue)
hline(0)

// Inputs for Squeeze Momentum Indicator
length = input.int(20, title="BB Length")
mult = input.float(2.0, title="BB MultFactor")
lengthKC = input.int(20, title="KC Length")
multKC = input.float(1.5, title="KC MultFactor")
useTrueRange = input.bool(true, title="Use TrueRange (KC)")

// Calculate Bollinger Bands (BB)
source = close
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

// Calculate Keltner Channels (KC)
ma = ta.sma(source, lengthKC)
trueRange = useTrueRange ? ta.tr : (high - low) // 'range' yerine 'trueRange' kullanıldı
rangema = ta.sma(trueRange, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC

// Squeeze conditions
sqzOn = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz = not sqzOn and not sqzOff

val = ta.linreg(source - math.avg(math.avg(ta.highest(high, lengthKC), ta.lowest(low, lengthKC)), ta.sma(close, lengthKC)), lengthKC, 0)

bcolor = val > 0 ? (val > nz(val[1]) ? color.lime : color.green) : (val < nz(val[1]) ? color.red : color.maroon)
scolor = noSqz ? color.blue : (sqzOn ? color.black : color.gray)

plot(val, color=bcolor, style=plot.style_histogram, linewidth=4)
plot(0, color=scolor, style=plot.style_cross, linewidth=2)

Clause de non-responsabilité

Les informations et les publications ne sont pas destinées à être, et ne constituent pas, des conseils ou des recommandations en matière de finance, d'investissement, de trading ou d'autres types de conseils fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.