Signatur
Beschreibung
trader_minmaxindex ist Teil der TRADER-Erweiterung für PHP (basierend auf TA-Lib) und gibt für jeden Punkt in einem Zeitreihendatensatz den Index des Minimums und den Index des Maximums innerhalb eines definierten Rückblickzeitraums zurück. Im Unterschied zu trader_minmax, das die tatsächlichen Werte zurückliefert, liefert diese Funktion die Positionen (Array-Indizes), an denen die Extremwerte auftreten.
Das Ergebnis ist ein assoziatives Array mit zwei Schlüsseln: min und max. Jeder enthält ein numerisches Array, dessen Elemente den Index des niedrigsten bzw. höchsten Werts im jeweiligen Fenster der Länge timePeriod angeben. Die ersten timePeriod - 1 Einträge sind nicht im Ergebnis enthalten (Lookback-Offset).
Typische Anwendungsgebiete sind die technische Analyse von Finanz- oder Zeitreihendaten, z. B. um festzustellen, wann (nicht nur wie hoch) ein Hoch oder Tief innerhalb eines Zeitfensters aufgetreten ist. Das ermöglicht das Erkennen von Mustern wie dem zeitlichen Abstand zwischen Hoch und Tief.
Die Funktion setzt die PHP-Erweiterung trader voraus, die separat installiert werden muss (z. B. via PECL: pecl install trader).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Ein numerisch indiziertes Array mit reellen Zahlenwerten (z. B. Schlusskurse einer Zeitreihe), über das die Berechnung erfolgt. | |
| $timePeriod | int | 30 | Die Anzahl der Perioden (Fenstergröße), über die Minimum- und Maximum-Indizes gesucht werden. Muss mindestens 2 betragen. Standardwert ist 30. |
Rückgabewert
min und max, die jeweils ein Array der Indizes des niedrigsten bzw. höchsten Werts im jeweiligen Zeitfenster enthalten. Gibt false zurück, wenn ein Fehler auftritt (z. B. ungültige Parameter oder zu wenige Datenpunkte).Beispiele
Indizes von Minimum und Maximum über 5 Perioden
<?php
// Beispiel-Zeitreihendaten (z. B. Schlusskurse)
$kurse = [10.0, 12.5, 9.0, 14.0, 11.0, 8.5, 13.0, 15.0, 7.0, 12.0];
$ergebnis = trader_minmaxindex($kurse, 5);
if ($ergebnis !== false) {
echo "Min-Indizes: ";
print_r($ergebnis['min']);
echo "Max-Indizes: ";
print_r($ergebnis['max']);
} else {
echo "Fehler bei der Berechnung.";
}
Zeitlichen Abstand zwischen Hoch und Tief ermitteln
<?php
$kurse = [10.0, 12.5, 9.0, 14.0, 11.0, 8.5, 13.0, 15.0, 7.0, 12.0];
$ergebnis = trader_minmaxindex($kurse, 5);
if ($ergebnis !== false) {
foreach ($ergebnis['min'] as $position => $minIdx) {
$maxIdx = $ergebnis['max'][$position];
$abstand = abs($maxIdx - $minIdx);
echo "Position $position: Min bei Index $minIdx, Max bei Index $maxIdx, Abstand: $abstand Perioden\n";
}
}
// Wichtig · Fallstricke
Lookback-Offset: Die ersten timePeriod - 1 Einträge des Eingabe-Arrays werden nicht im Ergebnis berücksichtigt. Das Ergebnis-Array beginnt daher bei einem höheren Index als dem Array-Anfang.
Voraussetzung: Die PECL-Erweiterung trader muss installiert und in der php.ini aktiviert sein (extension=trader). Ohne diese Erweiterung ist die Funktion nicht verfügbar.
Eingabe-Array: Das Array sollte ausschließlich numerische Werte enthalten. Nicht-numerische Werte können zu unerwarteten Ergebnissen oder zu false als Rückgabewert führen.
Der timePeriod-Parameter muss kleiner oder gleich der Anzahl der Elemente im Eingabe-Array sein, andernfalls gibt die Funktion false zurück.