Start · Sprachen · PHP · Referenz · trader_div

trader_div

Funktion

Dividiert zwei Vektoren elementweise und gibt das Ergebnis als Array zurück.

Kategorie: math

Signatur

trader_div(array $real0, array $real1): array|false

Beschreibung

trader_div ist Teil der TRADER-Erweiterung (Technical Analysis for Traders) und führt eine elementweise Division zweier numerischer Vektoren durch. Für jeden Index i wird real0[i] / real1[i] berechnet und das Ergebnis im Ausgabe-Array gespeichert.

Die Funktion ist nützlich, wenn im Kontext der technischen Analyse Verhältnisse zwischen zwei Zeitreihendaten berechnet werden müssen – etwa das Verhältnis von Schlusskurs zu Eröffnungskurs oder die Division von Volumen- und Preisdaten. Beide Eingabe-Arrays müssen dieselbe Länge haben.

Das zurückgegebene Array kann kürzer sein als die Eingabe-Arrays, da die TRADER-Bibliothek intern einen sogenannten Lookback-Wert berechnet. Bei der einfachen Division beträgt dieser Wert jedoch 0, sodass das Ausgabe-Array in der Regel die gleiche Länge wie die Eingaben besitzt.

Die Funktion gibt false zurück, wenn ein Fehler aufgetreten ist, beispielsweise wenn die Arrays unterschiedliche Längen haben oder ungültige Werte enthalten.

Parameter

Name Typ Default Beschreibung
$real0 Pflicht array Der erste numerische Vektor (Dividend). Alle Werte müssen vom Typ float oder int sein.
$real1 Pflicht array Der zweite numerische Vektor (Divisor). Alle Werte müssen vom Typ float oder int sein. Enthält ein Element den Wert 0, kann dies zu einer Division durch null führen.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein Array mit den Ergebnissen der elementweisen Division zurück. Bei einem Fehler (z. B. unterschiedliche Array-Längen oder ungültige Parameter) wird false zurückgegeben.

Beispiele

Einfache elementweise Division zweier Preisvektoren

<?php
// Beispiel: Verhältnis von Schlusskurs zu Eröffnungskurs
$open  = [100.0, 105.0, 110.0, 115.0, 120.0];
$close = [102.0, 103.0, 112.0, 114.0, 125.0];

$result = trader_div($close, $open);

if ($result !== false) {
    foreach ($result as $i => $ratio) {
        printf("Tag %d: Schluss/Eröffnung = %.4f\n", $i + 1, $ratio);
    }
} else {
    echo "Fehler bei der Berechnung.\n";
}
Tag 1: Schluss/Eröffnung = 1.0200 Tag 2: Schluss/Eröffnung = 0.9810 Tag 3: Schluss/Eröffnung = 1.0182 Tag 4: Schluss/Eröffnung = 0.9913 Tag 5: Schluss/Eröffnung = 1.0417

Division von Umsatz- und Volumendaten zur Berechnung des VWAP-Näherungswerts

<?php
// Näherungsweise Berechnung des durchschnittlichen Handelspreises
$umsatz  = [50000.0, 75000.0, 60000.0, 90000.0];
$volumen = [500.0,   750.0,   600.0,   900.0];

$durchschnittspreise = trader_div($umsatz, $volumen);

if ($durchschnittspreise !== false) {
    foreach ($durchschnittspreise as $i => $preis) {
        printf("Periode %d: Ø-Preis = %.2f EUR\n", $i + 1, $preis);
    }
} else {
    echo "Fehler: Ungültige Eingabedaten.\n";
}
Periode 1: Ø-Preis = 100.00 EUR Periode 2: Ø-Preis = 100.00 EUR Periode 3: Ø-Preis = 100.00 EUR Periode 4: Ø-Preis = 100.00 EUR

// Wichtig · Fallstricke

Division durch null: Enthält das Array real1 einen Wert von 0, kann es zu einer Division durch null kommen. Dies sollte vor dem Aufruf der Funktion explizit geprüft werden, um unerwartete Ergebnisse (INF, NAN) oder Fehler zu vermeiden.

Voraussetzung: Die TRADER-Erweiterung (pecl install trader) muss installiert und in der php.ini aktiviert sein (extension=trader). Andernfalls ist die Funktion nicht verfügbar.

Array-Längen: Beide Eingabe-Arrays müssen exakt dieselbe Anzahl an Elementen besitzen. Bei unterschiedlichen Längen gibt die Funktion false zurück.