WeightedAverage
WeightedAverage i ProBuilder returnerar det viktade glidande medelvärdet (WMA) av ett pris över N barer och ger de senaste barerna större vikt. Syntax, formel, exempel.
Syntax
WeightedAverage[N](price)Parametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
N | heltal | 20 | Lookback-period i barer. Bestämmer både fönstrets längd och viktningsschemat. |
price | priskälla | close | Serien som medelvärdesbildas. Accepterar close, open, high, low, typicalprice, medianprice, eller någon egen variabel. |
Formel
WMA = (N*price + (N-1)*price[1] + ... + 2*price[N-2] + 1*price[N-1])
/ (N + (N-1) + ... + 2 + 1)Nämnaren är summan av vikterna, N * (N + 1) / 2. Vikterna minskar linjärt från den nyaste baren till den äldsta.
Så fungerar det
Ett enkelt glidande medelvärde behandlar varje bar i fönstret lika, så en stor rörelse som kommer in i eller lämnar fönstret flyttar linjen lika mycket oavsett när den inträffade. Det viktade glidande medelvärdet multiplicerar i stället varje bar med dess position i fönstret: den senaste baren räknas N gånger så mycket som den äldsta. Resultatet är en linje som följer aktuellt pris närmare och vänder tidigare vid swing-punkter.
Jämfört med ExponentialAverage, använder WMA ett hårt fönster: barer äldre än N perioder har noll inflytande, medan en EMA ger alla tidigare barer en liten, exponentiellt avtagande vikt. I praktiken beter sig de två likartat, där WMA:n är något känsligare för vad som händer vid kanten av sitt fönster.
WMA är också en byggsten för andra medelvärden. HullAverage, till exempel, kombinerar flera viktade medelvärden av olika längd för att minska eftersläpningen ytterligare.
Exempel
Exempel 1, Enkel 20-periods WMA (Indikator)
// 20-period weighted moving average of closing prices
myWMA = WeightedAverage[20](close)
RETURN myWMABeräknar och ritar det 20-barers viktade glidande medelvärdet av close, standardanvändningen bevarad från källdokumentationen.
Exempel 2, Korsning mellan WMA och SMA (ProBacktest)
// Fast weighted average against a slower simple average
fastWMA = WeightedAverage[10](close)
slowSMA = Average[40](close)
IF fastWMA CROSSES OVER slowSMA THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF fastWMA CROSSES UNDER slowSMA THEN
SELL AT MARKET
ENDIFDet viktade medelvärdet fungerar som den lyhörda snabba linjen i ett klassiskt korsningssystem, som går long när den korsar över det långsammare enkla medelvärdet och går ur vid den motsatta korsningen.
Exempel 3, Screening efter pris över en stigande WMA (ProScreener)
// Instruments trading above a rising 30-bar weighted average
wma = WeightedAverage[30](close)
rising = wma > wma[5]
SCREENER[close > wma AND rising](((close / wma) - 1) * 100 AS "% above WMA")Behåller bara instrument vars pris ligger över en 30-barers WMA som själv är högre än fem barer tillbaka, och rangordnar dem efter avståndet över linjen.
Tolkning
Viktade medelvärden läses som vilket glidande medelvärde som helst. Pris över en stigande WMA indikerar en upptrend, pris under en fallande WMA indikerar en nedtrend, och korsningar mellan priset och linjen, eller mellan två WMA av olika längd, används som signaler för trendskifte.
På grund av sin framtunga viktning, ett WMA med längden N beter sig ungefär som ett kortare enkelt medelvärde: det vänder tidigare men ger också fler falska vändningar i sidledes marknader. Att välja mellan Average, WeightedAverage, och ExponentialAverage är mest en avvägning mellan eftersläpning och brus, inte en skillnad i art.
Vanliga fel och fallgropar
- Fel typer av parenteser. Perioden anges i hakparenteser och priskällan i parenteser:
WeightedAverage[20](close). Att skrivaWeightedAverage(20, close)är ett syntaxfel. - Att förvänta sig SMA-liknande jämnhet. För samma
N, är en WMA märkbart ryckigare än ett enkelt medelvärde. När du byter utAverage[N]medWeightedAverage[N]i ett befintligt system ökar signalfrekvensen och backtest-resultaten ändras. - Att förväxla det med
WeightedClose.WeightedCloseär en priskonstant för en enda bar,(high + low + 2 * close) / 4. Det är en giltig indata till den här funktionen men ett helt annat begrepp. - För kort period. Mycket små
Nvärden gör linjen nästan identisk med råpriset, vilket lägger till beräkning utan meningsfull utjämning.
Relaterade instruktioner
Average, enkelt glidande medelvärde med lika vikter.ExponentialAverage, exponentiellt avtagande vikter över hela historiken.WilderAverage, det utjämnade medelvärdet som används inuti RSI och ATR.HullAverage, medelvärde med låg eftersläpning uppbyggt av viktade medelvärden.TriangularAverage, dubbelutjämnat medelvärde med tyngdpunkt i mitten.TimeSeriesAverage, glidande medelvärde baserat på linjär regression.ZLEMA, zero lag exponentiellt glidande medelvärde.WeightedClose, viktat pris för en enskild bar som ofta matas in i medelvärden.