Squeeze Momentum Indicator - Optimized

All Updates from Version 3 + Squeeze Optimized further.
Script open-source

Dans le plus pur esprit de TradingView, l'auteur de ce texte l'a publié en open-source, afin que les traders puissent le comprendre et le vérifier. Bravo à l'auteur ! Vous pouvez l'utiliser gratuitement, mais la réutilisation de ce code dans une publication est régie par les règles internes. Vous pouvez le mettre en favori pour l'utiliser sur un graphique.

Vous voulez utiliser ce script sur un graphique ?
// Heikin Ashi Optimization Applied

study(shorttitle = "UCS_SQZ_Opt", title="UCS_Squeeze Momentum - Optimized", overlay=false)

length = input(20, title="Squeeze Length")
multBB = input(2,title="BB MultFactor")
multKC = input(1.5, title="KC MultFactor")
smooth = input(20, title = "Momentum Smoothing")

usebbr = input(true, title = "Use Bollinger Band Ratio Instead of Momentum", type = bool)
useHAC = input(true, title = "Heikin Ashi Optimization", type=bool)

// Heikin Ashi ATR Calculations
haclose = ohlc4
haopen = na(haopen[1]) ? (open + close)/2 : (haopen[1] + haclose[1]) / 2
hahigh = max (high, max(haopen,haclose))
halow = min (low, min(haopen,haclose))
haatra = abs(hahigh - haclose[1])
haatrb = abs(haclose[1] - halow)
haatrc = abs(hahigh - halow)
haatr = max(haatra, max(haatrb,haatrc))

source = useHAC ? haclose : close

// Calculate BB
basis = sma(source, length)
dev = multBB * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

// Calculate KC
ma = sma(source, length)
range = useHAC ? haatr : tr
rangema = sma(range, length)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC

sqzOn  = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz  = (sqzOn == false) and (sqzOff == false)

// Momentum ======> %B Indicator OR Rate of Change (ROC)
momentum = usebbr ? (((source - lowerBB)/(upperBB - lowerBB))-0.5) : (((close - close[12])/close[12])*100)
val = sma(momentum,smooth)

// Plot Statements
bcolor = iff( val > 0, 
            iff( val > nz(val[1]), green, blue),
            iff( val < nz(val[1]), red, orange))
scolor = noSqz ? blue : sqzOn ? red : green 
plot(val, color=bcolor, style=histogram, linewidth=3)
plot(0, color=scolor, style=circles, linewidth=3)


how do you use this?
+2 Répondre
There are sooo many ways this tool can be used! Here I simply overlapped a longer time frame (weekly) momentum over the one day momentum. This tool makes spotting divergence extremely easy.

+1 Répondre
Great illustration coondawg!
cooney_s Alphaoptions
thanks ! just like to help with what I see, what I know, UCS GEARS puts up great tools. I can go on and on and on, but I wouldnt want to hi-jack the thread.
ucsgears cooney_s
Thanks for sharing ideas.
cooney_s ucsgears
You are very welcome, and thank you for your generosity !
vaicru cooney_s
vaicru cooney_s
vaicru cooney_s
sorry wrong
Hello, I just joined so not sure how active this thread is. I'm very interested in using the 'Squeeze event' for trading...I have access to TTM_Squeeze on ThinkorSwim. But I'll be interested if I can try your versions using this sites charts. Is there by chance a way to use your Squeeze indicator on the stock screener to find stocks that fit a breakout scenario. Actually I'm interested in a different use. I would like to be able to scan for stocks that on the Weekly chart data signal a first red dot(begin of squeeze) with a few other conditions; above 52sma, price > $40, and large trade volume.
Is there any way I could use your indicator to scan for such stocks?
Is there an easy way for your code to be translated into Thinkscript for TOS?
Accueil Screener d'actions Screener Forex Screener Crypto Calendrier économique A propos Caractéristiques du graphique Prix Parrainer un ami Règles de conduite Centre d'aide Solutions site web & courtier Widgets Solutions de cartographie Bibliothèque de graphiques allégés Blog & News Twitter