Signatur
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
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";
}
}
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";
}
}
// 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.