Signatur
Beschreibung
trader_avgprice ist Teil der TRADER-Erweiterung für PHP, die technische Analyse-Funktionen aus der TA-Lib-Bibliothek bereitstellt. Die Funktion berechnet für jeden Zeitpunkt einer Preis-Zeitreihe den arithmetischen Durchschnittspreis als Mittelwert aus Eröffnungskurs (Open), Höchstkurs (High), Tiefstkurs (Low) und Schlusskurs (Close): (Open + High + Low + Close) / 4.
Diese Funktion ist besonders nützlich in der technischen Finanzanalyse, wenn ein einziger repräsentativer Preiswert pro Kerze oder Zeitraum benötigt wird – etwa als Basis für weitere Indikatoren oder als vereinfachte Darstellung des Preisniveaus. Der AVGPRICE wird häufig als Overlay auf Candlestick-Charts gezeichnet.
Alle vier Eingabe-Arrays müssen dieselbe Länge haben und numerisch indiziert sein. Die Rückgabe ist ein Array mit den berechneten Durchschnittspreisen, wobei der Index des Ergebnis-Arrays dem der Eingabe-Arrays entspricht. Bei ungültigen oder leeren Eingaben gibt die Funktion false zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $open Pflicht | array | Array mit den Eröffnungskursen (Open) der Zeitreihe als numerische Werte. | |
| $high Pflicht | array | Array mit den Höchstkursen (High) der Zeitreihe als numerische Werte. | |
| $low Pflicht | array | Array mit den Tiefstkursen (Low) der Zeitreihe als numerische Werte. | |
| $close Pflicht | array | Array mit den Schlusskursen (Close) der Zeitreihe als numerische Werte. |
Rückgabewert
(Open[i] + High[i] + Low[i] + Close[i]) / 4. Bei ungültigen Eingaben oder einem Fehler wird false zurückgegeben.Beispiele
Einfache AVGPRICE-Berechnung für eine Handelswoche
<?php
// Kursdaten einer Handelswoche (5 Tage)
$open = [100.0, 102.5, 101.0, 103.0, 104.5];
$high = [105.0, 107.0, 104.5, 106.0, 108.0];
$low = [ 99.0, 101.0, 100.0, 102.0, 103.5];
$close = [103.0, 104.5, 102.5, 105.0, 107.0];
$avgprice = trader_avgprice($open, $high, $low, $close);
if ($avgprice === false) {
echo 'Fehler bei der Berechnung.' . PHP_EOL;
} else {
foreach ($avgprice as $index => $value) {
printf("Tag %d: AVGPRICE = %.4f\n", $index + 1, $value);
}
}
AVGPRICE als Basis für einen einfachen Trendfilter
<?php
// Kursdaten aus einer Datenbank oder API geholt
$open = [200.0, 198.5, 197.0, 199.5, 202.0, 205.0, 203.5];
$high = [205.0, 202.0, 200.5, 204.0, 207.0, 210.0, 207.0];
$low = [197.0, 196.0, 195.5, 197.5, 200.0, 203.5, 201.0];
$close = [198.5, 197.0, 199.5, 202.0, 205.0, 203.5, 205.0];
$avgprice = trader_avgprice($open, $high, $low, $close);
// Prüfen, ob der letzte AVGPRICE über dem ersten liegt (einfacher Aufwärtstrend)
$erster = reset($avgprice);
$letzter = end($avgprice);
if ($letzter > $erster) {
printf("Aufwärtstrend erkannt: %.4f → %.4f\n", $erster, $letzter);
} else {
printf("Kein Aufwärtstrend: %.4f → %.4f\n", $erster, $letzter);
}
// Wichtig · Fallstricke
Voraussetzung: Die TRADER-Erweiterung muss installiert und aktiviert sein (pecl install trader bzw. in der php.ini mit extension=trader aktiviert). Ohne diese Erweiterung ist die Funktion nicht verfügbar.
Alle vier Eingabe-Arrays müssen exakt dieselbe Anzahl an Elementen besitzen und ausschließlich numerische Werte (int oder float) enthalten. Arrays unterschiedlicher Länge oder mit nicht-numerischen Werten führen zu einem Fehler oder unerwartetem Verhalten.
Der AVGPRICE ist kein geglätteter Indikator und reagiert stark auf Ausreißer in den Kursdaten. Für geglättete Durchschnitte empfehlen sich Funktionen wie trader_sma oder trader_ema.