SGN
SGN in ProBuilder restituisce il segno di un numero come -1 per negativo, 0 per zero o 1 per positivo. Sintassi, parametri ed esempi per la logica di direzione.
Sintassi
SGN(a)Parametri
| Nome | Tipo | Descrizione |
|---|---|---|
a | numero | Il valore numerico o l'espressione di cui viene restituito il segno. |
Formula
SGN(x) = -1 if x < 0, 0 if x = 0, 1 if x > 0L'output è uno di esattamente tre valori, indipendentemente da quanto grande o piccolo sia l'input.
Come funziona
SGN riduce qualsiasi valore alla sua direzione. SGN(-15) è -1, SGN(0) è 0, e SGN(10) è 1. Si abbina a ABS, che restituisce la magnitudine, quindi value = SGN(value) * ABS(value) scompone un numero in direzione e dimensione.
L'output a tre valori rende SGN comodo all'interno di condizioni e operazioni aritmetiche. SGN(close - open) è +1 sulle bars rialziste, -1 sulle bars ribassiste e 0 sulle bars doji, e può essere sommato per costruire un semplice punteggio di direzione.
Esempi
Esempio 1, Segno di tre valori (Indicatore)
// 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"Ogni chiamata riduce il suo input a -1, 0 o 1 basandosi unicamente sul segno.
Esempio 2, Punteggio di direzione sui bar recenti (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")Sommando tre SGN valori produce un piccolo punteggio intero da -3 a 3 che misura quante delle bars recenti sono salite.
Esempio 3, Filtrare gli ingressi sulla direzione 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 isola la direzione del momentum senza considerarne la magnitudine, mantenendo il filtro semplice.
Errori e insidie comuni
- Restituisce solo -1, 0 o 1.
SGNscarta completamente l'ampiezza.SGN(0.001)eSGN(1000)restituiscono entrambi 1. UsaABSquando la dimensione conta. - Zero restituisce zero. Un input esattamente pari a zero restituisce 0, che non è né positivo né negativo. Tieni conto di questo terzo caso nei confronti invece di assumere solo -1 o 1.
- Non è una funzione di arrotondamento.
SGNnon arrotonda.SGN(3.7)è 1, non 4. UsaROUND,CEILoFLOORper l'arrotondamento.
Istruzioni correlate
ABS, valore assoluto, la controparte in grandezza della direzione cheSGNrestituisce.MAX, il maggiore di due valori.MIN, il minore di due valori.ROUND, arrotonda all'intero o al decimale più vicino.Momentum, variazione di prezzo grezza spesso ridotta a un segno conSGN.Variation, variazione percentuale tra bar.ROC, tasso di variazione.