Start · Sprachen · PHP · Referenz · trader_var

trader_var

Funktion

Berechnet die Varianz (Variance) einer Zeitreihe über einen gleitenden Zeitraum mithilfe der TRADER-Erweiterung.

Kategorie: math

Signatur

trader_var(array $real, int $timePeriod = 5, float $nbDev = 1.0): array|false

Beschreibung

trader_var ist Teil der PHP TRADER-Erweiterung, die technische Analysefunktionen aus der TA-Lib (Technical Analysis Library) bereitstellt. Die Funktion berechnet die statistische Varianz einer Zahlenreihe – also das mittlere quadratische Abweichungsmaß vom Mittelwert – über ein gleitendes Fenster der Länge $timePeriod.

Die Varianz ist ein zentrales Maß in der Statistik und der technischen Analyse von Finanzmarktdaten. Sie wird häufig eingesetzt, um die Volatilität (Schwankungsbreite) eines Kurses oder einer Zeitreihe zu quantifizieren. Ein hoher Varianzwert deutet auf starke Preisschwankungen hin, ein niedriger auf Stabilität. Die Quadratwurzel der Varianz ergibt die Standardabweichung (trader_stddev).

Der Parameter $nbDev skaliert das Ergebnis, indem er die berechnete Varianz mit dem Quadrat dieses Faktors multipliziert. Standardmäßig ist er 1.0, sodass das Ergebnis der reinen Varianz entspricht. Das Rückgabe-Array enthält für jeden gültigen Berechnungspunkt einen Wert; die ersten $timePeriod - 1 Einträge fehlen, da noch nicht genug Datenpunkte vorliegen.

Die TRADER-Erweiterung muss separat installiert sein (pecl install trader). Sie eignet sich besonders für Finanzdaten-Analysen, Algorithmic Trading und Zeitreihenauswertungen in PHP.

Parameter

Name Typ Default Beschreibung
$real Pflicht array Numerisches Array mit den Eingabewerten der Zeitreihe (z. B. Schlusskurse). Die Indizes sollten konsekutiv und numerisch sein.
$timePeriod int 5 Anzahl der Perioden (Fensterbreite) für die gleitende Varianzberechnung. Muss mindestens 2 betragen. Je größer der Wert, desto geglätteter das Ergebnis.
$nbDev float 1.0 Skalierungsfaktor für die Abweichung. Die berechnete Varianz wird mit nbDev² multipliziert. Bei 1.0 entspricht das Ergebnis der unveränderten Varianz.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein numerisch indiziertes Array mit den berechneten Varianzwerten zurück. Die ersten timePeriod - 1 Werte fehlen im Rückgabe-Array, da für diese Positionen noch keine vollständige Berechnung möglich ist. Bei einem Fehler (z. B. ungültige Eingaben) wird false zurückgegeben.

Beispiele

Einfache Varianzberechnung über 3 Perioden

<?php
// Beispiel-Schlusskurse einer Aktie
$schlusskurse = [10.0, 12.0, 11.5, 13.0, 12.5, 14.0, 13.5];

// Varianz über 3 Perioden berechnen
$varianz = trader_var($schlusskurse, 3);

if ($varianz === false) {
    echo "Fehler bei der Berechnung.";
} else {
    foreach ($varianz as $index => $wert) {
        echo "Index $index: " . round($wert, 4) . PHP_EOL;
    }
}
Index 2: 0.6667 Index 3: 0.6667 Index 4: 0.4167 Index 5: 0.4167 Index 6: 0.0833

Varianz als Volatilitätsindikator mit Standardabweichung

<?php
// Kursdaten
$kurse = [100.0, 102.5, 98.0, 105.0, 101.5, 99.0, 103.0, 107.5];
$periode = 4;

// Varianz berechnen
$varianzWerte = trader_var($kurse, $periode);

if ($varianzWerte !== false) {
    echo "Varianz und Standardabweichung (Periode: $periode):" . PHP_EOL;
    foreach ($varianzWerte as $i => $var) {
        $stdabw = sqrt($var);
        printf(
            "Index %d: Varianz = %.4f | Std.Abw. = %.4f%s",
            $i, $var, $stdabw, PHP_EOL
        );
    }
} else {
    echo "Berechnung fehlgeschlagen.";
}
Varianz und Standardabweichung (Periode: 4): Index 3: Varianz = 6.5625 | Std.Abw. = 2.5617 Index 4: Varianz = 7.1875 | Std.Abw. = 2.6809 Index 5: Varianz = 7.1875 | Std.Abw. = 2.6809 Index 6: Varianz = 3.6875 | Std.Abw. = 1.9204 Index 7: Varianz = 11.1875 | Std.Abw. = 3.3448

// Wichtig · Fallstricke

Installation: Die TRADER-Erweiterung ist nicht im PHP-Kern enthalten und muss über PECL installiert werden: pecl install trader. Anschließend muss extension=trader.so (Linux) bzw. extension=php_trader.dll (Windows) in der php.ini aktiviert werden.

Populationsvarianz: TA-Lib berechnet standardmäßig die Populationsvarianz (geteilt durch n), nicht die Stichprobenvarianz (geteilt durch n-1). Dies ist bei statistischen Vergleichen mit anderen Bibliotheken zu beachten.

Eingabe-Array: Das Eingabe-Array sollte ausschließlich numerische Werte enthalten. Nicht-numerische oder fehlende Werte können zu unerwarteten Ergebnissen oder false führen. Stellen Sie sicher, dass das Array keine Lücken aufweist.

Rückgabe-Index: Der Index des Rückgabe-Arrays entspricht dem Index im Eingabe-Array. Die ersten timePeriod - 1 Einträge sind nicht vorhanden, da für sie keine vollständige Berechnung möglich ist.