ExponentialAverage
ExponentialAverage in ProBuilder gibt den exponentiellen gleitenden Durchschnitt (EMA) eines Preises oder einer Reihe über N Bars zurück. Syntax, Formel, Beispiele und Stolperfallen.
Syntax
ExponentialAverage[N](price)Parameter
| Name | Typ | Standard | Beschreibung |
|---|---|---|---|
N | Ganzzahl | 20 | Periode des Durchschnitts. Bestimmt den Glättungsfaktor 2 / (N + 1). Übliche Einstellungen sind 9, 12, 21, 26, 50 und 200. |
price | Kursquelle | Schlusskurs | Die zu glättende Reihe. Akzeptiert jede Preiskonstante oder numerische Variable, einschließlich anderer Indikatoren. |
Formel
EMA(t) = alpha * price(t) + (1 - alpha) * EMA(t-1)
where alpha = 2 / (N + 1)Jeder neue Wert verbindet den aktuellen Preis mit dem vorherigen EMA. Die Gewichtung eines einzelnen Bars fällt mit dem Alter exponentiell ab, daher der Name. Anders als bei einem einfachen Durchschnitt behält jeder vergangene Bar einen kleinen Resteinfluss.
So funktioniert es
Ein einfacher gleitender Durchschnitt behandelt alle N Bars gleich, sodass ein alter Bar, der aus dem Fenster fällt, die Linie genauso bewegen kann wie ein neu eintreffender Kurs. Der exponentielle Durchschnitt beseitigt dieses Artefakt, indem er Bars geometrisch gewichtet: Der letzte Close zählt am meisten, der davor etwas weniger, und so fort. Praktisch bedeutet das weniger Verzögerung bei gleicher nominaler Periode.
Die rekursive Definition bedeutet, dass die Berechnung von vorherigen Werten abhängt. ProRealTime™ initialisiert die Reihe ab dem frühesten geladenen Bar, die ersten Werte nach dem Beginn der Daten sind daher weniger aussagekräftig. Bei kurzen Datenfenstern oder in ProOrder mit geringem Bar-Vorlauf können frühe Werte von demselben EMA auf einem längeren Chart abweichen.
ExponentialAverage[N](price) erzeugt dieselbe Ausgabe wie Average[N,1](price); die eigene Funktion macht die Absicht lediglich explizit. Wie alle ProBuilder Durchschnitte akzeptiert sie jede numerische Serie und wird daher häufig verwendet, um Oszillatoren statt Rohkurse zu glätten.
Beispiele
Beispiel 1, Den RSI glätten (Indikator)
// 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"Wendet einen 10-Perioden-Exponentialdurchschnitt auf den RSI an und zeichnet sowohl den rohen Oszillator als auch seine geglättete Version in Violett. Der EMA hält die geglättete Linie näher an der rohen Reihe, als es ein SMA derselben Länge täte.
Beispiel 2, EMA-Crossover-Strategie (ProOrder)
// 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
ENDIFVerwendet die vom MACD bekannten Perioden 12 und 26. Die geringere Verzögerung exponentieller Durchschnitte löst Einstiege und Ausstiege früher aus als die entsprechende SMA-Kreuzung, zum Preis von mehr Whipsaws in unruhigen Phasen.
Beispiel 3, Schlusskurs kreuzt über den 50er-EMA (ProScreener)
// List instruments whose close just crossed above the 50-period EMA
ema50 = ExponentialAverage[50](close)
SCREENER[close CROSSES OVER ema50](close AS "Close")Gibt nur die Instrumente zurück, bei denen der letzte Schlusskurs auf dem aktuellen Bar von unterhalb auf oberhalb des 50-Perioden-Exponentialdurchschnitts gewechselt ist, ein Scan auf momentum-Wechsel.
Interpretation
Preis gegenüber dem EMA. Ein Preis, der sich über einem steigenden EMA hält, zeigt einen Aufwärtstrend auf diesem Horizont an; ein Preis unter einem fallenden EMA einen Abwärtstrend. Wegen seiner geringeren Verzögerung folgt der EMA dem Preis enger als ein SMA, er wird daher auf kürzeren Zeiteinheiten oft als nachlaufende Trendlinie bevorzugt.
Kreuzungen. Kreuzungen des schnellen über den langsamen EMA signalisieren einen Wechsel des Momentum, der Mechanismus hinter der MACD-Linie. Die Kreuzungen kommen früher als bei einfachen Durchschnitten, drehen aber auch häufiger; der Kompromiss ist Reaktionsschnelligkeit gegen Fehlsignale.
Steigung. Ein abflachender EMA kennzeichnet nachlassendes Momentum, bevor eine Kreuzung auftritt, und ist oft die frühere Warnung.
Häufige Fehler und Stolperfallen
- Falscher Klammertyp.
ExponentialAverage(10, close)löst einen Syntaxfehler aus. Die Periode steht in eckigen Klammern, die Serie in runden Klammern:ExponentialAverage[10](close). - Abhängigkeit von der Historie. Die rekursive Formel bedeutet, dass die ersten Bars der geladenen Daten eine noch nicht eingeschwungene EMA ergeben. Erhöhen Sie in ProOrder
PRELOADBARSwenn eine EMA mit langer Periode die Logik steuert; in Charts sollten Werte am linken Rand ignoriert werden. - Vergleich von EMA und SMA gleicher Periode. Ein
N-Perioden-EMA hat ein kürzeres effektives Gedächtnis als einN-Perioden-SMA. Überträgt man eine Strategie von einem auf das andere und behält dieselbe Periode, ändert sich ihr Verhalten. - Einen Typ-Parameter erwarten. Anders als
Average, diese Funktion nimmt kein zweites Klammerargument.ExponentialAverage[10,1](close)ist ungültig; der Typ ist bereits festgelegt.
Verwandte Befehle
Average, allgemeiner gleitender Durchschnitt;Average[N,1]ist dieselbe EMA.WeightedAverage, lineare Gewichtung, ein Mittelweg zwischen SMA und EMA.WilderAverage, EMA-Variante mitalpha = 1 / N, verwendet in RSI und ATR.ZLEMA, Zero-Lag exponentieller gleitender Durchschnitt.DEMA, doppelter exponentieller gleitender Durchschnitt, weitere Verringerung der Verzögerung.TEMA, dreifacher exponentieller gleitender Durchschnitt.HullAverage, Alternative mit geringer Verzögerung, aufgebaut aus gewichteten Durchschnitten.RSI, Oszillator, der üblicherweise mit einem EMA geglättet wird, wie in Beispiel 1.