Start · Sprachen · PHP · Referenz · trader_rocr

trader_rocr

Funktion

Berechnet das Änderungsratenverhältnis (Rate of Change Ratio): <code>(Preis / vorherigerPreis)</code> über einen definierten Zeitraum.

Kategorie: math

Signatur

trader_rocr(array $real, int $timePeriod = 10): array|false

Beschreibung

trader_rocr ist Teil der TRADER-Erweiterung für PHP, die technische Analysefunktionen aus der TA-Lib-Bibliothek bereitstellt. Die Funktion berechnet das Rate of Change Ratio (ROCR), also das Verhältnis des aktuellen Preises zum Preis vor n Perioden: Preis[i] / Preis[i - timePeriod].

Im Unterschied zu trader_roc, das die prozentuale Veränderung liefert ((Preis / vorherigerPreis - 1) * 100), gibt trader_rocr den reinen Quotienten zurück. Ein Wert von 1.0 bedeutet keine Veränderung, Werte über 1.0 zeigen eine Preissteigerung, Werte unter 1.0 einen Preisrückgang an.

Diese Kennzahl eignet sich besonders für Momentum-basierte Handelssysteme, bei denen man Preisbewegungen relativ zum Ausgangspreis bewerten möchte, ohne sie explizit in Prozent umzurechnen. Sie wird häufig in Kombination mit anderen Indikatoren wie gleitenden Durchschnitten oder RSI verwendet.

Die Funktion gibt ein Array zurück, das kürzer als das Eingabe-Array ist, da für die ersten timePeriod Elemente kein Vorgänger-Preis verfügbar ist.

Parameter

Name Typ Default Beschreibung
$real Pflicht array Eindimensionales Array mit numerischen Kursdaten (z. B. Schlusskurse) in chronologischer Reihenfolge.
$timePeriod int 10 Anzahl der Perioden, über die das Verhältnis berechnet wird. Muss mindestens 1 betragen. Standardwert ist 10.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit den berechneten ROCR-Werten zurück. Die ersten timePeriod Einträge fehlen, da kein Bezugswert existiert. Bei einem Fehler (z. B. ungültige Parameter oder zu wenige Datenpunkte) wird false zurückgegeben.

Beispiele

Einfache ROCR-Berechnung mit Schlusskursen

<?php
// Voraussetzung: PHP TRADER-Erweiterung ist installiert (pecl install trader)

$schlusskurse = [100.0, 102.5, 101.0, 105.0, 108.0, 107.5, 110.0, 112.0, 115.0, 113.0, 116.0, 118.0];

$rocr = trader_rocr($schlusskurse, 5);

if ($rocr === false) {
    echo 'Fehler bei der Berechnung.' . PHP_EOL;
} else {
    foreach ($rocr as $index => $wert) {
        printf("Index %d: ROCR = %.4f\n", $index, $wert);
    }
}
Index 5: ROCR = 1.0500 Index 6: ROCR = 1.0732 Index 7: ROCR = 1.0683 Index 8: ROCR = 1.0952 Index 9: ROCR = 1.0463 Index 10: ROCR = 1.0741 Index 11: ROCR = 1.0536

ROCR zur Momentum-Erkennung verwenden

<?php
// Kursdaten der letzten 15 Tage
$kurse = [200, 202, 198, 205, 210, 208, 215, 220, 218, 225, 230, 228, 235, 240, 238];

// 10-Perioden ROCR berechnen
$rocr = trader_rocr($kurse, 10);

if ($rocr !== false) {
    foreach ($rocr as $i => $wert) {
        $signal = $wert > 1.0 ? 'Aufwärtstrend' : ($wert < 1.0 ? 'Abwärtstrend' : 'Neutral');
        printf("Index %2d: ROCR = %.4f => %s\n", $i, $wert, $signal);
    }
}
Index 10: ROCR = 1.1500 => Aufwärtstrend Index 11: ROCR = 1.1287 => Aufwärtstrend Index 12: ROCR = 1.1905 => Aufwärtstrend Index 13: ROCR = 1.0909 => Aufwärtstrend Index 14: ROCR = 1.1381 => Aufwärtstrend

// Wichtig · Fallstricke

Erweiterung erforderlich: trader_rocr ist nur verfügbar, wenn die TRADER PECL-Erweiterung installiert ist (pecl install trader). Sie ist kein Bestandteil der PHP-Standardbibliothek.

Array-Indizes: Das zurückgegebene Array verwendet die ursprünglichen numerischen Indizes des Eingabe-Arrays. Die ersten timePeriod Einträge fehlen im Ergebnis-Array. Bei der Weiterverarbeitung sollte dies berücksichtigt werden, um Zugriffsfehler auf nicht existente Indizes zu vermeiden.

Division durch null: Falls ein Kurswert im Eingabe-Array 0 ist, kann es zu einer Division durch null kommen. Die TA-Lib gibt in diesem Fall üblicherweise false zurück oder liefert INF-Werte. Eingabedaten sollten daher auf Nullwerte geprüft werden.