Signatur
Beschreibung
trader_stddev ist Teil der PHP-Erweiterung TRADER (basierend auf der TA-Lib) und berechnet die Standardabweichung einer numerischen Zeitreihe – typischerweise Schlusskurse eines Finanzinstruments – über ein gleitendes Fenster der Länge $timePeriod. Die Standardabweichung misst die Streuung der Werte um ihren Mittelwert und ist ein klassisches Maß für Volatilität.
Der Parameter $nbDev erlaubt es, das Ergebnis mit einem Faktor zu skalieren. Ein Wert von 1.0 liefert die unveränderliche Standardabweichung, 2.0 verdoppelt sie – was beispielsweise bei der Berechnung von Bollinger Bands benötigt wird (oberes Band = Mittelwert + 2 × Standardabweichung).
Das Rückgabe-Array hat denselben Index wie das Eingabe-Array. Die ersten $timePeriod - 1 Einträge fehlen im Ergebnis, da für diese Positionen noch nicht genug Datenpunkte vorhanden sind. Der Rückgabewert ist false, wenn die Berechnung fehlschlägt (z. B. ungültige Parameter oder zu kurze Eingabedaten).
Typische Anwendungsfälle sind die Messung von Marktvolatilität, das Erstellen von Bollinger Bands sowie statistische Analysen von Zeitreihendaten in Handelsalgorithmen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Numerisches Array mit den Eingabewerten der Zeitreihe (z. B. tägliche Schlusskurse). Indizes sollten aufsteigend und lückenlos sein. | |
| $timePeriod | int | 5 | Anzahl der Perioden (Fenstergröße) für die Berechnung. Muss >= 2 sein. Typische Werte sind 5, 10 oder 20. |
| $nbDev | float | 1.0 | Skalierungsfaktor für die berechnete Standardabweichung. Ein Wert von 2.0 verdoppelt das Ergebnis, was z. B. für Bollinger Bands benötigt wird. |
Rückgabewert
$timePeriod - 1 Indizes sind nicht im Array enthalten. Bei einem Fehler (z. B. zu wenige Datenpunkte oder ungültige Parameter) wird false zurückgegeben.Beispiele
Einfache Standardabweichung über 5 Perioden
<?php
// Tägliche Schlusskurse einer Aktie
$closes = [10.0, 10.5, 11.0, 10.8, 10.3, 10.9, 11.2, 11.5, 11.1, 10.7];
$result = trader_stddev($closes, 5, 1.0);
if ($result === false) {
echo "Berechnung fehlgeschlagen.";
} else {
foreach ($result as $index => $value) {
echo "Index $index: " . round($value, 4) . "\n";
}
}
Bollinger Bands mit trader_stddev und trader_sma
<?php
// Schlusskurse
$closes = [20.0, 20.5, 21.0, 20.8, 20.3, 20.9, 21.2, 21.5, 21.1, 20.7,
21.3, 21.8, 22.0, 21.6, 21.4, 21.9, 22.3, 22.1, 21.8, 22.5];
$period = 10;
$nbDev = 2.0;
$sma = trader_sma($closes, $period);
$stddev = trader_stddev($closes, $period, $nbDev);
if ($sma === false || $stddev === false) {
echo "Berechnungsfehler.";
exit;
}
foreach ($sma as $i => $middle) {
if (!isset($stddev[$i])) continue;
$upper = $middle + $stddev[$i];
$lower = $middle - $stddev[$i];
printf(
"Index %2d | Mitte: %6.3f | Oben: %6.3f | Unten: %6.3f\n",
$i, $middle, $upper, $lower
);
}
// Wichtig · Fallstricke
Voraussetzung: Die PHP-Erweiterung trader muss installiert und in der php.ini aktiviert sein (extension=trader). Sie basiert auf der C-Bibliothek TA-Lib.
Achtung bei kurzen Arrays: Ist das Eingabe-Array kürzer als $timePeriod, gibt die Funktion false zurück. Prüfe den Rückgabewert daher stets mit === false.
Populationsabweichung: TA-Lib verwendet die Populationsstandardabweichung (Division durch n), nicht die Stichproben-Standardabweichung (Division durch n-1). Dies kann von anderen statistischen Werkzeugen abweichen.