//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)
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)
Penafian
Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.
Penafian
Maklumat dan penerbitan adalah tidak dimaksudkan untuk menjadi, dan tidak membentuk, nasihat untuk kewangan, pelaburan, perdagangan dan jenis-jenis lain atau cadangan yang dibekalkan atau disahkan oleh TradingView. Baca dengan lebih lanjut di Terma Penggunaan.