Signatur
Beschreibung
trader_rocp ist eine Funktion der TRADER-Erweiterung (PHP-Binding für die TA-Lib) und berechnet die Rate Of Change Percentage (ROCP). Im Gegensatz zur ROC-Funktion gibt ROCP das Ergebnis als Dezimalbruch (nicht als Prozentwert × 100) zurück, also z. B. 0.05 für einen Anstieg von 5 %.
Die Formel lautet: (Preis[i] - Preis[i - timePeriod]) / Preis[i - timePeriod]. Damit misst die Funktion, wie stark sich ein Wert innerhalb des gewählten Zeitfensters relativ verändert hat. Dies ist besonders nützlich, um Trendstärken oder Momentums im Bereich der technischen Finanzanalyse zu vergleichen.
Typisch eingesetzt wird ROCP in der technischen Analyse von Aktien-, Devisen- oder Rohstoffkursen, um schnelle und langsame Preisveränderungen zu visualisieren oder als Eingabe für weitere Indikatoren zu nutzen.
Die zurückgegebene Array-Größe ist kleiner als die Eingabe, da für die ersten timePeriod Werte kein Ergebnis berechnet werden kann. Die Indizes des Ausgabe-Arrays sind entsprechend verschoben.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Eindimensionales Array mit numerischen Werten (z. B. Schlusskurse), über das die prozentuale Änderungsrate berechnet wird. | |
| $timePeriod | int | 10 | Anzahl der Perioden, über die die Änderungsrate berechnet wird. Muss im Bereich 2 bis 100000 liegen. Standardwert ist 10. |
Rückgabewert
timePeriod Elemente fehlen). Bei einem Fehler (z. B. ungültige Parameter) wird false zurückgegeben.Beispiele
Einfache ROCP-Berechnung auf Schlusskursen
<?php
// Beispielhafte Schlusskurse einer Aktie
$closes = [100.0, 102.0, 101.5, 105.0, 108.0, 107.0, 110.0, 115.0, 113.0, 116.0, 120.0];
// ROCP über 5 Perioden berechnen
$rocp = trader_rocp($closes, 5);
if ($rocp === false) {
echo "Fehler bei der Berechnung.\n";
} else {
foreach ($rocp as $index => $value) {
printf("Index %d: ROCP = %.4f (%.2f%%)\n", $index, $value, $value * 100);
}
}
ROCP mit Standardperiode und Vergleich mit Vorgängerwert
<?php
// Erzeugte Testdaten: linear steigende Kurse
$prices = array_map(fn($i) => 50.0 + $i * 2.5, range(0, 19));
$rocp = trader_rocp($prices, 10);
if ($rocp !== false) {
echo "Anzahl Eingabewerte: " . count($prices) . "\n";
echo "Anzahl ROCP-Werte: " . count($rocp) . "\n\n";
foreach ($rocp as $idx => $val) {
printf("Periode %2d → %.4f\n", $idx, $val);
}
} else {
echo "Berechnung fehlgeschlagen.\n";
}
// Wichtig · Fallstricke
Erweiterung erforderlich: trader_rocp setzt die PHP-Erweiterung trader voraus, die auf der C-Bibliothek TA-Lib basiert. Diese ist nicht standardmäßig enthalten und muss über PECL installiert werden (pecl install trader).
Unterschied zu verwandten Funktionen: trader_roc multipliziert das Ergebnis mit 100 und liefert damit direkte Prozentwerte, während trader_rocp den Dezimalbruch zurückgibt. trader_rocr liefert das Verhältnis Preis / vorherigerPreis (also z. B. 1.05 statt 0.05).
Indexversatz: Das Ausgabe-Array beginnt erst bei Index timePeriod. Beim Zugriff sollte darauf geachtet werden, dass die Indizes korrekt mit dem Eingabe-Array abgeglichen werden.