SGN
SGN in ProBuilder geeft het teken van een getal terug als -1 voor negatief, 0 voor nul of 1 voor positief. Syntaxis, parameters en voorbeelden voor richtingslogica.
Syntaxis
SGN(a)Parameters
| Naam | Type | Beschrijving |
|---|---|---|
a | getal | De numerieke waarde of expressie waarvan het teken wordt teruggegeven. |
Formule
SGN(x) = -1 if x < 0, 0 if x = 0, 1 if x > 0De uitvoer is één van precies drie waarden, ongeacht hoe groot of klein de input is.
Hoe het werkt
SGN reduceert elke waarde tot de richting ervan. SGN(-15) is -1, SGN(0) is 0, en SGN(10) is 1. Het hoort samen met ABS, die de magnitude retourneert, dus value = SGN(value) * ABS(value) splitst een getal in richting en grootte.
De uitvoer met drie waarden maakt SGN handig binnen voorwaarden en rekenkundige expressies. SGN(close - open) is +1 op stijgende bars, -1 op dalende bars en 0 op dojibars, en kan worden opgeteld tot een eenvoudige richtingsscore.
Voorbeelden
Voorbeeld 1, Teken van drie waarden (Indicator)
// 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"Elke aanroep reduceert de input tot -1, 0 of 1, puur op basis van het teken.
Voorbeeld 2, Richtingsscore over recente bars (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")Het optellen van drie SGN waarden levert een kleine gehele score van -3 tot 3 die meet hoeveel van de recente bars omhoog gingen.
Voorbeeld 3, Instappen filteren op de richting van het 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 isoleert de richting van het momentum zonder naar de grootte te kijken, waardoor het filter simpel blijft.
Veelvoorkomende fouten en valkuilen
- Geeft alleen -1, 0 of 1 terug.
SGNnegeert de omvang volledig.SGN(0.001)enSGN(1000)geven beide 1. GebruikABSwanneer grootte uitmaakt. - Nul geeft nul terug. Een input die precies nul is geeft 0, wat noch positief noch negatief is. Houd in vergelijkingen rekening met dit derde geval in plaats van aan te nemen dat er alleen -1 of 1 is.
- Geen afrondingsfunctie.
SGNrondt niet af.SGN(3.7)is 1, niet 4. GebruikROUND,CEILofFLOORvoor afronden.
Gerelateerde instructies
ABS, absolute waarde, de grootte-tegenhanger van de richting dieSGNgeeft terug.MAX, de grootste van twee waarden.MIN, de kleinste van twee waarden.ROUND, rondt af op het dichtstbijzijnde gehele of decimale getal.Momentum, ruwe prijsverandering vaak teruggebracht tot een teken metSGN.Variation, procentuele verandering tussen bars.ROC, veranderingssnelheid.