Start · Sprachen · PHP · Referenz · trader_minus_di

trader_minus_di

Funktion

Berechnet den negativen gerichteten Indikator (Minus DI) aus den OHLC-Daten einer Preisreihe über einen definierten Zeitraum.

Kategorie: math

Signatur

trader_minus_di(array $high, array $low, array $close, int $timePeriod = 14): array|false

Beschreibung

Die Funktion trader_minus_di() gehört zur PECL-Erweiterung Trader und ist eine PHP-Schnittstelle zur TA-Lib (Technical Analysis Library). Sie berechnet den sogenannten Minus Directional Indicator (-DI), der ein zentraler Bestandteil des Directional Movement Systems von J. Welles Wilder ist.

Der Minus DI misst die Stärke einer Abwärtsbewegung. Er wird typischerweise zusammen mit dem Plus DI (trader_plus_di()) und dem Average Directional Index (ADX) verwendet, um sowohl die Richtung als auch die Stärke eines Trends zu bewerten. Wenn der Minus DI über dem Plus DI liegt, deutet dies auf einen vorherrschenden Abwärtstrend hin.

Typische Anwendungsfälle sind das Erkennen von Trendwechseln (Crossovers zwischen +DI und -DI), das Filtern von Handelssignalen sowie die Bestätigung von Trendstärke im Zusammenspiel mit dem ADX. Der Parameter timePeriod bestimmt, über wie viele Perioden der Indikator geglättet wird – der Standardwert ist 14.

  • Der Rückgabe-Array ist kürzer als die Eingabe-Arrays, da für die ersten Berechnungen nicht genügend historische Daten vorhanden sind (Look-Back-Periode).
  • Die Eingabe-Arrays müssen numerisch indiziert und gleich lang sein.

Parameter

Name Typ Default Beschreibung
$high Pflicht array Numerisches Array mit den Höchstkursen (High-Werte) der Preisreihe, chronologisch geordnet.
$low Pflicht array Numerisches Array mit den Tiefstkursen (Low-Werte) der Preisreihe, chronologisch geordnet.
$close Pflicht array Numerisches Array mit den Schlusskursen (Close-Werte) der Preisreihe, chronologisch geordnet.
$timePeriod int 14 Anzahl der Perioden, über die der Minus DI berechnet wird. Gültige Werte: 2–100000. Standardwert ist 14.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein numerisch indiziertes Array mit den berechneten Minus-DI-Werten zurück. Das Array ist kürzer als die Eingabe-Arrays (Look-Back-Offset). Im Fehlerfall (z. B. ungültige Parameter oder fehlende Trader-Erweiterung) wird false zurückgegeben.

Beispiele

Grundlegende Berechnung des Minus DI

<?php
// Beispiel-OHLC-Daten (z. B. Tageskerzen)
$high  = [44.34, 44.09, 44.15, 43.61, 44.33, 44.83, 45.10, 45.15, 43.61, 44.33, 44.83, 45.10, 45.15, 43.61, 44.33];
$low   = [43.51, 43.61, 43.74, 43.17, 43.55, 44.32, 44.54, 44.59, 43.17, 43.55, 44.32, 44.54, 44.59, 43.17, 43.55];
$close = [44.09, 44.15, 43.61, 44.33, 44.83, 45.10, 45.15, 43.61, 44.33, 44.83, 45.10, 45.15, 43.61, 44.33, 44.83];

$timePeriod = 5;
$minusDI = trader_minus_di($high, $low, $close, $timePeriod);

if ($minusDI === false) {
    echo 'Fehler bei der Berechnung des Minus DI.';
} else {
    echo 'Minus DI Werte:' . PHP_EOL;
    foreach ($minusDI as $index => $value) {
        printf('Index %d: %.4f' . PHP_EOL, $index, $value);
    }
}
Minus DI Werte: Index 5: 18.5714 Index 6: 14.8571 ...

Trendanalyse mit Minus DI und Plus DI im Vergleich

<?php
// OHLC-Daten
$high  = [50, 51, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 44, 45, 46, 47, 48, 49, 50, 51];
$low   = [48, 49, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 42, 43, 44, 45, 46, 47, 48, 49];
$close = [49, 50, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 43, 44, 45, 46, 47, 48, 49, 50];

$timePeriod = 5;

$minusDI = trader_minus_di($high, $low, $close, $timePeriod);
$plusDI  = trader_plus_di($high, $low, $close, $timePeriod);

if ($minusDI && $plusDI) {
    $lastIndex = count($minusDI) - 1;
    $lastMinusDI = end($minusDI);
    $lastPlusDI  = end($plusDI);

    echo sprintf('Letzter -DI: %.2f', $lastMinusDI) . PHP_EOL;
    echo sprintf('Letzter +DI: %.2f', $lastPlusDI) . PHP_EOL;

    if ($lastMinusDI > $lastPlusDI) {
        echo 'Signal: Abwärtstrend vorherrschend (-DI > +DI)';
    } else {
        echo 'Signal: Aufwärtstrend vorherrschend (+DI > -DI)';
    }
}
Letzter -DI: 12.34 Letzter +DI: 25.67 Signal: Aufwärtstrend vorherrschend (+DI > -DI)

// Wichtig · Fallstricke

Voraussetzung: Die Funktion ist nur verfügbar, wenn die PECL-Erweiterung trader installiert und geladen ist (extension=trader in der php.ini). Ohne diese Erweiterung führt der Aufruf zu einem fatalen Fehler.

Look-Back-Periode: Der Rückgabe-Array beginnt erst ab dem Index, ab dem genügend Daten für die Berechnung vorhanden sind. Bei einem timePeriod von 14 werden die ersten 14 Elemente der Eingabe nicht im Ergebnis berücksichtigt. Achte bei der Zuordnung der Ergebniswerte zu den ursprünglichen Zeitreihen-Indizes darauf.

Gleich lange Arrays: Die Eingabe-Arrays $high, $low und $close müssen exakt gleich viele Elemente enthalten, andernfalls kann die Berechnung fehlschlagen oder unerwartete Ergebnisse liefern.