Signatur
Beschreibung
Die Funktion trader_cdlmorningstar() gehört zur PECL-Erweiterung Trader, die auf der TA-Lib-Bibliothek basiert. Sie analysiert Open-High-Low-Close-Kerzenstaub-Daten (OHLC) und erkennt das klassische Morning-Star-Muster – ein dreikerziges bullisches Umkehrsignal.
Das Morning-Star-Muster besteht aus drei aufeinanderfolgenden Kerzen: einer langen bearischen Kerze, gefolgt von einem kleinen Körper (Doji oder Spinning Top) der tiefer öffnet, und schließlich einer langen bullischen Kerze, die deutlich in den Körper der ersten Kerze hineinreicht. Es gilt als eines der verlässlicheren Umkehrsignale nach einem Abwärtstrend.
Der Parameter $penetration gibt an, wie weit die dritte Kerze prozentual in den Körper der ersten Kerze eindringen muss, damit das Muster als gültig erkannt wird. Standardmäßig liegt dieser Wert bei 0.3 (30 %). Höhere Werte bedeuten ein strengeres Erkennungskriterium.
Das Rückgabe-Array enthält für jeden berechneten Zeitpunkt einen Integer-Wert: 100 steht für ein erkanntes Morning-Star-Muster (bullisches Signal), 0 bedeutet, dass kein Muster erkannt wurde. Das Array ist kürzer als das Eingabe-Array, da für die ersten Perioden keine Berechnung möglich ist (Lookback-Periode).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $open Pflicht | array | Array mit den Eröffnungskursen (Open) in chronologischer Reihenfolge als Float-Werte. | |
| $high Pflicht | array | Array mit den Höchstkursen (High) in chronologischer Reihenfolge als Float-Werte. | |
| $low Pflicht | array | Array mit den Tiefstkursen (Low) in chronologischer Reihenfolge als Float-Werte. | |
| $close Pflicht | array | Array mit den Schlusskursen (Close) in chronologischer Reihenfolge als Float-Werte. | |
| $penetration | float | 0.3 | Gibt an, wie weit (als Anteil von 0.0 bis 1.0) die dritte Kerze in den Körper der ersten Kerze eindringen muss, damit das Muster als gültig gilt. Werte zwischen 0.3 und 0.5 sind üblich. |
Rückgabewert
100 für ein erkanntes Morning-Star-Muster, 0 für kein Muster. Das Array ist durch die Lookback-Periode verkürzt. Bei einem Fehler (z. B. ungültige Eingaben oder fehlende Trader-Erweiterung) wird false zurückgegeben.Beispiele
Morning-Star-Muster in Kursdaten erkennen
<?php
// Beispiel-OHLC-Daten (z. B. 10 Tageskerzen)
$open = [100, 98, 92, 90, 91, 95, 97, 96, 98, 100];
$high = [102, 100, 95, 93, 94, 98, 100, 99, 101, 103];
$low = [ 97, 90, 88, 88, 88, 92, 94, 93, 96, 98];
$close = [ 98, 91, 89, 91, 93, 96, 98, 97, 99, 101];
$result = trader_cdlmorningstar($open, $high, $low, $close);
if ($result === false) {
echo "Fehler bei der Berechnung oder Trader-Erweiterung nicht verfügbar.";
} else {
foreach ($result as $index => $signal) {
if ($signal !== 0) {
echo "Morning-Star-Muster erkannt bei Index: $index (Signal: $signal)\n";
}
}
if (array_sum(array_map('abs', $result)) === 0) {
echo "Kein Morning-Star-Muster in den Daten gefunden.\n";
}
}
Morning-Star mit angepasstem Penetration-Wert
<?php
// Strikteres Erkennungskriterium: 50% Penetration
$open = [110, 107, 100, 98, 99, 103, 106, 105, 107, 109];
$high = [112, 109, 103, 102, 103, 107, 109, 108, 110, 112];
$low = [106, 99, 97, 97, 97, 100, 103, 102, 104, 106];
$close = [107, 100, 98, 100, 102, 105, 107, 106, 108, 110];
$penetration = 0.5;
$result = trader_cdlmorningstar($open, $high, $low, $close, $penetration);
if ($result !== false) {
$signals = array_filter($result, fn($v) => $v !== 0);
if (empty($signals)) {
echo "Mit Penetration={$penetration}: Kein Morning-Star erkannt.\n";
} else {
foreach ($signals as $idx => $val) {
echo "Signal bei Index $idx: $val\n";
}
}
}
// Wichtig · Fallstricke
Voraussetzung: Die Funktion ist nur verfügbar, wenn die PECL-Erweiterung trader installiert und geladen ist (extension=trader.so bzw. extension=trader.dll). Sie ist nicht Teil des PHP-Kerns.
Lookback-Periode: Das Ergebnis-Array ist kürzer als die Eingabe-Arrays. Die ersten Elemente werden nicht berechnet (TA-Lib-typischer Lookback). Der Index des Ergebnis-Arrays entspricht nicht direkt dem Index der Eingabe-Arrays – beachte dies beim Zuordnen von Signalen zu konkreten Zeitpunkten.
Eingabe-Konsistenz: Alle vier OHLC-Arrays müssen exakt gleich lang sein und dieselbe Anzahl chronologisch geordneter Datenpunkte enthalten. Andernfalls gibt die Funktion false zurück.
Handels-Kontext: Das Morning-Star-Muster ist ein Indikator, kein Handelssignal. Es sollte stets mit weiteren Indikatoren (z. B. Volumen, Trendbestätigung) kombiniert werden, bevor Handelsentscheidungen getroffen werden.