Signatur
Beschreibung
trader_floor ist Teil der TRADER-Erweiterung (PHP Technical Analysis), die Funktionen der TA-Lib-Bibliothek kapselt. Die Funktion wendet die mathematische Abrundungsoperation (Floor) elementweise auf alle Werte eines numerischen Arrays an – analog zu floor() für Einzelwerte, aber auf einen ganzen Vektor auf einmal.
Typischer Einsatz ist die Verarbeitung von Kurs- oder Messdaten in der technischen Finanzanalyse, wo Rohwerte vektorbasiert transformiert werden müssen. Das Ergebnis-Array enthält für jeden Eingabewert x den größten Integer-Wert, der kleiner oder gleich x ist.
Zu beachten ist, dass das Ergebnis-Array möglicherweise weniger Elemente enthält als das Eingabe-Array, da TA-Lib intern einen sogenannten Lookback-Mechanismus verwendet. Bei trader_floor ist der Lookback jedoch 0, sodass Ein- und Ausgabe-Array dieselbe Länge haben sollten. Die Indizes im Rückgabe-Array beginnen dennoch nicht zwingend bei 0.
- Eingabewerte dürfen
float- oderint-Werte sein. - Die Rückgabe ist ein numerisch indiziertes Array mit den abgerundeten Werten.
- Gibt
falsezurück, wenn ein Fehler auftritt (z. B. leeres Eingabe-Array).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Numerisches Array mit float- oder int-Werten, auf die die Abrundung angewendet wird. Typischerweise eine Zeitreihe von Kursdaten oder Messwerten. |
Rückgabewert
false zurückgegeben.Beispiele
Einfache Vektorabrundung mit trader_floor
<?php
// Voraussetzung: PECL-Erweiterung 'trader' ist installiert
$preise = [1.2, 3.7, -2.5, 4.0, 9.99];
$ergebnis = trader_floor($preise);
if ($ergebnis === false) {
echo "Fehler bei der Berechnung.";
} else {
foreach ($ergebnis as $index => $wert) {
echo "Index $index: $wert\n";
}
}
Kombination mit anderen TRADER-Funktionen – Nachbearbeitung von Gleitkomma-Ergebnissen
<?php
// SMA-Ergebnis abrunden (z. B. für ganzzahlige Stückzahlen)
$kurse = [10.5, 11.2, 10.8, 11.7, 12.3, 11.9, 12.8];
// Einfachen gleitenden Durchschnitt berechnen (Periode 3)
$sma = trader_sma($kurse, 3);
if ($sma !== false) {
// Ergebnis-Werte auf ganze Zahlen abrunden
$abgerundet = trader_floor($sma);
if ($abgerundet !== false) {
print_r($abgerundet);
}
}
// Wichtig · Fallstricke
Erweiterung erforderlich: trader_floor ist Teil der PECL-trader-Erweiterung und steht nicht in einer Standard-PHP-Installation zur Verfügung. Die Erweiterung muss separat installiert werden (pecl install trader).
Array-Indizes: Das zurückgegebene Array beginnt nicht notwendigerweise bei Index 0, sondern ab dem Index, ab dem TA-Lib gültige Ergebnisse liefert (Lookback). Beim Zugriff auf Ergebnisse sollte daher immer mit array_values() oder expliziter Index-Prüfung gearbeitet werden, um Indexverschiebungen zu vermeiden.
Leeres Array: Ein leeres Eingabe-Array führt zur Rückgabe von false. Prüfen Sie deshalb stets den Rückgabewert mit === false.