Start · Sprachen · PHP · Referenz · trader_acos

trader_acos

Funktion

Berechnet den Arkuskosinus (inverse Kosinusfunktion) für jeden Wert eines Eingabe-Arrays (Vektors).

Kategorie: math

Signatur

trader_acos(array $real): array|false

Beschreibung

trader_acos ist Teil der TRADER-Erweiterung (Technical Analysis for Traders), die auf der TA-Lib-Bibliothek basiert. Die Funktion wendet den mathematischen Arkuskosinus elementweise auf alle Werte eines numerischen Arrays an und gibt die Ergebnisse als neues Array zurück.

Der Arkuskosinus ist die Umkehrfunktion des Kosinus. Für einen Eingabewert x gibt acos(x) den Winkel (im Bogenmaß/Radiant) zurück, dessen Kosinus gleich x ist. Der gültige Eingabebereich liegt dabei zwischen -1.0 und 1.0; Werte außerhalb dieses Bereichs liefern NAN (Not a Number).

Typische Anwendungen finden sich in der technischen Analyse von Finanzdaten, wo trigonometrische Transformationen von Zeitreihen oder Indikator-Vektoren benötigt werden. Die Funktion entspricht konzeptionell einem array_map('acos', $real), ist jedoch durch die TA-Lib-Implementierung für große Datensätze optimiert.

Das Ergebnis-Array hat möglicherweise andere Schlüssel (Indizes) als das Eingabe-Array, da die TRADER-Erweiterung intern einen Ausgabe-Offset berechnet. Es sollte daher nicht blind auf numerische Schlüssel verlassen werden.

Parameter

Name Typ Default Beschreibung
$real Pflicht array Numerisches Array mit Eingabewerten (z. B. Schlusskurse oder andere Zeitreihenwerte). Alle Werte müssen im Bereich -1.0 bis 1.0 liegen, damit die Ergebnisse mathematisch definiert sind.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein numerisches Array mit den berechneten Arkuskosinus-Werten (im Bogenmaß/Radiant) zurück. Bei einem Fehler (z. B. ungültige Eingabe oder interner TA-Lib-Fehler) wird false zurückgegeben. Werte außerhalb des gültigen Bereichs [-1, 1] erzeugen NAN-Einträge im Ergebnisarray.

Beispiele

Arkuskosinus eines einfachen Wertebereichs

<?php
// Eingabewerte im gültigen Bereich [-1, 1]
$real = [1.0, 0.5, 0.0, -0.5, -1.0];

$result = trader_acos($real);

if ($result === false) {
    echo 'Fehler bei der Berechnung.';
} else {
    foreach ($result as $index => $value) {
        // Umrechnung von Radiant in Grad zur besseren Lesbarkeit
        printf("Index %d: acos = %.6f rad (%.2f°)\n", $index, $value, rad2deg($value));
    }
}
Index 0: acos = 0.000000 rad (0.00°) Index 1: acos = 1.047198 rad (60.00°) Index 2: acos = 1.570796 rad (90.00°) Index 3: acos = 2.094395 rad (120.00°) Index 4: acos = 3.141593 rad (180.00°)

Verarbeitung normalisierter Finanzdaten

<?php
// Normalisierte Korrelationswerte einer technischen Analyse
$correlations = [0.98, 0.75, 0.12, -0.33, -0.87];

$acos_values = trader_acos($correlations);

if ($acos_values !== false) {
    echo "Arkuskosinus normalisierter Korrelationswerte (in Grad):" . PHP_EOL;
    foreach ($acos_values as $i => $rad) {
        printf("  Korrelation %.2f => %.4f Grad\n", $correlations[$i], rad2deg($rad));
    }
} else {
    echo 'Berechnung fehlgeschlagen.';
}
Arkuskosinus normalisierter Korrelationswerte (in Grad): Korrelation 0.98 => 11.4784 Grad Korrelation 0.75 => 41.4096 Grad Korrelation 0.12 => 83.1084 Grad Korrelation -0.33 => 109.2638 Grad Korrelation -0.87 => 150.4560 Grad

// Wichtig · Fallstricke

Erweiterung erforderlich: trader_acos ist nur verfügbar, wenn die TRADER PECL-Erweiterung installiert und aktiviert ist (extension=trader in der php.ini). Ohne diese Erweiterung ist die Funktion nicht definiert.

Gültigkeitsbereich: Eingabewerte außerhalb von [-1.0, 1.0] sind mathematisch nicht definiert und erzeugen NAN. Es empfiehlt sich, Eingabedaten vorher zu validieren oder zu normalisieren.

Index-Offset: Das zurückgegebene Array beginnt möglicherweise nicht bei Index 0. Die TRADER-Funktionen können einen internen Lookup-Offset verwenden, der zu verschobenen Array-Schlüsseln führt. Beim Zusammenführen mit dem Eingabe-Array sollte array_keys genutzt werden, um die korrekten Indizes zu ermitteln.