ucsgears

UCS_Squeeze_Optimization

Squeeze Momentum Indicator - Optimized

All Updates from Version 3 + Squeeze Optimized further.
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Want to use this script on a chart?
// 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)

Comments

how do you use this?
+1 Reply
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 Reply
Great illustration coondawg!
Reply
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.
Reply
ucsgears cooney_s
Thanks for sharing ideas.
Reply
cooney_s ucsgears
You are very welcome, and thank you for your generosity !
Reply
vaicru cooney_s
Reply
vaicru cooney_s
Reply
vaicru cooney_s
sorry wrong
Reply
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?
Thanks
Reply
Home Stock Screener Forex Screener Crypto Screener Economic Calendar How It Works Chart Features Pricing Refer a friend House Rules Help Center Website & Broker Solutions Widgets Charting Solutions Lightweight Charting Library Blog & News Twitter
Profile Profile Settings Account and Billing Referred friends Coins My Support Tickets Help Center Private Messages Chat Sign Out