Start · Sprachen · PHP · Referenz · trader_cdldarkcloudcover

trader_cdldarkcloudcover

Funktion

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

Kategorie: math

Signatur

trader_cdldarkcloudcover(array $open, array $high, array $low, array $close, float $penetration = 0.5): array|false

Beschreibung

Die Funktion trader_cdldarkcloudcover() gehört zur TRADER-Extension (TA-Lib) für PHP und analysiert OHLC-Kursdaten (Open, High, Low, Close) auf das Vorhandensein des Dark Cloud Cover-Musters. Dieses klassische japanische Candlestick-Muster ist ein bearishes Umkehrsignal und tritt typischerweise nach einem Aufwärtstrend auf.

Das Muster besteht aus zwei Kerzen: Die erste ist eine bullische (weiße/grüne) Kerze mit kräftigem Körper. Die zweite Kerze eröffnet über dem Schlusskurs der ersten Kerze (Gap up), schließt jedoch deutlich im Körper der ersten Kerze – idealerweise unterhalb der Mitte. Je tiefer die zweite Kerze in die erste eindringt, desto stärker ist das Umkehrsignal. Der Parameter penetration steuert den Mindestanteil der Penetration, ab dem das Muster als gültig gilt.

Die Rückgabe ist ein Array mit denselben Indizes wie die Eingabedaten. Positionen, die das Muster erfüllen, erhalten den Wert -100 (bearishes Signal), alle anderen den Wert 0. Dadurch lässt sich das Ergebnis einfach in Handelsstrategien oder technische Analysen integrieren.

Die Funktion ist Teil der PHP-TRADER-Extension, die separat installiert werden muss und die bewährte TA-Lib-Bibliothek kapselt. Sie eignet sich besonders für die automatisierte Chart-Analyse und algorithmischen Handel.

Parameter

Name Typ Default Beschreibung
$open Pflicht array Array der Eröffnungskurse (float-Werte) der Kerzen, indiziert von 0 bis n-1.
$high Pflicht array Array der Höchstkurse (float-Werte) der Kerzen, gleiche Länge wie open.
$low Pflicht array Array der Tiefstkurse (float-Werte) der Kerzen, gleiche Länge wie open.
$close Pflicht array Array der Schlusskurse (float-Werte) der Kerzen, gleiche Länge wie open.
$penetration float 0.5 Mindestanteil (zwischen 0 und 1), um den die zweite Kerze in den Körper der ersten Kerze eindringen muss, damit das Muster als gültig gilt. Standardwert ist 0.5 (50 %).

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array zurück, dessen Schlüssel den Eingabe-Indizes entsprechen. Stellen, an denen das Dark-Cloud-Cover-Muster erkannt wurde, tragen den Wert -100 (bearishes Signal), alle anderen den Wert 0. Bei ungültigen Eingaben oder einem Fehler wird false zurückgegeben.

Beispiele

Einfache Mustererkennung auf OHLC-Daten

<?php
// Beispiel-OHLC-Daten (vereinfacht)
$open  = [100.0, 105.0, 110.0, 115.0, 114.0];
$high  = [107.0, 112.0, 117.0, 120.0, 116.0];
$low   = [ 99.0, 104.0, 109.0, 113.0, 106.0];
$close = [105.0, 110.0, 115.0, 119.0, 108.0];

$result = trader_cdldarkcloudcover($open, $high, $low, $close, 0.5);

if ($result === false) {
    echo "Fehler bei der Berechnung.\n";
} else {
    foreach ($result as $index => $value) {
        if ($value !== 0) {
            echo "Dark Cloud Cover erkannt an Position $index: Signal = $value\n";
        }
    }
    if (empty(array_filter($result))) {
        echo "Kein Dark Cloud Cover Muster in diesen Daten erkannt.\n";
    }
}
Kein Dark Cloud Cover Muster in diesen Daten erkannt.

Integration in eine Handelsstrategie mit historischen Kursdaten

<?php
// Simulierte historische Kursdaten (z. B. aus einer Datenbank)
$open  = [50.0, 51.0, 52.5, 53.0, 55.0, 56.0];
$high  = [52.0, 53.0, 54.0, 55.5, 57.0, 57.5];
$low   = [49.5, 50.5, 51.5, 52.0, 54.0, 51.0];
$close = [51.5, 52.5, 53.5, 55.0, 56.5, 52.5];

// Penetration auf 50% setzen (Standard)
$signals = trader_cdldarkcloudcover($open, $high, $low, $close);

if (is_array($signals)) {
    $dates = ['2024-01-01','2024-01-02','2024-01-03','2024-01-04','2024-01-05','2024-01-06'];
    foreach ($signals as $i => $signal) {
        $datum = $dates[$i] ?? "Tag $i";
        if ($signal === -100) {
            echo "[$datum] ⚠ Bearishes Dark Cloud Cover Signal – mögliche Trendwende nach unten!\n";
        }
    }
} else {
    echo "Fehler: Ungültige Eingabedaten.\n";
}

// Wichtig · Fallstricke

Voraussetzung: Die PHP-TRADER-Extension (php-trader) muss installiert und aktiviert sein. Diese ist standardmäßig nicht in PHP enthalten und muss über PECL oder den Paketmanager des Systems nachinstalliert werden (pecl install trader).

Eingabelängen: Alle vier Arrays (open, high, low, close) müssen dieselbe Länge haben. Unterschiedliche Längen führen zu false als Rückgabewert.

Interpretation: Der Rückgabewert -100 ist ein bearishes Signal und deutet auf eine mögliche Trendumkehr hin. Das Muster sollte stets im Kontext des übergeordneten Trends und weiterer Indikatoren bewertet werden – es liefert keine Garantie für eine Kursumkehr.

Penetration-Parameter: Ein zu niedriger Wert (z. B. 0.1) führt zu vielen falschen Signalen, ein zu hoher Wert (z. B. 0.8) macht das Muster sehr selten. Der Standardwert 0.5 entspricht der gängigen Lehrbuchdefinition.