Start · Sprachen · PHP · Referenz · trader_cdlhighwave

trader_cdlhighwave

Funktion

Erkennt das High-Wave-Candlestick-Muster in OHLC-Kursdaten und gibt für jeden Datenpunkt einen Musterwert zurück.

Kategorie: math

Signatur

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

Beschreibung

Die Funktion trader_cdlhighwave() gehört zur PECL-Erweiterung Trader, die auf der TA-Lib (Technical Analysis Library) basiert. Sie analysiert Kerzendiagramm-Daten (Candlestick-Daten) und identifiziert das sogenannte High-Wave-Muster – einen Kerzentyp mit einem sehr kleinen Körper und extrem langen Ober- und Unterschatten, der auf ausgeprägte Marktunsicherheit oder Volatilität hinweist.

Das High-Wave-Muster tritt auf, wenn Eröffnungs- und Schlusskurs nah beieinander liegen, aber sowohl der obere als auch der untere Schatten sehr lang sind. Dies signalisiert, dass weder Käufer noch Verkäufer die Kontrolle über den Markt haben. Es handelt sich um ein neutrales Muster, das häufig als Warnsignal für eine mögliche Trendumkehr oder Konsolidierungsphase interpretiert wird.

Der Rückgabewert für jeden Datenpunkt ist 100 (bullish), -100 (bearish) oder 0 (kein Muster erkannt). Die Arrays müssen gleich lang sein und chronologisch geordnete OHLC-Kursdaten enthalten. Beachte, dass die ersten Elemente des Ergebnis-Arrays aufgrund der internen Berechnungsperiode möglicherweise den Wert 0 haben.

Diese Funktion eignet sich besonders für den Einsatz in automatisierten Handelssystemen oder technischen Analyse-Pipelines, die Candlestick-Muster systematisch erkennen und auswerten sollen.

Parameter

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

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit ganzzahligen Werten zurück: 100 für ein bullishes High-Wave-Muster, -100 für ein bearishes High-Wave-Muster und 0 wenn kein Muster erkannt wurde. Im Fehlerfall (z. B. bei unterschiedlich langen Eingabe-Arrays oder fehlender Trader-Erweiterung) wird false zurückgegeben.

Beispiele

Grundlegende Mustererkennung auf Kursdaten

<?php
// OHLC-Kursdaten (Open, High, Low, Close)
$open  = [100.0, 101.5, 99.0, 102.0, 100.5];
$high  = [110.0, 112.0, 111.5, 113.0, 114.0];
$low   = [ 90.0,  89.5,  88.0,  91.0,  87.0];
$close = [101.0, 100.5, 100.0, 101.5, 101.0];

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

if ($result === false) {
    echo "Fehler bei der Berechnung oder Trader-Erweiterung nicht verfügbar.";
} else {
    foreach ($result as $index => $value) {
        if ($value !== 0) {
            $richtung = $value > 0 ? 'Bullish' : 'Bearish';
            echo "Kerze $index: High-Wave-Muster erkannt ($richtung, Wert: $value)\n";
        } else {
            echo "Kerze $index: Kein Muster\n";
        }
    }
}
Kerze 0: Kein Muster Kerze 1: Kein Muster Kerze 2: Kein Muster Kerze 3: Kein Muster Kerze 4: Kein Muster

Filterung aller erkannten High-Wave-Kerzen aus einem Datensatz

<?php
// Größerer Datensatz mit OHLC-Werten
$open  = [50.0, 51.0, 49.5, 52.0, 50.5, 53.0, 51.5];
$high  = [60.0, 61.5, 62.0, 63.0, 64.5, 65.0, 66.0];
$low   = [40.0, 39.5, 38.0, 41.0, 37.5, 42.0, 39.0];
$close = [51.0, 50.5, 50.0, 51.5, 51.0, 52.5, 52.0];

$muster = trader_cdlhighwave($open, $high, $low, $close);

if ($muster !== false) {
    $erkannt = array_filter($muster, fn($v) => $v !== 0);
    if (empty($erkannt)) {
        echo "Keine High-Wave-Muster im Datensatz gefunden.\n";
    } else {
        echo "Gefundene High-Wave-Muster:\n";
        foreach ($erkannt as $idx => $wert) {
            echo " - Index $idx: " . ($wert > 0 ? 'Bullish' : 'Bearish') . " ($wert)\n";
        }
    }
} else {
    echo "Fehler bei der Berechnung.\n";
}
Keine High-Wave-Muster im Datensatz gefunden.

// Wichtig · Fallstricke

Voraussetzung: Die trader-PECL-Erweiterung muss installiert und aktiviert sein (pecl install trader). Sie ist nicht Teil des PHP-Kerns.

Alle vier Eingabe-Arrays (open, high, low, close) müssen exakt gleich lang sein und numerisch indiziert vorliegen. Andernfalls gibt die Funktion false zurück.

Das Ergebnis-Array hat grundsätzlich dieselbe Länge wie die Eingabe-Arrays. Die ersten Elemente können aufgrund der internen Lookback-Periode den Wert 0 enthalten, auch wenn dort rechnerisch ein Muster vorliegen könnte.

Das High-Wave-Muster allein ist kein starkes Handelssignal und sollte stets in Kombination mit anderen Indikatoren (z. B. Volumen, Trendanalyse) interpretiert werden.