EndPointAverage
EndPointAverage[N](price) in ProBuilder gibt den Endpunkt-Durchschnitt über N Bars zurück, einen auf kleinsten Quadraten basierenden Durchschnitt, der die Verzögerung für die Trendanalyse verringert.
Syntax
EndPointAverage[N](price)Parameter
| Name | Typ | Standard | Beschreibung |
|---|---|---|---|
N | Ganzzahl | keine | Anzahl der Bars im Regressionsfenster. Größere Werte ergeben eine glattere, langsamere Linie. |
price | Kursquelle | Schlusskurs | Serie, auf der der Durchschnitt berechnet wird, zum Beispiel close, open, high, oder low. |
Formel
Fit a least-squares line y = a + b * x to the last N values of price
EndPointAverage = value of that line at the most recent barAnstatt das Fenster symmetrisch zu mitteln, projiziert die Endpunktmethode die angepasste Trendlinie auf den neuesten Bar, weshalb die Linie dem Preis enger folgt als ein einfacher Durchschnitt.
So funktioniert es
Ein einfacher gleitender Durchschnitt gibt den Mittelwert des Fensters wieder, was den Preis faktisch so beschreibt, wie er ein halbes Fenster zuvor war. Der Endpunkt-Durchschnitt beseitigt einen Großteil dieser Verzögerung, indem er eine gerade Regressionslinie durch dasselbe Fenster legt und zurückgibt, wo diese Linie endet, am aktuellen Bar. Wenn der Preis gleichmäßig trendet, liegt der Endpunkt-Durchschnitt nahe am Preis; wenn der Preis seitwärts läuft, verhält er sich wie ein gewöhnlicher Durchschnitt.
Der Nachteil ist das Überschießen. Da der Wert die Steigung des Fensters bis an dessen Rand extrapoliert, lässt eine scharfe Umkehr die Linie über den Wendepunkt hinausschießen, bevor sie aufholt. Das macht den Endpunkt-Durchschnitt in Trends reaktionsschnell, aber um Wendepunkte herum nervöser als glattere Durchschnitte.
Diese Berechnung ist auch der gleitende Durchschnitt, der ausgewählt wird von MAtype = 5 in Indikatoren, die einen Parameter für den Typ des gleitenden Durchschnitts annehmen, wie ElderRayBullPower.
Beispiele
Beispiel 1, Trendsteigung aus dem Endpunkt-Durchschnitt (Indikator)
// Endpoint of a 50-period regression on the close
i1 = EndPointAverage[50](close)
// Ratio of the current value to its value 10 bars ago
slope = i1 / i1[10]
RETURN slopeBerechnet den 50-Perioden-Endpunkt-Durchschnitt und teilt ihn durch seinen eigenen Wert von 10 Bars zuvor. Ein Verhältnis über 1 bedeutet, dass die Linie über die letzten 10 Bars gestiegen ist, ein kompaktes Maß für die Trendstärke.
Beispiel 2, Preis kreuzt den Endpunkt-Durchschnitt (ProBacktest)
// Trend-following entries on crosses of a 30-period end point average
epma = EndPointAverage[30](close)
IF NOT OnMarket THEN
IF close CROSSES OVER epma THEN
BUY 1 CONTRACT AT MARKET
ENDIF
ELSIF LongOnMarket THEN
IF close CROSSES UNDER epma THEN
SELL AT MARKET
ENDIF
ENDIFVerwendet den Endpunkt-Durchschnitt als dynamische Trendlinie. Die geringere Verzögerung erzeugt frühere Kreuzungen als ein einfacher Durchschnitt derselben Periode.
Beispiel 3, Screening nach Preis über einer steigenden Linie (ProScreener)
epma = EndPointAverage[50](close)
// Price above the line and the line itself rising
SCREENER[close > epma AND epma > epma[5]](epma AS "EPMA 50")Listet Instrumente auf, die über einem 50-Perioden-Endpunkt-Durchschnitt notieren, der über die letzten 5 Bars gestiegen ist, ein zweiteiliger Aufwärtstrendfilter.
Interpretation
Wie bei jedem gleitenden Durchschnitt sind die beiden Standardlesarten Lage und Steigung. Ein Preis über einem steigenden Endpunkt-Durchschnitt stützt eine bullische Ausrichtung, ein Preis unter einer fallenden Linie eine bärische. Kreuzungen zwischen Preis und Linie oder zwischen einem kurzen und einem langen Endpunkt-Durchschnitt werden als Signale für einen Trendwechsel verwendet.
Da die Linie schneller reagiert als ein einfacher oder exponentieller Durchschnitt gleicher Länge, eignet sie sich für trendfolgende Logik, bei der Verzögerung teuer ist. In unruhigen, seitwärts laufenden Märkten erzeugt dieselbe Reaktionsfreude mehr Fehlkreuzungen, dort ist daher eine längere Periode oder ein zusätzlicher Filter ratsam.
Häufige Fehler und Stolperfallen
- Überschießen bei Umkehrungen. Der Wert extrapoliert die Regressionssteigung des Fensters, er kann daher direkt nach einer scharfen Wende kurz in der alten Richtung weiterlaufen oder die neue übertreiben. Signale, die an V-förmigen Umkehrungen genommen werden, sind weniger zuverlässig als in gleichmäßigen Trends.
- Falscher Klammertyp. Die Periode gehört in eckige Klammern und die Kursquelle in runde Klammern:
EndPointAverage[50](close).EndPointAverage(50, close)löst einen Syntaxfehler aus. - Verwechslung mit dem Endpunkt eines einfachen Durchschnitts. Der Name bezieht sich auf den Endpunkt einer angepassten Regressionslinie, nicht auf das letzte Element eines Durchschnittsfensters. Ein 1:1-Vergleich mit
Average[N]Werte führt zu falsch gelesenen Abständen. - Periode länger als die verfügbare Historie. Mit weniger als
NBars geladen sind, sind frühe Werte unzuverlässig. Stellen Sie sicher, dass der Chart oder Backtest genügend Bars vorlädt, bevor Sie auf die Linie reagieren.
Verwandte Befehle
LinearRegression, der Regressionslinienwert, auf dem die Endpunktmethode aufbaut.LinearRegressionSlope, Steigung der angepassten Regressionslinie.TimeSeriesAverage, eng verwandter regressionsbasierter Durchschnitt, MAtype 6.Average, einfacher gleitender Durchschnitt zum Vergleich.ExponentialAverage, exponentiell gewichtete Alternative.WeightedAverage, linear gewichtete Alternative.HullAverage, ein weiteres Design für einen gleitenden Durchschnitt mit geringer Verzögerung.ZLEMA, Zero-Lag exponentieller gleitender Durchschnitt.