Signatur
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
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";
}
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";
}
// 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.