Signatur
Beschreibung
trader_rocr100 ist Teil der TRADER-Erweiterung für PHP, die auf der TA-Lib (Technical Analysis Library) basiert. Die Funktion berechnet den Rate of Change Ratio scaled to 100 (ROCR100) – also das Verhältnis eines aktuellen Preises zum Preis vor timePeriod Perioden, multipliziert mit 100.
Die Formel lautet: ROCR100 = (Preis[i] / Preis[i - timePeriod]) * 100. Ein Wert von 100 bedeutet, dass der Preis gegenüber der Vorperiode unverändert ist. Werte über 100 zeigen eine Preissteigerung, Werte unter 100 einen Preisrückgang an.
Der Unterschied zu trader_roc besteht darin, dass ROCR100 das Verhältnis mit 100 multipliziert, anstatt die prozentuale Veränderung auszugeben. Dies eignet sich besonders für den Vergleich von Preisveränderungen und die Normierung von Zeitreihen in der technischen Analyse, z. B. im Algorithmic Trading.
Die Funktion ist nützlich, wenn Preisbewegungen relativ zum Ausgangswert normiert dargestellt werden sollen, ohne negative Basiswerte zu Problemen führen zu lassen (wie es bei prozentualen Berechnungen der Fall sein kann).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Ein numerisch indiziertes Array mit Kursdaten (z. B. Schlusskurse als float-Werte). Die Werte müssen chronologisch sortiert sein. |
|
| $timePeriod | int | 10 | Die Anzahl der Perioden, über die die Änderungsrate berechnet wird. Muss ein positiver ganzzahliger Wert sein. Standardmäßig 10. |
Rückgabewert
timePeriod Elemente des Eingabe-Arrays haben keinen korrespondierenden Ausgabewert (der Ausgabe-Array ist kürzer als der Eingabe-Array). Bei einem Fehler (z. B. ungültige Parameter) wird false zurückgegeben.Beispiele
Einfache Berechnung der ROCR100 auf Schlusskursen
<?php
// Beispiel-Schlusskurse einer Aktie
$closes = [100.0, 102.0, 101.5, 105.0, 107.0, 106.5, 110.0, 112.0, 111.0, 115.0, 118.0, 120.0];
// ROCR100 mit einer Periode von 3 berechnen
$rocr100 = trader_rocr100($closes, 3);
if ($rocr100 === false) {
echo "Fehler bei der Berechnung.";
} else {
foreach ($rocr100 as $index => $value) {
printf("Index %d: ROCR100 = %.4f\n", $index, $value);
}
}
Verwendung von ROCR100 zur Signalauswertung
<?php
// Schlusskurse der letzten 15 Handelstage
$closes = [200.0, 198.5, 201.0, 203.5, 202.0, 205.0, 207.5, 210.0, 208.0, 211.0, 214.0, 213.5, 216.0, 219.0, 220.5];
$timePeriod = 5;
$rocr100 = trader_rocr100($closes, $timePeriod);
if ($rocr100 !== false) {
$lastKey = array_key_last($rocr100);
$lastValue = $rocr100[$lastKey];
echo "Letzter ROCR100-Wert: " . number_format($lastValue, 4) . "\n";
if ($lastValue > 100) {
echo "Signal: Aufwärtstrend (Preis gestiegen im Vergleich zu vor {$timePeriod} Perioden)";
} elseif ($lastValue < 100) {
echo "Signal: Abwärtstrend (Preis gesunken im Vergleich zu vor {$timePeriod} Perioden)";
} else {
echo "Signal: Keine Veränderung";
}
}
// Wichtig · Fallstricke
Voraussetzung: Die TRADER-Erweiterung (php_trader) muss installiert und aktiviert sein. Sie ist nicht im PHP-Kern enthalten und muss über PECL installiert werden: pecl install trader.
Unterschied zu ähnlichen Funktionen: trader_roc berechnet ((Preis / vorherigerPreis) - 1) * 100 (prozentuale Veränderung), während trader_rocr100 den reinen Quotienten mit 100 skaliert. Bei einem unveränderten Preis liefert trader_roc den Wert 0, trader_rocr100 hingegen 100.
Array-Länge: Der Rückgabe-Array enthält weniger Elemente als der Eingabe-Array. Die ersten timePeriod Einträge fehlen im Ergebnis, da für sie kein Vergleichswert existiert. Der Index des ersten Ergebnisses beginnt daher bei timePeriod.