Это производный показатель волатильности
Черные кресты на средней линии показывают, что рынок только что вошел в сжатие (полосы Боллинджера находятся в канале Келтнера). Это означает низкую волатильность, рынок готовится к взрывному движению (вверх или вниз). Серые кресты означают
Мистер Картер предлагает подождать до первого серого цвета после черного креста и занять позицию в направлении импульса (например, если значение импульса выше нуля, идите на длинный). Выйти из позиции, когда импульс меняется (увеличение или уменьшение, обозначаемое изменением цвета). Мой (ограниченный) опыт с этим показывает, что дополнительный индикатор, такой как ADX / WaveTrend, необходим, чтобы не пропустить хорошие точки входа. Кроме того, Мистер Картер использует простой индикатор импульса, в то время как я использовал другой метод (на основе правила) для составления гистограммы.
Проверка
/*backtest start: 2021-05-05 00:00:00 end: 2022-05-04 23:59:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Bitfinex","currency":"BTC_USD"}] */ // // @author LazyBear // List of all my indicators: https://www.tradingview.com/v/4IneGo8h/ // 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(14, title="KC Length") multKC = input(1.5, title="KC MultFactor") useTrueRange = input(true, title="Use TrueRange (KC)",defval=true) // Calculate BB source = close basis = ta.sma(source, length) dev = multKC * ta.stdev(source, length) upperBB = basis + dev lowerBB = basis - dev // Calculate KC ma = ta.sma(source, lengthKC) range = useTrueRange ? ta.tr : (high - low) rangema = ta.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 = ta.linreg(source - math.avg(math.avg(ta.highest(high, lengthKC), ta.lowest(low, lengthKC)),ta.sma(close,lengthKC)), lengthKC,0) bcolor = iff( val > 0, iff( val > nz(val[1]), color.lime, color.green), iff( 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) if val >0 and val < nz(val[1]) strategy.entry("entry short", strategy.short) else if val <0 and val > nz(val[1]) strategy.entry("entry long", strategy.long)