Bli medlem idag
Matematik/probuilder · probacktest · proorder · proscreener

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

probuilder
SGN(a)

Parametrar

NamnTypBeskrivning
atalDet numeriska värdet eller uttrycket vars tecken returneras.

Formel

kod
SGN(x) = -1 if x < 0,   0 if x = 0,   1 if x > 0

Utdata ä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)

probuilder
// 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)

probuilder
// 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)

probuilder
// 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
ENDIF

SGN(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. SGN ignorerar storleken helt. SGN(0.001) och SGN(1000) returnerar båda 1. Använd ABS nä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. SGN avrundar inte. SGN(3.7) är 1, inte 4. Använd ROUND, CEIL eller FLOOR för avrundning.
  • ABS, absolutvärde, storleksmotsvarigheten till riktningen som SGN returnerar.
  • 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 med SGN.
  • Variation, procentuell förändring mellan barer.
  • ROC, förändringstakt.