Start · Sprachen · PHP · Referenz · trader_cdleveningstar

trader_cdleveningstar

Funktion

Erkennt das <code>Evening Star</code>-Candlestick-Muster in OHLC-Kursdaten und gibt ein Array mit Signalwerten zurück.

Kategorie: math

Signatur

trader_cdleveningstar(array $open, array $high, array $low, array $close, float $penetration = 0.3): array|false

Beschreibung

Die Funktion trader_cdleveningstar() gehört zur TRADER-Erweiterung (TA-Lib) für PHP und analysiert Kerzenchart-Daten (OHLC) auf das Vorhandensein des Evening Star-Musters. Dieses Muster ist ein klassisches bärisches Umkehrsignal in der technischen Analyse und besteht aus drei Kerzen: einer langen bullischen Kerze, gefolgt von einer kleinen Körper-Kerze (Doji oder Spinning Top) sowie einer langen bärischen Kerze.

Das Erkennungsmuster wird häufig am Ende eines Aufwärtstrends beobachtet und deutet auf eine potenzielle Trendwende nach unten hin. Der Parameter $penetration steuert, wie weit die dritte Kerze in den Körper der ersten Kerze eindringen muss, damit das Muster als gültig erkannt wird.

Der Rückgabewert ist ein numerisches Array, das für jede Kerze einen Wert enthält: -100 steht für ein erkanntes bärisches Signal, 0 bedeutet kein Muster erkannt. Die ersten Elemente des Arrays können leer sein, da ein Lookback-Zeitraum benötigt wird.

Diese Funktion eignet sich für die Entwicklung von algorithmischen Handelssystemen, automatisierten Screener-Tools oder zur Visualisierung von Handelssignalen in Finanzanwendungen.

Parameter

Name Typ Default Beschreibung
$open Pflicht array Array mit den Eröffnungskursen der Kerzen als float-Werte, indiziert von 0 bis n-1.
$high Pflicht array Array mit den Höchstkursen der Kerzen als float-Werte.
$low Pflicht array Array mit den Tiefstkursen der Kerzen als float-Werte.
$close Pflicht array Array mit den Schlusskursen der Kerzen als float-Werte.
$penetration float 0.3 Prozentualer Eindringfaktor (0.0–1.0): Gibt an, wie tief die dritte Kerze in den Körper der ersten Kerze eindringen muss. Standardwert ist 0.3 (30 %).

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit ganzzahligen Signalwerten zurück. -100 zeigt ein erkanntes bärisches Evening Star-Muster an, 0 bedeutet kein Muster. Bei ungültigen Eingaben oder einem Fehler wird false zurückgegeben.

Beispiele

Grundlegende Erkennung des Evening-Star-Musters

<?php
// Beispielhafte OHLC-Daten (z. B. aus einer Datenbank oder API)
$open  = [100, 105, 108, 107, 103];
$high  = [106, 110, 110, 109, 106];
$low   = [99,  104, 107, 102, 98 ];
$close = [105, 109, 108, 103, 99 ];

$result = trader_cdleveningstar($open, $high, $low, $close, 0.3);

if ($result === false) {
    echo "Fehler bei der Berechnung.\n";
} else {
    foreach ($result as $index => $signal) {
        if ($signal !== 0) {
            echo "Evening Star erkannt bei Index $index: Signal = $signal\n";
        }
    }
    if (array_sum(array_map('abs', $result)) === 0) {
        echo "Kein Evening Star in den Daten gefunden.\n";
    }
}
Kein Evening Star in den Daten gefunden.

Integration mit Kursdaten aus einer Datenbank

<?php
// Simuliertes Laden von Kursdaten
$candles = [
    ['open' => 50.0, 'high' => 55.0, 'low' => 49.0, 'close' => 54.0],
    ['open' => 54.5, 'high' => 55.5, 'low' => 54.0, 'close' => 55.0],
    ['open' => 55.2, 'high' => 55.8, 'low' => 55.0, 'close' => 55.3],
    ['open' => 55.0, 'high' => 55.1, 'low' => 53.0, 'close' => 53.5],
    ['open' => 53.0, 'high' => 53.5, 'low' => 49.5, 'close' => 50.0],
];

$open  = array_column($candles, 'open');
$high  = array_column($candles, 'high');
$low   = array_column($candles, 'low');
$close = array_column($candles, 'close');

$signals = trader_cdleveningstar($open, $high, $low, $close, 0.3);

if (is_array($signals)) {
    foreach ($signals as $i => $val) {
        $label = match($val) {
            -100 => 'Bärisches Evening Star Signal',
            0    => 'Kein Signal',
            default => "Unbekanntes Signal: $val"
        };
        echo "Kerze $i: $label\n";
    }
}
Kerze 0: Kein Signal Kerze 1: Kein Signal Kerze 2: Kein Signal Kerze 3: Kein Signal Kerze 4: Kein Signal

// Wichtig · Fallstricke

Voraussetzung: Die PHP TRADER-Erweiterung muss installiert und aktiviert sein (pecl install trader). Ohne diese Erweiterung ist die Funktion nicht verfügbar.

Lookback-Zeitraum: Die ersten Ergebniswerte des Arrays können 0 sein, weil das Muster mindestens 3 Kerzen benötigt sowie einen internen Lookback-Zeitraum für die Berechnung von Durchschnittswerten (üblicherweise etwa 13 Kerzen). Kurze Datenarrays können daher keine sinnvollen Ergebnisse liefern.

Alle Arrays gleich lang: Die Arrays $open, $high, $low und $close müssen identische Länge besitzen, andernfalls gibt die Funktion false zurück.

Keine Handelsberatung: Technische Indikatoren wie das Evening Star-Muster sind statistische Hilfsmittel. Sie ersetzen keine professionelle Finanzberatung und sollten stets mit weiteren Analysemethoden kombiniert werden.