Bli medlem idag
Indikatorer/probuilder · probacktest · proorder · proscreener

WilliamsAccumDistr

WilliamsAccumDistr i ProBuilder returnerar Williams Accumulation Distribution-linjen, som mäter köp- och säljtryck. Syntax, formel, exempel.

Syntax

probuilder
WilliamsAccumDistr(price)

Parametrar

NamnTypStandardBeskrivning
pricepriskällacloseSerien som används för att jämföra efterföljande stängningskurser. Den gängse indatan är close.

Det finns inget periodargument. Linjen är kumulativ över hela den synliga historiken.

Formel

För varje bar:

kod
TRH = MAX(close[1], high)      // true range high
TRL = MIN(close[1], low)       // true range low

IF close > close[1] THEN  AD = close - TRL
IF close < close[1] THEN  AD = close - TRH
IF close = close[1] THEN  AD = 0

WilliamsAccumDistr = previous WilliamsAccumDistr + AD

Stigande stängningar lägger till ett positivt belopp (avståndet från true range-lägsta), fallande stängningar lägger till ett negativt belopp (avståndet från true range-högsta), och oförändrade stängningar lägger inte till något.

Så fungerar det

Indikatorn ställer en enkel fråga på varje bar: stängde marknaden närmare toppen eller botten av sin true range, och i vilken riktning rörde sig stängningen. När stängningen stiger behandlas baren som ackumulation och avståndet mellan stängningen och true range-lägsta läggs till den löpande summan. När stängningen faller behandlas baren som distribution och avståndet från true range-högsta dras bort. Att använda true range (som väger in föregående stängning) betyder att gap räknas med i stället för att ignoreras.

Linjens absoluta nivå är inte meningsfull, den beror på hur mycket historik som är inläst. Vad som betyder något är dess riktning och, framför allt, hur den riktningen förhåller sig till priset. Detta skiljer sig från AccumDistr, som viktar varje bar efter volym och stängningens läge inom barens eget intervall, och från OBV, som adderar eller subtraherar hela barvolymen baserat på stängningens riktning. WilliamsAccumDistr använder ingen volym alls, bara prisgeometri.

Exempel

Exempel 1, Räknare för bullish och bearish tryck (Indikator)

probuilder
// Track whether the accumulation line is above or below zero
i1 = WilliamsAccumDistr(close)
bullish = 0
bearish = 0
IF(i1 > 0) THEN
  // Net accumulation since the start of the data
  bullish = bullish + 1
  bearish = bearish - 1
ELSIF(i1 < 0) THEN
  // Net distribution since the start of the data
  bullish = bullish - 1
  bearish = bearish + 1
ENDIF
RETURN bullish, bearish

Källexemplet, med omskrivna kommentarer. Det omvandlar linjens tecken till två enkla räknare som kan mata annan logik.

Exempel 2, Divergenskontroll mot pris (Indikator)

probuilder
// Compare 20-bar direction of price and the accumulation line
wad = WilliamsAccumDistr(close)
priceUp = close > close[20]
wadUp = wad > wad[20]

IF priceUp AND NOT wadUp THEN
  signal = -1   // price rising while accumulation falls, bearish divergence
ELSIF wadUp AND NOT priceUp THEN
  signal = 1    // accumulation rising while price falls, bullish divergence
ELSE
  signal = 0
ENDIF
RETURN signal AS "WAD divergence"

Flaggar bars där ackumulationslinjens riktning över 20 bars inte stämmer med prisets riktning över 20 bars, indikatorns vanliga divergensanvändning.

Exempel 3, Exitfilter när ackumulationen stannar av (ProOrder)

probuilder
// Close longs when the accumulation line stops rising
wad = WilliamsAccumDistr(close)
trend = Average[50](close)

IF NOT LongOnMarket THEN
  IF close > trend AND wad > wad[10] THEN
    BUY 1 CONTRACT AT MARKET
  ENDIF
ELSE
  IF wad < wad[10] THEN
    SELL AT MARKET
  ENDIF
ENDIF

Kräver att ackumulationslinjen ligger högre än tio bars tillbaka innan en long tas, och stänger när det villkoret vänder, med linjen som tryckmätare kring ett trendfilter.

Tolkning

En stigande linje visar att stigande stängningar konsekvent tar mer av true range än fallande stängningar, ett netto köptryck. En fallande linje visar det motsatta.

Den främsta signalen är divergens. När priset gör en lägre lägsta men linjen gör en högre lägsta byggs köptryck upp under ytan, en bullish divergens. När priset gör en högre högsta men linjen gör en lägre högsta saknar uppgången tryck bakom sig, en bearish divergens. Divergenser beskriver förhållanden snarare än timing, så de kombineras vanligtvis med en trigger som en korsning av ett glidande medelvärde eller en range-breakout.

Vanliga fel och fallgropar

  • Att lägga till ett periodargument. WilliamsAccumDistr[14](close) är ogiltigt. Instruktionen tar bara en kurs inom parentes och ackumulerar över alla inlästa barer.
  • Att jämföra nivåer mellan diagram. Det absoluta värdet beror på hur mycket historik som är inläst, så ett värde på 500 i ett diagram och 5000 i ett annat säger inget jämförbart. Jämför lutningar och divergenser, inte nivåer.
  • Att förvänta sig volymkänslighet. Trots namnet använder den här indikatorn ingen volym. För volymviktad ackumulering, använd AccumDistr, OBV, eller ChaikinOsc.
  • Att förväxla det med Williams. Williams är %R-intervalloscillatorn, en annan indikator av samma upphovsman. De två har inget gemensamt utöver namnet.
  • AccumDistr, volymviktad accumulation distribution-linje.
  • OBV, on-balance volume, kumulativ tecknad volym.
  • MoneyFlow, begränsat mått på köp- och säljtryck.
  • MoneyFlowIndex, volymviktad RSI-liknande oscillator.
  • ChaikinOsc, oscillator byggd på ackumulations- och distributionslinjen.
  • PVT, price volume trend, volym skalad med procentuell förändring.
  • ForceIndex, prisförändring multiplicerad med volym.
  • Williams, %R-oscillatorn från samma upphovsman.