Start · Sprachen · PHP · Referenz · trader_min

trader_min

Funktion

Ermittelt den niedrigsten Wert (Minimum) über einen gleitenden Zeitraum aus einem Array von Kurs- oder Zeitreihendaten.

Kategorie: math

Signatur

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

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

Typ
array|false
Beschreibung
Gibt ein numerisch indiziertes Array mit den berechneten Minimalwerten zurück. Die ersten 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;
    }
}
Rollende Minima (5 Perioden): Index 4: 44.80 Index 5: 44.80 Index 6: 44.80 Index 7: 43.60 Index 8: 43.60 Index 9: 43.60

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]
        );
    }
}
Donchian-Kanal (20 Perioden): Index 19 | Untere Grenze: 97.00 | Obere Grenze: 115.00 Index 20 | Untere Grenze: 97.00 | Obere Grenze: 115.00 Index 21 | Untere Grenze: 97.00 | Obere Grenze: 115.00 Index 22 | Untere Grenze: 97.00 | Obere Grenze: 116.00 Index 23 | Untere Grenze: 97.00 | Obere Grenze: 116.00 Index 24 | Untere Grenze: 98.00 | Obere Grenze: 116.00

// 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.