SGN
SGN i ProBuilder returnerar ett tals tecken som -1 för negativt, 0 för noll eller 1 för positivt. Syntax, parametrar och exempel för riktningslogik.
Syntax
SGN(a)Parametrar
| Namn | Typ | Beskrivning |
|---|---|---|
a | tal | Det numeriska värdet eller uttrycket vars tecken returneras. |
Formel
SGN(x) = -1 if x < 0, 0 if x = 0, 1 if x > 0Utdata är ett av exakt tre värden oavsett hur stor eller liten indatan är.
Så fungerar det
SGN reducerar vilket värde som helst till dess riktning. SGN(-15) är -1, SGN(0) är 0, och SGN(10) är 1. Den paras med ABS, som returnerar storleken, så value = SGN(value) * ABS(value) delar upp ett tal i riktning och storlek.
Utdata med tre värden gör SGN praktiskt i villkor och aritmetik. SGN(close - open) är +1 på uppbarer, -1 på nedbarer och 0 på dojibarer, vilket kan summeras för att bygga ett enkelt riktningsmått.
Exempel
Exempel 1, Tecken för tre värden (Indikator)
// 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"Varje anrop reducerar sin indata till -1, 0 eller 1 enbart utifrån tecknet.
Exempel 2, Riktningspoäng över senaste barerna (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")Att summera tre SGN värden ger ett litet heltalsvärde från -3 till 3 som mäter hur många av de senaste barerna som steg.
Exempel 3, Villkora entries på momentum-riktning (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 isolerar riktningen i momentum utan att bry sig om dess magnitud, vilket håller filtret enkelt.
Vanliga fel och fallgropar
- Returnerar endast -1, 0 eller 1.
SGNignorerar storleken helt.SGN(0.001)ochSGN(1000)returnerar båda 1. AnvändABSnär storleken spelar roll. - Noll returnerar noll. En indata som är exakt noll ger 0, vilket varken är positivt eller negativt. Ta höjd för detta tredje fall i jämförelser i stället för att anta bara -1 eller 1.
- Inte en avrundningsfunktion.
SGNavrundar inte.SGN(3.7)är 1, inte 4. AnvändROUND,CEILellerFLOORför avrundning.
Relaterade instruktioner
ABS, absolutvärde, storleksmotsvarigheten till riktningen somSGNreturnerar.MAX, det största av två värden.MIN, det minsta av två värden.ROUND, avrundar till närmaste heltal eller decimal.Momentum, rå prisförändring som ofta reduceras till ett tecken medSGN.Variation, procentuell förändring mellan barer.ROC, förändringstakt.