Signatur
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
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);
}
}
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);
}
}
// 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.