Squeeze Momentum Indicator [LazyBear]

Fixed a typo in the code where BB multiplier was stuck at 1.5. Thanks @ucsgears for bringing it to my notice.

Updated source:

Use the updated source instead of the what TV shows below.

This is a derivative of John Carter's "TTM Squeeze" volatility indicator, as discussed in his book "Mastering the Trade" (chapter 11).

Black crosses on the midline show that the market just entered a squeeze ( Bollinger Bands are with in Keltner Channel). This signifies low volatility , market preparing itself for an explosive move (up or down). Gray crosses signify "Squeeze release".

Mr.Carter suggests waiting till the first gray after a black cross, and taking a position in the direction of the momentum (for ex., if momentum value is above zero, go long). Exit the position when the momentum changes (increase or decrease --- signified by a color change). My (limited) experience with this shows, an additional indicator like ADX / WaveTrend, is needed to not miss good entry points. Also, Mr.Carter uses simple momentum indicator , while I have used a different method (linreg based) to plot the histogram.

More info:
- Book: Mastering The Trade by John F Carter
- Using Squeeze with ADX:

List of all my indicators:
從喜愛的腳本中移除 添加到喜愛的腳本
// @author LazyBear 
// List of all my indicators:
study(shorttitle = "SQZMOM_LB", title="Squeeze Momentum Indicator [LazyBear]", overlay=false)

length = input(20, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")

useTrueRange = input(true, title="Use TrueRange (KC)", type=bool)

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

// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
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)

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

bcolor = iff( val > 0, 
            iff( val > nz(val[1]), lime, green),
            iff( val < nz(val[1]), red, maroon))
scolor = noSqz ? blue : sqzOn ? black : gray 
plot(val, color=bcolor, style=histogram, linewidth=4)
plot(0, color=scolor, style=cross, linewidth=2)
List of my free indicators:
List of my indicators at Appstore:
Does anyone know how to fire an alarm on closed black cross? Is that possible with this indicator?
@AgeM, possible
Hello Guys firstly i want to thank LazyBear for his Momentum Algo , and i want to notify people here that i ported his code to work the Btc Dominance and Altcoins Dominance to show you how much domination that has happened , and that will help everyone here to trade better with a timed strategy . BTC- TREND : /////////////////////////// Alts-Trend : /////// Hope it will help you in your trading way :) .
been learning pine and really appreciate your scripts. super helpful in my journey so far.

Processing script...
line 12: 'bool' could not be a variable or function name
Script 'My Script' has been saved
Add to Chart operation failed, reason: line 12: 'bool' could not be a variable or function name

+3 回覆
03.freeman marco02020202
@marco02020202, here is a MTF verison with this error fixed:
MarxBabu marco02020202
@marco02020202, may be due to version upgrade ,i have ported all my indicator to V4
How to add ADX in this script?
+6 回覆
@Sh1dey, you can add it separately
首頁 股票篩選器 外匯篩選器 加密貨幣篩選器 全球財經日曆 節目 如何運作 圖表功能 價格 推薦朋友 網站規則 幫助中心 網站 & 經紀商解決方案 小工具 圖表解決方案 輕量圖表庫 部落格 & 新聞 推特
概覽 個人資料設定 賬戶和賬單 推薦朋友 我的客服工單 幫助中心 發表的想法 粉絲 正在關注 私人訊息 在線聊天 登出