Jetzt beitreten
Indikatoren/probuilder · probacktest · proorder · proscreener

Average

Average in ProBuilder gibt einen gleitenden Durchschnitt einer beliebigen Serie zurück, mit einem optionalen Typ-Argument zur Auswahl von SMA, EMA, WMA, Wilder, Hull und mehr. Beispiele.

Syntax

probuilder
Average[N](price)
Average[N,M](price)

Parameter

NameTypStandardBeschreibung
NGanzzahl20Anzahl der Bars im Durchschnitt. Kürzere Perioden folgen dem Kurs enger; längere Perioden glätten stärker und laufen stärker nach.
MGanzzahl0Optionaler Selektor für den Durchschnittstyp. Siehe die Tabelle unten.
priceKursquelleSchlusskursDie zu glättende Serie. Akzeptiert jede Kurskonstante oder eigene Variable, einschließlich anderer Indikatoren.

Werte für M:

MDurchschnittstyp
0Einfacher gleitender Durchschnitt (SMA)
1Exponentieller gleitender Durchschnitt (EMA)
2Gewichteter gleitender Durchschnitt (WMA)
3Wilders gleitender Durchschnitt
4Triangulärer gleitender Durchschnitt
5Endpunkt-gleitender Durchschnitt
6Zeitreihen-gleitender Durchschnitt
7Hull gleitender Durchschnitt (ProRealTime™ v11 und später)
8Zero-Lag gleitender Durchschnitt (ProRealTime™ v11 und später)

Formel

Code
SMA = (price + price[1] + ... + price[N-1]) / N

Mit M weggelassen oder 0, ist das Ergebnis das arithmetische Mittel der letzten N Werte. Jeder andere M Wert wendet das Gewichtungsschema des entsprechenden Durchschnittstyps an; die eigenen Befehle (ExponentialAverage, WeightedAverage, WilderAverage, und so weiter) dokumentieren diese Definitionen.

So funktioniert es

Average ist die universelle Glättungsfunktion von ProBuilder. Auf jedem Bar berechnet sie den Mittelwert der jüngsten N Werte der angegebenen Serie und erzeugt eine Linie, die das Rauschen von Bar zu Bar filtert, dafür aber auf Veränderungen mit einer Verzögerung reagiert, die proportional ist zu N.

Das zweite Klammerargument macht aus einer Funktion neun. Average[20,1](close) ist gleichbedeutend mit ExponentialAverage[20](close), Average[20,3](close) zu WilderAverage[20](close), und so weiter. Das ist praktisch, wenn der Durchschnittstyp selbst eine Variable ist, zum Beispiel wenn ein Optimierer oder eine Indikatoreinstellung zwischen SMA und EMA wechseln soll, ohne den Code umzuschreiben.

Die Eingabe muss kein Preis sein. Jede numerische Serie funktioniert, daher Average wird routinemäßig verwendet, um Oszillatoren, Volumen, Spreads oder die Ausgabe anderer Berechnungen zu glätten.

Beispiele

Beispiel 1, Schneller und langsamer einfacher Durchschnitt (Indikator)

probuilder
// Plot a 7-period and a 20-period simple moving average
FastMA = Average[7](Close)
SlowMA = Average[20](Close)
RETURN FastMA coloured(221,33,33), SlowMA coloured(35,194,57)

Zeichnet zwei SMAs des Schlusskurses, den schnellen in Rot und den langsamen in Grün. Das Paar veranschaulicht das kurzfristige Momentum gegenüber der übergeordneten Drift.

Beispiel 2, Crossover-System mit gleitenden Durchschnitten (ProOrder)

probuilder
// Reverse position on each crossover of the 20 and 50 SMA
fastMA = Average[20](close)
slowMA = Average[50](close)

IF fastMA CROSSES OVER slowMA THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
IF fastMA CROSSES UNDER slowMA AND LongOnMarket THEN
  SELL AT MARKET
ENDIF

Die Strategie hält eine long Position, solange der Durchschnitt über 20 Perioden über dem Durchschnitt über 50 Perioden liegt, und steigt aus, wenn sich das Verhältnis umkehrt, die minimale Vorlage für trendfolgende Logik.

Beispiel 3, Abstand zum 200-Bar-Durchschnitt (ProScreener)

probuilder
// List instruments trading above their 200-period average
ma200 = Average[200](close)
gap = (close / ma200 - 1) * 100
SCREENER[close > ma200](gap AS "% above MA200")

Filtert die Watchlist auf Instrumente über ihrem langfristigen Durchschnitt und sortiert sie nach dem prozentualen Abstand, ein einfacher Scan der relativen Stärke.

Interpretation

Kurs gegenüber dem Durchschnitt. Ein Kurs, der sich über einem steigenden Durchschnitt hält, ist die Standarddefinition eines Aufwärtstrends auf diesem Horizont; ein Kurs unter einem fallenden Durchschnitt die eines Abwärtstrends. Die Durchschnitte über 50 und 200 Perioden sind die am meisten beachteten Referenzlinien.

Kreuzungen. Ein schneller Durchschnitt, der über einen langsamen kreuzt, signalisiert, dass die jüngsten Kurse die älteren überholen, eine Verschiebung im Momentum. Kreuzungen laufen konstruktionsbedingt nach, daher bestätigen sie Trends statt sie vorwegzunehmen, und sie erzeugen Fehlsignale in Seitwärtsmärkten.

Steigung. Die Richtung des Durchschnitts selbst ist oft aussagekräftiger als eine einzelne Kreuzung. Ein flacher Durchschnitt zeigt eine Seitwärtsphase an, in der Crossover-Signale stark an Qualität verlieren.

Häufige Fehler und Stolperfallen

  • Falscher Klammertyp. Average(20, close) löst einen Syntaxfehler aus. Periode und Typ stehen in eckigen Klammern, die Serie in runden Klammern: Average[20,1](close).
  • Ungültiger Typ-Selektor. M außerhalb von 0 bis 8 ist kein gültiger Durchschnittstyp. Die Werte 7 und 8 erfordern zusätzlich ProRealTime™ v11 oder höher.
  • EMA als Standard annehmen. Mit einem Argument gibt die Funktion immer einen einfachen Durchschnitt zurück. Von Plattformen übertragener Code, deren Standard exponentiell ist, verhält sich anders, bis ,1 wird hinzugefügt.
  • Crossover-Systeme in Seitwärtsphasen. Zwei Durchschnitte einer Seitwärtsserie kreuzen sich wiederholt. Ohne Trend- oder Volatilitätsfilter sammelt die Crossover-Vorlage aus Beispiel 2 in flachen Märkten Verlust-Trades an.