Start · Sprachen · PHP · Referenz · trader_cdltristar

trader_cdltristar

Funktion

Erkennt das <code>Tristar</code>-Kerzenformation-Muster in OHLC-Kursdaten und gibt ein Array mit Signalwerten zurück.

Kategorie: math

Signatur

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

Beschreibung

trader_cdltristar() ist Teil der TRADER-Erweiterung für PHP, die auf der TA-Lib (Technical Analysis Library) basiert. Die Funktion analysiert Open/High/Low/Close-Kursdaten und erkennt das sogenannte Tristar-Muster – eine seltene Drei-Kerzen-Formation, die aus drei aufeinanderfolgenden Doji-Kerzen besteht und potenzielle Trendumkehrungen signalisiert.

Das Tristar-Muster gilt als äußerst selten und damit als starkes Umkehrsignal. Ein bullisches Tristar (drei Dojis mit Lücken nach unten, dann nach oben) deutet auf eine Trendwende von abwärts zu aufwärts hin, während ein bärisches Tristar das Gegenteil signalisiert. Die Funktion gibt für jeden Zeitpunkt im Datensatz einen Wert von -100 (bärisches Signal), 100 (bullisches Signal) oder 0 (kein Muster erkannt) zurück.

Typisch für TA-Lib-Funktionen wird das Ergebnis-Array kürzer als die Eingabe-Arrays sein, da für die Musterberechnung eine sogenannte Lookback-Periode benötigt wird. Die nicht berechneten Anfangswerte werden weggelassen.

Diese Funktion eignet sich besonders für den Einsatz in algorithmischen Handelssystemen, Backtesting-Frameworks oder technischen Analyse-Tools, die in PHP realisiert werden.

Parameter

Name Typ Default Beschreibung
$open Pflicht array Array mit den Eröffnungskursen (Open-Preisen) als numerisch indiziertes Array von Floats.
$high Pflicht array Array mit den Tageshöchstkursen (High-Preisen) als numerisch indiziertes Array von Floats.
$low Pflicht array Array mit den Tagestiefstkursen (Low-Preisen) als numerisch indiziertes Array von Floats.
$close Pflicht array Array mit den Schlusskursen (Close-Preisen) als numerisch indiziertes Array von Floats.

Rückgabewert

Typ
array|false
Beschreibung
Gibt bei Erfolg ein Array mit Integer-Werten zurück: 100 für ein erkanntes bullisches Tristar-Muster, -100 für ein bärisches Tristar-Muster und 0 für keinen Treffer. Das Array ist kürzer als die Eingabe-Arrays, da die Lookback-Periode (typischerweise 2–3 Kerzen) nicht berechnet wird. Bei einem Fehler (z. B. ungültige Eingaben oder unterschiedliche Array-Längen) wird false zurückgegeben.

Beispiele

Tristar-Muster in historischen Kursdaten erkennen

<?php
// Beispielhafte OHLC-Daten (z. B. Tageskerzen)
$open  = [10.0, 10.0, 10.0, 10.0, 10.0, 9.5,  9.5,  9.5];
$high  = [10.1, 10.1, 10.1, 10.1, 10.1, 9.6,  9.6,  9.6];
$low   = [ 9.9,  9.9,  9.9,  9.9,  9.4,  9.4,  9.0,  9.0];
$close = [10.0, 10.0, 10.0, 10.0,  9.5,  9.5,  9.5,  9.5];

$result = trader_cdltristar($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 ? 'Bullisches Tristar' : 'Bärisches Tristar';
            echo "Index {$index}: {$typ} (Wert: {$signal})" . PHP_EOL;
        }
    }
    if (empty(array_filter($result))) {
        echo 'Kein Tristar-Muster gefunden.' . PHP_EOL;
    }
}
Kein Tristar-Muster gefunden.

Integration in ein einfaches Analyse-Skript

<?php
// Simulierte Kursdaten laden (z. B. aus Datenbank oder CSV)
function analyzeTristar(array $open, array $high, array $low, array $close): void
{
    $signals = trader_cdltristar($open, $high, $low, $close);

    if ($signals === false) {
        echo 'Berechnung fehlgeschlagen. Arrays prüfen.' . PHP_EOL;
        return;
    }

    $count = count($signals);
    $offset = count($open) - $count; // Lookback-Offset

    echo "Analysierte Kerzen: {$count} (Lookback-Offset: {$offset})" . PHP_EOL;

    foreach ($signals as $i => $val) {
        $realIndex = $i + $offset;
        if ($val === 100) {
            echo "Kerze {$realIndex}: Bullisches Tristar-Signal!" . PHP_EOL;
        } elseif ($val === -100) {
            echo "Kerze {$realIndex}: Bärisches Tristar-Signal!" . PHP_EOL;
        }
    }
}

$open  = array_fill(0, 20, 50.0);
$high  = array_fill(0, 20, 50.5);
$low   = array_fill(0, 20, 49.5);
$close = array_fill(0, 20, 50.0);

analyzeTristar($open, $high, $low, $close);
Analysierte Kerzen: 18 (Lookback-Offset: 2)

// Wichtig · Fallstricke

Voraussetzung: Die TRADER-PHP-Erweiterung muss installiert und aktiviert sein (pecl install trader). Sie ist nicht standardmäßig in PHP enthalten.

Array-Länge: Alle vier Eingabe-Arrays müssen exakt die gleiche Länge haben, sonst gibt die Funktion false zurück. Das Ergebnis-Array ist typischerweise um die Lookback-Periode kürzer (meist 2 Elemente weniger).

Seltenheit des Musters: Das Tristar-Muster ist in der Praxis extrem selten, da es drei aufeinanderfolgende Doji-Kerzen erfordert. Beim Testen mit synthetischen Daten ist damit zu rechnen, dass keine Treffer gefunden werden.

Signalinterpretation: 100 bedeutet bullisch (Kaufsignal), -100 bedeutet bärisch (Verkaufssignal). Diese Signale sollten immer mit anderen Indikatoren kombiniert und nicht isoliert verwendet werden.