Signatur
Beschreibung
trader_min ist Teil der TRADER-Erweiterung für PHP (basierend auf der TA-Lib, Technical Analysis Library) und berechnet das rollende Minimum über einen definierten Zeitraum. Die Funktion ist besonders nützlich in der technischen Analyse von Finanzdaten, etwa um Tiefpunkte von Aktienkursen, Devisenkursen oder anderen Zeitreihen zu identifizieren.
Die Funktion gleitet mit einem Fenster der Größe timePeriod über das Eingabe-Array und gibt für jede Position das Minimum der letzten timePeriod Werte zurück. Die ersten timePeriod - 1 Elemente des Ergebnis-Arrays sind dabei nicht belegt (Lookback-Zeitraum), da noch nicht genügend Datenpunkte vorhanden sind.
Typische Einsatzgebiete sind: Identifikation von Unterstützungsniveaus in Kurscharts, Berechnung von Donchian-Kanälen (in Kombination mit trader_max) oder allgemeine Analyse von Zeitreihendaten auf Minimalwerte hin.
Das Ergebnis-Array ist numerisch indiziert und entspricht in seiner Länge nicht zwingend dem Eingabe-Array, da der Lookback-Bereich am Anfang fehlt. Der erste gültige Ausgabewert entspricht dem Index timePeriod - 1 im Eingabe-Array.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Ein numerisch indiziertes Array mit Fließkommazahlen (z. B. Schlusskurse einer Zeitreihe). Die Werte müssen in chronologischer Reihenfolge vorliegen. | |
| $timePeriod | int | 30 | Anzahl der Perioden, über die das rollende Minimum berechnet wird. Muss mindestens 2 sein. Standardwert ist 30. |
Rückgabewert
timePeriod - 1 Einträge fehlen (Lookback). Gibt false zurück, wenn ein Fehler auftritt, z. B. bei ungültigen Parametern oder leerem Eingabe-Array.Beispiele
Rollendes 5-Perioden-Minimum berechnen
<?php
// Beispielhafte Schlusskurse einer Aktie
$schlusskurse = [45.0, 47.5, 46.2, 44.8, 48.0, 49.3, 47.1, 43.6, 44.9, 46.0];
// Rollendes Minimum über 5 Perioden berechnen
$minimum = trader_min($schlusskurse, 5);
if ($minimum === false) {
echo 'Fehler bei der Berechnung.' . PHP_EOL;
} else {
echo 'Rollende Minima (5 Perioden):' . PHP_EOL;
foreach ($minimum as $index => $wert) {
echo "Index $index: " . number_format($wert, 2) . PHP_EOL;
}
}
Donchian-Kanal: Kombination von trader_min und trader_max
<?php
// Tägliche Kursdaten (z. B. 20-Tage-Donchian-Kanal)
$kurse = [100, 102, 98, 105, 110, 108, 103, 97, 99, 101,
106, 112, 115, 111, 108, 104, 100, 98, 102, 107,
109, 113, 116, 114, 110];
$periode = 20;
$kanalUnten = trader_min($kurse, $periode);
$kanalOben = trader_max($kurse, $periode);
if ($kanalUnten === false || $kanalOben === false) {
echo 'Berechnung fehlgeschlagen.' . PHP_EOL;
} else {
$indizes = array_keys($kanalUnten);
echo 'Donchian-Kanal (20 Perioden):' . PHP_EOL;
foreach ($indizes as $i) {
printf(
"Index %2d | Untere Grenze: %6.2f | Obere Grenze: %6.2f\n",
$i,
$kanalUnten[$i],
$kanalOben[$i]
);
}
}
// Wichtig · Fallstricke
TRADER-Erweiterung erforderlich: trader_min ist nur verfügbar, wenn die PHP-Erweiterung trader installiert und aktiviert ist (extension=trader.so bzw. extension=php_trader.dll). Sie kann über PECL installiert werden: pecl install trader.
Lookback-Zeitraum: Das Ergebnis-Array enthält weniger Elemente als das Eingabe-Array. Die ersten timePeriod - 1 Indizes sind nicht im Ergebnis enthalten. Achte darauf, bei der Weiterverarbeitung die Indizes korrekt zuzuordnen.
Ungültige Parameter: Wird timePeriod kleiner als 2 oder größer als die Länge des Eingabe-Arrays übergeben, gibt die Funktion false zurück. Prüfe den Rückgabewert daher immer mit === false.