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