Signatur
Beschreibung
trader_linearreg_intercept gehört zur TRADER-Erweiterung für PHP (basierend auf der TA-Lib) und berechnet den Achsenabschnitt der linearen Regression für eine Zeitreihe von Kursdaten. Bei einer linearen Regression der Form y = mx + b ist b der Achsenabschnitt – der Wert, den die Regressionsgerade am Ursprungspunkt der X-Achse (Zeitachse) annimmt.
Die Funktion arbeitet auf einem gleitenden Fenster: Für jeden Datenpunkt ab dem timePeriod-ten Wert wird eine eigene Regressionsgerade über die letzten timePeriod Werte berechnet und der dazugehörige Achsenabschnitt zurückgegeben. Das ist besonders nützlich in der technischen Analyse von Finanzdaten, um den Trendverlauf zu bewerten und kurzfristige Richtungsänderungen zu erkennen.
Typische Anwendungsfälle sind die Kombination mit trader_linearreg_slope (Steigung) und trader_linearreg_angle (Winkel), um ein vollständiges Bild der linearen Trendstruktur zu erhalten. Die Ausgabe ist ein Array, das am Anfang leer (nicht berechnet) ist und erst ab dem Index timePeriod - 1 Werte enthält.
Die TRADER-Erweiterung muss als PHP-Extension installiert und aktiviert sein (extension=trader), da sie nicht standardmäßig in PHP enthalten ist.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Numerisches Array mit Eingabewerten der Zeitreihe (z. B. Schlusskurse). Die Werte sollten als float vorliegen. |
|
| $timePeriod | int | 14 | Anzahl der Perioden (Fenstergröße) für die Berechnung der linearen Regression. Muss zwischen 2 und 100000 liegen. Standard ist 14. |
Rückgabewert
timePeriod - 1 Einträge fehlen (das Array beginnt erst bei dem Index, ab dem genug Daten vorhanden sind). Bei einem Fehler (z. B. ungültige Parameter oder zu wenig Eingabedaten) wird false zurückgegeben.Beispiele
Achsenabschnitt für eine einfache Kursreihe berechnen
<?php
// Beispielhafte Schlusskurse
$closes = [10.0, 11.5, 12.0, 13.5, 14.0, 13.0, 12.5, 14.5, 15.0, 16.0];
// Achsenabschnitt mit Fenstergröße 5 berechnen
$result = trader_linearreg_intercept($closes, 5);
if ($result === false) {
echo "Fehler bei der Berechnung.\n";
} else {
foreach ($result as $index => $intercept) {
echo "Index $index: Achsenabschnitt = " . round($intercept, 4) . "\n";
}
}
Kombination mit Steigung für vollständige Trendanalyse
<?php
$closes = [100.0, 102.5, 105.0, 103.0, 107.5, 110.0, 108.0, 112.0, 115.0, 113.0, 118.0, 120.0];
$period = 5;
$intercepts = trader_linearreg_intercept($closes, $period);
$slopes = trader_linearreg_slope($closes, $period);
if ($intercepts === false || $slopes === false) {
echo "Berechnung fehlgeschlagen.\n";
exit;
}
// Indizes sind in beiden Arrays gleich
$indices = array_keys($intercepts);
foreach ($indices as $i) {
$b = round($intercepts[$i], 4);
$m = round($slopes[$i], 4);
echo "Index $i => y = {$m}x + {$b}\n";
}
// Wichtig · Fallstricke
Achtung: Das zurückgegebene Array beginnt nicht zwingend bei Index 0. Die ersten timePeriod - 1 Elemente werden nicht berechnet und sind im Ergebnis-Array nicht vorhanden. Beim Zugriff auf bestimmte Indizes sollte daher isset() verwendet werden.
Die TRADER-Erweiterung muss separat installiert werden (z. B. über PECL: pecl install trader) und in der php.ini aktiviert sein (extension=trader). Ohne diese Erweiterung ist die Funktion nicht verfügbar.
Die Funktion ist nicht für sehr kurze Arrays geeignet: Wenn count($real) < $timePeriod, wird false zurückgegeben.