Jetzt beitreten
Indikatoren/probuilder · probacktest · proorder · proscreener

TimeSeriesAverage

TimeSeriesAverage in ProBuilder gibt einen regressionsbasierten gleitenden Durchschnitt des Kurses über N Bars zurück, der schneller reagiert als ein einfacher Durchschnitt. Syntax und Beispiele.

Syntax

probuilder
TimeSeriesAverage[N](price)

Parameter

NameTypStandardBeschreibung
NGanzzahlkeineAnzahl der Bars im Lookback-Fenster. Kleine Werte folgen dem Kurs eng, große Werte erzeugen eine glattere, langsamere Linie.
priceKursquellekeineDie zu glättende Reihe. Typischerweise close, aber open, high, low, typicalprice oder jede eigene Variable wird akzeptiert.

Formel

Code
TSMA = value at the current bar of the least squares
       regression line fitted to the last N values of price

Eine Gerade wird durch die letzten N Werte von price mittels linearer Regression, und der Durchschnitt nimmt den Wert dieser Linie am jüngsten Bar. Weil die Anpassung die aktuelle Richtung der Daten projiziert, statt alle Bars gleich zu gewichten, folgt das Ergebnis einer trendenden Serie enger als ein einfacher Durchschnitt derselben Periode.

So funktioniert es

Auf jeder Bar passt die Funktion die Regressionsgerade über das rollierende Fenster der letzten N Werte und gibt den Endpunkt dieser Linie aus. Die Ausgabe ist eine geglättete Kursserie in denselben Einheiten wie die Eingabe, sie kann daher direkt im Kurschart geplottet, mit anderen gleitenden Durchschnitten verglichen oder als dynamisches Unterstützungs- und Referenzniveau genutzt werden.

Im Vergleich zu Average (einfacher gleitender Durchschnitt), hat die Zeitreihen-Methode in anhaltenden Trends weniger Verzögerung, weil die Regressionsgerade die Steigung des Fensters extrapoliert. Der Kompromiss liegt im Verhalten an Wendepunkten: Dreht der Kurs scharf, kann die angepasste Linie kurz in die falsche Richtung zeigen oder überschießen, bevor das Fenster nachzieht.

Die Wahl von N steuert das Gleichgewicht zwischen Reaktionsfreude und Stabilität. Ein kurzes Fenster wie 10 reagiert innerhalb weniger Bars, erzeugt aber mehr falsche Richtungswechsel. Ein längeres Fenster wie 50 oder 100 filtert Rauschen und eignet sich besser dafür, den zugrunde liegenden Trend zu erkennen.

Beispiele

Beispiel 1, Einfache 20-Bar-Glättung (Indikator)

probuilder
// Smooth the closing prices over the last 20 bars
averagePrice = TimeSeriesAverage[20](close)
RETURN averagePrice

Berechnet den 20-Perioden-Zeitreihen-Durchschnitt des Schlusskurses und zeichnet ihn. Die Linie bleibt in Trends nahe am Kurs und filtert dabei das Rauschen von Bar zu Bar.

Beispiel 2, Kreuzung von schnellem und langsamem Durchschnitt (ProOrder)

probuilder
// Regression based fast line against a simple slow line
fastLine = TimeSeriesAverage[20](close)
slowLine = Average[50](close)

IF fastLine CROSSES OVER slowLine THEN
  BUY 1 CONTRACT AT MARKET
ELSIF fastLine CROSSES UNDER slowLine THEN
  SELL AT MARKET
ENDIF

Eine klassische Strategie mit zwei gleitenden Durchschnitten. Die Verwendung von TimeSeriesAverage für die schnelle Linie löst Crossover etwas früher aus, als ein einfacher Durchschnitt derselben Periode es täte.

Beispiel 3, Instrumente, die über ihrem Durchschnitt handeln (ProScreener)

probuilder
tsa = TimeSeriesAverage[20](close)
SCREENER[close > tsa] ((close / tsa - 1) * 100 AS "Pct above TSA")

Gibt Instrumente zurück, deren letzter Kurs über ihrem 20-Perioden-Zeitreihen-Durchschnitt liegt, sortiert nach dem prozentualen Abstand zwischen Kurs und Linie.

Interpretation

Die Ablesungen folgen den üblichen Konventionen für gleitende Durchschnitte. Ein Kurs über einer steigenden Linie zeigt einen Aufwärtstrend an, ein Kurs unter einer fallenden Linie zeigt einen Abwärtstrend an. Kreuzungen zwischen Kurs und Linie oder zwischen einem schnellen und einem langsamen Durchschnitt werden häufig als Signale für einen Trendwechsel verwendet. Da der Regressions-Endpunkt schnell reagiert, erscheinen Signale früher als bei einem einfachen Durchschnitt, enthalten aber in Seitwärtsmärkten mehr Whipsaws. Eine Bestätigung über eine Steigungsbedingung, zum Beispiel dass die Linie höher liegt als vor fünf Bars, filtert einen Teil dieses Rauschens heraus.

Häufige Fehler und Stolperfallen

  • Falscher Klammertyp. TimeSeriesAverage(20, close) lässt sich nicht kompilieren. Die Periode steht in eckigen Klammern und die Kursquelle in runden Klammern: TimeSeriesAverage[20](close).
  • Überschießen bei Umkehrungen. Die Regressionsanpassung extrapoliert die aktuelle Steigung, sodass sich die Linie nach einer scharfen Umkehr noch einige Bars in die alte Richtung bewegen kann. Signale, die an exakten Wendepunkten genommen werden, sind weniger zuverlässig als bei langsameren Durchschnitten.
  • Unzureichende Historie. Der erste N Bars eines Charts enthalten kein vollständiges Fenster, daher sind frühe Werte unzuverlässig. Backtests sollten die Aufwärmphase ausschließen oder genügend Bars vorladen.
  • Periode zu kurz. Werte wie TimeSeriesAverage[3] folgen dem Kurs fast Tick für Tick und erzeugen ständige Richtungswechsel. Zur Trenderkennung sind Perioden von 20 oder mehr typisch.
  • Average, einfacher gleitender Durchschnitt, die grundlegende Glättungsmethode.
  • ExponentialAverage, exponentielle Gewichtung mit weniger Verzögerung als ein einfacher Durchschnitt.
  • WeightedAverage, linear gewichteter gleitender Durchschnitt.
  • TriangularAverage, doppelt geglätteter einfacher gleitender Durchschnitt.
  • EndPointAverage, eng verwandter Regressions-Endpunkt-Durchschnitt.
  • LinearRegression, die zugrunde liegende Kleinste-Quadrate-Anpassung als eigenständiges Werkzeug.
  • HullAverage, gleitender Durchschnitt mit geringer Verzögerung, aufgebaut aus gewichteten Durchschnitten.
  • ZLEMA, Zero-Lag exponentieller gleitender Durchschnitt.