Signatur
Beschreibung
trader_mavp gehört zur TRADER-Erweiterung für PHP (basierend auf der TA-Lib) und berechnet einen gleitenden Durchschnitt, dessen Periode für jeden Datenpunkt individuell aus einem zweiten Array ($periods) entnommen wird. Dies ermöglicht adaptive technische Analysen, bei denen die Glättungsperiode dynamisch – etwa in Abhängigkeit von Volatilität oder anderen Marktkennzahlen – variiert.
Der Parameter $minPeriod und $maxPeriod begrenzen die tatsächlich verwendeten Periodenswerte nach unten bzw. oben. Der Typ des gleitenden Durchschnitts wird über $mAType gesteuert; er akzeptiert die gleichen Konstanten wie andere TRADER-Funktionen (z. B. TRADER_MA_TYPE_SMA, TRADER_MA_TYPE_EMA usw.).
Typische Anwendungsszenarien sind adaptive Handelssysteme, bei denen kürzere Perioden in volatilen Märkten und längere Perioden in ruhigen Phasen verwendet werden. Die Ausgabe ist ein Array mit denselben numerischen Schlüsseln wie die Eingabedaten, jedoch wird der Beginn des Arrays – entsprechend dem benötigten Vorlauf (lookback) – ausgelassen.
Die Funktion gibt false zurück, wenn ein Fehler auftritt, etwa bei ungültigen Eingabedaten oder falsch konfigurierten Parametern.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Numerisch indiziertes Array mit den Eingabedaten (z. B. Schlusskurse einer Zeitreihe) als Fließkommazahlen. | |
| $periods Pflicht | array | Array mit den zu verwendenden Periodenswerten für jeden Datenpunkt. Die Werte werden durch $minPeriod und $maxPeriod begrenzt. |
|
| $minPeriod | int | 2 | Minimale Periodenswert-Untergrenze. Werte in $periods unterhalb dieses Werts werden auf diesen Wert angehoben. |
| $maxPeriod | int | 30 | Maximale Periodenswert-Obergrenze. Werte in $periods oberhalb dieses Werts werden auf diesen Wert begrenzt. |
| $mAType | int | 0 | Typ des gleitenden Durchschnitts. Erlaubte Werte sind die TRADER_MA_TYPE_*-Konstanten, z. B. TRADER_MA_TYPE_SMA (0), TRADER_MA_TYPE_EMA (1) usw. |
Rückgabewert
false zurückgegeben.Beispiele
Einfacher MAVP mit SMA-Typ und konstanter Perioden-Variante
<?php
// Beispiel-Schlusskurse
$closes = [10.0, 11.5, 12.0, 11.0, 13.5, 14.0, 13.0, 15.0, 16.5, 17.0];
// Perioden-Array: jeder Datenpunkt erhält eine eigene Periode
$periods = [3, 3, 3, 4, 4, 4, 5, 5, 5, 5];
// Berechnung: SMA (TRADER_MA_TYPE_SMA = 0), Min 2, Max 5
$result = trader_mavp($closes, $periods, 2, 5, 0);
if ($result === false) {
echo "Fehler bei der Berechnung.\n";
} else {
print_r($result);
}
Adaptiver MAVP mit Volatilitäts-basierten Perioden und EMA
<?php
// Simulierte Schlusskurse (z. B. aus einer Datenbank)
$closes = [100.0, 102.5, 101.0, 98.5, 97.0, 99.5, 103.0, 105.5, 104.0, 107.0,
108.5, 106.0, 109.0, 111.5, 110.0, 113.0, 115.5, 114.0, 117.0, 120.0];
// Dynamische Perioden: in volatilen Phasen kürzere Perioden
$volatility = [5, 5, 7, 10, 10, 8, 5, 4, 6, 4,
3, 7, 4, 3, 5, 3, 3, 5, 3, 3];
// TRADER_MA_TYPE_EMA = 1
$result = trader_mavp($closes, $volatility, 3, 10, 1);
if ($result !== false) {
foreach ($result as $index => $value) {
printf("Index %d => EMA (variable Periode): %.4f\n", $index, $value);
}
} else {
echo "Fehler: trader_mavp hat false zurückgegeben.\n";
}
// Wichtig · Fallstricke
Voraussetzung: Die PHP-TRADER-Erweiterung muss installiert und aktiviert sein (pecl install trader). Ohne diese Erweiterung ist trader_mavp nicht verfügbar.
Lookback: Das Ergebnis-Array enthält weniger Elemente als das Eingabe-Array, da für die Berechnung ein Vorlauf (lookback) benötigt wird, der von $maxPeriod abhängt. Die Indizes im Ergebnis-Array entsprechen den Original-Indizes der Eingabedaten.
Periodenswerte: Die Werte im $periods-Array werden intern als ganzzahlige Perioden interpretiert. Fließkommazahlen werden abgeschnitten. Werte außerhalb von [$minPeriod, $maxPeriod] werden auf die jeweilige Grenze begrenzt, anstatt einen Fehler zu erzeugen.