Bli medlem idag
Matematik/probuilder · probacktest · proorder · proscreener

ACOS

ACOS i ProBuilder returnerar arcus cosinus av ett värde, vinkeln i radianer vars cosinus är lika med indata. Indataintervall, syntax, parametrar och exempel.

Syntax

probuilder
ACOS(value)

Parametrar

NamnTypBeskrivning
valuetalEtt värde mellan -1 och 1 inklusive. Indata utanför detta intervall är ogiltiga eftersom ingen reell vinkel har ett cosinusvärde utanför dessa gränser.

Formel

kod
ACOS(x) = angle in radians such that COS(angle) = x,   -1 <= x <= 1

Den returnerade vinkeln ligger mellan 0 och PI radianer (0 till 180 grader). För att konvertera resultatet till grader, multiplicera med 180 / PI.

Så fungerar det

ACOS vänder cosinussambandet: givet ett förhållande returnerar den vinkeln som gav det. Eftersom cosinus bara varierar mellan -1 och 1 måste indata hålla sig inom det intervallet. ACOS(1) returnerar 0, ACOS(0) returnerar ungefär 1.5708 (PI/2), och ACOS(-1) returnerar PI.

Utdatan är i radianer, i linje med COS, SIN och TAN, som alla förväntar sig indata i radianer. Om en efterföljande beräkning arbetar i grader, tillämpa omvandlingen 180 / PI efter anropet.

Exempel

Exempel 1, Vinkel från ett normaliserat förhållande (Indicator)

probuilder
// Recover an angle in degrees from a cosine ratio
ratio = 0.5
angleRad = ACOS(ratio)
angleDeg = angleRad * 180 / 3.14159265
RETURN angleDeg AS "Angle (deg)"

ACOS(0.5) returnerar ungefär 1.047 radianer, som omvandlingen gör till 60 grader.

Exempel 2, Skydda indataintervallet (ProScreener)

probuilder
// Only compute the angle where the ratio is a valid cosine
x = (close - Lowest[20](low)) / (Highest[20](high) - Lowest[20](low))
valid = x >= -1 AND x <= 1
angle = ACOS(MIN(1, MAX(-1, x)))
SCREENER[valid](angle AS "ACOS")

Att begränsa x med MIN och MAX håller indatan inom [-1, 1] så att ACOS aldrig ser ett värde utanför intervallet.

Exempel 3, Vinkelbaserat filter (ProOrder)

probuilder
// Convert a bounded oscillator reading into an angle and gate entries by it
osc = (close - Average[20](close)) / (2 * STD[20](close))
osc = MIN(1, MAX(-1, osc))
theta = ACOS(osc)
IF NOT LongOnMarket AND theta < 1 THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

Begränsningen garanterar ett tillåtet indatavärde, och ACOS mappar det begränsade värdet till en vinkel som används som tröskel.

Vanliga fel och fallgropar

  • Indata måste hålla sig inom [-1, 1]. Ett argument under -1 eller över 1 är inte ett giltigt cosinusvärde och ger ett fel. Begränsa med MIN(1, MAX(-1, x)) när värdet kan hamna utanför intervallet.
  • Resultatet är i radianer. Utdata sträcker sig från 0 till PI. Multiplicera med 180 / PI om du behöver grader.
  • Invers av COS, inte 1 / COS. ACOS upphäver cosinus. Den är inte reciprokvärdet av COS.
  • ASIN, arcus sinus, inversen av SIN.
  • ATAN, arcus tangens, inversen av TAN.
  • COS, cosinus för en vinkel i radianer, funktionen ACOS vänder.
  • SIN, sinus för en vinkel i radianer.
  • TAN, tangens för en vinkel i radianer.
  • ABS, absolutvärde, användbart när indata förbereds.
  • SQRT, kvadratrot, vanlig tillsammans med trigonometriska kvoter.