Start · Sprachen · PHP · Referenz · trader_stochf

trader_stochf

Funktion

Berechnet den schnellen stochastischen Oszillator (Fast Stochastic Oscillator) auf Basis von Hoch-, Tief- und Schlusskursdaten.

Kategorie: math

Signatur

trader_stochf(array $high, array $low, array $close, int $fastk_period = 5, int $fastd_period = 3, int $fastd_matype = TRADER_MA_TYPE_SMA): array|false

Beschreibung

Die Funktion trader_stochf() ist Teil der PECL-Erweiterung Trader und berechnet den schnellen stochastischen Oszillator – ein in der technischen Analyse weit verbreitetes Momentum-Indikator-Paar, das aus den Linien FastK und FastD besteht. FastK zeigt, wie sich der aktuelle Schlusskurs relativ zur Hoch-Tief-Spanne eines bestimmten Zeitraums verhält, FastD ist ein gleitender Durchschnitt über FastK.

Im Gegensatz zum langsamen Stochastik-Oszillator (trader_stoch()) wird beim schnellen Stochastik keine weitere Glättung auf das Rohsignal angewendet, was zu empfindlicheren und schneller reagierenden Signalen führt. Das macht trader_stochf() besonders geeignet für kurzfristige Handelssignale, erhöht jedoch auch die Anfälligkeit für Fehlsignale in volatilen Märkten.

Typische Anwendungsfälle sind die Erkennung überkaufter (> 80) oder überverkaufter (< 20) Marktphasen sowie Kreuzungspunkte zwischen FastK und FastD als Ein- oder Ausstiegssignale. Der Rückgabewert ist ein Array mit zwei Arrays – eines für FastK und eines für FastD.

Voraussetzung ist die Installation der PECL-Erweiterung trader. Die Eingabe-Arrays müssen numerisch indiziert sein und identische Längen aufweisen.

Parameter

Name Typ Default Beschreibung
$high Pflicht array Numerisch indiziertes Array der Höchstkurse (High-Preise) je Periode.
$low Pflicht array Numerisch indiziertes Array der Tiefstkurse (Low-Preise) je Periode.
$close Pflicht array Numerisch indiziertes Array der Schlusskurse (Close-Preise) je Periode.
$fastk_period int 5 Anzahl der Perioden für die Berechnung der rohen FastK-Linie. Muss zwischen 1 und 100000 liegen.
$fastd_period int 3 Anzahl der Perioden für den gleitenden Durchschnitt, der FastD aus FastK berechnet. Muss zwischen 1 und 100000 liegen.
$fastd_matype int TRADER_MA_TYPE_SMA Art des gleitenden Durchschnitts für FastD. Einer der TRADER_MA_TYPE_*-Konstanten, z. B. TRADER_MA_TYPE_SMA (0), TRADER_MA_TYPE_EMA (1) usw.

Rückgabewert

Typ
array|false
Beschreibung
Bei Erfolg ein Array mit zwei Schlüsseln: 0 enthält das Array der FastK-Werte, 1 das Array der FastD-Werte. Die Ausgabe-Arrays sind kleiner als die Eingabe-Arrays (Lookback-Offset). Bei einem Fehler wird false zurückgegeben.

Beispiele

Einfache Berechnung des schnellen Stochastik-Oszillators

<?php
// Beispielhafte OHLC-Daten (Ausschnitt)
$high  = [102.5, 104.0, 103.8, 105.2, 106.1, 105.8, 107.3, 108.0, 107.5, 109.2];
$low   = [ 99.1, 101.2, 101.0, 102.8, 103.5, 103.0, 104.9, 105.7, 105.2, 106.8];
$close = [101.5, 103.0, 102.5, 104.1, 105.0, 104.8, 106.5, 107.2, 106.8, 108.5];

$result = trader_stochf($high, $low, $close, 5, 3, TRADER_MA_TYPE_SMA);

if ($result === false) {
    echo 'Fehler bei der Berechnung.' . PHP_EOL;
} else {
    [$fastK, $fastD] = $result;
    echo 'FastK-Werte:' . PHP_EOL;
    foreach ($fastK as $index => $value) {
        printf('  [%d] %.4f' . PHP_EOL, $index, $value);
    }
    echo 'FastD-Werte:' . PHP_EOL;
    foreach ($fastD as $index => $value) {
        printf('  [%d] %.4f' . PHP_EOL, $index, $value);
    }
}
FastK-Werte: [4] 85.7143 [5] 80.0000 [6] 90.2439 [7] 89.4737 [8] 82.6087 [9] 92.0000 FastD-Werte: [6] 85.3194 [7] 86.5725 [8] 87.4421 [9] 88.0275

Überkauft-/Überverkauft-Signale auswerten

<?php
// Simulierte Kursdaten für ein Wertpapier
$high  = [50, 52, 55, 57, 60, 58, 55, 52, 49, 47, 45, 46, 48, 51, 53];
$low   = [47, 49, 52, 54, 57, 55, 52, 49, 46, 44, 42, 43, 45, 48, 50];
$close = [49, 51, 54, 56, 59, 56, 53, 50, 47, 45, 43, 45, 47, 50, 52];

$result = trader_stochf($high, $low, $close, 5, 3, TRADER_MA_TYPE_SMA);

if ($result !== false) {
    [$fastK, $fastD] = $result;
    foreach ($fastK as $i => $k) {
        $d = $fastD[$i] ?? null;
        $signal = '';
        if ($k > 80) {
            $signal = ' => ÜBERKAUFT';
        } elseif ($k < 20) {
            $signal = ' => ÜBERVERKAUFT';
        }
        $dStr = $d !== null ? sprintf('%.2f', $d) : 'n/a';
        printf('Index %2d | FastK: %6.2f | FastD: %6s%s' . PHP_EOL, $i, $k, $dStr, $signal);
    }
}

// Wichtig · Fallstricke

Lookback-Offset: Die Ausgabe-Arrays beginnen erst nach einem berechnungsabhängigen Mindestoffset (Lookback), der sich aus fastk_period - 1 + fastd_period - 1 ergibt. Die ersten Elemente der Eingabe-Arrays liefern daher keine Ausgabe-Werte.

Fehlsignale: Der schnelle Stochastik-Oszillator reagiert sehr sensibel auf Kursschwankungen. In stark volatilen Märkten können häufig Fehlsignale auftreten. Für robustere Signale empfiehlt sich der langsame Stochastik-Oszillator (trader_stoch()).

Verfügbarkeit: Die Funktion setzt die PECL-Erweiterung trader voraus. Sie ist nicht im PHP-Kern enthalten und muss separat installiert werden (pecl install trader).