Start · Sprachen · PHP · Referenz · trader_cdlshootingstar

trader_cdlshootingstar

Funktion

Erkennt das Shooting-Star-Candlestick-Muster in OHLC-Kursdaten und gibt für jeden Datenpunkt einen Musterwert zurück.

Kategorie: math

Signatur

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

Beschreibung

trader_cdlshootingstar() ist Teil der TRADER-Erweiterung für PHP, die auf der TA-Lib (Technical Analysis Library) basiert. Die Funktion analysiert Kerzendiagramm-Daten (Open, High, Low, Close) und erkennt das Shooting-Star-Muster – ein einzelnes Umkehrmuster, das in der technischen Analyse als Hinweis auf eine mögliche bärische Trendwende gilt.

Ein Shooting Star entsteht, wenn eine Kerze einen sehr langen Oberschatten (mindestens doppelt so lang wie der Kerzenkörper), einen kleinen Körper im unteren Drittel der Handelsspanne und einen sehr kleinen oder fehlenden Unterschatten aufweist. Das Muster tritt typischerweise nach einem Aufwärtstrend auf und signalisiert, dass Verkäufer die Kontrolle übernehmen könnten.

Die Rückgabe enthält für jeden Zeitpunkt einen ganzzahligen Wert: 100 für ein erkanntes bullisches Muster, -100 für ein bearisches Muster oder 0, wenn kein Muster erkannt wurde. Die ersten Elemente des Arrays können aufgrund des Lookback-Zeitraums der Berechnung leer sein.

Diese Funktion wird typischerweise in Handelsalgorithmen, Backtesting-Systemen oder Chart-Analyse-Tools eingesetzt, um potenzielle Short-Einstiegspunkte automatisch zu identifizieren.

Parameter

Name Typ Default Beschreibung
$open Pflicht array Array mit den Eröffnungskursen der Kerzen in chronologischer Reihenfolge.
$high Pflicht array Array mit den Höchstkursen (Tageshochs) der Kerzen in chronologischer Reihenfolge.
$low Pflicht array Array mit den Tiefstkursen (Tagestiefs) der Kerzen in chronologischer Reihenfolge.
$close Pflicht array Array mit den Schlusskursen der Kerzen in chronologischer Reihenfolge.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit ganzzahligen Werten zurück: 100 für ein bullisches Muster, -100 für ein bearisches Shooting-Star-Muster oder 0, wenn kein Muster erkannt wurde. Die Anzahl der Elemente stimmt mit der Eingabelänge überein, wobei die ersten Elemente (Lookback-Periode) den Wert 0 enthalten. Bei einem Fehler (z. B. ungleich lange Arrays oder fehlende TRADER-Erweiterung) wird false zurückgegeben.

Beispiele

Grundlegende Erkennung des Shooting-Star-Musters

<?php
// Beispiel-OHLC-Daten (z. B. Tageskerzen einer Aktie)
$open  = [44.0, 45.5, 46.0, 47.2, 47.8];
$high  = [45.8, 46.2, 46.8, 50.5, 48.5];
$low   = [43.5, 44.8, 45.5, 47.0, 47.2];
$close = [45.5, 46.0, 46.5, 47.5, 47.3];

$result = trader_cdlshootingstar($open, $high, $low, $close);

if ($result === false) {
    echo "Fehler bei der Berechnung oder TRADER-Erweiterung nicht verfügbar.";
} else {
    foreach ($result as $index => $value) {
        if ($value !== 0) {
            $richtung = ($value > 0) ? 'Bullisch' : 'Bärisch';
            echo "Shooting Star erkannt an Index $index: $richtung ($value)\n";
        }
    }
    if (max(array_map('abs', $result)) === 0) {
        echo "Kein Shooting-Star-Muster im Datensatz gefunden.\n";
    }
}
Kein Shooting-Star-Muster im Datensatz gefunden.

Integration in eine Handelsanalyse mit Datenbankdaten

<?php
// Simulierte Kursdaten aus einer Datenbank
$kursdaten = [
    ['open' => 100.0, 'high' => 101.0, 'low' => 99.5,  'close' => 100.8],
    ['open' => 101.0, 'high' => 102.5, 'low' => 100.5, 'close' => 102.0],
    ['open' => 102.0, 'high' => 108.0, 'low' => 101.8, 'close' => 102.3], // Shooting Star
    ['open' => 102.5, 'high' => 103.0, 'low' => 100.0, 'close' => 100.5],
];

$open  = array_column($kursdaten, 'open');
$high  = array_column($kursdaten, 'high');
$low   = array_column($kursdaten, 'low');
$close = array_column($kursdaten, 'close');

$muster = trader_cdlshootingstar($open, $high, $low, $close);

if (is_array($muster)) {
    foreach ($muster as $i => $wert) {
        $datum = date('Y-m-d', strtotime("+{$i} days", strtotime('2024-01-01')));
        $status = match(true) {
            $wert > 0  => '📈 Bullisches Shooting Star',
            $wert < 0  => '📉 Bärisches Shooting Star',
            default    => 'Kein Muster'
        };
        echo "$datum: $status\n";
    }
} else {
    echo "Berechnung fehlgeschlagen.\n";
}
2024-01-01: Kein Muster 2024-01-02: Kein Muster 2024-01-03: Kein Muster 2024-01-04: Kein Muster

// Wichtig · Fallstricke

Voraussetzung: Die trader-PECL-Erweiterung muss installiert und aktiviert sein (pecl install trader). Ohne diese Erweiterung ist die Funktion nicht verfügbar.

Gleiche Array-Längen: Alle vier Eingabe-Arrays ($open, $high, $low, $close) müssen exakt dieselbe Anzahl von Elementen enthalten, andernfalls gibt die Funktion false zurück.

Lookback-Periode: Die Funktion benötigt eine bestimmte Mindestanzahl an Datenpunkten (Lookback), um zuverlässige Ergebnisse zu liefern. Zu kurze Datensätze können dazu führen, dass das Ergebnis-Array nur Nullen enthält.

Marktkontext: Ein Shooting Star ist nur im Kontext eines vorherigen Aufwärtstrends aussagekräftig. Die Funktion selbst prüft keinen übergeordneten Trend – diese Kontextprüfung muss in der eigenen Anwendungslogik ergänzt werden.