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
ABS(expression)Parameter
| Name | Typ | Beschreibung |
|---|---|---|
expression | Zahl | Der Zahlenwert oder die Formel, deren Absolutwert zurückgegeben wird. Kann eine Konstante, eine Variable oder ein vollständiger Ausdruck sein. |
Formel
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)
// 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)
// 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)
// 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
ENDIFABS(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.
ABSmacht 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
ABSkönnen Sie nicht erkennen, ob der ursprüngliche Wert positiv oder negativ war. Behalten Sie den Rohwert, oder verwenden SieSGN, falls das Vorzeichen später relevant ist. - Keine Rundungsfunktion.
ABS(-3.7)ist3.7, nicht4. Zum Runden verwenden SieROUND,CEILoderFLOOR.
Verwandte Befehle
SGN, gibt das Vorzeichen eines Werts als -1, 0 oder 1 zurück, die Richtung, dieABSverwirft.SQRT, Quadratwurzel, nur für nicht-negative Eingaben definiert, dieABSkann 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 mitABSum Abstände zu begrenzen.MIN, kleinerer von zwei Werten.ROUND, rundet auf die nächste ganze Zahl oder Dezimalstelle, anders alsABS.Momentum, rohe Kursveränderung, die oft eingebettet wird inABSum die Größe zu messen.Variation, prozentuale Veränderung zwischen Bars.