Start · Sprachen · PHP · Referenz · trader_tan

trader_tan

Funktion

Berechnet den Tangens für jeden Wert eines Eingabe-Arrays (Vektors) und gibt die Ergebnisse als Array zurück.

Kategorie: math

Signatur

trader_tan(array $real): array|false

Beschreibung

trader_tan ist Teil der TRADER-Erweiterung für PHP, die technische Analyse-Funktionen aus der TA-Lib bereitstellt. Die Funktion wendet den Tangens (tan) auf jeden einzelnen Wert des übergebenen Arrays an und gibt ein neues Array mit den berechneten Ergebnissen zurück.

Die Eingabewerte müssen in Radiant (Bogenmass) vorliegen, da die Funktion intern den mathematischen Tangens berechnet. Sollen Grad-Werte verwendet werden, müssen diese zuvor mit der Formel $rad = $deg * M_PI / 180 umgerechnet werden.

Die Funktion ist besonders nützlich, wenn auf ganze Zeitreihen (z. B. Kurs-Daten oder Messwerte) vektorisiert mathematische Operationen angewendet werden sollen, ohne eine explizite Schleife schreiben zu müssen. Im Kontext der technischen Analyse wird trader_tan gelegentlich in Kombination mit trigonometrischen Indikatoren wie dem Hilbert-Transform-Zyklus verwendet.

Beachte, dass an Stellen, wo der Kosinus des Eingabewerts null ist (d. h. bei Werten nahe π/2 + n·π), der Tangens gegen unendlich strebt und numerisch sehr große oder ungültige Werte entstehen können.

Parameter

Name Typ Default Beschreibung
$real Pflicht array Ein numerisches Array mit Eingabewerten in Radiant, für die jeweils der Tangens berechnet werden soll. Die Schlüssel sollten fortlaufend numerisch sein.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit den berechneten Tangens-Werten zurück. Die Anzahl der Rückgabewerte kann geringer sein als die Anzahl der Eingabewerte, da die TRADER-Erweiterung einen Lookback-Mechanismus verwendet. Bei einem Fehler (z. B. ungültige Eingabe) wird false zurückgegeben.

Beispiele

Tangens eines einfachen Werte-Arrays berechnen

<?php
// Voraussetzung: PHP TRADER-Erweiterung ist installiert
$radians = [0, M_PI / 6, M_PI / 4, M_PI / 3, M_PI / 2 - 0.0001];

$result = trader_tan($radians);

if ($result !== false) {
    foreach ($result as $index => $value) {
        printf("tan(%.4f) = %.4f\n", $radians[$index], $value);
    }
} else {
    echo "Fehler bei der Berechnung.\n";
}
tan(0.0000) = 0.0000 tan(0.5236) = 0.5774 tan(0.7854) = 1.0000 tan(1.0472) = 1.7321 tan(1.5707) = 9999.9997

Grad-Werte in Radiant umrechnen und Tangens berechnen

<?php
// Grad-Werte in Radiant umrechnen
$degrees = [0, 30, 45, 60, 90, 120, 135, 150, 180];
$radians = array_map(fn($deg) => $deg * M_PI / 180, $degrees);

// Singuläre Werte (90°) anpassen, um Division durch 0 zu vermeiden
$radians = array_map(fn($r) => (abs(cos($r)) < 1e-10) ? $r - 0.0001 : $r, $radians);

$result = trader_tan($radians);

if ($result !== false) {
    $keys = array_keys($result);
    foreach ($keys as $i => $key) {
        printf("tan(%3d°) = %8.4f\n", $degrees[$key], $result[$key]);
    }
} else {
    echo "Fehler bei der Berechnung.\n";
}
tan( 0°) = 0.0000 tan( 30°) = 0.5774 tan( 45°) = 1.0000 tan( 60°) = 1.7321 tan( 90°) = 9999.9997 tan(120°) = -1.7321 tan(135°) = -1.0000 tan(150°) = -0.5774 tan(180°) = -0.0000

// Wichtig · Fallstricke

Voraussetzung: Die TRADER-Erweiterung muss in der PHP-Installation verfügbar sein (pecl install trader). Ohne diese Erweiterung ist trader_tan nicht definiert.

Lookback: Die TRADER-Bibliothek gibt bei manchen Funktionen weniger Werte zurück als im Eingabe-Array enthalten sind. Die Indizes des Rückgabe-Arrays stimmen mit den Positionen im Eingabe-Array überein, sodass ein einfaches Mapping möglich ist.

Numerische Instabilität: Bei Eingabewerten nahe π/2 + n·π (entspricht 90°, 270°, …) strebt der Tangens gegen ±unendlich. Solche Werte sollten vor der Übergabe geprüft und ggf. korrigiert werden, um fehlerhafte Berechnungen zu vermeiden.

Für einzelne Werte (kein Vektor) ist die native PHP-Funktion tan() ausreichend und effizienter.