Signatur
Beschreibung
Die Funktion trader_cdleveningdojistar() ist Teil der TRADER-Erweiterung für PHP, die auf der TA-Lib (Technical Analysis Library) basiert. Sie analysiert OHLC-Kursdaten (Open, High, Low, Close) und erkennt das Evening Doji Star-Kerzenmuster, ein klassisches bärisches Umkehrmuster der technischen Analyse.
Das Evening-Doji-Star-Muster besteht aus drei Kerzen: zunächst einer langen bullischen Kerze, gefolgt von einem Doji (Kerze, bei der Eröffnungs- und Schlusskurs nahezu identisch sind), der eine Kurslücke nach oben bildet, und abschließend einer langen bärischen Kerze. Das Muster signalisiert eine mögliche Trendumkehr von einem Aufwärts- in einen Abwärtstrend.
Der Parameter penetration steuert, wie tief die dritte Kerze in den Körper der ersten Kerze eindringen muss, damit das Muster als gültig erkannt wird. Ein Wert von 0.3 bedeutet, dass mindestens 30 % des Körpers der ersten Kerze überlappen müssen.
Das Ergebnis-Array enthält für jeden Zeitpunkt entweder -100 (bärisches Signal erkannt), 0 (kein Muster) oder 100 (bullisches Signal, in diesem Fall nicht anwendbar). Die ersten Einträge des Arrays können leer oder nicht vorhanden sein, da für die Berechnung mindestens drei Datenpunkte benötigt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $open Pflicht | array | Array mit den Eröffnungskursen der Kerzen, indexiert von 0 bis n-1. |
|
| $high Pflicht | array | Array mit den Höchstkursen der Kerzen, indexiert von 0 bis n-1. |
|
| $low Pflicht | array | Array mit den Tiefstkursen der Kerzen, indexiert von 0 bis n-1. |
|
| $close Pflicht | array | Array mit den Schlusskursen der Kerzen, indexiert von 0 bis n-1. |
|
| $penetration | float | 0.3 | Prozentualer Anteil (als Dezimalzahl zwischen 0 und 1), um den die dritte Kerze in den Körper der ersten Kerze eindringen muss. Standardmäßig 0.3 (30 %). |
Rückgabewert
-100 für ein erkanntes bärisches Evening-Doji-Star-Muster, 0 wenn kein Muster vorhanden ist. Im Fehlerfall (z. B. ungültige Eingaben oder fehlende TRADER-Erweiterung) wird false zurückgegeben.Beispiele
Einfaches Erkennen des Evening-Doji-Star-Musters
<?php
// Beispiel-OHLC-Daten (z. B. Tageskerzen)
$open = [100.0, 105.0, 110.0, 107.0, 102.0];
$high = [106.0, 111.0, 111.5, 110.5, 105.0];
$low = [ 99.0, 104.0, 109.5, 106.5, 100.0];
$close = [105.0, 110.0, 110.2, 107.5, 101.0];
$result = trader_cdleveningdojistar($open, $high, $low, $close, 0.3);
if ($result === false) {
echo 'Fehler bei der Berechnung oder TRADER-Erweiterung nicht verfügbar.';
} else {
foreach ($result as $index => $signal) {
if ($signal !== 0) {
echo "Muster erkannt bei Index $index: Signal = $signal\n";
}
}
if (array_sum(array_map('abs', $result)) === 0) {
echo 'Kein Evening-Doji-Star-Muster in den Daten gefunden.';
}
}
Muster-Scan über historische Kursdaten mit Signalausgabe
<?php
// Historische OHLC-Daten laden (hier als Beispiel-Arrays)
$open = [50.0, 52.0, 55.0, 54.8, 49.0, 47.0];
$high = [53.0, 56.0, 56.0, 55.2, 52.0, 50.0];
$low = [49.5, 51.5, 54.5, 54.6, 46.0, 44.0];
$close = [52.0, 55.0, 54.9, 54.7, 47.0, 45.0];
// Kerze 2 (close ~open = Doji nach Aufwärtstrend) und Kerze 4 bärisch
$result = trader_cdleveningdojistar($open, $high, $low, $close, 0.3);
if (is_array($result)) {
foreach ($result as $i => $val) {
$label = match(true) {
$val === -100 => '⬇ Bärisches Evening-Doji-Star erkannt',
$val === 100 => '⬆ Bullisches Signal',
default => 'Kein Muster',
};
echo "Index $i: $label\n";
}
}
// Wichtig · Fallstricke
Voraussetzung: Die trader-Erweiterung muss in PHP installiert und aktiviert sein (pecl install trader). Sie ist nicht standardmäßig enthalten.
Alle vier OHLC-Arrays müssen dieselbe Länge haben und numerisch indiziert sein. Unterschiedliche Array-Längen führen zu false als Rückgabewert.
Das Ergebnis-Array kann am Anfang weniger Einträge enthalten als die Eingabe-Arrays, da das Muster mindestens 3 Kerzen benötigt. Beachte dies beim Mapping von Ergebnis-Indizes auf Eingabe-Indizes.
Der penetration-Parameter hat einen erheblichen Einfluss auf die Empfindlichkeit der Mustererkennung. Zu kleine Werte führen zu vielen Fehlsignalen, zu große Werte können echte Muster übersehen.