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

ExponentialAverage

ExponentialAverage in ProBuilder geeft het exponentieel bewegend gemiddelde (EMA) van een koers of reeks over N bars. Syntaxis, formule, voorbeelden en valkuilen.

Syntaxis

probuilder
ExponentialAverage[N](price)

Parameters

NaamTypeStandaardBeschrijving
Ngeheel getal20Periode van het gemiddelde. Bepaalt de smoothingfactor 2 / (N + 1). Gebruikelijke instellingen zijn 9, 12, 21, 26, 50 en 200.
priceprijsbroncloseDe te smoothen reeks. Accepteert elke koersconstante of numerieke variabele, inclusief andere indicatoren.

Formule

code
EMA(t) = alpha * price(t) + (1 - alpha) * EMA(t-1)
where alpha = 2 / (N + 1)

Elke nieuwe waarde mengt de huidige koers met de vorige EMA. Het gewicht van een enkele bar neemt exponentieel af met de leeftijd, en daar komt de naam vandaan. Anders dan bij een simpel gemiddelde behoudt elke bar uit het verleden een kleine restinvloed.

Hoe het werkt

Een eenvoudig voortschrijdend gemiddelde behandelt alle N bars even zwaar, dus een oude bar die uit het venster valt kan de lijn net zoveel bewegen als een nieuwe koers die binnenkomt. Het exponentiële gemiddelde haalt dat artefact weg door bars geometrisch te wegen: de laatste close weegt het zwaarst, die daarvoor iets minder, en zo verder. Het praktische effect is minder lag bij dezelfde nominale periode.

De recursieve definitie betekent dat de berekening afhankelijk is van eerdere waarden. ProRealTime™ start de reeks vanaf de vroegst geladen bar, dus de eerste waarden na het begin van de data zijn minder betekenisvol. Bij korte datavensters, of in ProOrder met een lage bar preload, kunnen vroege waarden afwijken van dezelfde EMA getekend op een langere grafiek.

ExponentialAverage[N](price) levert dezelfde uitvoer als Average[N,1](price); de speciale functie maakt de bedoeling eenvoudigweg expliciet. Zoals alle ProBuilder-gemiddelden accepteert hij elke numerieke reeks, dus hij wordt vaak gebruikt om oscillatoren te smoothen in plaats van ruwe prijs.

Voorbeelden

Voorbeeld 1, De RSI smoothen (Indicator)

probuilder
// Smooth a 14-period RSI with a 10-period EMA
i1 = RSI[14]
i2 = ExponentialAverage[10](i1)
RETURN i1 as "RSI", i2 coloured(147,112,216) as "smoothed RSI"

Past een 10-periode exponentieel gemiddelde toe op de RSI en plot zowel de ruwe oscillator als de gesmoothede versie in paars. De EMA houdt de gesmoothede lijn dichter bij de ruwe reeks dan een SMA van dezelfde lengte zou doen.

Voorbeeld 2, EMA-crossoverstrategie (ProOrder)

probuilder
// Hold long while the 12-period EMA is above the 26-period EMA
fastEMA = ExponentialAverage[12](close)
slowEMA = ExponentialAverage[26](close)

IF fastEMA CROSSES OVER slowEMA THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
IF fastEMA CROSSES UNDER slowEMA AND LongOnMarket THEN
  SELL AT MARKET
ENDIF

Gebruikt de periodes 12 en 26 die bekend zijn van de MACD. De verminderde vertraging van exponentiële gemiddelden laat entries en exits eerder afgaan dan de equivalente SMA-crossover, ten koste van meer whipsaws bij schokkerige omstandigheden.

Voorbeeld 3, Close die boven de 50 EMA kruist (ProScreener)

probuilder
// List instruments whose close just crossed above the 50-period EMA
ema50 = ExponentialAverage[50](close)
SCREENER[close CROSSES OVER ema50](close AS "Close")

Geeft alleen de instrumenten terug waarbij de laatste close op de huidige bar van onder naar boven het 50-periode exponentieel gemiddelde is gegaan, een scan op een verschuiving in momentum.

Interpretatie

Koers tegenover de EMA. Een koers die zich boven een stijgende EMA handhaaft duidt op een opwaartse trend op die horizon; een koers onder een dalende EMA op een neerwaartse trend. Door de verminderde vertraging volgt de EMA de koers nauwer dan een SMA, waardoor hij vaak de voorkeur krijgt als meelopende trendlijn op kortere tijdframes.

Kruisingen. Kruisingen van een snelle over een langzame EMA signaleren een verschuiving in momentum, het mechanisme achter de MACD-lijn. Kruisingen komen eerder dan bij simpele gemiddelden maar draaien ook vaker om; de afweging is responsiviteit tegen valse signalen.

Helling. Een afvlakkende EMA markeert wegvallend momentum voordat er een crossover optreedt, en is vaak de eerdere waarschuwing.

Veelvoorkomende fouten en valkuilen

  • Verkeerd type haakjes. ExponentialAverage(10, close) geeft een syntaxfout. De periode staat tussen vierkante haken, de reeks tussen ronde haken: ExponentialAverage[10](close).
  • Afhankelijkheid van historie. Door de recursieve formule leveren de eerste bars van de geladen data een nog niet gestabiliseerde EMA op. Verhoog in ProOrder PRELOADBARS wanneer een EMA met een lange periode de logica stuurt; op grafieken moeten waarden aan de linkerrand worden genegeerd.
  • EMA en SMA van gelijke periode vergelijken. Een N-periods EMA heeft een korter effectief geheugen dan een N-periode SMA. Een strategie van de een naar de ander overzetten met dezelfde periode verandert het gedrag.
  • Een typeparameter verwachten. In tegenstelling tot Average, deze functie neemt geen tweede haakjesargument. ExponentialAverage[10,1](close) is ongeldig; het type is al vastgelegd.
  • Average, algemeen voortschrijdend gemiddelde; Average[N,1] is dezelfde EMA.
  • WeightedAverage, lineaire weging, een tussenvorm tussen SMA en EMA.
  • WilderAverage, EMA-variant met alpha = 1 / N, gebruikt binnen RSI en ATR.
  • ZLEMA, zero-lag exponentieel voortschrijdend gemiddelde.
  • DEMA, dubbel exponentieel bewegend gemiddelde, verdere vermindering van vertraging.
  • TEMA, driedubbel exponentieel voortschrijdend gemiddelde.
  • HullAverage, alternatief met weinig vertraging, opgebouwd uit gewogen gemiddelden.
  • RSI, oscillator die vaak met een EMA wordt gesmoothed, zoals in Voorbeeld 1.