Start · Sprachen · PHP · Referenz · trader_avgprice

trader_avgprice

Funktion

Berechnet den Durchschnittspreis (AVGPRICE) aus Open-, High-, Low- und Close-Kursdaten einer Zeitreihe.

Kategorie: math

Signatur

trader_avgprice(array $open, array $high, array $low, array $close): array

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

Typ
array|false
Beschreibung
Gibt ein Array mit den berechneten Durchschnittspreisen zurück. Jeder Wert entspricht (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);
    }
}
Tag 1: AVGPRICE = 101.7500 Tag 2: AVGPRICE = 103.7500 Tag 3: AVGPRICE = 102.0000 Tag 4: AVGPRICE = 104.0000 Tag 5: AVGPRICE = 105.7500

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);
}
Aufwärtstrend erkannt: 200.1250 → 204.1250

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