Start · Sprachen · PHP · Referenz · trader_cdldojistar

trader_cdldojistar

Funktion

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

Kategorie: math

Signatur

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

Beschreibung

Die Funktion trader_cdldojistar() ist Teil der PECL-Erweiterung Trader, die technische Analysefunktionen auf Basis der TA-Lib bereitstellt. Sie analysiert eine Reihe von Candlestick-Daten (Open, High, Low, Close) und erkennt das Doji-Star-Muster – ein zweiteiliges Umkehrmuster in der Chartanalyse.

Das Doji-Star-Muster besteht aus zwei Kerzen: Eine große Kerze (bullisch oder bearisch), gefolgt von einem Doji, der mit einer Lücke (Gap) zur vorherigen Kerze öffnet. Der Doji signalisiert Unentschlossenheit am Markt und deutet auf eine mögliche Trendumkehr hin. Ein bullisches Doji-Star entsteht nach einem Abwärtstrend, ein bearisches nach einem Aufwärtstrend.

Der Rückgabewert ist ein Array mit ganzzahligen Signalwerten: 100 für ein bullisches Signal, -100 für ein bearisches Signal und 0 für kein erkanntes Muster. Die Ausgabe enthält weniger Elemente als die Eingabe, da die Funktion eine Lookback-Periode benötigt.

Diese Funktion ist besonders nützlich für automatisierte Handelssysteme, Screening-Algorithmen oder Backtesting-Anwendungen, bei denen klassische Candlestick-Muster programmatisch erkannt werden sollen.

Parameter

Name Typ Default Beschreibung
$open Pflicht array Array der Eröffnungskurse (numerisch indiziert, aufsteigend chronologisch).
$high Pflicht array Array der Tageshöchstkurse (numerisch indiziert, aufsteigend chronologisch).
$low Pflicht array Array der Tagestiefstkurse (numerisch indiziert, aufsteigend chronologisch).
$close Pflicht array Array der Schlusskurse (numerisch indiziert, aufsteigend chronologisch).

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit ganzzahligen Musterwerten zurück: 100 (bullisches Doji-Star), -100 (bearisches Doji-Star) oder 0 (kein Muster erkannt). Bei einem Fehler (z. B. ungültige Eingabedaten oder fehlende Trader-Erweiterung) wird false zurückgegeben. Das Ausgabe-Array ist kürzer als die Eingabe, da die Lookback-Periode verbraucht wird.

Beispiele

Einfache Mustererkennung auf historischen Kursdaten

<?php
// Beispielhafte OHLC-Daten (z. B. Tageskerzen)
$open  = [100.0, 102.0, 103.5, 103.6, 101.0];
$high  = [103.0, 104.5, 104.0, 103.7, 101.5];
$low   = [ 99.5, 101.0, 101.5, 103.5,  99.8];
$close = [102.0, 103.5, 103.6, 103.6, 100.5];

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

if ($result === false) {
    echo "Fehler bei der Berechnung oder Trader-Erweiterung nicht geladen.";
} else {
    foreach ($result as $index => $signal) {
        if ($signal !== 0) {
            $art = $signal > 0 ? 'Bullisch' : 'Bearisch';
            echo "Doji-Star erkannt bei Index {$index}: {$art} (Signal: {$signal})\n";
        }
    }
    if (array_sum(array_map('abs', $result)) === 0) {
        echo "Kein Doji-Star-Muster in den Daten gefunden.\n";
    }
}
Kein Doji-Star-Muster in den Daten gefunden.

Signale ausgeben und mit Datumsstempeln verknüpfen

<?php
// Realistischere Datenmenge mit Datumszuordnung
$dates = ['2024-01-01','2024-01-02','2024-01-03','2024-01-04','2024-01-05',
          '2024-01-06','2024-01-07','2024-01-08','2024-01-09','2024-01-10'];

$open  = [50,52,54,53,52,51,50,50.1,49,48];
$high  = [53,55,55,54,53,52,51,50.2,50,49];
$low   = [49,51,53,52,51,50,49,49.9,48,47];
$close = [52,54,53,52,51,50,50.1,50.0,48,47];

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

if ($result !== false) {
    // Lookback-Offset berechnen
    $offset = count($open) - count($result);
    foreach ($result as $i => $signal) {
        $datum = $dates[$i + $offset];
        $label = match(true) {
            $signal > 0 => 'Bullisches Doji-Star',
            $signal < 0 => 'Bearisches Doji-Star',
            default     => 'Kein Muster',
        };
        echo "{$datum}: {$label}\n";
    }
}

// Wichtig · Fallstricke

Voraussetzung: Die Funktion ist nur verfügbar, wenn die PECL-Erweiterung trader installiert und geladen ist (extension=trader in der php.ini). Ohne diese Erweiterung ist die Funktion nicht definiert.

Lookback-Periode: Das Ausgabe-Array enthält weniger Einträge als die Eingabe-Arrays. Der Versatz (Offset) entspricht der Lookback-Periode der Funktion. Beim Zuordnen von Ergebnissen zu Zeitstempeln muss dieser Offset berücksichtigt werden: $offset = count($open) - count($result).

Datenkonsistenz: Alle vier Arrays ($open, $high, $low, $close) müssen die gleiche Länge haben und numerisch indiziert sein. Andernfalls gibt die Funktion false zurück.

Unterschied zu Doji-Star Morning/Evening: trader_cdldojistar() erkennt das allgemeine Doji-Star-Muster. Für spezifischere Dreikerzen-Varianten stehen trader_cdlmorningdojistar() und trader_cdleveningdojistar() zur Verfügung.