Start · Sprachen · PHP · Referenz · trader_cdlclosingmarubozu

trader_cdlclosingmarubozu

Funktion

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

Kategorie: math

Signatur

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

Beschreibung

Die Funktion trader_cdlclosingmarubozu gehört zur PECL-Erweiterung trader, die auf der TA-Lib (Technical Analysis Library) basiert. Sie erkennt das sogenannte Closing Marubozu-Kerzenmuster in einer Reihe von OHLC-Kursdaten (Open, High, Low, Close).

Ein Closing Marubozu ist eine Kerze, bei der der Schlusskurs identisch mit dem Hoch (bullisches Muster) oder dem Tief (bärisches Muster) der Periode ist – es gibt also keinen oberen bzw. unteren Schatten am Kerzenkörper-Ende. Dieses Muster signalisiert starke Kaufkraft (positives Closing Marubozu) oder Verkaufsdruck (negatives Closing Marubozu) und wird in der technischen Analyse als Trendfortsetzungs- oder Trendbeschleunigungssignal interpretiert.

Der Rückgabewert ist ein Array mit ganzzahligen Signalen: 100 steht für ein bullisches Muster, -100 für ein bärisches Muster, und 0 bedeutet, dass kein Muster erkannt wurde. Die ersten Elemente des Arrays können 0 sein, da die Berechnung einen Lookback-Zeitraum benötigt.

Die Funktion eignet sich für die automatisierte Analyse von Candlestick-Daten in Handelssystemen, Backtesting-Frameworks und Marktanalyse-Applikationen.

Parameter

Name Typ Default Beschreibung
$open Pflicht array Array mit den Eröffnungskursen (Open) der Kerzen als numerische Werte.
$high Pflicht array Array mit den Höchstkursen (High) der Kerzen als numerische Werte.
$low Pflicht array Array mit den Tiefstkursen (Low) der Kerzen als numerische Werte.
$close Pflicht array Array mit den Schlusskursen (Close) der Kerzen als numerische Werte.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit ganzzahligen Signalwerten zurück: 100 (bullisches Closing Marubozu), -100 (bärisches Closing Marubozu) oder 0 (kein Muster erkannt). Bei einem Fehler wird false zurückgegeben. Die Länge des Arrays entspricht der Länge der Eingabe-Arrays.

Beispiele

Einfache Mustererkennung auf historischen Kursdaten

<?php
// Beispiel-OHLC-Daten (z. B. Tageskurse einer Aktie)
$open  = [100.0, 102.0, 101.5, 103.0, 105.0];
$high  = [105.0, 106.0, 104.0, 108.0, 110.0];
$low   = [ 99.0, 101.0, 100.0, 102.5, 104.5];
$close = [104.0, 106.0, 102.0, 108.0, 110.0]; // close == high => bullisches Closing Marubozu

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

if ($result === false) {
    echo 'Fehler bei der Berechnung.' . PHP_EOL;
} else {
    foreach ($result as $index => $signal) {
        if ($signal !== 0) {
            $typ = $signal > 0 ? 'Bullisch' : 'Bärisch';
            echo "Kerze {$index}: Closing Marubozu erkannt ({$typ}, Signal: {$signal})" . PHP_EOL;
        }
    }
}
Kerze 3: Closing Marubozu erkannt (Bullisch, Signal: 100) Kerze 4: Closing Marubozu erkannt (Bullisch, Signal: 100)

Kombination mit Datumsstempeln für eine vollständige Analyse

<?php
// OHLC-Daten mit zugehörigen Datumsangaben
$dates = ['2024-01-01', '2024-01-02', '2024-01-03', '2024-01-04', '2024-01-05'];
$open  = [200.0, 198.0, 197.5, 195.0, 196.0];
$high  = [202.0, 199.0, 198.0, 196.0, 197.5];
$low   = [195.0, 195.0, 194.0, 192.0, 192.0]; // close == low => bärisches Closing Marubozu
$close = [196.0, 195.0, 194.0, 192.0, 192.0];

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

if (is_array($result)) {
    foreach ($result as $i => $signal) {
        if ($signal !== 0) {
            $richtung = $signal > 0 ? 'Bullisch' : 'Bärisch';
            echo "{$dates[$i]}: Closing Marubozu ({$richtung})" . PHP_EOL;
        }
    }
}
2024-01-03: Closing Marubozu (Bärisch) 2024-01-04: Closing Marubozu (Bärisch) 2024-01-05: Closing Marubozu (Bärisch)

// Wichtig · Fallstricke

Voraussetzung: Die Funktion steht nur zur Verfügung, wenn die PECL-Erweiterung trader installiert und aktiviert ist (pecl install trader). Ohne diese Erweiterung ist die Funktion nicht definiert.

Array-Länge: Alle vier Eingabe-Arrays ($open, $high, $low, $close) müssen dieselbe Länge besitzen. Unterschiedliche Längen können zu false oder unerwarteten Ergebnissen führen.

Lookback-Zeitraum: Die TA-Lib benötigt intern eine Mindestanzahl an Datenpunkten. Die ersten Elemente des Rückgabe-Arrays können daher 0 sein, auch wenn die Kerze theoretisch ein Muster darstellt. Mit trader_cdlclosingmarubozu_lookback() lässt sich der genaue Lookback-Wert ermitteln (sofern vorhanden).

Genauigkeit: Die Erkennung basiert auf internen Toleranzwerten der TA-Lib. Geringfügige Abweichungen zwischen Close und High/Low können dazu führen, dass das Muster nicht erkannt wird.