WilliamsAccumDistr
WilliamsAccumDistr i ProBuilder returnerar Williams Accumulation Distribution-linjen, som mäter köp- och säljtryck. Syntax, formel, exempel.
Syntax
WilliamsAccumDistr(price)Parametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
price | priskälla | close | Serien 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:
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 + ADStigande 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)
// 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, bearishKällexemplet, med omskrivna kommentarer. Det omvandlar linjens tecken till två enkla räknare som kan mata annan logik.
Exempel 2, Divergenskontroll mot pris (Indikator)
// 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)
// 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
ENDIFKrä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, ellerChaikinOsc. - 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.
Relaterade instruktioner
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.