Signatur
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
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);
}
}
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)';
}
}
// 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.