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
SGN(a)Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
a | número | El valor numérico o la expresión cuyo signo se devuelve. |
Fórmula
SGN(x) = -1 if x < 0, 0 if x = 0, 1 if x > 0La 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)
// 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)
// 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)
// 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
ENDIFSGN(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.
SGNdescarta por completo la magnitud.SGN(0.001)ySGN(1000)ambos devuelven 1. UsaABScuando 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.
SGNno redondea.SGN(3.7)es 1, no 4. UseROUND,CEILoFLOORpara redondear.
Instrucciones relacionadas
ABS, valor absoluto, la contrapartida en magnitud de la dirección queSGNdevuelve.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 conSGN.Variation, variación porcentual entre bars.ROC, tasa de cambio.