Bli medlem i dag
Indikatorer/probuilder · probacktest · proorder · proscreener

BollingerBandWidth

BollingerBandWidth i ProBuilder returnerer avstanden mellom det øvre og det nedre Bollinger-båndet, et direkte volatilitetsmål. Syntaks, formel, eksempler.

Syntaks

probuilder
BollingerBandWidth[N](price)

Parametere

NavnTypeStandardBeskrivelse
Nheltall20Perioden som brukes for det glidende gjennomsnittet og standardavviket som ligger under båndene. 20 er standardinnstillingen til Bollinger.
pricepriskildelukkPrisserien båndene beregnes på, vanligvis close.

Formel

kode
Upper = Average[N](price) + 2 * STD[N](price)
Lower = Average[N](price) - 2 * STD[N](price)
BollingerBandWidth = Upper - Lower = 4 * STD[N](price)

Fordi det øvre og nedre båndet ligger symmetrisk to standardavvik fra det glidende gjennomsnittet, reduseres bredden til fire ganger N-perioders standardavvik for prisen.

Slik fungerer det

Bollinger-bånd utvider seg når prisen spres og trekker seg sammen når prisen samler seg rundt gjennomsnittet. BollingerBandWidth trekker ut denne utvidelsen og sammentrekningen i en enkelt linje, slik at man ikke trenger å anslå avstanden mellom to tegnede bånd med øyemål.

Verdien er uttrykt i prisenheter. Den stiger i volatile faser, enten markedet trender eller krakker, og faller under konsolideringer. Langvarig sammentrekning, ofte kalt en squeeze, indikerer et marked som kveiler seg sammen i en trang range. Squeezer har ikke noe retningsinnhold, men de identifiserer forhold der den neste retningsbestemte bevegelsen har en tendens til å gå lenger, og det er derfor breakout-systemer ofte betinger inngangene sine på båndbredde.

Siden standardavviket skalerer med prisnivået, er rå breddeavlesninger bare sammenlignbare med samme instruments egen historikk. Å dividere med midtbåndet eller med prisen gjør avlesningen om til et relativt tall som egner seg for screening på tvers av markeder.

Eksempler

Eksempel 1, Rask og langsom båndbredde (Indikator)

probuilder
// 20-period width against a slower 30-period width for context
BBwidth = BollingerBandWidth[20](close)
BBwidthSlow = BollingerBandWidth[30](close)
RETURN BBwidth coloured(0,100,100), BBwidthSlow AS "more laggy BandWidth"

Tegner to bredder side om side. Versjonen med 30 perioder reagerer langsommere, så avstanden mellom de to linjene fremhever ferske volatilitetsskift.

Eksempel 2, Squeeze-screener (ProScreener)

probuilder
// Instruments whose band width sits at a 100-bar low
bw = BollingerBandWidth[20](close)
squeeze = bw <= Lowest[100](bw)
SCREENER[squeeze]((bw / close) * 100 AS "Width % of price")

Returnerer instrumenter i maksimal kompresjon relativt til sin egen nylige historikk, uttrykt som prosent av prisen slik at resultatene er sammenlignbare på tvers av markeder.

Eksempel 3, Breakout-inngang betinget av økende bredde (ProOrder)

probuilder
// Buy a channel breakout only when volatility is expanding from a squeeze
bw = BollingerBandWidth[20](close)
expanding = bw > bw[3]
wasTight = bw[3] < Average[50](bw)[3]

IF NOT LongOnMarket AND close CROSSES OVER BollingerUp[20](close) THEN
  IF expanding AND wasTight THEN
    BUY 1 CONTRACT AT MARKET
  ENDIF
ENDIF

IF LongOnMarket AND close CROSSES UNDER Average[20](close) THEN
  SELL AT MARKET
ENDIF

Båndbreddebetingelsene krever at breakouten kommer ut av kompresjon og at volatiliteten utvider seg aktivt, noe som filtrerer ut båndberøringer som skjer inne i etablerte faser med høy volatilitet.

Tolkning

ObservasjonAvlesning
Bredde på flerukers bunnerSqueeze. Markedet er komprimert, utvidelse følger ofte. Ingen retningsbias.
Bredden stiger kraftigVolatilitetsutvidelse, vanligvis sammen med en breakout eller en nyhetsbevegelse.
Bredde på ekstreme topperVolatilitet i sen fase. Bevegelser som er så strukket, pauser ofte eller gir mean reversion.
Bredden faller etter en spikeImpulsen fordøyes, trendfortsettelsen blir mindre eksplosiv.

Båndbredden identifiserer volatilitetsregimet, ikke retningen. Den svarer på når et marked sannsynligvis vil bevege seg betydelig, og andre verktøy må svare på hvilken vei.

Vanlige feil og fallgruver

  • Rå bredde er ikke sammenlignbar på tvers av instrumenter. Verdien er i prisenheter og skalerer med prisnivået. Screen eller sammenlign ved hjelp av width / close eller width / Average[N](close) i stedet.
  • Å behandle en squeeze som et retningssignal. Kompresjon forutsier utvidelse, ikke retning. Å gå long utelukkende fordi bredden er lav, er å kjøpe et myntkast; en separat breakout- eller trendbetingelse må gi retningen.
  • Å forveksle bredde med %B eller båndposisjon. BollingerBandWidth måler avstanden mellom båndene. Den sier ingenting om hvor prisen ligger inne i dem. Plassering inne i båndene krever at prisen sammenlignes med BollingerUp og BollingerDown direkte.
  • Korte perioder gjør squeeze-begrepet meningsløst. Med små N, svinger bredden så raskt at squeezer oppstår hele tiden. Mønsterets verdi kommer fra vedvarende kompresjon på standardinnstillinger som 20 perioder.