Start · Sprachen · PHP · Referenz · trader_floor

trader_floor

Funktion

Berechnet die Abrundung (Floor) jedes Elements eines Eingabe-Vektors und gibt die resultierenden Werte als Array zurück.

Kategorie: math

Signatur

trader_floor(array $real): array|false

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- oder int-Werte sein.
  • Die Rückgabe ist ein numerisch indiziertes Array mit den abgerundeten Werten.
  • Gibt false zurü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

Typ
array|false
Beschreibung
Gibt ein Array zurück, das die abgerundeten Werte (jeweils den größten Integer ≤ Eingabewert) enthält. Bei einem Fehler (z. B. ungültige Eingabe) wird 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";
    }
}
Index 0: 1 Index 1: 3 Index 2: -3 Index 3: 4 Index 4: 9

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);
    }
}
Array ( [2] => 10 [3] => 11 [4] => 11 [5] => 11 [6] => 12 )

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