Signatur
Beschreibung
Die Funktion trader_cdlkickingbylength() ist Teil der TRADER-Erweiterung für PHP, die auf der TA-Lib (Technical Analysis Library) basiert. Sie analysiert OHLC-Kursdaten (Open, High, Low, Close) und erkennt das sogenannte Kicking by Length-Candlestick-Muster.
Das Kicking-Muster ist ein starkes Umkehrsignal in der Candlestick-Analyse und besteht aus zwei aufeinanderfolgenden Marubozu-Kerzen (Kerzen ohne Dochte/Schatten), zwischen denen eine Lücke (Gap) entsteht. Bei der Variante by Length wird die Richtung des Signals (bullisch oder bärisch) nicht durch die Farbe der zweiten Kerze, sondern durch die Länge des längeren Marubozus bestimmt: Ist der bullische Marubozu länger, ist das Signal bullisch; ist der bärische länger, ist das Signal bärisch.
Der Rückgabewert ist ein Array mit Integer-Werten: 100 steht für ein bullisches Signal, -100 für ein bärisches Signal und 0 bedeutet, dass an dieser Position kein Muster erkannt wurde. Die ersten Elemente des Arrays können den Wert 0 haben, da für die Berechnung eine gewisse Anzahl an Vorperioden (Lookback) benötigt wird.
Diese Funktion eignet sich besonders für automatisierte Handelssysteme oder die Analyse von Finanzzeitreihen in PHP, um potenzielle starke Trendwechsel zu identifizieren.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $open Pflicht | array | Array mit den Eröffnungskursen (Open) der Kerzen als numerische Werte. | |
| $high Pflicht | array | Array mit den Höchstkursen (High) der Kerzen als numerische Werte. | |
| $low Pflicht | array | Array mit den Tiefstkursen (Low) der Kerzen als numerische Werte. | |
| $close Pflicht | array | Array mit den Schlusskursen (Close) der Kerzen als numerische Werte. |
Rückgabewert
100 (bullisches Kicking-Muster), -100 (bärisches Kicking-Muster) oder 0 (kein Muster erkannt). Im Fehlerfall (z. B. bei ungültigen oder ungleich langen Eingabe-Arrays) wird false zurückgegeben.Beispiele
Einfaches Beispiel: Kicking-by-Length-Muster erkennen
<?php
// Beispiel-OHLC-Daten (z. B. Tageskerzen)
$open = [10.0, 12.0, 9.0, 11.0, 8.0, 14.0];
$high = [10.0, 12.0, 9.0, 11.0, 8.0, 14.0];
$low = [8.0, 10.0, 7.0, 9.0, 6.0, 12.0];
$close = [8.0, 10.0, 7.0, 9.0, 6.0, 12.0];
$result = trader_cdlkickingbylength($open, $high, $low, $close);
if ($result === false) {
echo 'Fehler bei der Berechnung.' . PHP_EOL;
} else {
foreach ($result as $index => $value) {
if ($value !== 0) {
$richtung = $value > 0 ? 'Bullisch' : 'Bärisch';
echo "Kerze {$index}: Kicking-by-Length erkannt – {$richtung} ({$value})" . PHP_EOL;
}
}
if (!in_array(true, array_map(fn($v) => $v !== 0, $result))) {
echo 'Kein Kicking-by-Length-Muster erkannt.' . PHP_EOL;
}
}
Muster in historischen Kursdaten suchen und ausgeben
<?php
// Simulierte historische OHLC-Daten (Marubozu-Kerzen ohne Schatten)
$open = [100.0, 98.0, 95.0, 97.0, 105.0, 103.0];
$high = [102.0, 98.0, 95.0, 97.0, 107.0, 103.0];
$low = [100.0, 94.0, 91.0, 93.0, 105.0, 99.0];
$close = [102.0, 94.0, 91.0, 93.0, 107.0, 99.0];
$result = trader_cdlkickingbylength($open, $high, $low, $close);
echo 'Ergebnisse:' . PHP_EOL;
foreach ($result as $i => $val) {
$label = match($val) {
100 => '✓ Bullisches Kicking-by-Length',
-100 => '✓ Bärisches Kicking-by-Length',
default => 'Kein Muster',
};
echo "Index {$i}: {$label}" . PHP_EOL;
}
// Wichtig · Fallstricke
Alle vier Arrays (open, high, low, close) müssen dieselbe Länge haben, andernfalls gibt die Funktion false zurück.
Das Ergebnis-Array hat dieselbe Länge wie die Eingabe-Arrays. Die ersten Elemente enthalten 0, da für die Mustererkennung ein Lookback-Zeitraum benötigt wird. Dieser kann mit trader_cdlkickingbylength_lookback() abgefragt werden, sofern diese Hilfsfunktion verfügbar ist.
Die Funktion setzt die TRADER PHP-Erweiterung voraus (pecl install trader). Sie ist nicht im PHP-Kern enthalten und muss separat installiert und in der php.ini aktiviert werden.
Unterschied zu trader_cdlkicking(): Bei trader_cdlkicking() bestimmt die Farbe der zweiten Kerze die Signalrichtung, während hier der längere der beiden Marubozus ausschlaggebend ist.