Start · Sprachen · PHP · Referenz · trader_cdlhangingman

trader_cdlhangingman

Funktion

Erkennt das Hanging-Man-Candlestick-Muster in OHLC-Kursdaten und gibt für jeden Datenpunkt einen Signalwert zurück.

Kategorie: math

Signatur

trader_cdlhangingman(array $open, array $high, array $low, array $close): array|false

Beschreibung

Die Funktion trader_cdlhangingman() gehört zur PHP-Erweiterung Trader (Technical Analysis for Traders) und implementiert die Erkennung des Hanging Man-Kerzenmusters. Dieses Muster tritt in Aufwärtstrends auf und gilt als potenzielles Umkehrsignal nach unten: Eine Kerze mit kleinem Körper am oberen Ende und einem langen unteren Schatten (mindestens doppelt so lang wie der Körper), der darauf hindeutet, dass Verkäufer temporär die Kontrolle erlangten.

Das Hanging-Man-Muster ist das optische Gegenstück zum Hammer-Muster, das in Abwärtstrends erscheint. Der entscheidende Unterschied liegt im vorangegangenen Trend: Erscheint dieselbe Kerzenform nach einem Aufwärtstrend, spricht man vom Hanging Man. Die Funktion gibt für jeden Zeitpunkt im Eingabe-Array einen Wert zurück – typischerweise 100 (bullishes Signal), -100 (bearishes Signal) oder 0 (kein Muster erkannt).

Die Eingabe-Arrays $open, $high, $low und $close müssen numerisch indiziert und gleich lang sein. Sie repräsentieren die OHLC-Daten (Open, High, Low, Close) einer Zeitreihe, z. B. Tages- oder Stundenkurse. Die Funktion eignet sich zur Integration in technische Analyse-Pipelines, um Handelssignale automatisiert auszuwerten.

Für den Einsatz dieser Funktion muss die PECL-Erweiterung trader installiert und in der php.ini geladen sein. Die Erweiterung basiert intern auf der TA-Lib-Bibliothek.

Parameter

Name Typ Default Beschreibung
$open Pflicht array Numerisch indiziertes Array mit den Eröffnungskursen (Open) der Kerzen.
$high Pflicht array Numerisch indiziertes Array mit den Höchstkursen (High) der Kerzen.
$low Pflicht array Numerisch indiziertes Array mit den Tiefstkursen (Low) der Kerzen.
$close Pflicht array Numerisch indiziertes Array mit den Schlusskursen (Close) der Kerzen.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein numerisch indiziertes Array zurück, das für jeden Eingabezeitpunkt einen Integer-Wert enthält: 100 steht für ein erkanntes bullishes Muster, -100 für ein bearishes Muster und 0 für keinen Treffer. Bei einem Fehler (z. B. ungleich lange Arrays) wird false zurückgegeben. Das Rückgabe-Array ist kürzer als die Eingabe, da für die Lookback-Periode am Anfang keine Werte berechnet werden können.

Beispiele

Einfache Erkennung des Hanging-Man-Musters

<?php
// OHLC-Kursdaten (z. B. Tageskerzen)
$open  = [10.0, 10.5, 11.0, 11.5, 11.8, 11.7, 11.6];
$high  = [10.6, 11.0, 11.5, 11.9, 12.0, 11.9, 11.8];
$low   = [9.8,  10.3, 10.8, 11.2, 10.5, 11.4, 11.3];
$close = [10.4, 10.9, 11.3, 11.7, 11.75, 11.6, 11.55];

$result = trader_cdlhangingman($open, $high, $low, $close);

if ($result === false) {
    echo "Fehler bei der Berechnung.\n";
} else {
    foreach ($result as $index => $signal) {
        if ($signal !== 0) {
            echo "Hanging Man erkannt an Index {$index}: Signal = {$signal}\n";
        }
    }
    if (empty(array_filter($result))) {
        echo "Kein Hanging-Man-Muster in den Daten gefunden.\n";
    }
}
Kein Hanging-Man-Muster in den Daten gefunden.

Integration in eine einfache Handelssignal-Auswertung

<?php
// Simulierter Aufwärtstrend mit potenziell auffälliger Kerze
$open  = [100, 102, 104, 106, 108, 109.8, 110.0];
$high  = [102, 104, 106, 108, 110, 110.2, 110.3];
$low   = [99,  101, 103, 105, 107, 104.0, 109.5];
$close = [101, 103, 105, 107, 109, 109.9, 109.8];

$signals = trader_cdlhangingman($open, $high, $low, $close);

if (is_array($signals)) {
    $lastSignal = end($signals);
    $lastIndex  = key($signals);

    echo "Letzter Signalwert an Index {$lastIndex}: {$lastSignal}\n";

    if ($lastSignal === -100) {
        echo "Warnung: Mögliches Umkehrsignal (Hanging Man) – Verkaufsüberlegung prüfen.\n";
    } elseif ($lastSignal === 0) {
        echo "Kein Muster erkannt.\n";
    }
}
Letzter Signalwert an Index 6: 0 Kein Muster erkannt.

// Wichtig · Fallstricke

Voraussetzung: Die Funktion ist nur verfügbar, wenn die PECL-Erweiterung trader installiert ist (pecl install trader). Ohne diese Erweiterung führt der Aufruf zu einem fatalen Fehler.

Lookback-Periode: Das Rückgabe-Array enthält weniger Einträge als die Eingabe-Arrays, da TA-Lib intern eine Lookback-Periode benötigt. Die ersten Einträge fehlen im Ergebnis – die Indizes des Rückgabe-Arrays beginnen daher nicht zwingend bei 0.

Kontext wichtig: Das Hanging-Man-Muster ist allein kein zuverlässiges Handelssignal. Es sollte stets im Kontext des übergeordneten Trends und weiterer Indikatoren (z. B. Volumen, RSI) interpretiert werden. Falsche Positive sind ohne Trendbestätigung häufig.

Alle Arrays müssen gleich lang und numerisch indiziert sein, andernfalls gibt die Funktion false zurück.