Signatur
Beschreibung
Die Funktion trader_cdlabandonedbaby gehört zur TRADER-Erweiterung für PHP (basierend auf der TA-Lib) und analysiert Kursdaten im OHLC-Format (Open, High, Low, Close) auf das Vorkommen des Abandoned Baby-Musters – eines dreikerzigen Umkehrmusters aus der technischen Analyse.
Das Muster besteht aus einer langen Kerze in Trendrichtung, gefolgt von einem Doji mit Lücken (Gaps) auf beiden Seiten, und einer dritten Kerze in Gegenrichtung. Es gilt als starkes Umkehrsignal und wird sowohl in bullischen als auch in bärischen Varianten erkannt.
Der Rückgabewert jedes Arrayelements ist 100 (bullisches Muster), -100 (bärisches Muster) oder 0 (kein Muster erkannt). Die ersten Elemente des Ausgabe-Arrays können 0 sein, da für die Mustererkennung mehrere vorherige Datenpunkte benötigt werden (Lookback-Periode).
Diese Funktion ist besonders nützlich in automatisierten Handelssystemen oder Backtesting-Engines, die auf PHP basieren und Candlestick-Muster algorithmisch erkennen sollen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $open Pflicht | array | Array mit Eröffnungskursen (numerisch indiziert, chronologisch aufsteigend). | |
| $high Pflicht | array | Array mit Tageshöchstkursen, gleiche Länge und Indizierung wie open. |
|
| $low Pflicht | array | Array mit Tagestiefstkursen, gleiche Länge und Indizierung wie open. |
|
| $close Pflicht | array | Array mit Schlusskursen, gleiche Länge und Indizierung wie open. |
|
| $penetration | float | 0.3 | Optionaler Penetrations-Faktor (Durchdringungsgrad) für das Muster. Bestimmt, wie weit die dritte Kerze in den Körper der ersten Kerze eindringen muss. Werte zwischen 0.0 und 1.0 sind typisch. |
Rückgabewert
100 für ein bullisches Abandoned-Baby-Muster, -100 für ein bärisches und 0 für kein erkanntes Muster. Im Fehlerfall (z. B. Arrays unterschiedlicher Länge oder ungültige Eingaben) wird false zurückgegeben.Beispiele
Einfache Mustererkennung auf historischen Kursdaten
<?php
// Beispielhafte OHLC-Kursdaten (7 Datenpunkte)
$open = [44.0, 43.5, 43.0, 44.5, 46.0, 45.8, 44.0];
$high = [45.0, 44.0, 43.2, 46.0, 47.0, 46.5, 46.5];
$low = [43.0, 43.0, 42.5, 44.0, 45.5, 43.0, 43.5];
$close = [43.5, 43.2, 43.1, 45.8, 45.9, 43.2, 46.0];
$result = trader_cdlabandonedbaby($open, $high, $low, $close);
if ($result === false) {
echo 'Fehler bei der Mustererkennung.' . PHP_EOL;
} else {
foreach ($result as $index => $signal) {
if ($signal !== 0) {
$typ = $signal > 0 ? 'Bullisch' : 'Bärisch';
echo "Index {$index}: {$typ} Abandoned Baby erkannt (Signal: {$signal})" . PHP_EOL;
}
}
if (!in_array(100, $result) && !in_array(-100, $result)) {
echo 'Kein Abandoned-Baby-Muster in den Daten gefunden.' . PHP_EOL;
}
}
Kombination mit trader_cdlabandonedbaby und benutzerdefinierten Penetrationswert
<?php
// Größerer Datensatz mit individuellem Penetrations-Faktor
$open = [50.0, 49.0, 48.5, 49.0, 51.0, 50.9, 49.5, 52.0];
$high = [51.0, 50.0, 48.7, 51.0, 52.0, 51.5, 55.0, 54.0];
$low = [49.0, 48.5, 48.0, 48.5, 50.5, 48.8, 49.0, 51.5];
$close = [49.2, 48.7, 48.6, 50.8, 50.9, 49.0, 54.5, 52.5];
// Höherer Penetrationswert = strikteres Kriterium
$result = trader_cdlabandonedbaby($open, $high, $low, $close, 0.5);
if ($result !== false) {
echo 'Signale: ' . implode(', ', $result) . PHP_EOL;
} else {
echo 'Ungültige Eingabedaten.' . PHP_EOL;
}
// Wichtig · Fallstricke
Voraussetzung: Die PHP-Erweiterung trader muss installiert und aktiviert sein (extension=trader in der php.ini). Die Erweiterung basiert auf der Open-Source-Bibliothek TA-Lib.
Array-Längen: Alle vier OHLC-Arrays müssen exakt gleich lang sein, sonst gibt die Funktion false zurück. Mindestens 3 Datenpunkte sind für eine sinnvolle Auswertung notwendig.
Lookback: Die ersten Einträge im Ergebnis-Array sind immer 0, da TA-Lib eine Anlaufperiode (Lookback) benötigt, um interne Durchschnittswerte zu berechnen. Die tatsächliche Anzahl hängt von der Lookback-Periode der Funktion ab.
Reale Daten: Das Abandoned-Baby-Muster tritt in echten Marktdaten sehr selten auf und gilt als eines der zuverlässigsten, aber auch seltensten Umkehrsignale. Für Tests empfiehlt sich ein ausreichend großer historischer Datensatz.