Signatur
Beschreibung
trader_cdlharami ist Teil der TRADER-Erweiterung für PHP (basierend auf TA-Lib) und erkennt das Harami-Muster in Candlestick-Kursreihen. Das Harami ist ein zweikerzen-basiertes Umkehrmuster in der technischen Analyse: Die erste Kerze hat einen großen Körper, die zweite Kerze ist vollständig innerhalb des Körpers der ersten enthalten.
Ein bullisches Harami tritt auf, wenn nach einer langen roten (fallenden) Kerze eine kleine grüne (steigende) Kerze innerhalb deren Körpers erscheint – ein mögliches Zeichen für eine Trendwende nach oben. Ein bärisches Harami ist das Gegenteil und signalisiert eine potenzielle Umkehr eines Aufwärtstrends.
Die Funktion gibt für jeden Datenpunkt einen Wert zurück: 100 für ein bullisches Signal, -100 für ein bärisches Signal und 0 für kein Muster. Die Eingabe-Arrays müssen gleich lang und chronologisch sortiert sein.
Diese Funktion ist besonders nützlich beim automatisierten Screening von Wertpapieren oder beim Backtesting von Handelsstrategien, bei denen Harami-Signale als Einstiegspunkte genutzt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $open Pflicht | array | Array mit den Eröffnungskursen (chronologisch sortiert, numerisch indiziert). | |
| $high Pflicht | array | Array mit den Tageshöchstkursen (chronologisch sortiert, numerisch indiziert). | |
| $low Pflicht | array | Array mit den Tagestiefstkursen (chronologisch sortiert, numerisch indiziert). | |
| $close Pflicht | array | Array mit den Schlusskursen (chronologisch sortiert, numerisch indiziert). |
Rückgabewert
100 (bullisches Harami), -100 (bärisches Harami) oder 0 (kein Muster erkannt). Im Fehlerfall (z. B. bei ungültigen oder unterschiedlich langen Arrays) wird false zurückgegeben. Die ersten Elemente des Rückgabe-Arrays können 0 sein (Lookback-Periode der Funktion).Beispiele
Einfache Erkennung des Harami-Musters
<?php
// Beispiel-OHLC-Daten (5 Tage)
$open = [100.0, 95.0, 96.0, 97.0, 98.0];
$high = [105.0, 100.0, 98.0, 99.0, 100.0];
$low = [94.0, 90.0, 94.0, 95.0, 96.0];
$close = [95.0, 91.0, 97.0, 98.0, 99.0];
$result = trader_cdlharami($open, $high, $low, $close);
if ($result === false) {
echo "Fehler bei der Berechnung.\n";
} else {
foreach ($result as $index => $signal) {
if ($signal !== 0) {
$type = $signal > 0 ? 'Bullisches Harami' : 'Bärisches Harami';
echo "Tag $index: $type (Signal: $signal)\n";
}
}
if (array_sum(array_map('abs', $result)) === 0) {
echo "Kein Harami-Muster in den Daten gefunden.\n";
}
}
Harami-Screening über mehrere Handelstage
<?php
// Realistischere Kursdaten mit klarem Harami-Muster
// Langer roter Körper gefolgt von kleiner grüner Kerze innerhalb des Körpers
$open = [110.0, 108.0, 100.0, 99.0, 100.5];
$high = [111.0, 109.0, 101.0, 100.0, 101.0];
$low = [108.5, 100.0, 98.5, 98.5, 99.5];
$close = [109.0, 100.5, 99.5, 99.8, 100.8];
$signals = trader_cdlharami($open, $high, $low, $close);
if (is_array($signals)) {
echo "Harami-Signale:\n";
foreach ($signals as $day => $value) {
$label = match(true) {
$value > 0 => '✓ Bullisch',
$value < 0 => '✗ Bärisch',
default => ' Kein Muster',
};
echo sprintf("Tag %d: %s (%d)\n", $day, $label, $value);
}
}
// Wichtig · Fallstricke
Voraussetzung: Die PHP-TRADER-Erweiterung muss installiert und aktiviert sein (pecl install trader). Ohne diese Erweiterung ist die Funktion nicht verfügbar.
Lookback-Periode: TA-Lib benötigt eine Mindestanzahl an Datenpunkten, um das Muster zuverlässig zu erkennen. Die ersten Elemente des Ergebnis-Arrays enthalten daher 0. Für produktiven Einsatz sollten ausreichend viele historische Kursdaten übergeben werden (empfohlen: mindestens 10–20 Datenpunkte).
Musterinterpretation: Das Harami allein ist kein zuverlässiges Handelssignal. Es sollte immer in Kombination mit anderen Indikatoren (z. B. RSI, Volumen, Trendfilter) verwendet werden, um Fehlsignale zu minimieren.
Array-Länge: Alle vier Eingabe-Arrays (open, high, low, close) müssen exakt gleich lang sein, sonst gibt die Funktion false zurück.