Start · Sprachen · PHP · Referenz · trader_tanh

trader_tanh

Funktion

Berechnet den hyperbolischen Tangens (<code>tanh</code>) für jeden Wert in einem numerischen Eingabe-Array (Vektoroperation).

Kategorie: math

Signatur

trader_tanh(array $real): array|false

Beschreibung

trader_tanh ist Teil der TRADER-Erweiterung (Technical Analysis for Traders) und wendet die mathematische Funktion Tangens hyperbolicus elementweise auf ein Array von Fließkommazahlen an. Das Ergebnis ist ein neues Array derselben Länge, in dem jeder Wert tanh(x) des entsprechenden Eingabewertes enthält.

Der hyperbolische Tangens ist definiert als tanh(x) = (e^x − e^(−x)) / (e^x + e^(−x)) und liefert immer einen Wert im offenen Intervall (−1, 1). Er wird häufig in der Signalverarbeitung, im maschinellen Lernen und in der technischen Analyse eingesetzt, etwa zur Normalisierung von Zeitreihendaten.

In der technischen Finanzanalyse kann trader_tanh genutzt werden, um Kursänderungen oder Indikatoren auf einen definierten Wertebereich zu begrenzen und so Extremwerte zu dämpfen. Die Funktion arbeitet effizient auf ganzen Datenreihen (Vektoren), ohne dass eine manuelle Schleife notwendig ist.

Die TRADER-Erweiterung muss als PECL-Paket installiert sein (pecl install trader), da sie nicht im PHP-Core enthalten ist.

Parameter

Name Typ Default Beschreibung
$real Pflicht array Numerisches Array von Fließkommazahlen (z. B. Schlusskurse oder Indikatorwerte), für die tanh(x) berechnet werden soll.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array zurück, das den hyperbolischen Tangens für jeden Eingabewert enthält. Bei einem Fehler (z. B. ungültigem Eingabe-Array) wird false zurückgegeben.

Beispiele

Einfache Anwendung auf ein Zahlen-Array

<?php
// Beispiel-Array mit reellen Zahlen
$werte = [0.0, 0.5, 1.0, 2.0, -1.0, -2.0];

$ergebnis = trader_tanh($werte);

if ($ergebnis === false) {
    echo 'Fehler bei der Berechnung.';
} else {
    foreach ($ergebnis as $index => $wert) {
        printf("tanh(%.1f) = %.6f\n", $werte[$index], $wert);
    }
}
tanh(0.0) = 0.000000 tanh(0.5) = 0.462117 tanh(1.0) = 0.761594 tanh(2.0) = 0.964028 tanh(-1.0) = -0.761594 tanh(-2.0) = -0.964028

Normalisierung von Finanzdaten mit trader_tanh

<?php
// Simulierte tägliche Kursrenditen (in Prozent)
$renditen = [0.02, -0.05, 0.10, 0.30, -0.20, 0.01, -0.03];

// Normalisierung durch tanh auf den Bereich (-1, 1)
$normalisiert = trader_tanh($renditen);

if ($normalisiert !== false) {
    echo "Normalisierte Renditen (Bereich -1 bis 1):\n";
    foreach ($normalisiert as $i => $wert) {
        printf("Rendite %+.2f%% => normalisiert: %+.6f\n", $renditen[$i] * 100, $wert);
    }
} else {
    echo 'Fehler aufgetreten.';
}
Normalisierte Renditen (Bereich -1 bis 1): Rendite +2.00% => normalisiert: +0.019999 Rendite -5.00% => normalisiert: -0.049979 Rendite +10.00% => normalisiert: +0.099668 Rendite +30.00% => normalisiert: +0.291313 Rendite -20.00% => normalisiert: -0.197375 Rendite +1.00% => normalisiert: +0.010000 Rendite -3.00% => normalisiert: -0.029991

// Wichtig · Fallstricke

Die TRADER-Erweiterung ist nicht standardmäßig in PHP enthalten und muss separat über PECL installiert werden (pecl install trader). Außerdem muss die Erweiterung in der php.ini aktiviert werden (extension=trader).

Der Rückgabe-Array kann numerisch indiziert sein und muss nicht zwingend dieselben Schlüssel wie das Eingabe-Array behalten — dies ist ein bekanntes Verhalten der TRADER-Funktionen. Es empfiehlt sich, den Rückgabewert mit array_values() neu zu indizieren, wenn eine lückenlose 0-basierte Indizierung benötigt wird.

Für einzelne Skalarwerte sollte die native PHP-Funktion tanh() bevorzugt werden, da trader_tanh primär für die effiziente Verarbeitung ganzer Zeitreihen ausgelegt ist.