Start · Sprachen · PHP · Referenz · trader_cdlbelthold

trader_cdlbelthold

Funktion

Erkennt das Belt-Hold-Candlestick-Muster in OHLC-Kursdaten und gibt ein Integer-Array mit den Musterwerten zurück.

Kategorie: math

Signatur

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

Beschreibung

Die Funktion trader_cdlbelthold() ist Teil der PECL-Erweiterung trader, die technische Analysefunktionen auf Basis der TA-Lib-Bibliothek bereitstellt. Sie analysiert OHLC-Kursdaten (Open, High, Low, Close) und erkennt das sogenannte Belt-Hold-Muster (auch Yorikiri genannt), ein einzelnes Candlestick-Muster aus der japanischen Chartanalyse.

Das Belt-Hold-Muster tritt auf, wenn eine Kerze ohne oberen Schatten (bearish belt hold) oder ohne unteren Schatten (bullish belt hold) erscheint. Ein bullisches Belt-Hold-Muster deutet auf eine mögliche Trendumkehr nach oben hin, ein bärisches auf eine mögliche Umkehr nach unten. Es gilt als moderates Signal und wird häufig in Kombination mit anderen Indikatoren verwendet.

Der Rückgabewert je Datenpunkt ist 100 (bullisches Muster), -100 (bärisches Muster) oder 0 (kein Muster erkannt). Die Ergebnis-Arrays sind dabei kleiner als die Eingabe-Arrays, da TA-Lib eine sogenannte Lookback-Periode benötigt – die ersten Elemente bleiben ohne Ergebnis.

Diese Funktion eignet sich für die automatisierte Erkennung von Candlestick-Mustern in Börsenkursdaten, etwa in Trading-Systemen oder Marktanalyse-Tools auf Basis von PHP.

Parameter

Name Typ Default Beschreibung
$open Pflicht array Array mit den Eröffnungskursen (Open) als Fließkommazahlen, chronologisch geordnet.
$high Pflicht array Array mit den Tageshöchstkursen (High) als Fließkommazahlen, chronologisch geordnet.
$low Pflicht array Array mit den Tagestiefkursen (Low) als Fließkommazahlen, chronologisch geordnet.
$close Pflicht array Array mit den Schlusskursen (Close) als Fließkommazahlen, chronologisch geordnet.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Integer-Array zurück, in dem jeder Wert 100 (bullisches Belt-Hold), -100 (bärisches Belt-Hold) oder 0 (kein Muster) sein kann. Bei einem Fehler (z. B. ungültige Eingabe) wird false zurückgegeben. Das Ergebnis-Array ist kürzer als die Eingabe-Arrays, da die Lookback-Periode der TA-Lib berücksichtigt wird.

Beispiele

Einfache Mustererkennung mit Beispielkursdaten

<?php
// OHLC-Kursdaten (vereinfachtes Beispiel)
$open  = [44.34, 44.09, 44.15, 43.61, 44.33, 44.83, 45.10, 45.15];
$high  = [44.84, 44.74, 44.31, 44.33, 44.83, 45.10, 45.15, 43.61];
$low   = [44.09, 44.09, 43.61, 43.09, 44.09, 44.03, 44.83, 43.15];
$close = [44.09, 44.15, 43.61, 44.33, 44.83, 45.10, 45.15, 43.61];

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

if ($result === false) {
    echo 'Fehler bei der Berechnung.';
} else {
    foreach ($result as $index => $value) {
        if ($value === 100) {
            echo "Index $index: Bullisches Belt-Hold-Muster erkannt\n";
        } elseif ($value === -100) {
            echo "Index $index: Bärisches Belt-Hold-Muster erkannt\n";
        }
    }
    echo "Keine weiteren Muster gefunden.\n";
}
Keine weiteren Muster gefunden.

Kombination mit anderen trader-Funktionen zur Signalfilterung

<?php
// Größeres Datensatz-Array mit OHLC-Kursen
$open  = [10.0, 10.5, 11.0, 10.8, 10.3, 9.8, 9.5, 9.0, 9.2, 9.8];
$high  = [10.8, 11.2, 11.5, 11.0, 10.8, 10.2, 9.8, 9.5, 9.8, 10.2];
$low   = [9.8,  10.2, 10.5, 10.3, 9.8,  9.5,  9.0, 8.8, 9.0, 9.5];
$close = [10.5, 11.0, 10.8, 10.3, 9.8,  9.5,  9.0, 9.2, 9.8, 10.0];

$beltHold = trader_cdlbelthold($open, $high, $low, $close);
$rsi      = trader_rsi($close, 5); // RSI mit Periode 5 als Zusatzfilter

if ($beltHold && $rsi) {
    // Indizes angleichen (Lookback-Versatz beachten)
    $bhKeys  = array_keys($beltHold);
    $rsiKeys = array_keys($rsi);
    $common  = array_intersect($bhKeys, $rsiKeys);

    foreach ($common as $i) {
        if ($beltHold[$i] === 100 && $rsi[$i] < 30) {
            echo "Index $i: Bullisches Belt-Hold UND überverkauft (RSI={$rsi[$i]})\n";
        } elseif ($beltHold[$i] === -100 && $rsi[$i] > 70) {
            echo "Index $i: Bärisches Belt-Hold UND überkauft (RSI={$rsi[$i]})\n";
        }
    }
    echo "Analyse abgeschlossen.\n";
}
Analyse abgeschlossen.

// Wichtig · Fallstricke

Voraussetzung: Die PECL-Erweiterung trader muss installiert und aktiviert sein (pecl install trader, dann extension=trader.so in der php.ini).

Lookback-Versatz: Das Ergebnis-Array beginnt nicht bei Index 0 der Eingabe-Arrays. Die ersten Elemente werden übersprungen, da TA-Lib eine Mindestanzahl an Datenpunkten benötigt. Beim Zugriff auf die Ergebnisse immer array_keys() verwenden, um den korrekten Index zu ermitteln.

Signalqualität: Das Belt-Hold-Muster gilt als schwaches bis mittleres Signal. Es sollte stets mit weiteren Indikatoren (z. B. RSI, MACD oder Volumen) kombiniert werden, um Fehlsignale zu reduzieren.

Gleichheit der Array-Längen: Alle vier Eingabe-Arrays müssen dieselbe Anzahl an Elementen haben, andernfalls gibt die Funktion false zurück.