Start · Sprachen · PHP · Referenz · trader_cdlinneck

trader_cdlinneck

Funktion

Erkennt das In-Neck-Candlestick-Muster in OHLC-Kursdaten und gibt ein Array mit Mustererkenntnis-Werten zurück.

Kategorie: math

Signatur

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

Beschreibung

trader_cdlinneck ist Teil der TRADER-Erweiterung für PHP, die auf der TA-Lib (Technical Analysis Library) basiert. Die Funktion erkennt das In-Neck-Muster (In-Neck-Line) in Candlestick-Chartdaten. Dabei handelt es sich um ein bearishes Fortsetzungsmuster, das aus zwei Kerzen besteht: einer langen schwarzen (fallenden) Kerze, gefolgt von einer weißen (steigenden) Kerze, deren Schlusskurs nahe dem vorherigen Tief liegt, aber nicht darunter.

Das Muster tritt in einem Abwärtstrend auf und signalisiert, dass der Verkaufsdruck anhält. Die zweite Kerze öffnet unter dem Tief der ersten Kerze und schließt nahe (aber knapp über) dem Tief der ersten Kerze. Der Unterschied zum On-Neck-Muster liegt darin, dass der Schlusskurs beim In-Neck leicht über dem Tief liegt, während er beim On-Neck auf dem Tief liegt.

Die Rückgabewerte im Ergebnis-Array sind üblicherweise -100 (bearishes Muster erkannt), 0 (kein Muster) oder 100 (bullishes Muster). Das Eingabe-Array muss für alle vier Parameter (Open, High, Low, Close) gleich lang sein und chronologisch geordnete Kursdaten enthalten.

Diese Funktion eignet sich für den Einsatz in Handelssystemen, Backtesting-Umgebungen oder technischen Analyse-Tools, die in PHP implementiert werden.

Parameter

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

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit ganzzahligen Werten zurück, wobei -100 ein erkanntes bearishes In-Neck-Muster anzeigt, 0 bedeutet, dass kein Muster erkannt wurde, und 100 ein bullishes Muster signalisiert (bei diesem Muster in der Praxis selten). Bei einem Fehler (z. B. ungleich lange Eingabe-Arrays oder fehlender TRADER-Extension) wird false zurückgegeben.

Beispiele

Einfache Mustererkennung auf Kursdaten

<?php
// Beispielhafte OHLC-Kursdaten (5 Kerzen)
$open  = [100.0, 99.0, 96.0, 95.5, 94.0];
$high  = [101.0, 99.5, 96.5, 96.0, 94.5];
$low   = [ 98.0, 95.0, 94.0, 94.8, 93.0];
$close = [ 98.5, 95.5, 94.5, 95.0, 93.5];

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

if ($result === false) {
    echo 'Fehler bei der Mustererkennung.' . PHP_EOL;
} else {
    foreach ($result as $index => $value) {
        if ($value !== 0) {
            echo "In-Neck-Muster bei Index $index erkannt: Wert = $value" . PHP_EOL;
        }
    }
    if (array_sum(array_map('abs', $result)) === 0) {
        echo 'Kein In-Neck-Muster in den Daten gefunden.' . PHP_EOL;
    }
}
Kein In-Neck-Muster in den Daten gefunden.

Integration in ein einfaches Analyse-Skript

<?php
// Realistischere Kursdaten mit potenziellem In-Neck-Muster
// Kerze 1: Lange schwarze Kerze (fallend)
// Kerze 2: Weiße Kerze, öffnet unter Kerze-1-Tief, schließt knapp darüber
$open  = [110.0, 108.0, 105.0, 100.0, 96.0];
$high  = [111.0, 108.5, 105.5, 100.5, 97.5];
$low   = [107.0, 104.0, 101.0,  95.0, 94.5];
$close = [107.5, 104.5, 101.5,  96.0, 96.2]; // Kerze 5 schließt knapp über Kerze-4-Tief (95.0)

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

if ($result !== false) {
    echo 'Mustererkennung erfolgreich.' . PHP_EOL;
    foreach ($result as $i => $val) {
        $label = match(true) {
            $val < 0 => 'Bearishes In-Neck',
            $val > 0 => 'Bullishes In-Neck',
            default  => 'Kein Muster',
        };
        echo "Index $i: $label ($val)" . PHP_EOL;
    }
}
Mustererkennung erfolgreich. Index 0: Kein Muster (0) Index 1: Kein Muster (0) Index 2: Kein Muster (0) Index 3: Kein Muster (0) Index 4: Kein Muster (0)

// Wichtig · Fallstricke

Voraussetzung: Die PHP-TRADER-Erweiterung muss installiert und aktiviert sein (extension=trader in der php.ini). Sie ist nicht standardmäßig in PHP enthalten und muss über PECL installiert werden: pecl install trader.

Array-Länge: Alle vier Eingabe-Arrays müssen exakt dieselbe Länge haben. Unterschiedliche Längen führen zu false als Rückgabewert.

Lookahead: TA-Lib-Funktionen benötigen eine bestimmte Anzahl an vorherigen Datenpunkten (Lookback-Periode). Für das In-Neck-Muster beträgt die Lookback-Periode mindestens 1 Kerze, d. h. der erste auswertbare Index im Ergebnis-Array entspricht dem zweiten Datenpunkt der Eingabe.

Interpretation: Das In-Neck-Muster allein liefert kein starkes Handelssignal. Es sollte stets mit weiteren Indikatoren (Volumen, Trendbestätigung) kombiniert werden.