Start · Sprachen · PHP · Referenz · trader_max

trader_max

Funktion

Berechnet den höchsten Wert (Maximum) innerhalb eines gleitenden Zeitfensters über eine Datenreihe – Teil der TRADER-Erweiterung (TA-Lib).

Kategorie: math

Signatur

trader_max(array $real, int $timePeriod = 30): array|false

Beschreibung

trader_max ist eine Funktion der PHP-TRADER-Erweiterung, die auf der Open-Source-Bibliothek TA-Lib (Technical Analysis Library) basiert. Sie ermittelt für jeden Datenpunkt den höchsten Wert im vorangegangenen Zeitraum der Länge timePeriod – ähnlich einem gleitenden Maximum.

Die Funktion wird vor allem in der technischen Finanzanalyse eingesetzt, etwa um über einen Kursverlauf hinweg das rollierende Hoch (z. B. das 14-Tage-Hoch) zu bestimmen. Typische Anwendungsgebiete sind Handelssignale, Donchian-Channels oder Stop-Loss-Berechnungen.

Da die ersten timePeriod - 1 Werte nicht berechnet werden können (das Fenster ist noch nicht vollständig gefüllt), enthält der zurückgegebene Array weniger Elemente als die Eingabe. Die Indizes des Rückgabe-Arrays beginnen dabei bei timePeriod - 1 (nullbasiert).

Die TRADER-Erweiterung muss separat installiert sein (pecl install trader) und in der php.ini aktiviert werden (extension=trader).

Parameter

Name Typ Default Beschreibung
$real Pflicht array Eingabe-Array mit numerischen Werten (z. B. Schlusskurse), über die das gleitende Maximum berechnet wird. Die Array-Schlüssel müssen fortlaufend ganzzahlig sein.
$timePeriod int 30 Anzahl der Perioden (Fenstergröße), über die das Maximum gesucht wird. Gültige Werte liegen typischerweise zwischen 2 und 100000. Standard ist 30.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit den berechneten Maximalwerten zurück. Der Array ist kürzer als die Eingabe: die ersten timePeriod - 1 Positionen fehlen. Bei einem Fehler (z. B. ungültige Parameter oder leere Eingabe) wird false zurückgegeben.

Beispiele

14-Perioden-Maximum über Aktienkurse berechnen

<?php
// Simulierte Schlusskurse (z. B. tägliche Aktienkurse)
$closes = [100, 102, 98, 105, 110, 108, 107, 112, 115, 113, 111, 116, 118, 117, 120, 119, 121];

// Berechne das gleitende 14-Perioden-Maximum
$result = trader_max($closes, 14);

if ($result === false) {
    echo "Fehler bei der Berechnung.";
} else {
    foreach ($result as $index => $maxValue) {
        echo "Periode bis Index {$index}: Max = {$maxValue}\n";
    }
}
Periode bis Index 13: Max = 118 Periode bis Index 14: Max = 120 Periode bis Index 15: Max = 120 Periode bis Index 16: Max = 121

Donchian-Channel-Oberkante für ein 5-Perioden-Fenster

<?php
// Einfache Kursdaten
$prices = [10, 13, 12, 15, 14, 11, 16, 18, 17, 19];

// 5-Perioden-Hoch (Donchian Upper Band)
$upperBand = trader_max($prices, 5);

if ($upperBand !== false) {
    echo "Donchian Upper Band (5 Perioden):\n";
    foreach ($upperBand as $idx => $val) {
        echo "  Index {$idx}: {$val}\n";
    }
}
Donchian Upper Band (5 Perioden): Index 4: 15 Index 5: 15 Index 6: 16 Index 7: 18 Index 8: 18 Index 9: 19

// Wichtig · Fallstricke

Fehlende Anfangswerte: Der Rückgabe-Array enthält nur Werte ab Index timePeriod - 1. Beim Zusammenführen mit dem Original-Array muss dieser Offset berücksichtigt werden, da sonst die Zuordnung von Datum zu Wert verschoben wird.

Abhängigkeit: Die Funktion ist nur verfügbar, wenn die TRADER-PECL-Erweiterung installiert und aktiviert ist. Sie ist nicht Teil des PHP-Kerns. Die Verfügbarkeit kann mit extension_loaded('trader') geprüft werden.

Datentypen: Alle Werte im Eingabe-Array sollten numerisch (int oder float) sein. Nicht-numerische Werte können zu unerwarteten Ergebnissen oder false führen.