SGN
SGN dans ProBuilder renvoie le signe d'un nombre : -1 pour négatif, 0 pour zéro ou 1 pour positif. Syntaxe, paramètres et exemples pour la logique de direction.
Syntaxe
SGN(a)Paramètres
| Nom | Type | Description |
|---|---|---|
a | nombre | La valeur numérique ou l'expression dont le signe est renvoyé. |
Formule
SGN(x) = -1 if x < 0, 0 if x = 0, 1 if x > 0La sortie est l'une de trois valeurs exactement, quelle que soit la grandeur de l'entrée.
Comment ça marche
SGN réduit toute valeur à sa direction. SGN(-15) est -1, SGN(0) est 0, et SGN(10) vaut 1. Il s'associe à ABS, qui renvoie la magnitude, donc value = SGN(value) * ABS(value) décompose un nombre en direction et en taille.
La sortie à trois valeurs rend SGN pratique dans les conditions et les calculs. SGN(close - open) vaut +1 sur les barres haussières, -1 sur les barres baissières et 0 sur les barres en doji, ce qui permet de les sommer pour construire un score de direction simple.
Exemples
Exemple 1, Signe de trois valeurs (Indicateur)
// 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"Chaque appel ramène son entrée à -1, 0 ou 1 uniquement en fonction du signe.
Exemple 2, Score de direction sur les bars récentes (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")Additionner trois SGN valeurs donne un petit score entier de -3 à 3 qui mesure combien des bars récents ont monté.
Exemple 3, Filtrer les entrées selon la direction du 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 isole la direction du momentum sans se soucier de sa magnitude, ce qui garde le filtre simple.
Erreurs et pièges courants
- Renvoie uniquement -1, 0 ou 1.
SGNignore totalement l'amplitude.SGN(0.001)etSGN(1000)renvoient tous les deux 1. UtilisezABSquand la taille compte. - Zéro renvoie zéro. Une entrée exactement nulle donne 0, qui n'est ni positif ni négatif. Tenez compte de ce troisième cas dans les comparaisons au lieu de supposer uniquement -1 ou 1.
- Ce n'est pas une fonction d'arrondi.
SGNn'arrondit pas.SGN(3.7)est 1, et non 4. UtilisezROUND,CEILouFLOORpour l'arrondi.
Instructions liées
ABS, la valeur absolue, le pendant en amplitude de la direction queSGNrenvoie.MAX, la plus grande de deux valeurs.MIN, la plus petite de deux valeurs.ROUND, arrondit à l'entier ou à la décimale la plus proche.Momentum, variation brute de prix souvent réduite à un signe avecSGN.Variation, variation en pourcentage entre bars.ROC, taux de variation.