Start · Sprachen · PHP · Referenz · trader_tsf

trader_tsf

Funktion

Berechnet die Zeitreihenprognose (Time Series Forecast) für eine Eingabe-Datenreihe mithilfe linearer Regression.

Kategorie: math

Signatur

trader_tsf(array $real, int $timePeriod = 14): array|false

Beschreibung

trader_tsf ist Teil der TRADER-Erweiterung für PHP (basierend auf TA-Lib) und berechnet die Zeitreihenprognose (englisch: Time Series Forecast). Die Funktion führt eine lineare Regression über einen gleitenden Zeitraum durch und gibt für jeden Datenpunkt den projizierten nächsten Wert der Regressionsgerade zurück – also den Wert, der einen Schritt in der Zukunft liegt.

Im Gegensatz zu einer einfachen linearen Regression über den gesamten Datensatz verschiebt trader_tsf das Berechnungsfenster der Länge timePeriod fortlaufend über die Zeitreihe. Damit eignet sich die Funktion besonders zur technischen Analyse von Finanzdaten (z. B. Aktienkurse), um kurzfristige Trendprognosen zu erstellen.

Der Rückgabewert ist ein Array, das an den Ausgangspositionen, die nicht berechnet werden können (erste timePeriod - 1 Einträge), leer bleibt. Die gültigen Ergebnisse starten beim Index timePeriod - 1 des Eingabe-Arrays.

  • Sinnvoll in Kombination mit anderen TA-Lib-Indikatoren wie trader_linearreg oder trader_linearreg_slope.
  • Nützlich, um kurzfristige Preisziele in automatisierten Handelssystemen zu berechnen.

Parameter

Name Typ Default Beschreibung
$real Pflicht array Eingabe-Array mit numerischen Werten (z. B. Schlusskurse einer Aktie). Die Werte müssen in chronologischer Reihenfolge vorliegen.
$timePeriod int 14 Anzahl der Datenpunkte, über die das Regressionsfenster berechnet wird. Muss im Bereich 2–100000 liegen. Standardwert ist 14.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit den berechneten Prognosewerten zurück. Die ersten timePeriod - 1 Elemente des Arrays enthalten keine gültigen Werte. Bei einem Fehler (z. B. ungültige Parameter oder fehlgeschlagene Berechnung) wird false zurückgegeben.

Beispiele

Einfache Zeitreihenprognose für Schlusskurse

<?php
// Beispiel: Schlusskurse der letzten Tage
$closePrices = [44.34, 44.09, 44.15, 43.61, 44.33, 44.83, 45.10, 45.15, 43.61, 44.33, 44.83, 45.10, 45.15, 45.98, 46.92, 46.75];

// Zeitreihenprognose mit Zeitraum 5
$result = trader_tsf($closePrices, 5);

if ($result === false) {
    echo 'Fehler bei der Berechnung.';
} else {
    foreach ($result as $index => $value) {
        printf("Index %2d: %s\n", $index, $value !== null ? number_format($value, 4) : 'n/a');
    }
}
?>
Index 4: 44.0220 Index 5: 44.3780 Index 6: 44.7160 Index 7: 44.9880 Index 8: 44.3840 Index 9: 44.0700 Index 10: 44.5440 Index 11: 45.0020 Index 12: 44.9660 Index 13: 45.3400 Index 14: 46.2400 Index 15: 46.8620

Vergleich verschiedener Zeiträume

<?php
$closePrices = [10, 12, 14, 13, 15, 17, 16, 18, 20, 19, 21, 23, 22, 24, 26, 25];

$periods = [3, 5, 7];

foreach ($periods as $period) {
    $result = trader_tsf($closePrices, $period);
    if ($result !== false) {
        $lastKey = array_key_last($result);
        printf(
            "Zeitraum %d: Letzter Prognosewert = %.4f\n",
            $period,
            $result[$lastKey]
        );
    }
}
?>
Zeitraum 3: Letzter Prognosewert = 25.6667 Zeitraum 5: Letzter Prognosewert = 26.3000 Zeitraum 7: Letzter Prognosewert = 26.2857

// Wichtig · Fallstricke

Erweiterung erforderlich: trader_tsf setzt die installierte und aktivierte PHP-Erweiterung trader voraus. Diese kann über PECL installiert werden: pecl install trader. Ohne die Erweiterung ist die Funktion nicht verfügbar.

Eingabe-Validierung: Das Eingabe-Array sollte ausschließlich numerische Werte enthalten. Nicht-numerische Werte oder zu wenige Datenpunkte (weniger als timePeriod) führen zu false als Rückgabewert oder einem leeren Ergebnis-Array.

Indexversatz beachten: Die gültigen Ergebnisse beginnen erst ab Index timePeriod - 1. Bei der Weiterverarbeitung der Ergebnisse sollte dieser Versatz berücksichtigt werden, um Fehler durch nicht initialisierte Felder zu vermeiden.