Signatur
Beschreibung
Die Funktion trader_ht_trendline() gehört zur TRADER-Erweiterung von PHP, die auf der TA-Lib (Technical Analysis Library) basiert. Sie berechnet die sogenannte Instantaneous Trendline – eine geglättete Trendlinie, die auf der Hilbert-Transformation beruht und in der technischen Analyse von Finanzmärkten eingesetzt wird.
Die Hilbert-Transformation ist ein mathematisches Verfahren, das aus einem reellen Signal (z. B. Schlusskurse einer Aktie) den dominanten Zyklus und die Trendkomponente herausfiltern kann. Die Trendlinie gibt an, in welche Richtung sich der Kurs bewegt, bereinigt um zyklische Schwingungen.
Diese Funktion eignet sich besonders für die Analyse von Kursbewegungen in algorithmischen Handelssystemen, wenn klassische gleitende Durchschnitte zu viel Lag (Verzögerung) aufweisen. Die Instantaneous Trendline reagiert schneller auf echte Trendwechsel, ohne dabei zu viel Rauschen zu erzeugen.
Der Rückgabewert ist ein Array mit denselben Indizes wie das Eingabe-Array, wobei die ersten Elemente üblicherweise den Wert 0.0 enthalten (Lookback-Periode), da für die Berechnung eine Mindestanzahl an Datenpunkten benötigt wird.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Ein numerisches Array mit reellen Zahlen, typischerweise die Schlusskurse einer Zeitreihe (z. B. Aktienkurse). Die Werte müssen als float vorliegen oder konvertierbar sein. |
Rückgabewert
false zurückgegeben.Beispiele
Berechnung der momentanen Trendlinie für Aktienschlusskurse
<?php
// Beispielhafte Schlusskurse einer Aktie (mind. ~63 Werte empfohlen)
$closes = [
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, 43.61, 44.33, 44.83,
45.10, 45.15, 43.61, 44.33, 44.83, 45.10, 45.15, 43.61,
44.33, 44.83, 45.10, 45.15, 43.61, 44.33, 44.83, 45.10,
45.15, 43.61, 44.33, 44.83, 45.10, 45.15, 43.61, 44.33,
44.83, 45.10, 45.15, 43.61, 44.33, 44.83, 45.10, 45.15,
43.61, 44.33, 44.83, 45.10, 45.15, 43.61, 44.33, 44.83,
45.10, 45.15, 43.61, 44.33, 44.83, 45.10, 45.15, 44.50
];
$trendline = trader_ht_trendline($closes);
if ($trendline === false) {
echo "Fehler bei der Berechnung.\n";
} else {
foreach ($trendline as $index => $value) {
if ($value != 0.0) {
echo "Index {$index}: Trendlinie = " . round($value, 4) . "\n";
}
}
}
Vergleich der Trendlinie mit dem aktuellen Kurs zur Signalgenerierung
<?php
// Einfaches Handelssignal: Kurs über Trendlinie = Aufwärtstrend
$closes = array_fill(0, 64, 44.0);
// Leicht steigende Kurse simulieren
for ($i = 0; $i < 64; $i++) {
$closes[$i] = 40.0 + ($i * 0.1);
}
$trendline = trader_ht_trendline($closes);
if ($trendline !== false) {
$lastIndex = array_key_last($trendline);
$lastClose = $closes[$lastIndex];
$lastTrend = $trendline[$lastIndex];
echo "Letzter Schlusskurs: " . round($lastClose, 2) . "\n";
echo "Trendlinie: " . round($lastTrend, 4) . "\n";
if ($lastClose > $lastTrend) {
echo "Signal: Aufwärtstrend – mögliches Kaufsignal\n";
} else {
echo "Signal: Abwärtstrend – mögliches Verkaufssignal\n";
}
}
// Wichtig · Fallstricke
Lookback-Periode: Die Hilbert-Transformation benötigt eine Mindestanzahl von Datenpunkten (Lookback), bevor sinnvolle Werte berechnet werden können. Typischerweise sind mindestens 63 Datenpunkte erforderlich. Elemente unterhalb dieser Schwelle enthalten den Wert 0.0 im Rückgabe-Array.
TRADER-Erweiterung erforderlich: Diese Funktion ist nur verfügbar, wenn die PHP-Erweiterung trader installiert und aktiviert ist (extension=trader in der php.ini). Ohne diese Erweiterung führt der Aufruf zu einem schwerwiegenden Fehler.
Eingabe-Array: Das Array sollte ausschließlich numerische Werte enthalten. Nicht-numerische Werte oder Lücken in der Zeitreihe können zu unerwarteten Ergebnissen oder einem Rückgabewert von false führen.