SIN
SIN i ProBuilder returnerer sinus av en vinkel oppgitt i radianer, en verdi mellom -1 og 1. Syntaks, radiankravet, fallgruver og gjennomgåtte eksempler.
Syntaks
SIN(a)Parametere
| Navn | Type | Beskrivelse |
|---|---|---|
a | tall | Vinkelen i radianer. Grader må konverteres til radianer før kallet. |
Formel
SIN(a) = sine of angle a, with a in radians, result in [-1, 1]SIN(0) returnerer 0, SIN(PI/2) returnerer 1, og SIN(PI) returnerer 0. Funksjonen er periodisk med periode 2*PI.
Slik fungerer det
SIN behandler argumentet som en vinkel målt i radianer. Å sende inn en gradverdi direkte gir et meningsløst resultat, så konverter først med a * PI / 180. Resultatet holder seg innenfor [-1, 1], noe som gjør sinus til en naturlig byggestein for jevne sykliske serier og oscillatorer.
Fordi resultatet aldri forlater [-1, 1], er det en trygg inndata for ASIN, dens inverse, uten begrensning.
Eksempler
Eksempel 1, Sinus av en vinkel i grader (Indikator)
// Convert 90 degrees to radians, then take the sine
angleInDegrees = 90
angleInRadians = angleInDegrees * 3.14159265 / 180
result = SIN(angleInRadians)
RETURN result AS "SIN(90 deg)"Konverteringen er viktig. SIN(90) ville tolket 90 som radianer; koden over returnerer 1, sinus av 90 grader.
Eksempel 2, Syklisk bølge over barindeksen (ProScreener)
// A smooth sine wave cycling every 20 bars
phase = BarIndex * 2 * 3.14159265 / 20
wave = SIN(phase)
SCREENER[wave > 0.9](wave AS "Sine wave")Å skalere barindeksen om til radianer gir en repeterende sinus som topper seg én gang per syklus.
Eksempel 3, Sinusvektet inngangsfilter (ProOrder)
// Allow entries only during the rising half of a slow sine cycle
phase = BarIndex * 2 * 3.14159265 / 50
weight = SIN(phase)
IF NOT LongOnMarket AND close CROSSES OVER Average[20](close) AND weight > 0 THEN
BUY 1 CONTRACT AT MARKET
ENDIFSinusleddet begrenser innganger til den positive halvdelen av syklusen sin, og vrir handlene mot én fase av bølgen.
Vanlige feil og fallgruver
- Vinkelen må være i radianer.
SINforventer radianer. For å bruke grader, multipliser medPI / 180først, ellers er resultatet meningsløst. - Utdata er avgrenset til [-1, 1]. Sinus returnerer aldri en verdi utenfor dette området, så en avlesning utenfor det signaliserer en kodefeil oppstrøms.
- Periodisk, så mange inndata gir samme utdata.
SIN(a)ogSIN(a + 2*PI)er like, så funksjonen alene kan ikke si hvilken syklus en vinkel tilhører.