Signatur
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
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;
}
}
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);
// 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.