Signatur
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
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";
}
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";
}
// 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.