Word nu lid
Indicatoren/probuilder · probacktest · proorder · proscreener

WilderAverage

WilderAverage in ProBuilder geeft het door Wilder geëffende voortschrijdend gemiddelde van een koers over N bars, de smoothing die binnen RSI en ATR wordt gebruikt. Syntaxis, formule, voorbeelden.

Syntaxis

probuilder
WilderAverage[N](price)

Parameters

NaamTypeStandaardBeschrijving
Ngeheel getal20Lookbackperiode. De effectieve smoothingfactor is 1/N, dus grotere waarden geven een veel langzamere lijn.
priceprijsbroncloseDe reeks die geïfend wordt. Accepteert close, open, high, low, of een eigen variabele.

Formule

code
WilderAverage = previousWilderAverage + (price - previousWilderAverage) / N

Equivalent is het een exponentieel voortschrijdend gemiddelde met alpha = 1/N. Een standaard EMA gebruikt alpha = 2/(N+1), dus een Wilder-gemiddelde met periode N gedraagt zich als een gewone EMA met periode 2N - 1.

Hoe het werkt

Bij elke bar beweegt het Wilder-gemiddelde een fractie 1/N van de afstand tussen zijn vorige waarde en de huidige prijs. Recente bars wegen daarom zwaarder dan oudere, maar door de kleine smoothingfactor past de lijn zich geleidelijk aan en filtert hij het grootste deel van de ruis tussen bars weg.

De methode bestaat omdat Wilder zijn indicatoren uit 1978 ontwierp voor handmatige berekening: de recursieve vorm heeft alleen de vorige waarde en de nieuwe koers nodig. RSI, AverageTrueRange, en ADX gebruiken deze effening allemaal intern. Bij het herbouwen of aanpassen van een van die indicatoren is het gebruik van WilderAverage in plaats van ExponentialAverage is wat de output identiek houdt aan de ingebouwde versie van het platform.

Het belangrijkste praktische gevolg van de 1/N factor is vertraging. Een WilderAverage[14] is ongeveer even traag als een EMA met 27 periodes, dus periode-instellingen zijn niet direct overdraagbaar tussen gemiddeldetypes.

Voorbeelden

Voorbeeld 1, MACD-variant met Wilder-smoothing (Indicator)

probuilder
// Difference between a 26- and a 12-period Wilder average
long = WilderAverage[26](close)
short = WilderAverage[12](close)
WilderMACD = long - short
RETURN WilderMACD

Bouwt een oscillator in MACD-stijl uit twee Wilder-gemiddelden in plaats van standaard EMA's, wat een vloeiendere, langzamere signaallijn oplevert. Dit is het bronvoorbeeld met herschreven commentaar.

Voorbeeld 2, Trendfilter voor een breakout-systeem (ProOrder)

probuilder
// Only trade breakouts in the direction of the Wilder-smoothed trend
trend = WilderAverage[50](close)

IF NOT OnMarket THEN
  IF close > trend AND close CROSSES OVER Highest[20](high)[1] THEN
    BUY 1 CONTRACT AT MARKET
  ENDIF
ENDIF
IF LongOnMarket AND close CROSSES UNDER trend THEN
  SELL AT MARKET
ENDIF

Een Wilder-gemiddelde over 50 periodes bepaalt de trend. Long breakouts worden alleen boven de lijn genomen en posities sluiten wanneer de koers er weer onder kruist.

Voorbeeld 3, Screenen op pullbacks naar het Wilder-gemiddelde (ProScreener)

probuilder
// Uptrending instruments pulling back close to their Wilder average
wa = WilderAverage[21](close)
uptrend = wa > wa[10]
nearline = ABS(close - wa) / wa < 0.01
SCREENER[uptrend AND nearline](((close / wa) - 1) * 100 AS "% vs WA")

Selecteert instrumenten waarvan het Wilder-gemiddelde over 21 periodes stijgt en waarvan de koers binnen 1 procent van de lijn ligt, een pullback-in-trend-setup.

Interpretatie

Een Wilder-gemiddelde wordt gelezen als elk voortschrijdend gemiddelde: een koers boven een stijgende lijn duidt op een opwaartse trend, een koers onder een dalende lijn duidt op een neerwaartse trend, en kruisingen tussen koers en lijn, of tussen twee lijnen met verschillende lengtes, markeren mogelijke trendwisselingen.

Vergeleken met andere gemiddelden van dezelfde periode is het een van de traagste beschikbare opties, vloeiender dan Average en veel vloeiender dan ExponentialAverage. Dat maakt het beter geschikt voor trendfilters en volatiliteitssmoothing dan voor snelle signaalgeneratie. Wanneer reactiesnelheid belangrijker is dan stabiliteit, ExponentialAverage, WeightedAverage, of ZLEMA zijn de gebruikelijke alternatieven.

Veelvoorkomende fouten en valkuilen

  • De periode behandelen als een EMA-periode. WilderAverage[14] is veel langzamer dan ExponentialAverage[14]. Om een bestaande EMA te benaderen, gebruik je ruwweg de helft van de periode plus één, en om een Wilder-gemiddelde met een EMA te benaderen, gebruik je 2N - 1.
  • Verkeerde types haakjes. De periode hoort tussen vierkante haken en de prijs tussen ronde haken: WilderAverage[26](close). WilderAverage(26, close) compileert niet.
  • RSI of ATR reproduceren met de verkeerde smoothing. Wilder-indicatoren herbouwen met ExponentialAverage of Average levert waarden op die afwijken van de ingebouwde functies. Gebruik WilderAverage voor exacte overeenkomsten.
  • Opwarmen op de eerste bars. Als recursief gemiddelde heeft de lijn een aantal bars nodig om te convergeren na het begin van de datareeks. Waarden op de eerste paar dozijn bars van een grafiek of backtest zijn minder betrouwbaar.
  • Average, eenvoudig voortschrijdend gemiddelde.
  • ExponentialAverage, standaard EMA met alpha = 2/(N+1).
  • WeightedAverage, lineair gewogen voortschrijdend gemiddelde.
  • RSI, momentum-oscillator gebouwd op Wilder-smoothing.
  • AverageTrueRange, volatiliteitsmaat die dezelfde smoothing gebruikt.
  • ADX, indicator voor trendsterkte uit dezelfde Wilder-familie.
  • ZLEMA, exponentieel gemiddelde met minder lag.
  • HullAverage, alternatief met weinig vertraging, opgebouwd uit gewogen gemiddelden.