SIN
SIN i ProBuilder returnerar sinus för en vinkel angiven i radianer, ett värde mellan -1 och 1. Syntax, radiankravet, fallgropar och genomgångna exempel.
Syntax
SIN(a)Parametrar
| Namn | Typ | Beskrivning |
|---|---|---|
a | tal | Vinkeln i radianer. Grader måste konverteras till radianer före anropet. |
Formel
SIN(a) = sine of angle a, with a in radians, result in [-1, 1]SIN(0) returnerar 0, SIN(PI/2) returnerar 1, och SIN(PI) returnerar 0. Funktionen är periodisk med perioden 2*PI.
Så fungerar det
SIN behandlar sitt argument som en vinkel mätt i radianer. Att skicka in ett gradvärde direkt ger ett meningslöst resultat, så konvertera först med a * PI / 180. Utdatan håller sig inom [-1, 1], vilket gör sinus till en naturlig byggsten för mjuka cykliska serier och oscillatorer.
Eftersom resultatet aldrig lämnar [-1, 1] är det ett säkert indata till ASIN, dess invers, utan begränsning.
Exempel
Exempel 1, Sinus för 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 spelar roll. SIN(90) skulle tolka 90 som radianer; koden ovan returnerar 1, sinus för 90 grader.
Exempel 2, Cyklisk våg över barindexet (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")Att skala barindexet till radianer ger en repeterande sinus som toppar en gång per cykel.
Exempel 3, Sinusviktad entryspärr (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
ENDIFSinustermen begränsar entries till den positiva halvan av sin cykel, vilket förskjuter affärerna mot en fas av vågen.
Vanliga fel och fallgropar
- Vinkeln måste vara i radianer.
SINfö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]. Sinus returnerar aldrig ett värde utanför detta intervall, så ett värde utanför det tyder på ett kodfel tidigare i kedjan.
- Periodisk, så många indata ger samma utdata.
SIN(a)ochSIN(a + 2*PI)är lika, så funktionen i sig kan inte avgöra vilken cykel en vinkel tillhör.