Word nu lid
Wiskundig/probuilder · probacktest · proorder · proscreener

ABS

ABS in ProBuilder geeft de absolute waarde van een getal, de grootte zonder teken, zodat een negatieve invoer positief wordt. Syntaxis, parameters en voorbeelden.

Syntaxis

probuilder
ABS(expression)

Parameters

NaamTypeBeschrijving
expressiongetalDe numerieke waarde of formule waarvan de absolute waarde wordt teruggegeven. Kan een constante, een variabele of een volledige expressie zijn.

Formule

code
ABS(x) = |x|

Voor elke input, ABS retourneert een waarde die nul of positief is. Een positieve invoer gaat onveranderd door, bij een negatieve invoer wordt het teken omgedraaid en nul retourneert nul.

Hoe het werkt

Op elke bar ABS evalueert zijn argument en haalt het teken weg. Het is een pure functie zonder lookback en zonder geheugen, dus ABS(close - open) geeft de grootte van het lichaam van de huidige bar, ongeacht of de bar hoger of lager sloot. Daarmee is het het standaardgereedschap voor het meten van afstanden, gaps en afwijkingen waar de richting niet van belang is.

ABS gaat natuurlijk samen met SGN, die het teken als -1, 0 of 1 teruggeeft. Samen splitsen ze een waarde in grootte en richting: value = SGN(value) * ABS(value).

Voorbeelden

Voorbeeld 1, Grootte van de body van de huidige bar (Indicator)

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

De aftrekking is negatief op dalende bars en positief op stijgende bars. Het verpakken ervan in ABS geeft in beide gevallen de absolute grootte, dus de geplotte reeks is altijd nul of positief.

Voorbeeld 2, Grote bewegingen binnen één bar (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 %")

Gebruiken ABS maakt de scan symmetrisch: een daling van 2% en een stijging van 2% kwalificeren beide. Zonder dit zou de voorwaarde alleen bewegingen in één richting opvangen.

Voorbeeld 3, Afstandsgebaseerde stopbescherming (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) meet hoe ver de prijs van de moving average is uitgerekt zonder te letten op welke kant hij staat, zodat één drempel zowel de gevallen boven als onder dekt.

Veelvoorkomende fouten en valkuilen

  • Het verandert alleen negatieve waarden. ABS maakt een waarde nooit kleiner in grootte en geeft nooit een negatief getal. Toepassen op een reeks die al positief is heeft geen effect en kan een teken verbergen dat je juist nodig had.
  • Grootte negeert richting. Na ABS kun je niet zien of de oorspronkelijke waarde omhoog of omlaag was. Bewaar de ruwe waarde, of gebruik SGN, als het teken later van belang is.
  • Geen afrondingsfunctie. ABS(-3.7) is 3.7, niet 4. Gebruik voor afronden ROUND, CEIL of FLOOR.
  • SGN, geeft het teken van een waarde als -1, 0 of 1, de richting die ABS verwerpt.
  • SQRT, de vierkantswortel, alleen gedefinieerd voor niet-negatieve invoer die ABS kan aanleveren.
  • SQUARE, kwadrateert een waarde, een andere manier om het teken te verwijderen ten koste van de schaal.
  • MAX, grootste van twee waarden, nuttig bij ABS om afstanden te begrenzen.
  • MIN, de kleinste van twee waarden.
  • ROUND, rondt af op het naastbijgelegen gehele getal of decimaal, anders dan ABS.
  • Momentum, ruwe prijsverandering die vaak wordt verpakt in ABS om de grootte te meten.
  • Variation, procentuele verandering tussen bars.