Signatur
Beschreibung
Der Stochastic RSI (StochRSI) ist ein technischer Indikator aus der Technischen Analyse, der vom Quant-Analysten Tushar Chande entwickelt wurde. Er kombiniert zwei Indikatoren: den Relative Strength Index (RSI) und den Stochastischen Oszillator. Dabei wird der RSI berechnet und anschließend der stochastische Algorithmus auf diesen RSI-Wert angewendet – statt direkt auf Preisdaten. Das Ergebnis ist ein Indikator, der sensibler auf Überverkauft- und Überkauft-Signale reagiert als der klassische RSI allein.
Die Funktion gibt zwei Arrays zurück: fastK (die rohe stochastische Linie) und fastD (die geglättete Signallinie, berechnet als gleitender Durchschnitt von fastK). Beide Werte liegen im Bereich von 0 bis 100. Werte unter 20 deuten typischerweise auf eine überverkaufte Situation hin, Werte über 80 auf eine überkaufte.
Die Funktion gehört zur PECL-Erweiterung Trader, die auf der TA-Lib-Bibliothek basiert. Sie eignet sich besonders für die Auswertung von Zeitreihendaten aus Börsenkursen, Kryptowährungen oder anderen handelbaren Instrumenten. Zur Nutzung muss die Trader-Extension installiert und aktiviert sein (pecl install trader).
Da für die Berechnung mindestens timePeriod + fastK_Period - 1 Datenpunkte benötigt werden, sind die ersten Elemente im Ergebnis-Array nicht belegt (Lookback-Effekt). Der Rückgabeindex beginnt daher versetzt gegenüber dem Eingabe-Array.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Eindimensionales Array mit numerischen Kursdaten (z. B. Schlusskurse) in chronologischer Reihenfolge. | |
| $timePeriod | int | 14 | Anzahl der Perioden für die RSI-Berechnung. Typischer Standardwert ist 14. Gültige Werte: 2–100000. |
| $fastK_Period | int | 5 | Anzahl der Perioden für die FastK-Stochastics-Berechnung auf dem RSI. Gültige Werte: 1–100000. |
| $fastD_Period | int | 3 | Anzahl der Perioden für die Glättung von FastK zur Berechnung der FastD-Signallinie. Gültige Werte: 1–100000. |
| $fastD_MAType | int | TRADER_MA_TYPE_SMA | Glättungstyp (Moving-Average-Typ) für FastD. Mögliche Werte sind Konstanten wie TRADER_MA_TYPE_SMA, TRADER_MA_TYPE_EMA usw. |
Rückgabewert
fastK (Array der rohen stochastischen RSI-Werte) und fastD (Array der geglätteten Signalwerte). Die Indizes entsprechen den Positionen im Eingabe-Array (unter Berücksichtigung des Lookback-Offsets). Bei einem Fehler wird false zurückgegeben.Beispiele
Grundlegende Berechnung des StochRSI für Börsenkurse
<?php
// Beispiel-Schlusskurse (z. B. Tagesschlusskurse einer Aktie)
$closePrices = [
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.01, 46.55, 46.47,
45.78, 46.12, 46.88, 46.91, 47.30, 47.50, 47.10, 46.80,
46.55, 46.30, 46.10, 45.90, 45.70, 45.50
];
$result = trader_stochrsi($closePrices, 14, 5, 3, TRADER_MA_TYPE_SMA);
if ($result === false) {
echo "Fehler bei der Berechnung des StochRSI.\n";
} else {
echo "FastK-Werte:\n";
foreach ($result['fastK'] as $index => $value) {
printf(" Index %d: %.4f\n", $index, $value);
}
echo "\nFastD-Werte:\n";
foreach ($result['fastD'] as $index => $value) {
printf(" Index %d: %.4f\n", $index, $value);
}
}
StochRSI zur Erkennung von Überverkauft-/Überkauft-Signalen
<?php
// Simulierte Zeitreihendaten (z. B. Krypto-Kurse)
$prices = array_map(
fn($i) => 100 + sin($i / 5) * 20 + rand(-5, 5),
range(0, 49)
);
$stochRsi = trader_stochrsi($prices, 14, 5, 3, TRADER_MA_TYPE_SMA);
if ($stochRsi !== false) {
$fastK = $stochRsi['fastK'];
$fastD = $stochRsi['fastD'];
foreach ($fastD as $index => $dValue) {
$kValue = $fastK[$index] ?? null;
if ($kValue === null) continue;
$signal = '';
if ($kValue < 20 && $dValue < 20) {
$signal = '>>> ÜBERVERKAUFT – mögliches Kaufsignal';
} elseif ($kValue > 80 && $dValue > 80) {
$signal = '>>> ÜBERKAUFT – mögliches Verkaufssignal';
}
if ($signal !== '') {
printf("Index %d: K=%.2f, D=%.2f %s\n", $index, $kValue, $dValue, $signal);
}
}
} else {
echo "Berechnung fehlgeschlagen.\n";
}
// Wichtig · Fallstricke
Lookback-Effekt: Die ersten Ergebnisindizes fehlen im Rückgabe-Array, da für die Berechnung eine Mindestanzahl an Datenpunkten benötigt wird. Die Anzahl fehlender Werte ergibt sich aus timePeriod + fastK_Period - 2 + (fastD_Period - 1). Das Eingabe-Array und das Ausgabe-Array haben daher unterschiedliche Startindizes.
Installation: Die Trader-Extension ist nicht standardmäßig in PHP enthalten. Sie muss über PECL installiert werden (pecl install trader) und in der php.ini aktiviert sein (extension=trader).
Parametervalidierung: Werden ungültige Parameter übergeben (z. B. timePeriod < 2), gibt die Funktion false zurück. Eine Prüfung des Rückgabewertes ist daher empfehlenswert.
Genauigkeit: Da der StochRSI sehr sensitiv ist, empfiehlt es sich, die Signallinien-Glättung (fastD) für Handelsentscheidungen zu bevorzugen und den Indikator stets in Kombination mit anderen Signalen zu verwenden.