Jetzt beitreten
Mathematisch/probuilder · probacktest · proorder · proscreener

ABS

ABS in ProBuilder gibt den Absolutwert einer Zahl zurück, ihren Betrag ohne Vorzeichen, sodass eine negative Eingabe positiv wird. Syntax, Parameter und Beispiele.

Syntax

probuilder
ABS(expression)

Parameter

NameTypBeschreibung
expressionZahlDer Zahlenwert oder die Formel, deren Absolutwert zurückgegeben wird. Kann eine Konstante, eine Variable oder ein vollständiger Ausdruck sein.

Formel

Code
ABS(x) = |x|

Für jede Eingabe, ABS gibt einen Wert zurück, der null oder positiv ist. Ein positiver Eingabewert bleibt unverändert, bei einem negativen wird das Vorzeichen umgekehrt, und null ergibt null.

So funktioniert es

Auf jedem Bar ABS wertet sein Argument aus und entfernt das Vorzeichen. Es ist eine reine Funktion ohne Lookback und ohne Speicher, daher ABS(close - open) gibt die Größe des Körpers des aktuellen Bars an, unabhängig davon, ob der Bar höher oder tiefer geschlossen hat. Das macht es zum Standardwerkzeug für das Messen von Abständen, Gaps und Abweichungen, bei denen die Richtung nicht zählt.

ABS passt natürlich zu SGN, der das Vorzeichen als -1, 0 oder 1 zurückgibt. Zusammen teilen sie einen Wert in Betrag und Richtung auf: value = SGN(value) * ABS(value).

Beispiele

Beispiel 1, Größe des aktuellen Bar-Körpers (Indikator)

probuilder
// Absolute distance between open and close, regardless of direction
bodySize = ABS(close - open)
RETURN bodySize AS "Body size"

Die Subtraktion ist bei fallenden Bars negativ und bei steigenden Bars positiv. Umschließt man sie mit ABS gibt in beiden Fällen den Betrag zurück, sodass die gezeichnete Serie immer null oder positiv ist.

Beispiel 2, Große Bewegungen innerhalb eines einzelnen Bars (ProScreener)

probuilder
// Instruments whose last bar moved more than 2% in either direction
pct = ABS(close - close[1]) / close[1] * 100
SCREENER[pct > 2](pct AS "Abs move %")

Verwenden ABS macht den Scan symmetrisch: ein Rückgang von 2% und ein Anstieg von 2% qualifizieren sich beide. Ohne ihn würde die Bedingung nur Bewegungen in eine Richtung erfassen.

Beispiel 3, Abstandsbasierte Stop-Absicherung (ProOrder)

probuilder
// Block new entries when price sits far from its average
ma = Average[50](close)
gap = ABS(close - ma)
IF gap < close * 0.01 THEN
  IF NOT LongOnMarket AND close CROSSES OVER ma THEN
    BUY 1 CONTRACT AT MARKET
  ENDIF
ENDIF

ABS(close - ma) misst, wie weit sich der Kurs vom gleitenden Durchschnitt entfernt hat, ohne zu beachten, auf welcher Seite er liegt, sodass ein einziger Schwellenwert sowohl die Fälle oberhalb als auch unterhalb abdeckt.

Häufige Fehler und Stolperfallen

  • Es verändert nur negative Werte. ABS macht einen Wert betragsmäßig nie kleiner und liefert nie einen negativen Wert. Auf eine bereits positive Serie angewendet hat es keine Wirkung und kann ein Vorzeichen verdecken, das Sie eigentlich brauchten.
  • Der Betrag verwirft die Richtung. Nach ABS können Sie nicht erkennen, ob der ursprüngliche Wert positiv oder negativ war. Behalten Sie den Rohwert, oder verwenden Sie SGN, falls das Vorzeichen später relevant ist.
  • Keine Rundungsfunktion. ABS(-3.7) ist 3.7, nicht 4. Zum Runden verwenden Sie ROUND, CEIL oder FLOOR.
  • SGN, gibt das Vorzeichen eines Werts als -1, 0 oder 1 zurück, die Richtung, die ABS verwirft.
  • SQRT, Quadratwurzel, nur für nicht-negative Eingaben definiert, die ABS kann liefern.
  • SQUARE, quadriert einen Wert, eine weitere Möglichkeit, das Vorzeichen zu entfernen, auf Kosten der Skalierung.
  • MAX, der größere von zwei Werten, nützlich mit ABS um Abstände zu begrenzen.
  • MIN, kleinerer von zwei Werten.
  • ROUND, rundet auf die nächste ganze Zahl oder Dezimalstelle, anders als ABS.
  • Momentum, rohe Kursveränderung, die oft eingebettet wird in ABS um die Größe zu messen.
  • Variation, prozentuale Veränderung zwischen Bars.