Bli medlem i dag
Matematisk/probuilder · probacktest · proorder · proscreener

ABS

ABS i ProBuilder returnerer absoluttverdien av et tall, størrelsen uten fortegn, slik at en negativ inndata blir positiv. Syntaks, parametere og eksempler.

Syntaks

probuilder
ABS(expression)

Parametere

NavnTypeBeskrivelse
expressiontallDen numeriske verdien eller formelen som absoluttverdien returneres for. Kan være en konstant, en variabel eller et fullstendig uttrykk.

Formel

kode
ABS(x) = |x|

For enhver inndata, ABS returnerer en verdi som er null eller positiv. En positiv inngangsverdi går uendret gjennom, en negativ får snudd fortegn, og null returnerer null.

Slik fungerer det

På hver bar ABS evaluerer argumentet sitt og fjerner fortegnet. Den er en ren funksjon uten tilbakeblikk og uten minne, så ABS(close - open) gir størrelsen på gjeldende bars kropp uavhengig av om baren lukket opp eller ned. Det gjør den til standardverktøyet for å måle avstander, gap og avvik der retningen ikke er poenget.

ABS passer naturlig med SGN, som returnerer fortegnet som -1, 0 eller 1. Sammen deler de en verdi i størrelse og retning: value = SGN(value) * ABS(value).

Eksempler

Eksempel 1, Størrelsen på kroppen til gjeldende bar (Indikator)

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

Subtraksjonen er negativ på nedbarer og positiv på oppbarer. Å pakke den inn i ABS returnerer størrelsen uansett, så den plottede serien er alltid null eller positiv.

Eksempel 2, Store bevegelser på én enkelt 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 %")

Bruk av ABS gjør skanningen symmetrisk: både et fall på 2% og en stigning på 2% kvalifiserer. Uten den ville betingelsen bare fange bevegelser i én retning.

Eksempel 3, Avstandsbasert stoppvern (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) måler hvor langt prisen har strukket seg fra det glidende gjennomsnittet uten å bry seg om hvilken side den er på, så én enkelt terskel dekker både strekk over og strekk under.

Vanlige feil og fallgruver

  • Den endrer kun negative verdier. ABS gjør aldri en verdi mindre i absoluttverdi og returnerer aldri et negativt tall. Å bruke den på en allerede positiv serie har ingen effekt og kan skjule et fortegn du faktisk trengte.
  • Størrelse forkaster retning. Etter ABS kan du ikke se om den opprinnelige verdien var opp eller ned. Behold råverdien, eller bruk SGN, hvis fortegnet har betydning senere.
  • Ikke en avrundingsfunksjon. ABS(-3.7) er 3.7, ikke 4. For avrunding bruk ROUND, CEIL eller FLOOR.
  • SGN, returnerer fortegnet til en verdi som -1, 0 eller 1, retningen som ABS forkaster.
  • SQRT, kvadratrot, definert bare for ikke-negative inndata som ABS kan oppgi.
  • SQUARE, kvadrerer en verdi, en annen måte å fjerne fortegn på, men på bekostning av skala.
  • MAX, den største av to verdier, nyttig med ABS for å begrense avstander.
  • MIN, den minste av to verdier.
  • ROUND, runder til nærmeste heltall eller desimal, i motsetning til ABS.
  • Momentum, rå prisendring som ofte pakkes inn i ABS for å måle størrelsen.
  • Variation, prosentvis endring mellom barer.