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

TAN

TAN i ProBuilder returnerar tangenten för en vinkel angiven i radianer. Odefinierad vid 90 grader och dess udda multiplar. Syntax, fallgropar och genomgångna exempel.

Syntax

probuilder
TAN(a)

Parametrar

NamnTypBeskrivning
atalVinkeln i radianer. Grader måste konverteras till radianer före anropet.

Formel

kod
TAN(a) = SIN(a) / COS(a),   with a in radians

TAN(0) returnerar 0 och TAN(PI/4) returnerar 1. Nära 90 grader växer värdet obegränsat och är odefinierat exakt vid den vinkeln.

Så fungerar det

TAN behandlar sitt argument som en vinkel i radianer, så ett gradvärde måste omvandlas med a * PI / 180 först. I motsats till sinus och cosinus är tangens inte begränsad: den löper från minus oändligheten till plus oändligheten och skjuter i höjden när vinkeln närmar sig 90 grader eller 270 grader, där cosinusnämnaren når noll och funktionen är odefinierad.

Skydda mot de vinklarna i kod som sveper över ett intervall. Dess invers, ATAN, är ofta mer användbart i trading eftersom det mappar en obegränsad lutning tillbaka till en begränsad vinkel.

Exempel

Exempel 1, Tangent för en vinkel i grader (Indikator)

probuilder
// Convert 45 degrees to radians, then take the tangent
angleInDegrees = 45
angleInRadians = angleInDegrees * 3.14159265 / 180
result = TAN(angleInRadians)
RETURN result AS "TAN(45 deg)"

Omvandlingen är nödvändig. Koden returnerar 1, tangenten för 45 grader, medan TAN(45) skulle behandla 45 som radianer.

Exempel 2, Endast begränsade tangentvärden (ProScreener)

probuilder
// Avoid angles near 90 degrees where tangent is unstable
angleDeg = 30
angleRad = angleDeg * 3.14159265 / 180
safe = ABS(COS(angleRad)) > 0.01
t = TAN(angleRad)
SCREENER[safe](t AS "Tangent")

Att testa att cosinus inte är nära noll håller tangenten borta från sina odefinierade punkter där värdet exploderar.

Exempel 3, Konsistenskontroll mellan lutning och tangent (ProOrder)

probuilder
// Reconstruct a slope from an angle and gate entries on it
ma = Average[30](close)
slopeAngle = ATAN(ma - ma[1])
reconSlope = TAN(slopeAngle)
IF reconSlope > 0 AND NOT LongOnMarket AND close CROSSES OVER ma THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

ATAN omvandlar lutningen till en säker vinkel och TAN vänder den, eftersom vinkeln stannar inom det intervall där tangens är väldefinierad.

Vanliga fel och fallgropar

  • Odefinierad vid 90 grader och dess udda multiplar. Vid 90, 270, 450 grader och så vidare är cosinus noll och tangenten odefinierad, vilket ger mycket stora eller ogiltiga värden. Skydda dessa vinklar i koden.
  • Vinkeln måste vara i radianer. TAN förväntar sig radianer. Multiplicera ett gradvärde med PI / 180 först, annars blir resultatet meningslöst.
  • Obegränsad utdata. Till skillnad från SIN och COS, har tangens ingen gräns på [-1, 1]. En enorm magnitud nära en diskontinuitet är förväntad, inte en bugg, men den kan störa efterföljande beräkningar.
  • SIN, sinus för en vinkel i radianer, tangentens täljare.
  • COS, cosinus för en vinkel i radianer, tangentens nämnare.
  • ATAN, arcus tangens, inversen av TAN.
  • ASIN, arcus sinus.
  • ACOS, arcus cosinus.
  • ABS, absolutvärde, användbart för att skydda cosinusnämnaren.
  • LinearRegressionSlope, lutning för en anpassad linje, relaterat till arbete med vinklar.