Signatur
Beschreibung
trader_midprice ist Teil der PECL-Erweiterung Trader, die technische Analysefunktionen für Finanzdaten bereitstellt. Die Funktion berechnet den MIDPRICE-Indikator (Mittelpunktpreis), der für jeden Zeitpunkt den Durchschnitt aus dem höchsten Hoch- und dem niedrigsten Tief-Kurs innerhalb des angegebenen Zeitraums ermittelt. Die Formel lautet: (MAX(High, n) + MIN(Low, n)) / 2.
Der Midprice wird häufig in der technischen Analyse verwendet, um Trends zu identifizieren, Unterstützungs- und Widerstandsniveaus zu erkennen sowie Handelssignale zu generieren. Er reagiert weniger stark auf kurzfristige Kursschwankungen als ein einfaches gleitendes Mittel.
Die Funktion gibt ein Array zurück, dessen Indizes denjenigen der Eingabe-Arrays entsprechen – die ersten timePeriod - 1 Elemente fehlen, da für sie noch nicht genügend Daten vorhanden sind. Die Erweiterung muss über PECL installiert sein (pecl install trader).
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real_high Pflicht | array | Numerisches Array mit den Hoch-Kursen (High-Werten) der Finanzinstrumente, typischerweise in chronologischer Reihenfolge. | |
| $real_low Pflicht | array | Numerisches Array mit den Tief-Kursen (Low-Werten) der Finanzinstrumente, typischerweise in chronologischer Reihenfolge und gleicher Länge wie real_high. |
|
| $timePeriod | int | 14 | Anzahl der Perioden, über die der Midprice berechnet wird. Muss zwischen 2 und 100000 liegen. Standardwert ist 14. |
Rückgabewert
timePeriod - 1 Einträge fehlen, da für sie keine vollständigen Daten vorliegen. Bei einem Fehler (z. B. ungültige Parameter oder zu wenige Datenpunkte) wird false zurückgegeben.Beispiele
Midprice für eine Kursreihe berechnen
<?php
// Beispiel-Kursdaten (High/Low) für 10 Tage
$high = [45.2, 46.1, 47.0, 46.8, 47.5, 48.0, 47.9, 48.5, 49.0, 48.8];
$low = [44.0, 44.9, 45.8, 45.5, 46.2, 46.8, 46.5, 47.2, 47.8, 47.5];
// Midprice über 5 Perioden berechnen
$midprice = trader_midprice($high, $low, 5);
if ($midprice === false) {
echo "Fehler bei der Berechnung.";
} else {
foreach ($midprice as $index => $value) {
printf("Index %d: Midprice = %.4f\n", $index, $value);
}
}
Integration in eine einfache Trading-Auswertung
<?php
// Simulierte OHLCV-Daten (Open, High, Low, Close, Volume)
$data = [
['high' => 102.5, 'low' => 100.0],
['high' => 104.0, 'low' => 101.5],
['high' => 103.5, 'low' => 100.8],
['high' => 105.0, 'low' => 102.0],
['high' => 106.2, 'low' => 103.5],
['high' => 107.0, 'low' => 104.0],
['high' => 106.5, 'low' => 103.8],
];
$highs = array_column($data, 'high');
$lows = array_column($data, 'low');
$midprice = trader_midprice($highs, $lows, 3);
if ($midprice !== false) {
$lastIndex = array_key_last($midprice);
$lastMid = $midprice[$lastIndex];
$lastClose = 105.8; // aktueller Schlusskurs
echo "Letzter Midprice: " . number_format($lastMid, 2) . PHP_EOL;
echo "Aktueller Kurs liegt " . ($lastClose > $lastMid ? 'über' : 'unter') . " dem Midprice." . PHP_EOL;
}
// Wichtig · Fallstricke
Voraussetzung: Die trader-Erweiterung muss installiert und in der php.ini aktiviert sein (extension=trader). Sie ist nicht Bestandteil des PHP-Kerns und muss über PECL installiert werden.
Datenqualität: Die Arrays real_high und real_low müssen die gleiche Länge haben und nummerisch indiziert sein. High-Werte sollten stets größer oder gleich den entsprechenden Low-Werten sein – andernfalls können rechnerisch falsche Ergebnisse entstehen.
Rückgabe-Indizes: Das zurückgegebene Array beginnt erst ab dem Index timePeriod - 1. Wenn der ursprüngliche Index erhalten bleiben soll, muss dies beim Zusammenführen mit anderen Daten berücksichtigt werden.