Start · Sprachen · PHP · Referenz · trader_cdlcounterattack

trader_cdlcounterattack

Funktion

Erkennt das <code>Counterattack</code>-Candlestick-Muster in OHLC-Kursdaten und gibt ein Integer-Array mit Mustererkennung-Ergebnissen zurück.

Kategorie: math

Signatur

trader_cdlcounterattack(array $open, array $high, array $low, array $close): array

Beschreibung

Die Funktion trader_cdlcounterattack() ist Teil der TRADER-Erweiterung für PHP, die auf der TA-Lib (Technical Analysis Library) basiert. Sie analysiert Kerzen-Diagrammdaten (Open, High, Low, Close) und erkennt das sogenannte Counterattack-Muster (Gegenangriff-Muster).

Das Counterattack-Muster ist ein zweiteiliges Umkehrmuster in der technischen Analyse. Es besteht aus zwei Kerzen: Die erste Kerze setzt einen starken Trend fort (z. B. eine lange bärische Kerze im Abwärtstrend), während die zweite Kerze in die entgegengesetzte Richtung öffnet, aber am selben Schlusskurs wie die erste Kerze schließt. Dies signalisiert eine mögliche Trendwende.

Der Rückgabewert ist ein Array mit Integer-Werten pro Datenpunkt: 100 steht für ein bullisches Counterattack-Signal, -100 für ein bärisches Signal, und 0 bedeutet, dass kein Muster erkannt wurde. Die Indizes des Rückgabe-Arrays entsprechen den Indizes der Eingabe-Arrays (mit einem Lookup-Versatz, da mindestens zwei Kerzen benötigt werden).

Diese Funktion ist besonders nützlich beim automatisierten Backtesting von Handelsstrategien oder beim Aufbau technischer Indikator-Pipelines in PHP-basierten Finanzapplikationen.

Parameter

Name Typ Default Beschreibung
$open Pflicht array Array mit Eröffnungskursen (numerisch indiziert, aufsteigend nach Zeit).
$high Pflicht array Array mit Tageshöchstkursen (numerisch indiziert, gleiche Länge wie open).
$low Pflicht array Array mit Tagestiefkursen (numerisch indiziert, gleiche Länge wie open).
$close Pflicht array Array mit Schlusskursen (numerisch indiziert, gleiche Länge wie open).

Rückgabewert

Typ
array
Beschreibung
Gibt ein Array von Integer-Werten zurück. 100 zeigt ein bullisches Counterattack-Muster an, -100 ein bärisches Muster, und 0 bedeutet kein erkanntes Muster. Das Array kann kürzer als die Eingabe-Arrays sein, da für die Mustererkennung mindestens zwei Datenpunkte benötigt werden. Bei einem Fehler wird false zurückgegeben.

Beispiele

Einfaches Beispiel zur Mustererkennung

<?php
// OHLC-Kursdaten (z. B. tägliche Kerzen)
$open  = [44.0, 43.5, 41.0, 42.5, 40.0];
$high  = [45.0, 44.0, 42.5, 43.5, 41.5];
$low   = [43.0, 41.0, 40.0, 41.0, 39.0];
$close = [43.5, 41.5, 42.0, 42.0, 40.5];

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

if ($result === false) {
    echo 'Fehler bei der Mustererkennung.' . PHP_EOL;
} else {
    foreach ($result as $index => $signal) {
        if ($signal !== 0) {
            $typ = $signal > 0 ? 'Bullisch' : 'Bärisch';
            echo "Kerze #{$index}: {$typ} Counterattack-Muster erkannt (Wert: {$signal})" . PHP_EOL;
        }
    }
    if (array_sum(array_map('abs', $result)) === 0) {
        echo 'Kein Counterattack-Muster in den Daten gefunden.' . PHP_EOL;
    }
}
Kein Counterattack-Muster in den Daten gefunden.

Integration mit historischen Börsendaten

<?php
// Simulierte historische OHLC-Daten (z. B. aus einer Datenbank geladen)
$ohlc = [
    ['o' => 100.0, 'h' => 102.0, 'l' => 98.0,  'c' => 99.0],
    ['o' => 99.0,  'h' => 100.0, 'l' => 95.0,  'c' => 95.5],
    ['o' => 94.0,  'h' => 97.0,  'l' => 93.0,  'c' => 95.5], // potenzielles Muster
    ['o' => 98.0,  'h' => 99.5,  'l' => 96.0,  'c' => 97.0],
    ['o' => 97.5,  'h' => 100.0, 'l' => 96.5,  'c' => 99.0],
];

$open  = array_column($ohlc, 'o');
$high  = array_column($ohlc, 'h');
$low   = array_column($ohlc, 'l');
$close = array_column($ohlc, 'c');

$signals = trader_cdlcounterattack($open, $high, $low, $close);

echo 'Counterattack-Signale:' . PHP_EOL;
foreach ($signals as $i => $val) {
    $label = match(true) {
        $val > 0  => '✓ Bullisch',
        $val < 0  => '✗ Bärisch',
        default   => '  Kein Signal',
    };
    echo "  [{$i}] {$label}" . PHP_EOL;
}
Counterattack-Signale: [0] Kein Signal [1] Kein Signal [2] Kein Signal [3] Kein Signal [4] Kein Signal

// Wichtig · Fallstricke

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

Array-Länge: Die Eingabe-Arrays open, high, low und close müssen exakt gleich lang sein und mindestens 2 Elemente enthalten. Unterschiedliche Längen können zu undefinierten Ergebnissen oder false führen.

Index-Versatz: Das Rückgabe-Array kann weniger Elemente als die Eingabe-Arrays haben, da die Funktion intern einen Lookback-Zeitraum (mindestens 1 Periode) benötigt. Die Indizes im Rückgabe-Array entsprechen den Positionen in den Eingabe-Arrays.

Signalinterpretation: Ein Counterattack-Signal allein sollte nicht als alleinige Handelsentscheidungsgrundlage verwendet werden. Es empfiehlt sich, das Signal mit weiteren Indikatoren wie Volumen, RSI oder gleitenden Durchschnitten zu kombinieren.