Start · Sprachen · PHP · Referenz · trader_atan

trader_atan

Funktion

Berechnet den Arkustangens (inverse Tangensfunktion) für jeden Wert eines numerischen Arrays und gibt die Ergebnisse als Array zurück.

Kategorie: math

Signatur

trader_atan(array $real): array|false

Beschreibung

trader_atan ist Bestandteil der TRADER-Extension (Technical Analysis for Traders) und wendet die mathematische Arkustangens-Funktion (atan) elementweise auf alle Werte eines numerischen Arrays an. Das Ergebnis entspricht dem Winkel in Bogenmaß (Radiant), dessen Tangens dem jeweiligen Eingabewert entspricht.

Die Funktion gibt Werte im Bereich von -π/2 bis +π/2 (ca. –1,5708 bis +1,5708) zurück. Sie ist nützlich, wenn Tangenswerte von Zeitreihendaten (z. B. aus technischen Indikatoren) in Winkelwerte rückgerechnet werden sollen oder wenn trigonometrische Transformationen auf Preisreihen oder andere Finanzdaten angewendet werden.

Im Gegensatz zur integrierten PHP-Funktion atan(), die einen einzelnen Skalarwert verarbeitet, operiert trader_atan auf einem gesamten Datenvektor und ist damit besonders geeignet für die effiziente Verarbeitung von Kurszeitreihen in der technischen Analyse.

Die TRADER-Extension muss separat installiert und aktiviert sein (z. B. über PECL: pecl install trader).

Parameter

Name Typ Default Beschreibung
$real Pflicht array Numerisches Array mit Eingabewerten (z. B. Preiszeitreihe), für die der Arkustangens berechnet werden soll. Die Schlüssel sollten sequenziell sein; nicht-numerische Werte führen zu undefinierten Ergebnissen.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array zurück, das die berechneten Arkustangens-Werte im Bogenmaß (Radiant) enthält. Das Ergebnis-Array kann weniger Elemente als das Eingabe-Array enthalten, da die TRADER-Extension intern einen Lookback-Mechanismus verwendet (bei trader_atan jedoch typischerweise 0). Bei einem Fehler wird false zurückgegeben.

Beispiele

Arkustangens eines einfachen Datenvektors berechnen

<?php
// Sicherstellen, dass die TRADER-Extension geladen ist
if (!extension_loaded('trader')) {
    die('TRADER-Extension ist nicht verfügbar.');
}

$values = [0.0, 0.5, 1.0, -1.0, -0.5, 2.0];

$result = trader_atan($values);

if ($result === false) {
    echo 'Fehler bei der Berechnung.';
} else {
    foreach ($result as $index => $atan) {
        printf("atan(%6.2f) = %8.5f rad (%7.3f°)\n",
            $values[$index],
            $atan,
            rad2deg($atan)
        );
    }
}
atan( 0.00) = 0.00000 rad ( 0.000°) atan( 0.50) = 0.46365 rad ( 26.565°) atan( 1.00) = 0.78540 rad ( 45.000°) atan( -1.00) = -0.78540 rad (-45.000°) atan( -0.50) = -0.46365 rad (-26.565°) atan( 2.00) = 1.10715 rad ( 63.435°)

Anwendung auf eine Preiszeitreihe in der technischen Analyse

<?php
// Simulierte normalisierte Preisveränderungen (Momentum-Werte)
$momentum = [0.1, 0.3, 0.8, 1.5, 2.0, 1.2, 0.4, -0.2, -1.0, -1.8];

// Arkustangens berechnet Winkel, der den "Druck" auf eine Skala begrenzt
$atanValues = trader_atan($momentum);

if ($atanValues === false) {
    echo 'Berechnung fehlgeschlagen.';
    exit;
}

echo "Index | Momentum | Atan (rad) | Atan (Grad)\n";
echo str_repeat('-', 50) . "\n";

foreach ($atanValues as $i => $val) {
    printf("  %3d | %8.2f | %10.5f | %10.3f°\n",
        $i,
        $momentum[$i],
        $val,
        rad2deg($val)
    );
}
Index | Momentum | Atan (rad) | Atan (Grad) -------------------------------------------------- 0 | 0.10 | 0.09967 | 5.711° 1 | 0.30 | 0.29146 | 16.699° 2 | 0.80 | 0.67474 | 38.660° 3 | 1.50 | 0.98279 | 56.310° 4 | 2.00 | 1.10715 | 63.435° 5 | 1.20 | 0.87606 | 50.194° 6 | 0.40 | 0.38051 | 21.801° 7 | -0.20 | -0.19740 | -11.310° 8 | -1.00 | -0.78540 | -45.000° 9 | -1.80 | -1.06370 | -60.945°

// Wichtig · Fallstricke

Voraussetzung: Die TRADER-Extension ist keine Standard-PHP-Extension und muss über PECL installiert werden (pecl install trader). Anschließend muss extension=trader in der php.ini aktiviert werden.

Ergebnis-Array-Indizes: Die TRADER-Extension kann die Indizes des Ergebnis-Arrays gegenüber dem Eingabe-Array verschieben. Es empfiehlt sich, array_values() zu verwenden, falls eine exakte Index-Übereinstimmung erforderlich ist.

Vergleich mit atan(): Für einzelne Skalarwerte ist die eingebaute PHP-Funktion atan() vorzuziehen. trader_atan eignet sich speziell für die Batch-Verarbeitung von Zeitreihendaten.