Signatur
Beschreibung
trader_cdlhammer ist Teil der TRADER-Erweiterung (basierend auf TA-Lib) und analysiert OHLC-Kursdaten (Open, High, Low, Close), um das klassische Hammer-Candlestick-Muster zu erkennen. Der Hammer ist ein bullisches Umkehrmuster, das typischerweise am Ende eines Abwärtstrends auftritt.
Das Muster zeichnet sich durch einen kleinen realen Körper am oberen Ende der Kerze, einen langen unteren Docht (mindestens doppelt so lang wie der Körper) und einen sehr kurzen oder gar keinen oberen Docht aus. Es signalisiert, dass Verkäufer die Kontrolle verloren haben und Käufer die Preise wieder nach oben getrieben haben.
Der Rückgabewert je Array-Position ist 100 (bullisches Signal erkannt), -100 (bearisches Signal) oder 0 (kein Muster). In der Praxis gibt trader_cdlhammer meist nur positive Werte zurück, da der Hammer ein primär bullisches Muster ist. Die ersten Elemente des Ausgabe-Arrays sind typischerweise 0 (Lookback-Periode).
Die Funktion eignet sich für technische Analysen in Trading-Systemen, Backtesting-Frameworks oder zur automatisierten Mustererkennung in Finanzanwendungen. Alle vier Eingabe-Arrays müssen dieselbe Länge besitzen und chronologisch sortierte Kursdaten enthalten.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $open Pflicht | array | Array mit den Eröffnungskursen (Open) der Kerzen, chronologisch sortiert. | |
| $high Pflicht | array | Array mit den Höchstkursen (High) der Kerzen, chronologisch sortiert. | |
| $low Pflicht | array | Array mit den Tiefstkursen (Low) der Kerzen, chronologisch sortiert. | |
| $close Pflicht | array | Array mit den Schlusskursen (Close) der Kerzen, chronologisch sortiert. |
Rückgabewert
100 steht für ein erkanntes bullisches Hammer-Muster, -100 für ein bearisches Signal und 0 für kein Muster an der jeweiligen Position. Bei ungültigen Eingabedaten oder einem Fehler wird false zurückgegeben.Beispiele
Hammer-Muster in historischen Kursdaten erkennen
<?php
// Beispielhafte OHLC-Daten (z. B. Tageskerzen einer Aktie)
$open = [100.0, 98.5, 97.0, 95.0, 93.0, 92.5, 94.0];
$high = [101.0, 99.5, 98.0, 96.0, 94.5, 93.5, 95.5];
$low = [99.0, 97.0, 95.5, 93.0, 88.0, 91.5, 93.5];
$close = [99.5, 98.0, 96.5, 94.0, 93.2, 92.8, 94.8];
$result = trader_cdlhammer($open, $high, $low, $close);
if ($result === false) {
echo 'Fehler bei der Berechnung.' . PHP_EOL;
} else {
foreach ($result as $index => $signal) {
if ($signal !== 0) {
echo "Hammer-Signal bei Index {$index}: {$signal}" . PHP_EOL;
}
}
if (array_sum(array_map('abs', $result)) === 0) {
echo 'Kein Hammer-Muster in den Daten gefunden.' . PHP_EOL;
}
}
Hammer-Erkennung mit Ausgabe aller Signale
<?php
// Etwas längere Datenreihe für realistischere Erkennung
$open = [50.0, 49.0, 48.0, 46.0, 44.0, 43.5, 43.8, 44.5];
$high = [51.0, 50.0, 49.0, 47.0, 45.0, 44.5, 44.8, 45.5];
$low = [48.5, 47.5, 46.5, 44.5, 40.0, 43.0, 43.5, 44.0];
$close = [49.0, 48.0, 47.0, 45.0, 44.2, 43.7, 44.0, 45.0];
$result = trader_cdlhammer($open, $high, $low, $close);
echo 'Signale:' . PHP_EOL;
foreach ($result as $i => $val) {
$label = match(true) {
$val > 0 => 'Bullisch (Hammer)',
$val < 0 => 'Bearisch',
default => 'Kein Muster'
};
echo " [{$i}] Open={$open[$i]}, High={$high[$i]}, Low={$low[$i]}, Close={$close[$i]} => {$label}" . PHP_EOL;
}
// Wichtig · Fallstricke
Voraussetzung: Die TRADER-PHP-Erweiterung muss installiert und aktiviert sein (pecl install trader). Sie ist nicht standardmäßig in PHP enthalten.
Lookback-Periode: Die ersten Elemente des Ausgabe-Arrays sind stets 0, da TA-Lib eine gewisse Anlaufperiode (Lookback) benötigt. Die genaue Lookback-Anzahl kann mit trader_cdlhammer_lookback() ermittelt werden, sofern diese Funktion verfügbar ist.
Datenqualität: Alle vier Arrays müssen exakt gleich lang und numerisch indiziert sein. Fehlende oder inkonsistente Daten (z. B. High < Low) können zu falschen Ergebnissen oder false führen.
Kontextabhängigkeit: Ein einzelnes Hammer-Signal sollte nie isoliert betrachtet werden. In der Praxis wird es mit weiteren Indikatoren (z. B. Volumen, RSI, gleitende Durchschnitte) kombiniert, um Fehlsignale zu reduzieren.