Start · Sprachen · PHP · Referenz · trader_ht_trendline

trader_ht_trendline

Funktion

Berechnet die momentane Trendlinie (Instantaneous Trendline) eines Zeitreihen-Arrays mithilfe der Hilbert-Transformation.

Kategorie: math

Signatur

trader_ht_trendline(array $real): array|false

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

Typ
array|false
Beschreibung
Gibt bei Erfolg ein assoziatives Array mit den berechneten Trendlinienwerten zurück. Die Array-Schlüssel entsprechen den Indizes des Eingabe-Arrays. Im Fehlerfall (z. B. ungültige Eingabe oder zu wenige Datenpunkte) wird 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";
        }
    }
}
Index 63: Trendlinie = 44.7231

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";
    }
}
Letzter Schlusskurs: 46.3 Trendlinie: 45.9412 Signal: Aufwärtstrend – mögliches Kaufsignal

// 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.