Il s'agit d'un dérivé de l'indicateur de volatilité
Les croix noires sur la ligne médiane montrent que le marché vient d'entrer dans une contraction (les bandes de Bollinger sont avec dans le canal Keltner). Cela signifie une faible volatilité, le marché se préparant à un mouvement explosif (haut ou bas). Les croix grises signifient
M.Carter suggère d'attendre le premier gris après une croix noire, et de prendre une position dans le sens de la dynamique (par exemple, si la valeur de la dynamique est supérieure à zéro, aller long). Sortir de la position lorsque la dynamique change (augmentation ou diminution
Réécriture
/*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)