Start · Sprachen · PHP · Referenz · trader_adxr

trader_adxr

Funktion

Berechnet das <code>ADXR</code> (Average Directional Movement Index Rating) für eine Zeitreihe aus Hoch-, Tief- und Schlusskursdaten.

Kategorie: math

Signatur

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

Beschreibung

Die Funktion trader_adxr() gehört zur PECL-Erweiterung Trader, die technische Analysefunktionen (TA-Lib) in PHP verfügbar macht. Das Average Directional Movement Index Rating (ADXR) ist ein geglätteter Durchschnitt des ADX-Indikators und gibt an, wie stark ein Trend in einem Finanzinstrument ist – unabhängig von seiner Richtung.

Der ADXR wird berechnet, indem der aktuelle ADX-Wert mit dem ADX-Wert von vor timePeriod Perioden addiert und das Ergebnis durch 2 geteilt wird. Ein hoher ADXR-Wert (üblicherweise über 25) deutet auf einen starken Trend hin, ein niedriger Wert auf einen schwachen oder seitwärts gerichteten Markt.

Typische Einsatzgebiete sind algorithmisches Trading, die Auswertung von Börsenkursdaten sowie die Filterung von Handelssignalen: Viele Strategien öffnen Positionen nur dann, wenn der ADXR einen Schwellenwert überschreitet, um sicherzustellen, dass ein echter Trend vorliegt.

Die Rückgabe ist ein indiziertes Array mit den berechneten ADXR-Werten. Die ersten Elemente des Eingabe-Arrays werden aufgrund des Berechnungsfensters nicht zurückgegeben (Lookback-Periode).

Parameter

Name Typ Default Beschreibung
$high Pflicht array Array mit den Höchstkursen (Highs) der jeweiligen Perioden als Fließkommazahlen.
$low Pflicht array Array mit den Tiefstkursen (Lows) der jeweiligen Perioden als Fließkommazahlen.
$close Pflicht array Array mit den Schlusskursen (Closes) der jeweiligen Perioden als Fließkommazahlen.
$timePeriod int 14 Anzahl der Perioden für die ADXR-Berechnung. Muss zwischen 2 und 100000 liegen. Standardmäßig 14.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit den berechneten ADXR-Werten als Fließkommazahlen zurück. Die Schlüssel sind ganzzahlige Indizes, die den jeweiligen Positionen im Eingabe-Array entsprechen. Bei ungültigen Parametern oder einem Fehler wird false zurückgegeben. Die Anzahl der Rückgabewerte ist kleiner als die Eingabelänge, da eine Lookback-Periode benötigt wird.

Beispiele

ADXR für OHLC-Kursdaten berechnen

<?php
// Beispiel-Kursdaten (High, Low, Close)
$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, 44.83, 45.10, 45.15, 45.43, 45.44, 45.55, 45.55, 45.78, 46.03, 46.41, 46.22, 45.64, 46.21, 46.25, 45.71];
$low   = [43.61, 43.35, 43.39, 43.20, 43.55, 44.32, 44.53, 44.26, 43.20, 43.55, 44.32, 44.53, 44.26, 43.20, 43.55, 44.32, 44.53, 44.26, 44.73, 44.75, 44.89, 44.97, 45.08, 45.15, 45.39, 45.15, 44.90, 45.22, 45.27, 44.93];
$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, 45.10, 45.15, 45.43, 45.44, 45.55, 45.55, 45.78, 46.03, 46.41, 46.22, 45.64, 46.21, 46.25, 45.71, 46.45];

$result = trader_adxr($high, $low, $close, 14);

if ($result === false) {
    echo 'Berechnung fehlgeschlagen.';
} else {
    foreach ($result as $index => $value) {
        printf("Index %d: ADXR = %.4f\n", $index, $value);
    }
}
Index 27: ADXR = 19.4763 Index 28: ADXR = 18.9871 Index 29: ADXR = 18.5214

Trendstärke-Filter: Nur bei hohem ADXR handeln

<?php
// Simulierte Kursdaten über 40 Perioden
$high  = array_map(fn($i) => 100 + sin($i * 0.3) * 5 + $i * 0.1, range(0, 39));
$low   = array_map(fn($i) => 97  + sin($i * 0.3) * 5 + $i * 0.1, range(0, 39));
$close = array_map(fn($i) => 98  + sin($i * 0.3) * 5 + $i * 0.1, range(0, 39));

$adxr = trader_adxr($high, $low, $close, 14);

if ($adxr !== false) {
    $threshold = 20.0;
    foreach ($adxr as $index => $value) {
        $trendStatus = $value >= $threshold ? 'Starker Trend – Handle!' : 'Schwacher Trend – Abwarten';
        printf("Periode %d: ADXR = %.2f → %s\n", $index, $value, $trendStatus);
    }
}

// Wichtig · Fallstricke

Voraussetzung: Die PECL-Erweiterung trader muss installiert und in der php.ini aktiviert sein (extension=trader). Sie basiert auf der Bibliothek TA-Lib.

Lookback-Periode: Aufgrund der Berechnungslogik werden die ersten (2 * timePeriod) - 1 Eingabe-Elemente nicht in der Ausgabe berücksichtigt. Die Schlüssel des Ergebnis-Arrays entsprechen den Indizes im Eingabe-Array, beginnen also nicht zwingend bei 0.

Eingabelänge: Alle drei Arrays ($high, $low, $close) müssen gleich lang sein und mindestens so viele Einträge enthalten, wie die Lookback-Periode erfordert. Bei zu kurzen Arrays gibt die Funktion false zurück.

ADXR vs. ADX: Im Gegensatz zum rohen ADX (berechnet mit trader_adx()) ist der ADXR geglättet und reagiert daher träger auf Trendänderungen, liefert dafür aber stabilere Signale.