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
ABS(expression)Parametere
| Navn | Type | Beskrivelse |
|---|---|---|
expression | tall | Den numeriske verdien eller formelen som absoluttverdien returneres for. Kan være en konstant, en variabel eller et fullstendig uttrykk. |
Formel
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)
// 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)
// 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)
// 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) 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.
ABSgjø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
ABSkan du ikke se om den opprinnelige verdien var opp eller ned. Behold råverdien, eller brukSGN, hvis fortegnet har betydning senere. - Ikke en avrundingsfunksjon.
ABS(-3.7)er3.7, ikke4. For avrunding brukROUND,CEILellerFLOOR.
Relaterte instruksjoner
SGN, returnerer fortegnet til en verdi som -1, 0 eller 1, retningen somABSforkaster.SQRT, kvadratrot, definert bare for ikke-negative inndata somABSkan 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 medABSfor å begrense avstander.MIN, den minste av to verdier.ROUND, runder til nærmeste heltall eller desimal, i motsetning tilABS.Momentum, rå prisendring som ofte pakkes inn iABSfor å måle størrelsen.Variation, prosentvis endring mellom barer.