Únete hoy
Matemáticas/probuilder · probacktest · proorder · proscreener

SGN

SGN en ProBuilder devuelve el signo de un número como -1 si es negativo, 0 si es cero o 1 si es positivo. Sintaxis, parámetros y ejemplos para lógica de dirección.

Sintaxis

probuilder
SGN(a)

Parámetros

NombreTipoDescripción
anúmeroEl valor numérico o la expresión cuyo signo se devuelve.

Fórmula

código
SGN(x) = -1 if x < 0,   0 if x = 0,   1 if x > 0

La salida es uno de exactamente tres valores, independientemente de lo grande o pequeña que sea la entrada.

Cómo funciona

SGN reduce cualquier valor a su dirección. SGN(-15) es -1, SGN(0) es 0, y SGN(10) es 1. Se empareja con ABS, que devuelve la magnitud, por lo que value = SGN(value) * ABS(value) divide un número en dirección y magnitud.

La salida de tres valores hace SGN cómodo dentro de condiciones y operaciones aritméticas. SGN(close - open) es +1 en bars alcistas, -1 en bars bajistas y 0 en bars doji, lo que permite sumarlos para construir una puntuación de dirección sencilla.

Ejemplos

Ejemplo 1, Signo de tres valores (Indicador)

probuilder
// Sign of a negative, a zero, and a positive input
variable1 = -15
variable2 = 0
variable3 = 10
sign1 = SGN(variable1)   // -1
sign2 = SGN(variable2)   //  0
sign3 = SGN(variable3)   //  1
RETURN sign1 AS "neg", sign2 AS "zero", sign3 AS "pos"

Cada llamada reduce su entrada a -1, 0 o 1 basándose únicamente en el signo.

Ejemplo 2, Puntuación de dirección en los bars recientes (ProScreener)

probuilder
// Net direction of the last three bar closes
score = SGN(close - close[1]) + SGN(close[1] - close[2]) + SGN(close[2] - close[3])
SCREENER[score >= 2](score AS "Up bars")

Sumar tres SGN valores da una pequeña puntuación entera de -3 a 3 que mide cuántos de los bars recientes subieron.

Ejemplo 3, Filtrar entradas según la dirección del momentum (ProOrder)

probuilder
// Only go long while momentum direction is positive
mom = close - close[10]
IF SGN(mom) = 1 AND NOT LongOnMarket AND close CROSSES OVER Average[20](close) THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

SGN(mom) = 1 aísla la dirección del momentum sin atender a su magnitud, lo que mantiene el filtro simple.

Errores y trampas habituales

  • Devuelve solo -1, 0 o 1. SGN descarta por completo la magnitud. SGN(0.001) y SGN(1000) ambos devuelven 1. Usa ABS cuando el tamaño importa.
  • Cero devuelve cero. Una entrada exactamente cero da 0, que no es ni positivo ni negativo. Ten en cuenta este tercer caso en las comparaciones en lugar de asumir solo -1 o 1.
  • No es una función de redondeo. SGN no redondea. SGN(3.7) es 1, no 4. Use ROUND, CEIL o FLOOR para redondear.
  • ABS, valor absoluto, la contrapartida en magnitud de la dirección que SGN devuelve.
  • MAX, el mayor de dos valores.
  • MIN, el menor de dos valores.
  • ROUND, redondea al entero o decimal más próximo.
  • Momentum, el cambio bruto de precio a menudo reducido a un signo con SGN.
  • Variation, variación porcentual entre bars.
  • ROC, tasa de cambio.