Signatur
Beschreibung
trader_sum ist Teil der PHP-TRADER-Erweiterung, die auf der TA-Lib (Technical Analysis Library) basiert. Die Funktion berechnet für jeden Datenpunkt die Summe aller Werte innerhalb eines gleitenden Fensters der Größe timePeriod. Das Ergebnis ist ein Array mit den berechneten Summenwerten.
Die Funktion eignet sich besonders für die technische Analyse von Finanzdaten, etwa um laufende Umsatzsummen, kumulierte Kursbewegungen oder andere periodische Summen über Zeitreihen zu berechnen. Der Rückgabewert enthält weniger Elemente als das Eingabe-Array, da für die ersten timePeriod - 1 Elemente keine vollständige Berechnung möglich ist.
Im Gegensatz zu einer einfachen array_sum-Funktion operiert trader_sum als gleitendes (rollendes) Fenster: Für jeden Datenpunkt ab Index timePeriod - 1 wird die Summe der vorherigen timePeriod Werte gebildet, sodass zeitliche Verläufe analysiert werden können.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Eindimensionales Array mit numerischen Eingabewerten (z. B. Schlusskurse, Volumina). Die Schlüssel sollten fortlaufend sein. | |
| $timePeriod | int | 30 | Anzahl der Perioden, über die die rollierende Summe gebildet wird. Muss eine positive ganze Zahl sein (typischerweise zwischen 2 und der Länge des Eingabe-Arrays). |
Rückgabewert
count($real) - $timePeriod + 1 Elemente. Bei ungültigen Eingaben oder einem Fehler wird false zurückgegeben.Beispiele
Rollierende 3-Perioden-Summe berechnen
<?php
// Einfache Zeitreihe mit täglichen Umsätzen
$volumes = [100, 200, 150, 300, 250, 400, 350];
// Rollierende Summe über 3 Perioden
$result = trader_sum($volumes, 3);
print_r($result);
// Index 0: 100+200+150 = 450
// Index 1: 200+150+300 = 650
// Index 2: 150+300+250 = 700
// Index 3: 300+250+400 = 950
// Index 4: 250+400+350 = 1000
Rollierende Summe von Aktienkurs-Gewinnen
<?php
// Tägliche Kursveränderungen einer Aktie
$changes = [1.2, -0.5, 2.3, 0.8, -1.1, 3.0, 1.5, -0.3];
// 4-Perioden-Summe der Kursveränderungen
$rollSum = trader_sum($changes, 4);
if ($rollSum !== false) {
foreach ($rollSum as $index => $value) {
printf("Periode %d: Summe = %+.2f\n", $index + 4, $value);
}
} else {
echo "Fehler bei der Berechnung.\n";
}
// Wichtig · Fallstricke
Voraussetzung: Die TRADER-Erweiterung (ext/trader) muss installiert und aktiviert sein (pecl install trader). Sie ist nicht Teil des PHP-Kerns und muss separat nachinstalliert werden.
Rückgabe-Indizes: Die Indizes im Rückgabe-Array beginnen bei 0, entsprechen aber logisch dem Zeitpunkt timePeriod - 1 im Eingabe-Array. Beim Zusammenführen mit dem Original-Array ist daher ein Offset zu berücksichtigen.
Fehlerbehandlung: Bei einem ungültigen timePeriod (z. B. größer als die Anzahl der Eingabewerte oder kleiner als 2) gibt die Funktion false zurück. Es empfiehlt sich daher, das Ergebnis explizit mit === false zu prüfen.