Bli medlem i dag
Matematisk/probuilder · probacktest · proorder · proscreener

SGN

SGN i ProBuilder returnerer fortegnet til et tall som -1 for negativt, 0 for null eller 1 for positivt. Syntaks, parametere og eksempler for retningslogikk.

Syntaks

probuilder
SGN(a)

Parametere

NavnTypeBeskrivelse
atallDen numeriske verdien eller uttrykket som fortegnet returneres for.

Formel

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

Resultatet er én av nøyaktig tre verdier uansett hvor stor eller liten inngangsverdien er.

Slik fungerer det

SGN reduserer en vilkårlig verdi til dens retning. SGN(-15) er -1, SGN(0) er 0, og SGN(10) er 1. Den pares med ABS, som returnerer størrelsen, så value = SGN(value) * ABS(value) deler et tall i retning og størrelse.

Utdata med tre verdier gjør SGN praktisk inne i betingelser og aritmetikk. SGN(close - open) er +1 på oppbarer, -1 på nedbarer og 0 på dojibarer, som kan summeres til en enkel retningsscore.

Eksempler

Eksempel 1, Fortegn for tre verdier (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"

Hvert kall reduserer inngangsverdien sin til -1, 0 eller 1 utelukkende ut fra fortegnet.

Eksempel 2, Retningsskår over de siste barene (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")

Summering av tre SGN verdier gir en liten heltallsskår fra -3 til 3 som måler hvor mange av de siste barene som steg.

Eksempel 3, Filtrere innganger på momentum-retning (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 isolerer retningen til momentum uten å ta hensyn til størrelsen, noe som holder filteret enkelt.

Vanlige feil og fallgruver

  • Returnerer bare -1, 0 eller 1. SGN forkaster størrelsen helt. SGN(0.001) og SGN(1000) returnerer begge 1. Bruk ABS når størrelsen betyr noe.
  • Null returnerer null. En inngangsverdi som er nøyaktig null gir 0, som verken er positiv eller negativ. Ta hensyn til dette tredje tilfellet i sammenligninger i stedet for å anta bare -1 eller 1.
  • Ikke en avrundingsfunksjon. SGN runder ikke av. SGN(3.7) er 1, ikke 4. Bruk ROUND, CEIL eller FLOOR for avrunding.
  • ABS, absoluttverdi, størrelsesmotstykket til retningen som SGN returnerer.
  • MAX, den største av to verdier.
  • MIN, den minste av to verdier.
  • ROUND, runder av til nærmeste heltall eller desimal.
  • Momentum, rå prisendring ofte redusert til et fortegn med SGN.
  • Variation, prosentvis endring mellom barer.
  • ROC, endringsrate.