COS
COS i ProBuilder returnerer cosinus til en vinkel oppgitt i radianer, en verdi mellom -1 og 1. Syntaks, kravet om radianer, fallgruver og gjennomgåtte eksempler.
Syntaks
COS(a)Parametere
| Navn | Type | Beskrivelse |
|---|---|---|
a | tall | Vinkelen i radianer. Grader må konverteres til radianer før kallet. |
Formel
COS(a) = cosine of angle a, with a in radians, result in [-1, 1]COS(0) returnerer 1, COS(PI/2) returnerer 0, og COS(PI) returnerer -1. Funksjonen er periodisk med periode 2*PI.
Slik fungerer det
COS behandler argumentet sitt som en vinkel målt i radianer, ikke grader. Dette er den aller vanligste fellen: å gi den en gradverdi returnerer et meningsløst tall. Konverter med a * PI / 180 først. Resultatet er begrenset til [-1, 1], noe som gjør cosinus nyttig til å bygge jevne sykliske serier og oscillatorer.
Fordi utdataene aldri forlater [-1, 1], er de en trygg inndata for ACOS, den inverse funksjonen, uten begrensning.
Eksempler
Eksempel 1, Cosinus til en vinkel i grader (Indikator)
// Convert 60 degrees to radians, then take the cosine
angleInDegrees = 60
angleInRadians = angleInDegrees * 3.14159265 / 180
cosineValue = COS(angleInRadians)
RETURN cosineValue AS "COS(60 deg)"Konverteringen er avgjørende. COS(60) ville behandlet 60 som radianer og returnert feil verdi; koden over returnerer 0.5, cosinus av 60 grader.
Eksempel 2, Syklisk bølge over barindeksen (ProScreener)
// A smooth cosine wave cycling every 20 bars
phase = BarIndex * 2 * 3.14159265 / 20
wave = COS(phase)
SCREENER[wave > 0.9](wave AS "Cosine wave")Å skalere barindeksen til radianer gir en gjentakende cosinus som topper seg én gang per syklus.
Eksempel 3, Cosinusvektet inngangsport (ProOrder)
// Weight a signal by a slow cosine cycle
phase = BarIndex * 2 * 3.14159265 / 50
weight = COS(phase)
IF NOT LongOnMarket AND close CROSSES OVER Average[20](close) AND weight > 0 THEN
BUY 1 CONTRACT AT MARKET
ENDIFCosinusleddet tillater bare innganger i den positive halvdelen av syklusen, og vrir handlene mot én fase av bølgen.
Vanlige feil og fallgruver
- Vinkelen må være i radianer.
COSforventer radianer. For å bruke grader, multipliser medPI / 180først, ellers er resultatet meningsløst. - Utdata er avgrenset til [-1, 1]. Cosinus returnerer aldri en verdi utenfor dette intervallet, så en avlesning utenfor det signaliserer en kodefeil tidligere i koden.
- Periodisk, så mange inndata gir samme utdata.
COS(a)ogCOS(a + 2*PI)er like. Funksjonen alene kan ikke si deg hvilken syklus en vinkel kom fra.