Start · Sprachen · PHP · Referenz · trader_asin

trader_asin

Funktion

Berechnet den Arkussinus (inverse Sinus-Funktion) für jeden Wert eines Arrays und gibt das Ergebnis als neues Array zurück.

Kategorie: math

Signatur

trader_asin(array $real): array|false

Beschreibung

trader_asin ist Teil der TRADER-Erweiterung (Technical Analysis for Traders) und berechnet den Arkussinus – also die Umkehrfunktion des Sinus – für jeden einzelnen Wert des übergebenen Eingabe-Arrays. Das Ergebnis wird in Radiant zurückgegeben.

Die Funktion ist besonders nützlich in der technischen Analyse von Finanzdaten, wenn trigonometrische Transformationen auf Zeitreihenvektoren angewendet werden müssen. Sie verhält sich wie die mathematische Funktion asin(), arbeitet jedoch vektorisiert über alle Elemente des Arrays.

Der Eingabewert jedes Elements muss im Bereich [-1, 1] liegen, da der Arkussinus außerhalb dieses Bereichs nicht definiert ist. Werte außerhalb dieses Bereichs führen zu NAN im Ergebnis-Array. Das zurückgegebene Array enthält dieselbe Anzahl an Elementen wie das Eingabe-Array, wobei die Indizes beibehalten werden.

Die TRADER-Erweiterung muss in PHP kompiliert oder als PECL-Paket installiert sein, damit trader_asin verfügbar ist.

Parameter

Name Typ Default Beschreibung
$real Pflicht array Ein numerisches Array mit Gleitkommazahlen, für die der Arkussinus berechnet werden soll. Jeder Wert muss im Bereich [-1.0, 1.0] liegen.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit den berechneten Arkussinus-Werten (in Radiant) zurück. Bei einem Fehler – z. B. wenn das Eingabe-Array leer oder ungültig ist – wird false zurückgegeben.

Beispiele

Arkussinus eines einfachen Vektors berechnen

<?php
// Einfaches Beispiel: Arkussinus für typische Sinus-Werte
$values = [0.0, 0.5, 1.0, -0.5, -1.0];

$result = trader_asin($values);

if ($result !== false) {
    foreach ($result as $index => $val) {
        printf("asin(%.2f) = %.6f rad\n", $values[$index], $val);
    }
} else {
    echo "Fehler bei der Berechnung.\n";
}
asin(0.00) = 0.000000 rad asin(0.50) = 0.523599 rad asin(1.00) = 1.570796 rad asin(-0.50) = -0.523599 rad asin(-1.00) = -1.570796 rad

Verwendung in der technischen Analyse mit normalisierten Zeitreihenwerten

<?php
// Normalisierte Zeitreihenwerte (z. B. Korrelationswerte zwischen -1 und 1)
$correlations = [0.95, 0.80, 0.60, 0.10, -0.30, -0.75, -0.99];

$asinValues = trader_asin($correlations);

if ($asinValues !== false) {
    echo "Arkussinus-Transformation der Korrelationswerte:\n";
    foreach ($asinValues as $i => $val) {
        printf("  Korrelation: %+.2f => asin: %+.4f rad (%+.2f Grad)\n",
            $correlations[$i],
            $val,
            rad2deg($val)
        );
    }
} else {
    echo "Berechnung fehlgeschlagen.\n";
}
Arkussinus-Transformation der Korrelationswerte: Korrelation: +0.95 => asin: +1.2532 rad (+71.81 Grad) Korrelation: +0.80 => asin: +0.9273 rad (+53.13 Grad) Korrelation: +0.60 => asin: +0.6435 rad (+36.87 Grad) Korrelation: +0.10 => asin: +0.1002 rad (+5.74 Grad) Korrelation: -0.30 => asin: -0.3047 rad (-17.46 Grad) Korrelation: -0.75 => asin: -0.8481 rad (-48.59 Grad) Korrelation: -0.99 => asin: -1.4293 rad (-81.89 Grad)

// Wichtig · Fallstricke

Wertebereich: Eingabewerte außerhalb von [-1.0, 1.0] sind mathematisch ungültig für den Arkussinus. Die TRADER-Erweiterung kann in diesem Fall NAN (Not a Number) für die entsprechenden Elemente zurückgeben oder false für das gesamte Ergebnis liefern.

Voraussetzung: Die TRADER-Erweiterung (pecl install trader) muss installiert und in der php.ini aktiviert sein (extension=trader). Ohne diese Erweiterung ist die Funktion nicht verfügbar und führt zu einem Fatal Error.

Rückgabe in Radiant: Die Ergebnisse werden standardmäßig in Radiant zurückgegeben. Für eine Umrechnung in Grad kann rad2deg() verwendet werden.