Signatur
Beschreibung
Die Funktion trader_cdlmathold() ist Teil der TRADER-Erweiterung für PHP (libta-lib-Bindings) und analysiert eine Reihe von Candlestick-Daten auf das Vorhandensein des Mat Hold-Musters. Das Mat-Hold-Muster ist ein fünfteiliges bullisches Fortsetzungsmuster, das aus einer großen positiven Kerze, drei kleineren Gegentrend-Kerzen und einer weiteren großen positiven Kerze besteht, die das vorherige Hoch überschreitet.
Das Ergebnisarray enthält für jeden Datenpunkt einen ganzzahligen Wert: +100 zeigt ein bullisches Mat-Hold-Signal an, 0 bedeutet kein Muster erkannt. Das Muster gilt als zuverlässiges Zeichen für eine Fortsetzung eines bestehenden Aufwärtstrends nach einer kurzen Konsolidierungsphase.
Der Parameter penetration steuert, wie weit die Konsolidierungskerzen in den Körper der ersten Kerze eindringen dürfen. Ein niedrigerer Wert macht das Muster strenger, ein höherer Wert erlaubt mehr Überlappung. Der Standardwert von 0.5 entspricht der üblichen technischen-Analyse-Konvention.
Die Funktion eignet sich für den Einsatz in automatisierten Handelssystemen, Backtesting-Frameworks oder Chart-Analyse-Anwendungen, die auf PHP basieren und technische Indikatoren auswerten müssen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $open Pflicht | array | Array mit den Eröffnungskursen (Open-Preisen) der Kerzen, indiziert von 0 bis n-1. | |
| $high Pflicht | array | Array mit den Höchstkursen (High-Preisen) der Kerzen. Muss dieselbe Länge wie open haben. |
|
| $low Pflicht | array | Array mit den Tiefstkursen (Low-Preisen) der Kerzen. Muss dieselbe Länge wie open haben. |
|
| $close Pflicht | array | Array mit den Schlusskursen (Close-Preisen) der Kerzen. Muss dieselbe Länge wie open haben. |
|
| $penetration | float | 0.5 | Prozentualer Schwellenwert (zwischen 0 und 1), der bestimmt, wie weit die kleinen Konsolidierungskerzen in den Körper der ersten Kerze eindringen dürfen. Standard ist 0.5 (50%). |
Rückgabewert
+100 zeigt an, dass an dieser Position ein bullisches Mat-Hold-Muster erkannt wurde; 0 bedeutet kein Muster. Die ersten Einträge des Arrays können fehlen (lookback-Periode), da für das Muster mindestens 5 Kerzen benötigt werden.Beispiele
Einfache Mustererkennung auf simulierten Kursdaten
<?php
// Sicherstellen, dass die TRADER-Erweiterung geladen ist
if (!extension_loaded('trader')) {
die('Die trader-Erweiterung ist nicht geladen.');
}
// Simulierte OHLC-Daten (5 Kerzen als Mat-Hold-Beispiel)
$open = [10.0, 11.5, 11.8, 11.6, 11.7, 12.5];
$high = [11.6, 12.0, 12.1, 11.9, 12.0, 13.5];
$low = [ 9.8, 11.0, 11.2, 11.1, 11.3, 12.3];
$close = [11.4, 11.2, 11.3, 11.5, 11.6, 13.2];
$result = trader_cdlmathold($open, $high, $low, $close, 0.5);
foreach ($result as $index => $signal) {
if ($signal !== 0) {
echo "Mat-Hold-Muster erkannt bei Index $index: Signal = $signal\n";
}
}
if (empty(array_filter($result))) {
echo "Kein Mat-Hold-Muster in den Daten gefunden.\n";
}
Integration in eine Chart-Analyse mit echten Kursdaten
<?php
// OHLC-Daten aus einer Datenbank oder API laden
$open = [100.0, 105.0, 102.5, 103.0, 104.0, 110.0];
$high = [106.0, 107.0, 105.0, 104.5, 105.5, 115.0];
$low = [ 99.0, 101.5, 101.0, 102.0, 103.0, 109.5];
$close = [104.8, 102.0, 103.5, 103.8, 104.5, 114.0];
$penetration = 0.5;
$signals = trader_cdlmathold($open, $high, $low, $close, $penetration);
echo "Muster-Analyse (Mat Hold):\n";
foreach ($signals as $i => $val) {
$status = match(true) {
$val > 0 => '✔ Bullisches Mat-Hold-Signal',
default => 'Kein Muster',
};
printf("Kerze %d: Close=%.2f => %s\n", $i, $close[$i], $status);
}
// Wichtig · Fallstricke
Voraussetzung: Die Funktion steht nur zur Verfügung, wenn die trader-PHP-Erweiterung installiert und aktiviert ist (PECL-Paket trader). Sie basiert auf der TA-Lib-Bibliothek.
- Alle vier OHLC-Arrays müssen exakt dieselbe Anzahl an Elementen enthalten, andernfalls gibt die Funktion
falsezurück oder liefert unerwartete Ergebnisse. - Die Lookback-Periode für das Mat-Hold-Muster beträgt 4 (es werden mindestens 5 Kerzen benötigt), d. h. die ersten 4 Einträge im Ergebnis-Array sind nicht belegt.
- Der Parameter
penetrationsollte zwischen0.0und1.0liegen. Werte außerhalb dieses Bereichs können zu unerwarteten Ergebnissen führen. - Das Mat-Hold-Muster ist in realen Kursdaten selten. Für robuste Handelssignale empfiehlt sich die Kombination mit anderen Indikatoren wie Volumen oder Trend-Indikatoren.