Start · Sprachen · PHP · Referenz · trader_rocp

trader_rocp

Funktion

Berechnet die prozentuale Änderungsrate (ROCP) nach der Formel <code>(Preis - vorherigerPreis) / vorherigerPreis</code> für Zeitreihendaten.

Kategorie: math

Signatur

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

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

Typ
array|false
Beschreibung
Gibt ein Array mit den berechneten ROCP-Werten als Dezimalbrüche zurück. Das Array ist kürzer als das Eingabe-Array (die ersten 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);
    }
}
Index 5: ROCP = 0.0700 (7.00%) Index 6: ROCP = 0.0784 (7.84%) Index 7: ROCP = 0.0952 (9.52%) Index 8: ROCP = 0.0762 (7.62%) Index 9: ROCP = 0.0833 (8.33%) Index 10: ROCP = 0.1111 (11.11%)

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";
}
Anzahl Eingabewerte: 20 Anzahl ROCP-Werte: 10 Periode 10 → 0.3333 Periode 11 → 0.3125 Periode 12 → 0.2941 Periode 13 → 0.2778 Periode 14 → 0.2632 Periode 15 → 0.2500 Periode 16 → 0.2381 Periode 17 → 0.2273 Periode 18 → 0.2174 Periode 19 → 0.2083

// 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.