Signatur
Beschreibung
trader_ht_dcphase ist Teil der TRADER-Erweiterung für PHP (basierend auf der TA-Lib) und berechnet die Hilbert-Transformation – Dominant Cycle Phase (HT_DCPHASE). Diese Funktion analysiert eine Zeitreihe (z. B. Schlusskurse einer Aktie) und ermittelt die Phase des dominanten Zyklus im Signal.
Die Hilbert-Transformation ist ein mathematisches Werkzeug aus der Signalverarbeitung, das es ermöglicht, den instantanen Phasenwinkel eines Signals zu bestimmen. Der Ausgabewert gibt für jeden Datenpunkt den Phasenwinkel (in Grad, 0–360) des dominanten Zyklus an. Dies ist besonders nützlich in der technischen Analyse von Finanzzeitreihen, um Wendepunkte im Markt zu identifizieren.
Die Funktion liefert ein Array mit den berechneten Phasenwerten. Da die HT_DCPHASE einen Anlauf benötigt, enthält das Ergebnis-Array weniger Elemente als das Eingabe-Array – die ersten Werte werden weggelassen (sogenannter Lookback-Bereich). Die Schlüssel des Ergebnis-Arrays beginnen daher bei einem Offset, der dem Lookback-Wert entspricht.
Typische Einsatzgebiete sind algorithmisches Trading, quantitative Finanzanalyse sowie jede Anwendung, bei der zyklische Muster in Zeitreihendaten erkannt werden sollen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Ein numerisches Array mit den Eingabewerten der Zeitreihe (z. B. Schlusskurse). Die Werte müssen als float vorliegen oder in float konvertierbar sein. |
Rückgabewert
false zurückgegeben.Beispiele
Dominante Zyklusphase für Schlusskurse berechnen
<?php
// Beispiel-Schlusskurse (mindestens ~64 Werte empfohlen)
$close = [
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.02, 45.00, 44.90,
44.50, 44.20, 44.60, 45.00, 45.50, 46.00, 46.30, 46.10,
45.80, 45.50, 45.20, 45.00, 44.80, 44.60, 44.40, 44.20,
44.00, 43.80, 43.60, 43.40, 43.20, 43.00, 42.80, 42.60,
42.40, 42.20, 42.00, 42.20, 42.40, 42.60, 42.80, 43.00,
43.20, 43.40, 43.60, 43.80, 44.00, 44.20, 44.40, 44.60,
44.80, 45.00, 45.20, 45.40, 45.60, 45.80, 46.00, 46.20,
46.40, 46.60, 46.80, 47.00, 47.20, 47.40, 47.60, 47.80,
];
$result = trader_ht_dcphase($close);
if ($result === false) {
echo "Berechnung fehlgeschlagen.\n";
} else {
echo "Anzahl berechneter Phasenwerte: " . count($result) . "\n";
foreach ($result as $index => $phase) {
printf("Index %d => Phase: %.4f Grad\n", $index, $phase);
}
}
Phasenwechsel als Handelssignal erkennen
<?php
// Beispiel: Phasenwechsel (Übergang von 360° auf 0°) als potenzielle Trendwende
$close = array_map(fn($i) => 45 + 3 * sin($i * M_PI / 18), range(0, 99));
$phases = trader_ht_dcphase($close);
if ($phases === false) {
echo "Fehler bei der Berechnung.\n";
} else {
$keys = array_keys($phases);
for ($i = 1; $i < count($keys); $i++) {
$prev = $phases[$keys[$i - 1]];
$curr = $phases[$keys[$i]];
// Phasenwechsel: vorheriger Wert nahe 360, aktueller nahe 0
if ($prev > 300 && $curr < 60) {
printf("Mögliche Trendwende bei Index %d (Phase: %.2f -> %.2f)\n",
$keys[$i], $prev, $curr);
}
}
}
// Wichtig · Fallstricke
Lookback: Die Hilbert-Transformation benötigt eine Mindestanzahl an Datenpunkten, bevor ein sinnvoller Ausgabewert berechnet werden kann. Es werden üblicherweise mindestens 63 Eingabewerte benötigt; mit weniger Datenpunkten gibt die Funktion false zurück.
Erweiterung: trader_ht_dcphase ist nur verfügbar, wenn die PHP-Erweiterung trader installiert und aktiviert ist (pecl install trader). Ohne diese Erweiterung existiert die Funktion nicht.
Ausgabe-Indizes: Das Ergebnis-Array beginnt nicht bei Index 0, sondern bei dem Index, der dem Lookback-Wert entspricht. Dies ist zu beachten, wenn Ergebnisse mit den Originaldaten verglichen oder geplottet werden.