Start · Sprachen · PHP · Referenz · trader_cdl3outside

trader_cdl3outside

Funktion

Erkennt das Three-Outside-Up/Down-Candlestick-Muster in OHLC-Kursdaten und gibt ein Array mit Signalwerten zurück.

Kategorie: math

Signatur

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

Beschreibung

Die Funktion trader_cdl3outside() ist Teil der TRADER-Erweiterung (TA-Lib) für PHP und analysiert Kerzencharts (Candlestick-Charts) auf das Three-Outside-Up- bzw. Three-Outside-Down-Muster. Dieses dreiteilige Umkehrmuster signalisiert eine mögliche Trendwende: Three-Outside-Up deutet auf eine bullische Umkehr nach einem Abwärtstrend hin, Three-Outside-Down auf eine bärische Umkehr nach einem Aufwärtstrend.

Das Muster besteht aus drei Kerzen: Die erste Kerze ist klein und in Richtung des bestehenden Trends gerichtet. Die zweite Kerze schließt die erste vollständig ein (Außenstab / Engulfing). Die dritte Kerze bestätigt die Richtungsänderung, indem sie in die neue Richtung über das Hoch/Tief der zweiten Kerze hinausläuft.

Alle vier Parameter müssen Arrays gleicher Länge mit numerisch indizierten Kursreihen sein (typischerweise chronologisch geordnet). Das Ergebnis-Array enthält ganzzahlige Werte: 100 für ein bullisches Signal (Three-Outside-Up), -100 für ein bärisches Signal (Three-Outside-Down) und 0 für kein Muster erkannt.

Die Funktion eignet sich für technische Analysen im Handel, z. B. in Handelsalgorithmen oder Chart-Analyse-Werkzeugen. Sie setzt die PHP-TRADER-Erweiterung voraus, die auf der Open-Source-Bibliothek TA-Lib basiert.

Parameter

Name Typ Default Beschreibung
$open Pflicht array Array mit den Eröffnungskursen (Open) der Kerzen, numerisch indiziert und chronologisch sortiert.
$high Pflicht array Array mit den Höchstkursen (High) der Kerzen, numerisch indiziert und chronologisch sortiert.
$low Pflicht array Array mit den Tiefstkursen (Low) der Kerzen, numerisch indiziert und chronologisch sortiert.
$close Pflicht array Array mit den Schlusskursen (Close) der Kerzen, numerisch indiziert und chronologisch sortiert.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit ganzzahligen Signalwerten zurück: 100 steht für ein erkanntes Three-Outside-Up-Muster (bullisch), -100 für ein Three-Outside-Down-Muster (bärisch) und 0 bedeutet, dass kein Muster an dieser Stelle erkannt wurde. Bei einem Fehler (z. B. ungültige Eingaben oder fehlende TRADER-Erweiterung) wird false zurückgegeben. Das Ergebnis-Array kann aufgrund des Look-back-Werts der Funktion kürzer sein als die Eingabe-Arrays.

Beispiele

Three-Outside-Muster in Kursdaten erkennen

<?php
// Beispielhafte OHLC-Kursdaten (z. B. Tageskerzen)
$open  = [44.0, 43.5, 44.5, 45.0, 44.8, 43.0, 42.5, 41.0, 42.0, 43.5];
$high  = [44.5, 44.0, 45.2, 45.5, 45.2, 43.5, 43.0, 42.0, 43.5, 44.5];
$low   = [43.5, 43.0, 44.0, 44.5, 44.0, 42.5, 42.0, 40.5, 41.5, 43.0];
$close = [43.8, 43.8, 44.8, 45.2, 44.5, 42.8, 42.2, 41.5, 43.2, 44.0];

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

if ($result === false) {
    echo 'Fehler bei der Berechnung oder TRADER-Erweiterung nicht verfügbar.';
} else {
    foreach ($result as $index => $signal) {
        if ($signal === 100) {
            echo "Index {$index}: Three-Outside-Up erkannt (bullisches Umkehrsignal)\n";
        } elseif ($signal === -100) {
            echo "Index {$index}: Three-Outside-Down erkannt (bärisches Umkehrsignal)\n";
        }
    }
    if (empty(array_filter($result))) {
        echo "Kein Three-Outside-Muster in den Eingabedaten gefunden.\n";
    }
}
Kein Three-Outside-Muster in den Eingabedaten gefunden.

Ergebnisse mit Signalen filtern und ausgeben

<?php
// Realistischere OHLC-Daten mit potenziell erkennbarem Muster
$open  = [50.0, 49.0, 48.5, 47.0, 46.0, 47.5, 46.0, 44.0, 45.5, 47.0];
$high  = [51.0, 50.0, 49.5, 48.5, 47.0, 48.5, 47.5, 46.5, 47.0, 48.0];
$low   = [49.0, 48.5, 47.5, 46.5, 45.0, 46.0, 45.0, 43.5, 45.0, 46.5];
$close = [49.5, 48.8, 48.0, 47.0, 46.5, 47.8, 45.5, 45.0, 46.5, 47.5];

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

if (is_array($result)) {
    $signals = array_filter($result, fn($v) => $v !== 0);
    if (empty($signals)) {
        echo "Keine Muster erkannt.\n";
    } else {
        foreach ($signals as $i => $val) {
            $typ = $val > 0 ? 'Bullisch (Three-Outside-Up)' : 'Bärisch (Three-Outside-Down)';
            echo "Kerze #{$i}: {$typ} (Wert: {$val})\n";
        }
    }
}
Keine Muster erkannt.

// Wichtig · Fallstricke

Voraussetzung: Die Funktion ist nur verfügbar, wenn die PHP-TRADER-Erweiterung installiert und aktiviert ist (pecl install trader). Ohne diese Erweiterung existiert die Funktion nicht.

Look-back-Wert: Wie alle TA-Lib-Funktionen benötigt trader_cdl3outside() eine Mindestanzahl an Kerzen, um Ergebnisse berechnen zu können. Die ersten Elemente des Ergebnis-Arrays können daher fehlen oder als 0 ausgegeben werden. Das Ergebnis-Array ist unter Umständen kürzer als die Eingabe-Arrays.

Array-Indizes: Die Indizes im zurückgegebenen Array entsprechen nicht zwingend den Indizes der Eingabe-Arrays. Es empfiehlt sich, array_values() zu verwenden oder die Indizes explizit zu prüfen.

Datenqualität: Achte darauf, dass die OHLC-Arrays keine null-Werte oder nicht-numerischen Einträge enthalten, da dies zu falschen Ergebnissen oder false als Rückgabewert führen kann.