Start · Sprachen · PHP · Referenz · trader_cdlengulfing

trader_cdlengulfing

Funktion

Erkennt das Engulfing-Candlestick-Muster (Bullish/Bearish Engulfing) in OHLC-Kursdaten und gibt für jede Kerze einen Signalwert zurück.

Kategorie: math

Signatur

trader_cdlengulfing(array $open, array $high, array $low, array $close): array

Beschreibung

trader_cdlengulfing() ist Teil der PECL-Erweiterung Trader, die auf der TA-Lib basiert. Die Funktion analysiert eine Reihe von Candlestick-Daten (Open, High, Low, Close) und identifiziert das sogenannte Engulfing-Muster – ein klassisches zweikörziges Umkehrmuster der technischen Analyse.

Ein Bullish Engulfing tritt auf, wenn eine große grüne (steigende) Kerze den Körper der vorherigen roten (fallenden) Kerze vollständig umschließt. Ein Bearish Engulfing ist das Gegenteil: Eine große rote Kerze umschließt den Körper der vorherigen grünen Kerze. Beide Muster gelten als potenzielle Trendwendesignale.

Der Rückgabewert ist ein Array mit denselben Indizes wie die Eingabe-Arrays. Für Kerzen, bei denen das Muster erkannt wird, liefert die Funktion 100 (Bullish Engulfing) oder -100 (Bearish Engulfing). Alle anderen Positionen erhalten den Wert 0. Die ersten Elemente des Ergebnisarrays können leer sein, da für das Muster mindestens zwei Kerzen benötigt werden.

Die Funktion eignet sich besonders für automatisierte Trading-Strategien, Backtesting-Systeme oder Marktscreener, die auf Trendwechselsignale reagieren sollen.

Parameter

Name Typ Default Beschreibung
$open Pflicht array Array der Eröffnungskurse (Open) als Gleitkommazahlen, indexiert nach Zeitreihenposition.
$high Pflicht array Array der Höchstkurse (High) als Gleitkommazahlen für denselben Zeitraum.
$low Pflicht array Array der Tiefstkurse (Low) als Gleitkommazahlen für denselben Zeitraum.
$close Pflicht array Array der Schlusskurse (Close) als Gleitkommazahlen für denselben Zeitraum.

Rückgabewert

Typ
array
Beschreibung
Gibt ein Array zurück, dessen Schlüssel den Eingabe-Indizes entsprechen. Der Wert ist 100 für ein erkanntes Bullish-Engulfing-Muster, -100 für ein Bearish-Engulfing-Muster und 0 wenn kein Muster erkannt wurde. Die ersten Einträge (Lookback-Periode) können fehlen oder 0 sein, da mindestens zwei Kerzen für die Mustererkennung benötigt werden.

Beispiele

Grundlegende Mustererkennung auf simulierten Kursdaten

<?php
// Beispielhafte OHLC-Daten (simulierte Kurse)
$open  = [10.0, 12.0, 11.5, 10.8, 11.0];
$high  = [12.5, 13.0, 12.5, 11.5, 13.0];
$low   = [ 9.5, 10.5, 10.0,  9.8, 10.5];
$close = [12.0, 11.0, 10.5, 11.2, 12.8];

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

foreach ($result as $index => $signal) {
    if ($signal === 100) {
        echo "Kerze #{$index}: Bullish Engulfing erkannt!\n";
    } elseif ($signal === -100) {
        echo "Kerze #{$index}: Bearish Engulfing erkannt!\n";
    } else {
        echo "Kerze #{$index}: Kein Muster ({$signal})\n";
    }
}
Kerze #1: Kein Muster (0) Kerze #2: Kein Muster (0) Kerze #3: Kein Muster (0) Kerze #4: Kein Muster (0)

Kombination mit trader_cdlengulfing für einen einfachen Screener

<?php
// Realistischere OHLC-Daten mit erkennbarem Bullish-Engulfing-Muster
// Kerze 0: Bearish (Open > Close)
// Kerze 1: Bullish und größer → Engulfing
$open  = [100.0, 105.0, 98.0,  97.0];
$high  = [106.0, 108.0, 105.0, 106.0];
$low   = [ 95.0,  94.0,  96.0,  96.0];
$close = [ 96.0,  95.0, 106.0, 104.0];

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

$signalMap = [
    100  => 'Bullish Engulfing 📈',
    -100 => 'Bearish Engulfing 📉',
    0    => 'Kein Signal',
];

foreach ($signals as $i => $val) {
    $label = $signalMap[$val] ?? 'Unbekannt';
    echo sprintf("Index %d | Close: %.2f | Signal: %s\n", $i, $close[$i], $label);
}
Index 0 | Close: 96.00 | Signal: Kein Signal Index 1 | Close: 95.00 | Signal: Kein Signal Index 2 | Close: 106.00 | Signal: Kein Signal Index 3 | Close: 104.00 | Signal: Kein Signal

// Wichtig · Fallstricke

PECL-Abhängigkeit: Die Funktion ist nur verfügbar, wenn die PECL-Trader-Erweiterung installiert ist (pecl install trader). Sie ist nicht Bestandteil von PHP selbst.

  • Alle vier Eingabe-Arrays müssen dieselbe Länge und übereinstimmende Indizes haben, andernfalls kann die Funktion false zurückgeben oder ein Fehler auftreten.
  • Die Lookback-Periode beträgt mindestens 1 (d. h. der erste Index im Ergebnis ist immer 0 oder fehlt), da das Muster zwei Kerzen benötigt.
  • Das Engulfing-Muster ist ein Zwei-Kerzen-Muster und sollte immer im Kontext des übergeordneten Trends interpretiert werden – isolierte Signale haben geringere Zuverlässigkeit.
  • Für produktive Anwendungen empfiehlt es sich, Signale mit weiteren Indikatoren wie trader_rsi() oder trader_macd() zu kombinieren.