Signatur
Beschreibung
Die Funktion trader_cdlpiercing() gehört zur PECL-Erweiterung Trader, die auf der TA-Lib-Bibliothek basiert und technische Analyse-Indikatoren für Finanzdaten bereitstellt. Sie erkennt das sogenannte Piercing-Muster (auf Deutsch: Durchdringungsmuster) in einer Reihe von Candlestick-Kursdaten.
Das Piercing-Muster ist ein bullisches Umkehrsignal, das aus zwei Kerzen besteht: Die erste ist eine lange rote (bearische) Kerze, gefolgt von einer grünen (bullischen) Kerze, deren Eröffnungskurs unterhalb des Tiefs der vorherigen Kerze liegt und deren Schlusskurs mehr als die Hälfte des Körpers der ersten Kerze durchdringt. Dieses Muster wird typischerweise als potenzielles Ende eines Abwärtstrends interpretiert.
Die Eingabearrays open, high, low und close müssen numerisch indiziert sein und dieselbe Länge haben. Der Rückgabewert ist ein Array mit ganzzahligen Werten: 100 signalisiert das Vorhandensein des Musters, 0 bedeutet, dass kein Muster erkannt wurde.
Diese Funktion wird häufig in der algorithmischen Handelsstrategie-Entwicklung, in Backtesting-Systemen und in der Echtzeit-Marktanalyse eingesetzt, um potenzielle Kaufsignale automatisch zu identifizieren.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $open Pflicht | array | Numerisch indiziertes Array mit den Eröffnungskursen der Kerzen. | |
| $high Pflicht | array | Numerisch indiziertes Array mit den Höchstkursen der Kerzen. | |
| $low Pflicht | array | Numerisch indiziertes Array mit den Tiefstkursen der Kerzen. | |
| $close Pflicht | array | Numerisch indiziertes Array mit den Schlusskursen der Kerzen. |
Rückgabewert
100 zeigt an, dass an der jeweiligen Position ein Piercing-Muster erkannt wurde; 0 bedeutet, dass kein Muster vorliegt. Bei einem Fehler (z. B. ungültige Eingaben oder wenn die PECL-Trader-Erweiterung nicht geladen ist) wird false zurückgegeben.Beispiele
Einfache Erkennung des Piercing-Musters
<?php
// Beispiel-OHLC-Daten (vereinfacht)
$open = [50.0, 48.0, 45.0, 43.0, 40.0];
$high = [52.0, 50.0, 47.0, 44.0, 46.0];
$low = [48.0, 44.0, 42.0, 38.0, 39.0];
$close = [49.0, 45.0, 43.0, 39.0, 45.5];
$result = trader_cdlpiercing($open, $high, $low, $close);
if ($result === false) {
echo 'Fehler bei der Berechnung.' . PHP_EOL;
} else {
foreach ($result as $index => $signal) {
if ($signal !== 0) {
echo "Piercing-Muster erkannt an Position: $index (Signal: $signal)" . PHP_EOL;
}
}
if (array_sum(array_map('abs', $result)) === 0) {
echo 'Kein Piercing-Muster in den Daten gefunden.' . PHP_EOL;
}
}
Piercing-Muster in größerem Datensatz suchen und ausgeben
<?php
// Realistischere OHLC-Daten
$open = [100, 98, 96, 94, 90, 85, 88];
$high = [102, 100, 98, 95, 91, 87, 95];
$low = [ 97, 95, 93, 88, 84, 82, 87];
$close = [ 98, 96, 94, 89, 85, 83, 93];
$signals = trader_cdlpiercing($open, $high, $low, $close);
if (is_array($signals)) {
echo 'Index => Signalwert' . PHP_EOL;
foreach ($signals as $i => $val) {
echo " [$i] => $val" . PHP_EOL;
}
} else {
echo 'Berechnung fehlgeschlagen.' . PHP_EOL;
}
// Wichtig · Fallstricke
Voraussetzung: Die PECL-Erweiterung trader muss installiert und in der php.ini aktiviert sein (extension=trader). Ohne diese Erweiterung ist die Funktion nicht verfügbar.
Alle vier Eingabearrays müssen exakt dieselbe Anzahl an Elementen enthalten und numerisch (0-basiert) indiziert sein. Abweichungen führen zu false als Rückgabewert.
Das Rückgabe-Array kann kürzer sein als die Eingabe-Arrays, da TA-Lib intern einen sogenannten Lookback-Zeitraum benötigt, bevor ein erstes Ergebnis berechnet werden kann. Der erste auswertbare Index im Ergebnis entspricht daher nicht zwingend dem Index 0 der Eingabe.
Das Piercing-Muster ist ein Zwei-Kerzen-Muster. Bei sehr kurzen Eingabe-Arrays (weniger als 2 Einträge) wird kein sinnvolles Ergebnis berechnet.