Start · Sprachen · PHP · Referenz · trader_midpoint

trader_midpoint

Funktion

Berechnet den Mittelpunkt (Midpoint) über einen definierten Zeitraum aus einer Zeitreihe von Kursdaten.

Kategorie: math

Signatur

trader_midpoint(array $real, int $timePeriod = 14): array|false

Beschreibung

trader_midpoint ist Teil der TRADER-Erweiterung für PHP, die technische Analysefunktionen aus der TA-Lib-Bibliothek bereitstellt. Die Funktion berechnet für jeden Datenpunkt den Mittelpunkt zwischen dem höchsten und niedrigsten Wert innerhalb eines gleitenden Zeitfensters der Länge timePeriod.

Die Formel lautet: Midpoint = (Max(real, n) + Min(real, n)) / 2, wobei n dem timePeriod entspricht. Dieser Indikator wird häufig als einfache Alternative zu Mittelwert-basierten Glättungsverfahren eingesetzt, da er robuster gegenüber Ausreißern reagiert als ein einfacher gleitender Durchschnitt.

Typische Anwendungsfälle sind die visuelle Darstellung von Preismitten im Chart, die Verwendung als Unterstützungs-/Widerstandslinie sowie als Eingabe für weitere technische Indikatoren. Die Funktion gibt ein Array mit berechneten Werten zurück, wobei die ersten timePeriod - 1 Elemente fehlen (sogenannte Lookback-Periode).

  • Einfach zu interpretieren und schnell zu berechnen.
  • Nützlich zur Glättung ohne Verzögerung durch komplexere Methoden.
  • Einschränkung: Reagiert empfindlich auf einzelne Extrem-Hochs oder -Tiefs innerhalb des Zeitfensters.

Parameter

Name Typ Default Beschreibung
$real Pflicht array Numerisches Array mit den Eingabedaten (z. B. Schlusskurse), indiziert von 0 bis n-1.
$timePeriod int 14 Anzahl der Perioden für das gleitende Zeitfenster. Muss mindestens 2 betragen. Standardwert ist 14.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein numerisches Array mit den berechneten Mittelpunktwerten zurück. Die ersten timePeriod - 1 Indizes sind nicht belegt (Lookback). Bei einem Fehler (z. B. ungültige Parameter oder fehlende TRADER-Erweiterung) wird false zurückgegeben.

Beispiele

Einfache Berechnung des Midpoint für Schlusskurse

<?php
// Tägliche Schlusskurse einer Aktie
$closePrices = [100.5, 102.3, 101.8, 103.0, 104.5, 102.9, 105.2, 106.0, 107.3, 108.1,
                109.5, 110.2, 108.7, 111.0, 112.4, 113.1, 111.8, 114.0, 115.3, 116.0];

// Midpoint über 5 Perioden berechnen
$midpoint = trader_midpoint($closePrices, 5);

if ($midpoint === false) {
    echo "Fehler bei der Berechnung.\n";
} else {
    echo "Midpoint-Werte (ab Index 4):\n";
    foreach ($midpoint as $index => $value) {
        echo "Index $index: " . round($value, 4) . "\n";
    }
}
Midpoint-Werte (ab Index 4): Index 4: 102.5 Index 5: 103.75 Index 6: 103.65 Index 7: 104.45 Index 8: 105.6 ...

Vergleich verschiedener Zeitperioden

<?php
$prices = [50.0, 52.5, 49.0, 55.0, 53.0, 57.5, 60.0, 58.0, 62.0, 65.0,
           63.0, 67.0, 70.0, 68.5, 72.0];

$periods = [3, 7, 14];

foreach ($periods as $period) {
    $result = trader_midpoint($prices, $period);
    if ($result !== false) {
        $last = end($result);
        echo "Periode $period – letzter Midpoint: " . round($last, 2) . "\n";
    }
}
Periode 3 – letzter Midpoint: 70.25 Periode 7 – letzter Midpoint: 61.0 Periode 14 – letzter Midpoint: 57.5

// Wichtig · Fallstricke

Voraussetzung: Die PHP-TRADER-Erweiterung muss installiert und aktiviert sein (pecl install trader und Eintrag in der php.ini: extension=trader). Ohne diese Erweiterung ist trader_midpoint nicht verfügbar.

Lookback-Periode: Die ersten timePeriod - 1 Elemente des Rückgabe-Arrays sind undefiniert bzw. nicht vorhanden. Beim Zugriff auf feste Indizes muss dies berücksichtigt werden, um Undefined offset-Warnungen zu vermeiden.

Empfindlichkeit gegenüber Ausreißern: Da der Midpoint ausschließlich auf Maximum und Minimum basiert, können einzelne Extremwerte (Spikes) das Ergebnis stark beeinflussen. Für rauschbehaftete Daten sollte ggf. ein geglätteter Ansatz bevorzugt werden.