Signatur
Beschreibung
Die Funktion trader_cdlharamicross() gehört zur TRADER-Erweiterung für PHP (basierend auf TA-Lib) und erkennt das japanische Candlestick-Muster Harami Cross. Dieses Muster besteht aus zwei Kerzen: einer großen Kerze gefolgt von einem Doji (Eröffnungs- und Schlusskurs nahezu identisch), der vollständig innerhalb des Körpers der vorigen Kerze liegt. Es gilt als potenzielles Trendumkehrsignal.
Das Harami-Cross-Muster ist eine Variante des klassischen Harami-Musters, bei dem die zweite Kerze zwingend ein Doji sein muss. Ein bullisches Harami Cross erscheint in einem Abwärtstrend und signalisiert eine mögliche Aufwärtswende, während ein bärisches Harami Cross in einem Aufwärtstrend eine Abwärtswende andeuten kann.
Die Funktion gibt für jeden Datenpunkt einen ganzzahligen Wert zurück: 100 für ein bullisches Signal, -100 für ein bärisches Signal und 0 für kein Muster. Die ersten Elemente des Rückgabe-Arrays können 0 sein, da TA-Lib einen Vorlaufzeitraum (lookback) benötigt.
Typische Einsatzbereiche sind algorithmisches Trading, technische Analyse von Börsendaten und die Entwicklung von Handelsstrategien in PHP-basierten Finanzanwendungen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $open Pflicht | array | Numerisch indiziertes Array mit den Eröffnungskursen (Open) der Kerzen in chronologischer Reihenfolge. | |
| $high Pflicht | array | Numerisch indiziertes Array mit den Höchstkursen (High) der Kerzen in chronologischer Reihenfolge. | |
| $low Pflicht | array | Numerisch indiziertes Array mit den Tiefstkursen (Low) der Kerzen in chronologischer Reihenfolge. | |
| $close Pflicht | array | Numerisch indiziertes Array mit den Schlusskursen (Close) der Kerzen in chronologischer Reihenfolge. |
Rückgabewert
100 (bullisches Harami Cross), -100 (bärisches Harami Cross) oder 0 (kein Muster). Bei einem Fehler wird false zurückgegeben. Die Länge des Arrays entspricht der Länge der Eingabe-Arrays; die ersten Elemente können aufgrund des TA-Lib-Vorlaufzeitraums 0 sein.Beispiele
Einfache Erkennung des Harami-Cross-Musters
<?php
// Beispiel-OHLC-Daten (z. B. Tageskerzen einer Aktie)
$open = [44.34, 43.61, 44.33, 44.83, 45.10, 44.50, 44.30, 44.29];
$high = [44.84, 44.33, 44.83, 45.10, 45.25, 44.95, 44.60, 44.40];
$low = [43.61, 43.00, 43.61, 44.33, 44.50, 44.25, 44.20, 44.28];
$close = [43.61, 44.33, 44.83, 45.10, 44.50, 44.30, 44.29, 44.30];
$result = trader_cdlharamicross($open, $high, $low, $close);
if ($result === false) {
echo "Fehler bei der Mustererkennung.\n";
} else {
foreach ($result as $index => $signal) {
if ($signal !== 0) {
$typ = ($signal > 0) ? 'Bullisch' : 'Bärisch';
echo "Index {$index}: {$typ} Harami Cross erkannt (Wert: {$signal})\n";
}
}
if (max(array_map('abs', $result)) === 0) {
echo "Kein Harami-Cross-Muster in den Daten gefunden.\n";
}
}
Integration in eine Trading-Signalanalyse
<?php
// Simulierte OHLC-Daten mit einem typischen bärischen Harami Cross
// Große bullische Kerze gefolgt von einem Doji innerhalb des Körpers
$open = [10.00, 10.50, 11.00, 12.00, 11.50, 11.49];
$high = [10.60, 11.00, 11.50, 12.50, 11.55, 11.52];
$low = [9.90, 10.40, 10.90, 11.90, 11.45, 11.47];
$close = [10.50, 10.90, 11.80, 11.50, 11.49, 11.50];
$signals = trader_cdlharamicross($open, $high, $low, $close);
if (is_array($signals)) {
$letzterSignal = end($signals);
$letzterIndex = key($signals);
if ($letzterSignal === 100) {
echo "Letztes Signal (Index {$letzterIndex}): Bullisches Harami Cross — mögliche Aufwärtswende!\n";
} elseif ($letzterSignal === -100) {
echo "Letztes Signal (Index {$letzterIndex}): Bärisches Harami Cross — mögliche Abwärtswende!\n";
} else {
echo "Kein Harami-Cross-Signal am letzten Datenpunkt.\n";
}
}
// Wichtig · Fallstricke
Voraussetzung: Die PHP-TRADER-Erweiterung muss installiert und aktiviert sein (pecl install trader). Sie ist nicht im PHP-Kern enthalten.
Array-Längen: Alle vier Eingabe-Arrays (open, high, low, close) müssen dieselbe Länge haben, andernfalls wird false zurückgegeben.
Vorlaufzeitraum: TA-Lib benötigt für dieses Muster einen internen Vorlaufzeitraum (lookback period). Die ersten Elemente des Ergebnis-Arrays sind daher 0 und stellen keine echten Signale dar.
Signalstärke: Der Rückgabewert 100 bzw. -100 ist ein konventioneller Wert von TA-Lib und repräsentiert keine prozentuale Wahrscheinlichkeit. Das Muster sollte stets in Kombination mit weiteren Indikatoren und dem übergeordneten Trend bewertet werden.