Start · Sprachen · PHP · Referenz · trader_trima

trader_trima

Funktion

Berechnet den dreieckigen gleitenden Durchschnitt (Triangular Moving Average) für eine Zeitreihendatenreihe.

Kategorie: math

Signatur

trader_trima(array $real, int $timePeriod = 30): array|false

Beschreibung

trader_trima ist Teil der TRADER-Extension (TA-Lib-Bindings für PHP) und berechnet den Triangular Moving Average (TRIMA). Dabei handelt es sich um einen doppelt geglätteten Durchschnitt, der den mittleren Datenpunkten eines Fensters ein höheres Gewicht zuweist als den Randpunkten.

Im Gegensatz zum einfachen gleitenden Durchschnitt (SMA) reagiert der TRIMA weniger empfindlich auf kurzfristige Schwankungen und produziert eine gleichmäßigere Kurve. Er wird häufig in der technischen Analyse von Finanz- und Börsendaten eingesetzt, um Trends zu identifizieren und Rauschen in Kursverläufen zu glätten.

Technisch berechnet sich der TRIMA als ein zweifach angewendeter SMA: Zunächst wird ein SMA der Länge ceil((timePeriod + 1) / 2) berechnet, und auf diesen Zwischenwert wird erneut ein SMA der gleichen Periode angewendet. Das Ergebnis ist ein besonders glatter Durchschnitt mit einer stärkeren Betonung des Zentrums des Betrachtungsfensters.

Die Funktion gibt ein PHP-Array mit den berechneten TRIMA-Werten zurück, wobei die ersten Elemente (abhängig von der gewählten Periode) leer bleiben (Lookback-Periode). Bei ungültigen Eingaben oder einem Fehler wird false zurückgegeben.

Parameter

Name Typ Default Beschreibung
$real Pflicht array Numerisches Array mit den Eingabewerten der Zeitreihe (z. B. Schlusskurse). Die Indizes sollten fortlaufend und die Werte vom Typ float sein.
$timePeriod int 30 Anzahl der Perioden (Fenstergröße) für die Berechnung des TRIMA. Muss mindestens 2 sein. Größere Werte erzeugen eine stärkere Glättung, reagieren jedoch langsamer auf Trendänderungen.

Rückgabewert

Typ
array|false
Beschreibung
Gibt ein numerisches Array mit den berechneten TRIMA-Werten zurück. Die ersten timePeriod - 1 Elemente fehlen (Lookback-Offset). Bei einem Fehler (z. B. ungültige Parameter oder leeres Eingabe-Array) wird false zurückgegeben.

Beispiele

Einfache TRIMA-Berechnung für Schlusskurse

<?php
// Beispiel-Schlusskurse einer Aktie
$closes = [10.0, 11.5, 12.0, 11.0, 13.5, 14.0, 13.0, 15.0, 16.5, 17.0];

// TRIMA mit Periode 5 berechnen
$trima = trader_trima($closes, 5);

if ($trima === false) {
    echo "Fehler bei der TRIMA-Berechnung.";
} else {
    echo "TRIMA-Werte:" . PHP_EOL;
    foreach ($trima as $index => $value) {
        echo "Index $index: " . round($value, 4) . PHP_EOL;
    }
}
TRIMA-Werte: Index 4: 11.6 Index 5: 12.3333 Index 6: 12.8333 Index 7: 13.5 Index 8: 14.5 Index 9: 15.1667

Vergleich verschiedener Perioden

<?php
// Simulierte Kursdaten
$data = array_map(fn($i) => 100 + sin($i * 0.5) * 10 + $i * 0.2, range(0, 29));

$trima10 = trader_trima($data, 10);
$trima20 = trader_trima($data, 20);

echo "Letzter TRIMA-10-Wert: " . round(end($trima10), 4) . PHP_EOL;
echo "Letzter TRIMA-20-Wert: " . round(end($trima20), 4) . PHP_EOL;
echo "Anzahl TRIMA-10-Werte: " . count($trima10) . PHP_EOL;
echo "Anzahl TRIMA-20-Werte: " . count($trima20) . PHP_EOL;
Letzter TRIMA-10-Wert: 102.9... Letzter TRIMA-20-Wert: 102.1... Anzahl TRIMA-10-Werte: 21 Anzahl TRIMA-20-Werte: 11

// Wichtig · Fallstricke

Voraussetzung: Die TRADER-Extension muss installiert und in der php.ini aktiviert sein (extension=trader). Sie basiert auf der TA-Lib-Bibliothek und ist nicht standardmäßig in PHP enthalten.

Lookback-Periode: Die Anzahl der berechnbaren Ausgabewerte ist kleiner als die Anzahl der Eingabewerte. Für eine Periode von n werden die ersten n - 1 Elemente nicht berechnet. Dies muss beim Zuordnen von Ausgabewerten zu Eingabe-Indizes berücksichtigt werden.

Vergleich mit anderen Durchschnitten: Der TRIMA reagiert langsamer als SMA oder EMA auf plötzliche Kursänderungen, eignet sich daher besonders für die Trendanalyse über längere Zeiträume, nicht jedoch für kurzfristige Handelssignale.