本页源码来自 TradingView 公开发布的开源脚本,版权归原作者所有, 请遵循其原始许可(Pine 脚本常见 CC BY-NC-SA / MPL-2.0 / MIT)。 本项目仅用于研究检索与许可范围内的移植。
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dgtrd
//@version=4
study(title="Squeeze Momentum Indicator [LazyBear] vX by DGT", shorttitle = "SQZMOMvX", overlay=true)
// -Inputs ====================================================================================== //
source = input(title="Source", defval=close)
bbLength = input(20, title="Bollinger Band Length", minval=1)
kcLength=input(20, title="Keltner Channel Length")
kcMult = input(1.5, title="Keltner Channel MultFactor")
signalLength=input(5, title="Signal Length")
useTrueRange = input(true, title="Use TrueRange (Keltner Channel)")
v_show_last = input(233, "Plotting Lookback Bars Length")
// -Calculations ================================================================================ //
[middle, bbUpper, bbLower] = bb(source, bbLength, kcMult)
rangeMa = sma(tr, kcLength)
kcUpper = middle + rangeMa * kcMult
kcLower = middle - rangeMa * kcMult
sqzOn = (bbLower > kcLower) and (bbUpper < kcUpper)
sqzOff = (bbLower < kcLower) and (bbUpper > kcUpper)
noSqz = (sqzOn == false) and (sqzOff == false)
smiValue = linreg(source - avg(avg(highest(high, kcLength), lowest(low, kcLength)), sma(source,kcLength)), kcLength, 0)
smiSignal = sma(smiValue,signalLength)
smiCondition = smiValue - smiSignal
// -Coloring ==================================================================================== //
sqzColor = noSqz ? color.navy : sqzOn ? color.black : #E3DAC9
// -Plotting ==================================================================================== //
plotshape(true, style=shape.cross, location=location.bottom, color=sqzColor, title="Squeeze ON/OFF", show_last = v_show_last)
plotarrow(smiCondition , colorup=color.aqua, colordown=color.orange, transp=85, title="Squeeze Momentum Strength", show_last = v_show_last)