COS
COS i ProBuilder returnerar cosinus av en vinkel angiven i radianer, ett värde mellan -1 och 1. Syntax, kravet på radianer, fallgropar och genomarbetade exempel.
Syntax
COS(a)Parametrar
| Namn | Typ | Beskrivning |
|---|---|---|
a | tal | Vinkeln i radianer. Grader måste konverteras till radianer före anropet. |
Formel
COS(a) = cosine of angle a, with a in radians, result in [-1, 1]COS(0) returnerar 1, COS(PI/2) returnerar 0, och COS(PI) returnerar -1. Funktionen är periodisk med perioden 2*PI.
Så fungerar det
COS behandlar sitt argument som en vinkel mätt i radianer, inte grader. Det är den allra vanligaste fallgropen: att mata in ett gradvärde ger ett meningslöst tal. Konvertera med a * PI / 180 först. Resultatet är begränsat till [-1, 1], vilket gör cosinus användbar för att bygga mjuka cykliska serier och oscillatorer.
Eftersom utdata aldrig lämnar [-1, 1] är det ett säkert indata till ACOS, den inversa funktionen, utan begränsning.
Exempel
Exempel 1, Cosinus av 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)"Omvandlingen är nödvändig. COS(60) skulle tolka 60 som radianer och returnera fel värde; koden ovan returnerar 0.5, cosinus för 60 grader.
Exempel 2, Cyklisk våg över barindexet (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")Att skala barindexet till radianer ger en repeterande cosinus som toppar en gång per cykel.
Exempel 3, Cosinusviktad entryspärr (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
ENDIFCosinustermen tillåter endast entries under den positiva halvan av sin cykel, vilket snedvrider affärerna mot en fas av vågen.
Vanliga fel och fallgropar
- Vinkeln måste vara i radianer.
COSförväntar sig radianer. För att använda grader, multiplicera medPI / 180först, annars blir resultatet meningslöst. - Utdata är begränsad till [-1, 1]. Cosinus returnerar aldrig ett värde utanför det här intervallet, så ett värde utanför det signalerar ett kodningsfel längre upp.
- Periodisk, så många indata ger samma utdata.
COS(a)ochCOS(a + 2*PI)är lika. Funktionen i sig kan inte säga vilken cykel en vinkel kom från.