Start · Sprachen · PHP · Referenz · trader_ln

trader_ln

Funktion

Berechnet den natürlichen Logarithmus (ln) für jeden Wert eines Eingabe-Vektors (TRADER-Erweiterung).

Kategorie: math

Signatur

trader_ln(array $real): array|false

Beschreibung

trader_ln ist Teil der TRADER-Erweiterung für PHP, die technische Analyse-Funktionen aus der TA-Lib-Bibliothek bereitstellt. Die Funktion wendet den natürlichen Logarithmus (Basis e) elementweise auf jeden Wert des übergebenen Zahlenarrays an und gibt das transformierte Array zurück.

Der natürliche Logarithmus wird in der Finanzanalyse häufig eingesetzt, um Preisreihen zu transformieren, Renditen zu berechnen oder die Volatilität zu normalisieren. Auch in der Datenverarbeitung ist er nützlich, wenn Werte in einen logarithmischen Maßstab überführt werden sollen.

Wichtig: Alle Eingabewerte müssen positiv und ungleich null sein, da der natürliche Logarithmus für nicht-positive Zahlen undefiniert ist. Das Ergebnis-Array kann weniger Elemente als das Eingabe-Array enthalten, da TRADER-Funktionen intern einen sogenannten Lookback-Offset anwenden (bei dieser Funktion in der Regel 0).

Parameter

Name Typ Default Beschreibung
$real Pflicht array Eingabe-Vektor mit numerischen Werten (z. B. Schlusskurse). Alle Werte müssen positiv sein (> 0), da ln(x) nur für positive x definiert ist.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit den berechneten natürlichen Logarithmus-Werten zurück. Bei einem Fehler (z. B. ungültige Eingabe) wird false zurückgegeben.

Beispiele

Natürlichen Logarithmus auf Aktienkurse anwenden

<?php
// Beispielhafte Schlusskurse einer Aktie
$closePrices = [100.0, 105.5, 110.0, 108.3, 115.0];

$result = trader_ln($closePrices);

if ($result === false) {
    echo 'Fehler bei der Berechnung.';
} else {
    foreach ($result as $index => $value) {
        echo "ln({$closePrices[$index]}) = " . round($value, 6) . PHP_EOL;
    }
}
ln(100) = 4.605170 ln(105.5) = 4.658439 ln(110) = 4.700480 ln(108.3) = 4.685043 ln(115) = 4.744932

Logarithmische Renditen berechnen

<?php
// Schlusskurse
$prices = [50.0, 52.0, 51.5, 54.0, 53.5];

// Natürlicher Logarithmus aller Kurse
$logPrices = trader_ln($prices);

if ($logPrices === false) {
    echo 'Fehler bei der Berechnung.';
} else {
    // Logarithmische Renditen = Differenz aufeinanderfolgender ln-Werte
    $logReturns = [];
    $values = array_values($logPrices);
    for ($i = 1; $i < count($values); $i++) {
        $logReturns[] = round($values[$i] - $values[$i - 1], 6);
    }
    echo "Logarithmische Renditen:" . PHP_EOL;
    print_r($logReturns);
}
Logarithmische Renditen: Array ( [0] => 0.039221 [1] => -0.009615 [2] => 0.047653 [3] => -0.009259 )

// Wichtig · Fallstricke

Voraussetzung: Die TRADER-Erweiterung (php_trader) muss installiert und in der php.ini aktiviert sein. Sie ist nicht standardmäßig in PHP enthalten und basiert auf der TA-Lib.

Achtung: Enthält das Eingabe-Array Werte kleiner oder gleich 0, kann die Funktion false zurückgeben oder unerwartete Ergebnisse liefern. Validiere die Eingabedaten daher stets vor dem Aufruf.

Das zurückgegebene Array verwendet möglicherweise nicht die ursprünglichen Schlüssel des Eingabe-Arrays — verwende array_values(), wenn du einen fortlaufenden numerischen Index benötigst.