Start · Sprachen · PHP · Referenz · trader_cdlpiercing

trader_cdlpiercing

Funktion

Erkennt das Piercing-Candlestick-Muster in OHLC-Kursdaten und gibt ein Array mit Signalwerten zurück.

Kategorie: math

Signatur

trader_cdlpiercing(array $open, array $high, array $low, array $close): array|false

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

Typ
array|false
Beschreibung
Gibt ein Array mit ganzzahligen Signalwerten zurück. Ein Wert von 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;
    }
}
Kein Piercing-Muster in den Daten gefunden.

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;
}
Index => Signalwert [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0

// 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.