Signatur
Beschreibung
trader_maxindex ist Teil der TRADER-Erweiterung (PHP-Bindings für die TA-Lib) und ermittelt für jeden Punkt einer Zeitreihe den Index (Position im Eingabe-Array) des höchsten Werts im jeweils vorangegangenen Zeitfenster der Länge timePeriod. Im Unterschied zu trader_max, die den eigentlichen Höchstwert zurückgibt, liefert diese Funktion den Positions-Index dieses Höchstwerts.
Typischer Einsatz ist die technische Analyse von Finanzdaten, z. B. um zu ermitteln, an welchem Datenpunkt (Handelstag) ein Hoch innerhalb einer bestimmten Periode zuletzt erreicht wurde. Das Ergebnis kann genutzt werden, um relative Stärke, Ausbruchsmuster oder Pivot-Punkte zu identifizieren.
Die Rückgabe ist ein numerisches Array, dessen Schlüssel den Positionen im Eingabe-Array entsprechen. Die ersten timePeriod - 1 Elemente fehlen im Ergebnis (sog. Lookback-Bereich), da noch kein vollständiges Zeitfenster vorhanden ist.
- Erfordert die installierte PHP-TRADER-Erweiterung (
pecl install trader). - Eingabewerte müssen als numerisches Array vorliegen; nicht-numerische Werte führen zu undefinierten Ergebnissen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Numerisches Array mit den Eingabewerten (z. B. Schlusskurse). Die Indizes sollten bei 0 beginnen und fortlaufend sein. | |
| $timePeriod | int | 30 | Länge des gleitenden Zeitfensters, innerhalb dessen der Index des höchsten Werts gesucht wird. Muss zwischen 2 und 100000 liegen. |
Rückgabewert
timePeriod - 1 Einträge sind nicht enthalten (Lookback). Bei einem Fehler (z. B. ungültige Parameter oder leeres Array) wird false zurückgegeben.Beispiele
Index des höchsten Schlusskurses in einem 5-Tage-Fenster
<?php
// Beispiel-Schlusskurse über 10 Handelstage
$closes = [100.0, 102.5, 98.0, 105.0, 103.0, 99.5, 107.0, 106.0, 104.5, 108.0];
// Index des Maximums im jeweils letzten 5-Tage-Fenster berechnen
$result = trader_maxindex($closes, 5);
if ($result === false) {
echo "Fehler bei der Berechnung.\n";
} else {
foreach ($result as $position => $maxIndex) {
echo "Position $position: Höchster Wert zuletzt bei Index $maxIndex "
. "(Wert: {$closes[$maxIndex]})\n";
}
}
Vergleich von trader_maxindex und trader_max
<?php
$preise = [50.0, 55.0, 53.0, 60.0, 58.0, 62.0, 59.0];
$periode = 3;
$indizes = trader_maxindex($preise, $periode);
$maxWerte = trader_max($preise, $periode);
echo "Pos | Max-Index | Max-Wert\n";
foreach ($indizes as $pos => $idx) {
printf(" %2d | %2d | %.2f\n", $pos, $idx, $maxWerte[$pos]);
}
// Wichtig · Fallstricke
Lookback-Bereich: Die ersten timePeriod - 1 Indizes sind im Ergebnis-Array nicht vorhanden. Beim Zugriff auf Ergebnis-Positionen stets prüfen, ob der Schlüssel existiert (isset()), um Notice-Meldungen zu vermeiden.
TRADER-Erweiterung: Die Funktion steht nur zur Verfügung, wenn die PECL-Erweiterung trader installiert und in der php.ini geladen ist (extension=trader). Auf Produktivsystemen sollte die Verfügbarkeit per extension_loaded('trader') geprüft werden.
Ganzzahlige Indizes: Die zurückgegebenen Indexwerte beziehen sich auf die Schlüssel des Eingabe-Arrays. Bei nicht-sequenziellen Arrays kann das zu unerwartetem Verhalten führen — empfohlen wird, das Eingabe-Array vorher mit array_values() neu zu indizieren.