ABS
ABS en ProBuilder devuelve el valor absoluto de un número, su magnitud sin signo, de modo que una entrada negativa se vuelve positiva. Sintaxis, parámetros y ejemplos.
Sintaxis
ABS(expression)Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
expression | número | El valor numérico o la fórmula cuyo valor absoluto se devuelve. Puede ser una constante, una variable o una expresión completa. |
Fórmula
ABS(x) = |x|Para cualquier entrada, ABS devuelve un valor cero o positivo. Una entrada positiva pasa sin cambios, una entrada negativa cambia de signo y el cero devuelve cero.
Cómo funciona
En cada bar ABS evalúa su argumento y elimina el signo. Es una función pura, sin retroceso y sin memoria, por lo que ABS(close - open) da el tamaño del cuerpo del bar actual con independencia de si el bar cerró al alza o a la baja. Esto lo convierte en la herramienta estándar para medir distancias, gaps y desviaciones donde la dirección no importa.
ABS combina naturalmente con SGN, que devuelve el signo como -1, 0 o 1. Juntas descomponen un valor en magnitud y dirección: value = SGN(value) * ABS(value).
Ejemplos
Ejemplo 1, Tamaño del cuerpo de la bar actual (Indicador)
// Absolute distance between open and close, regardless of direction
bodySize = ABS(close - open)
RETURN bodySize AS "Body size"La resta es negativa en bars bajistas y positiva en bars alcistas. Envolverla en ABS devuelve la magnitud en cualquier caso, por lo que la serie trazada es siempre cero o positiva.
Ejemplo 2, Movimientos grandes en una sola 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 %")Usar ABS hace el escaneo simétrico: una caída del 2% y una subida del 2% cumplen las dos. Sin él, la condición solo captaría movimientos en una dirección.
Ejemplo 3, Protección de stop basada en la distancia (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) mide cuánto se ha alejado el precio de la media móvil sin importar en qué lado está, por lo que un único umbral cubre tanto los casos de estiramiento por encima como por debajo.
Errores y trampas habituales
- Solo cambia los negativos.
ABSnunca hace un valor menor en magnitud y nunca devuelve un negativo. Aplicarlo a una serie ya positiva no tiene efecto y puede ocultar un signo que realmente necesitabas. - La magnitud descarta la dirección. Después de
ABSno puedes saber si el valor original era al alza o a la baja. Conserva el valor bruto, o usaSGN, si el signo importa después. - No es una función de redondeo.
ABS(-3.7)es3.7, no4. Para redondear usaROUND,CEILoFLOOR.
Instrucciones relacionadas
SGN, devuelve el signo de un valor como -1, 0 o 1, la dirección queABSdescarta.SQRT, raíz cuadrada, definida solo para entradas no negativas queABSpuede proporcionar.SQUARE, eleva un valor al cuadrado, otra forma de eliminar el signo a costa de la escala.MAX, el mayor de dos valores, útil conABSpara limitar distancias.MIN, el menor de dos valores.ROUND, redondea al entero o decimal más cercano, a diferencia deABS.Momentum, cambio de precio en bruto que a menudo se envuelve enABSpara medir el tamaño.Variation, variación porcentual entre bars.