Signatur
Beschreibung
trader_linearreg_angle gehört zur TRADER-Erweiterung (TA-Lib) für PHP und berechnet den Winkel der linearen Regressionsgeraden für ein gleitendes Fenster über eine numerische Zeitreihe. Das Ergebnis wird in Grad (nicht Bogenmaß) ausgegeben und gibt an, wie stark die Regressionsgerade innerhalb des betrachteten Zeitfensters ansteigt oder fällt.
Die Funktion ist besonders nützlich in der technischen Analyse von Finanzmarktdaten: Ein positiver Winkel zeigt einen Aufwärtstrend, ein negativer Winkel einen Abwärtstrend an. Je steiler der Winkel, desto ausgeprägter der Trend. Im Vergleich zur bloßen Steigung (Slope) ist der Winkel intuitiver interpretierbar, da er unabhängig von der Skalierung der Daten ist.
Die Berechnung basiert auf der Methode der kleinsten Quadrate über ein rollierendes Fenster der Länge timePeriod. Die ersten timePeriod - 1 Elemente des Rückgabe-Arrays sind nicht vorhanden (die Ausgabe ist kürzer als die Eingabe). Die TRADER-Erweiterung muss separat installiert sein (pecl install trader).
- Winkel > 0: Aufwärtstrend
- Winkel < 0: Abwärtstrend
- Winkel ≈ 0: Seitwärtsbewegung
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Eingabe-Array mit numerischen Werten (z. B. Schlusskurse einer Aktie). Die Indizes sollten fortlaufend sein. | |
| $timePeriod | int | 14 | Anzahl der Perioden (Fenstergröße) für die lineare Regression. Muss zwischen 2 und 100000 liegen. Standardwert ist 14. |
Rückgabewert
real: Die ersten timePeriod - 1 Werte fehlen. Bei einem Fehler (z. B. ungültige Parameter oder nicht verfügbare TRADER-Erweiterung) wird false zurückgegeben.Beispiele
Winkel der linearen Regression für Schlusskurse berechnen
<?php
// Beispiel-Schlusskurse einer Aktie (14 Tage)
$closes = [100, 102, 101, 104, 107, 109, 108, 111, 113, 115, 114, 117, 119, 121];
// Winkel über 5-Perioden-Fenster berechnen
$angles = trader_linearreg_angle($closes, 5);
if ($angles === false) {
echo "Fehler bei der Berechnung.";
} else {
foreach ($angles as $index => $angle) {
printf("Index %d: Winkel = %.4f Grad\n", $index, $angle);
}
}
// Die ersten 4 Werte (timePeriod - 1 = 4) fehlen im Ausgabe-Array
Trend-Erkennung: Aufwärts, Abwärts oder Seitwärts
<?php
// Mischung aus Auf- und Abwärtsbewegungen
$preise = [200, 198, 195, 193, 190, 192, 194, 197, 200, 203, 205, 204, 202, 200];
$winkel = trader_linearreg_angle($preise, 5);
if ($winkel === false) {
echo "Berechnung fehlgeschlagen.\n";
exit;
}
foreach ($winkel as $i => $w) {
if ($w > 1.0) {
$trend = 'Aufwärtstrend';
} elseif ($w < -1.0) {
$trend = 'Abwärtstrend';
} else {
$trend = 'Seitwärts';
}
printf("Periode %2d: %7.4f Grad => %s\n", $i, $w, $trend);
}
// Wichtig · Fallstricke
Erweiterung erforderlich: trader_linearreg_angle ist Teil der PECL-Erweiterung trader, die nicht standardmäßig in PHP enthalten ist. Installation via pecl install trader und Aktivierung in der php.ini notwendig (extension=trader).
Array-Indizes: Das zurückgegebene Array verwendet dieselben numerischen Indizes wie das Eingabe-Array, beginnend bei timePeriod - 1. Beim Zugriff auf kombinierte Datensätze (z. B. Datum + Winkel) unbedingt array_keys() berücksichtigen, um Indexverschiebungen zu vermeiden.
Skalierungsunabhängigkeit: Im Gegensatz zur rohen Steigung (trader_linearreg_slope) ist der Winkel dimensionslos in Grad, was den Vergleich zwischen verschiedenen Wertpapieren oder Skalen erleichtert. Allerdings hängt der absolute Winkelwert von der Skalierung der X-Achse (Zeitachse) ab – bei unterschiedlichen Zeitrahmen sind Vergleiche mit Vorsicht zu interpretieren.