Start · Sprachen · PHP · Referenz · trader_t3

trader_t3

Funktion

Berechnet den dreifachen exponentiellen gleitenden Durchschnitt (T3) einer Zeitreihe mit einstellbarem Volumen-Faktor.

Kategorie: math

Signatur

trader_t3(array $real, int $timePeriod = 5, float $vFactor = 0.7): array|false

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

Typ
array|false
Beschreibung
Gibt bei Erfolg ein numerisch indiziertes Array mit den berechneten T3-Werten zurück. Die Ausgabe ist kürzer als die Eingabe, da für den Anlauf-Zeitraum (Lookback) keine Werte berechnet werden. Bei einem Fehler (z. B. ungültige Parameter) wird 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-Werte: Index 24: 45.1234 Index 25: 45.3456 ...

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);
}
Letzter T3-Wert (vFactor=0.9): 121.3456 Letzter T3-Wert (vFactor=0.3): 123.4567

// 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).