Start · Sprachen · PHP · Referenz · trader_rsi

trader_rsi

Funktion

Berechnet den Relative Strength Index (RSI) für eine Zeitreihe von Kursdaten.

Kategorie: math

Signatur

trader_rsi(array $real, int $timePeriod = 14): array|false

Beschreibung

Die Funktion trader_rsi() gehört zur PHP-TRADER-Erweiterung, die technische Analysefunktionen aus der TA-Lib-Bibliothek bereitstellt. Der Relative Strength Index (RSI) ist ein Momentum-Oszillator, der die Stärke und Geschwindigkeit von Preisbewegungen misst und Werte zwischen 0 und 100 liefert.

Typischerweise wird ein RSI-Wert über 70 als überkauft und ein Wert unter 30 als überverkauft betrachtet. Diese Signale werden häufig als Hinweis auf eine bevorstehende Trendumkehr interpretiert. Der RSI wird besonders in der technischen Analyse von Aktien-, Devisen- und Kryptomärkten eingesetzt.

Die Funktion gibt ein numerisch indiziertes Array zurück. Wichtig: Aufgrund des Berechnungsverfahrens enthält das Ergebnis-Array weniger Einträge als die Eingabe-Zeitreihe. Die ersten timePeriod Elemente werden für die Initialisierung benötigt und erscheinen daher nicht im Rückgabe-Array.

Diese Funktion setzt die Installation der PHP-TRADER-Erweiterung (pecl install trader) voraus.

Parameter

Name Typ Default Beschreibung
$real Pflicht array Numerisch indiziertes Array mit Kursdaten (z. B. Schlusskurse) als Fließkommazahlen, chronologisch geordnet (älteste Werte zuerst).
$timePeriod int 14 Anzahl der Perioden, die für die RSI-Berechnung verwendet werden. Typisch sind 14 Perioden. Muss zwischen 2 und 100000 liegen.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein numerisch indiziertes Array mit den berechneten RSI-Werten (zwischen 0 und 100) zurück. Das Array ist kürzer als die Eingabe, da die ersten timePeriod Werte für die Initialisierung verbraucht werden. Im Fehlerfall (z. B. ungültige Parameter oder zu wenig Eingabewerte) wird false zurückgegeben.

Beispiele

Einfache RSI-Berechnung mit Schlusskursen

<?php
// Beispiel-Schlusskurse (z. B. einer Aktie über 20 Tage)
$schlusskurse = [
    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, 46.92, 46.75,
    46.48, 45.34, 44.80, 45.42, 45.84
];

$rsi = trader_rsi($schlusskurse, 14);

if ($rsi === false) {
    echo "Fehler bei der RSI-Berechnung.\n";
} else {
    foreach ($rsi as $index => $wert) {
        printf("RSI[%d] = %.2f\n", $index, $wert);
    }
}
RSI[14] = 52.32 RSI[15] = 46.07 RSI[16] = 37.77 RSI[17] = 33.91 RSI[18] = 38.96 RSI[19] = 43.99

RSI-Signal: Überkauft / Überverkauft erkennen

<?php
$kurse = [
    100, 102, 104, 103, 108, 110, 115, 120, 118, 122,
    125, 130, 128, 132, 135, 134, 133, 136, 138, 140
];

$rsi = trader_rsi($kurse, 14);

if ($rsi !== false) {
    $letzterRsi = end($rsi);
    echo "Letzter RSI-Wert: " . round($letzterRsi, 2) . "\n";

    if ($letzterRsi >= 70) {
        echo "Signal: Überkauft – mögliche Abwärtsbewegung\n";
    } elseif ($letzterRsi <= 30) {
        echo "Signal: Überverkauft – mögliche Aufwärtsbewegung\n";
    } else {
        echo "Signal: Neutral\n";
    }
}
Letzter RSI-Wert: 84.51 Signal: Überkauft – mögliche Abwärtsbewegung

// Wichtig · Fallstricke

Erweiterung erforderlich: trader_rsi() steht nur zur Verfügung, wenn die PECL-Erweiterung trader installiert und in der php.ini aktiviert ist (extension=trader). Installation via pecl install trader.

Array-Indizes: Das zurückgegebene Array beginnt nicht bei Index 0, sondern bei Index timePeriod (standardmäßig 14). Dies ist ein häufiger Fallstrick, wenn man die Ergebniswerte direkt mit den Eingabedaten verknüpfen möchte.

Mindestanzahl: Das Eingabe-Array muss mindestens timePeriod + 1 Elemente enthalten, sonst gibt die Funktion false zurück.

Hinweis zur Genauigkeit: Wie in der TA-Lib üblich, wird intern mit dem Wilder'schen Glättungsverfahren gerechnet, was zu geringfügig anderen Werten führen kann als bei manchen anderen RSI-Implementierungen.