Signatur
Beschreibung
trader_t3 ist Teil der PHP-TRADER-Erweiterung, die auf der TA-Lib (Technical Analysis Library) basiert. Die Funktion berechnet den sogenannten Triple Exponential Moving Average (T3) nach Tillson, ein geglätteter und verzögerungsarmer Indikator für Finanzzeitreihen wie Kursdaten.
Der T3 ist eine Weiterentwicklung des doppelten exponentiellen gleitenden Durchschnitts (DEMA) und nutzt eine Kombination aus mehreren EMA-Berechnungen (bis zu sechs EMAs), gewichtet durch den vFactor. Ein vFactor von 0 ergibt einen einfachen EMA, während höhere Werte (max. 1) die Glättung deutlich verstärken, aber auch die Reaktionszeit erhöhen. Typische Werte liegen zwischen 0.7 und 0.9.
Der Indikator eignet sich besonders für die Trendfolgeanalyse, da er Rauschen stärker herausfiltert als klassische gleitende Durchschnitte und dennoch schneller auf Trendänderungen reagiert als ein dreifacher einfacher Durchschnitt (TEMA).
Die Funktion erwartet ein numerisch indiziertes Array mit Kurswerten (z. B. Schlusskurse) und gibt ein Array mit den berechneten T3-Werten zurück. Die ersten Werte des Ausgabe-Arrays entsprechen dem Lookback-Zeitraum und sind daher kürzer als die Eingabe.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Numerisch indiziertes Array mit Eingabewerten (z. B. Schlusskurse als float-Werte). |
|
| $timePeriod | int | 5 | Anzahl der Perioden für die EMA-Berechnung. Muss zwischen 2 und 100000 liegen. Größere Werte erzeugen eine stärkere Glättung. |
| $vFactor | float | 0.7 | Volumen-Faktor (auch Dämpfungsfaktor genannt), der die Stärke der Glättung steuert. Gültige Werte liegen zwischen 0 und 1. Höhere Werte verstärken die Glättung. |
Rückgabewert
false zurückgegeben.Beispiele
Einfache T3-Berechnung mit Schlusskursen
<?php
// Schlusskurse der letzten Handelstage
$close = [44.34, 44.09, 44.15, 43.61, 44.33, 44.83, 45.10, 45.15, 43.61, 44.33, 44.83, 45.85, 46.08, 45.89, 46.03, 45.61, 46.28, 46.28, 46.00, 46.03];
// T3 mit Standardwerten berechnen (Periode 5, vFactor 0.7)
$t3 = trader_t3($close);
if ($t3 === false) {
echo 'Fehler bei der T3-Berechnung.' . PHP_EOL;
} else {
echo 'T3-Werte:' . PHP_EOL;
foreach ($t3 as $index => $value) {
printf('Index %2d: %.4f%s', $index, $value, PHP_EOL);
}
}
T3 mit angepasstem vFactor für stärkere Glättung
<?php
// Längere Zeitreihe simulieren
$close = array_map(fn($i) => 100 + sin($i / 5) * 10 + $i * 0.5, range(0, 49));
// T3 mit Periode 10 und hohem vFactor (stärkere Glättung)
$t3 = trader_t3($close, 10, 0.9);
// T3 mit niedrigem vFactor (reaktionsschneller)
$t3Fast = trader_t3($close, 10, 0.3);
if ($t3 !== false && $t3Fast !== false) {
$keys = array_keys($t3);
$lastKey = end($keys);
printf('Letzter T3-Wert (vFactor=0.9): %.4f%s', $t3[$lastKey], PHP_EOL);
$keys2 = array_keys($t3Fast);
$lastKey2 = end($keys2);
printf('Letzter T3-Wert (vFactor=0.3): %.4f%s', $t3Fast[$lastKey2], PHP_EOL);
}
// Wichtig · Fallstricke
Lookback-Zeitraum: Der T3-Indikator benötigt einen Anlaufzeitraum von (timePeriod - 1) * 6 Eingabewerten, bevor der erste Ausgabewert berechnet werden kann. Das bedeutet, dass das Ausgabe-Array deutlich kürzer als das Eingabe-Array ist. Bei zu wenig Eingabedaten kann false zurückgegeben werden.
Voraussetzung: Die Funktion ist nur verfügbar, wenn die PHP-TRADER-Erweiterung (trader) installiert und aktiviert ist. Diese basiert auf der TA-Lib und ist kein Bestandteil des PHP-Kerns. Installation z. B. über PECL: pecl install trader.
vFactor-Bereich: Der vFactor muss zwischen 0 und 1 liegen. Werte außerhalb dieses Bereichs führen zu einem Fehler (false).