ABS
ABS i ProBuilder returnerar absolutvärdet av ett tal, dess storlek utan tecken, så att ett negativt indata blir positivt. Syntax, parametrar och exempel.
Syntax
ABS(expression)Parametrar
| Namn | Typ | Beskrivning |
|---|---|---|
expression | tal | Det numeriska värdet eller den formel vars absolutvärde returneras. Kan vara en konstant, en variabel eller ett fullständigt uttryck. |
Formel
ABS(x) = |x|För alla indata, ABS returnerar ett värde som är noll eller positivt. Ett positivt indata passerar oförändrat, ett negativt indata får sitt tecken omvänt och noll returnerar noll.
Så fungerar det
På varje bar ABS utvärderar sitt argument och tar bort tecknet. Den är en ren funktion utan lookback och utan minne, så ABS(close - open) ger storleken på den aktuella barens kropp oavsett om baren stängde upp eller ner. Det gör den till standardverktyget för att mäta avstånd, gap och avvikelser där riktningen inte är det väsentliga.
ABS hör naturligt samman med SGN, som returnerar tecknet som -1, 0 eller 1. Tillsammans delar de upp ett värde i magnitud och riktning: value = SGN(value) * ABS(value).
Exempel
Exempel 1, Storleken på den aktuella barens kropp (Indicator)
// Absolute distance between open and close, regardless of direction
bodySize = ABS(close - open)
RETURN bodySize AS "Body size"Subtraktionen är negativ på fallande barer och positiv på stigande barer. Att omsluta den med ABS returnerar magnituden i båda fallen, så den ritade serien är alltid noll eller positiv.
Exempel 2, Stora rörelser på en enda 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 %")Att använda ABS gör skanningen symmetrisk: ett fall på 2% och en uppgång på 2% kvalificerar båda. Utan den skulle villkoret bara fånga rörelser i en riktning.
Exempel 3, Avståndsbaserat stoppskydd (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äter hur långt priset har sträckt sig från det glidande medelvärdet utan hänsyn till vilken sida det ligger på, så ett enda tröskelvärde täcker både fallen ovanför och under.
Vanliga fel och fallgropar
- Den ändrar bara negativa värden.
ABSgör aldrig ett värde mindre i storlek och returnerar aldrig ett negativt tal. Att tillämpa den på en redan positiv serie har ingen effekt och kan skymma ett tecken du faktiskt behövde. - Storlek förkastar riktning. Efter
ABSkan du inte avgöra om det ursprungliga värdet var upp eller ner. Behåll råvärdet, eller användSGN, om tecknet har betydelse senare. - Inte en avrundningsfunktion.
ABS(-3.7)är3.7, inte4. För avrundning användROUND,CEILellerFLOOR.
Relaterade instruktioner
SGN, returnerar tecknet för ett värde som -1, 0 eller 1, den riktning somABSförkastar.SQRT, kvadratrot, definierad endast för icke-negativa indata somABSkan ange.SQUARE, kvadrerar ett värde, ett annat sätt att ta bort tecken till priset av skala.MAX, det större av två värden, användbart medABSför att begränsa avstånd.MIN, det minsta av två värden.ROUND, avrundar till närmaste heltal eller decimal, till skillnad frånABS.Momentum, rå prisförändring som ofta kapslas in iABSför att mäta storlek.Variation, procentuell förändring mellan barer.