Signatur
Beschreibung
Die Funktion trader_trange() gehört zur PHP-Erweiterung TRADER (Technical Analysis for Traders) und berechnet die True Range (TR) – einen Indikator aus der technischen Analyse, der die tatsächliche Handelsspanne einer Periode misst.
Die True Range ist definiert als das Maximum der drei folgenden Werte:
- Aktuelles Tageshoch minus aktuelles Tagestief
- Absolutwert: Aktuelles Tageshoch minus vorheriger Schlusskurs
- Absolutwert: Aktuelles Tagestief minus vorheriger Schlusskurs
Die True Range ist die Grundlage vieler weiterer Volatilitätsindikatoren, insbesondere des Average True Range (ATR). Sie wird häufig eingesetzt, um Marktvolatilität zu messen, Stop-Loss-Abstände zu berechnen oder Ausbrüche zu identifizieren.
Die Eingabearrays $high, $low und $close müssen dieselbe Länge haben und numerisch indiziert sein. Das Ergebnis-Array enthält weniger Werte als die Eingabe, da der erste Datenpunkt keinen Vorgänger-Schlusskurs hat.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $high Pflicht | array | Array der Tageshöchstkurse (High-Preise), numerisch indiziert, chronologisch geordnet. | |
| $low Pflicht | array | Array der Tagestiefkurse (Low-Preise), numerisch indiziert, chronologisch geordnet. | |
| $close Pflicht | array | Array der Tagesschlusskurse (Close-Preise), numerisch indiziert, chronologisch geordnet. |
Rückgabewert
'real' zurück, das die berechneten True-Range-Werte enthält. Das Array ist kürzer als die Eingabearrays, da der erste Wert nicht berechnet werden kann. Bei einem Fehler (z. B. unterschiedlich lange Eingabearrays oder fehlende TRADER-Erweiterung) wird false zurückgegeben.Beispiele
Einfache True-Range-Berechnung
<?php
// Beispiel-OHLC-Daten (5 Handelstage)
$high = [102.5, 104.0, 103.8, 106.2, 105.5];
$low = [100.0, 101.5, 101.0, 103.5, 103.0];
$close = [101.5, 103.0, 102.5, 105.0, 104.2];
$result = trader_trange($high, $low, $close);
if ($result === false) {
echo 'Fehler bei der Berechnung der True Range.' . PHP_EOL;
} else {
echo 'True Range Werte:' . PHP_EOL;
foreach ($result['real'] as $index => $value) {
printf('Tag %d: %.4f' . PHP_EOL, $index + 1, $value);
}
}
True Range als Grundlage für Stop-Loss-Berechnung
<?php
// Kursdaten aus einer Datenbank oder API (hier vereinfacht)
$high = [150.0, 152.5, 151.0, 154.0, 153.5, 156.0];
$low = [148.0, 149.5, 149.0, 151.5, 151.0, 153.0];
$close = [149.5, 151.5, 150.0, 153.0, 152.5, 155.0];
$tr = trader_trange($high, $low, $close);
if ($tr !== false) {
$trValues = $tr['real'];
$lastTR = end($trValues);
$lastClose = end($close);
// Stop-Loss = letzter Schlusskurs minus 2 × True Range (Beispiel-Strategie)
$multiplier = 2.0;
$stopLoss = $lastClose - ($multiplier * $lastTR);
printf('Letzter Schlusskurs: %.2f' . PHP_EOL, $lastClose);
printf('Letzte True Range: %.4f' . PHP_EOL, $lastTR);
printf('Stop-Loss (2×TR): %.2f' . PHP_EOL, $stopLoss);
} else {
echo 'Berechnung fehlgeschlagen.' . PHP_EOL;
}
// Wichtig · Fallstricke
Voraussetzung: Die TRADER-Erweiterung muss in PHP installiert und aktiviert sein (pecl install trader). Sie ist nicht standardmäßig in PHP enthalten. Prüfen Sie die Verfügbarkeit mit extension_loaded('trader').
Array-Länge: Das Ergebnis-Array enthält genau n - 1 Werte, wenn die Eingabe n Elemente hat, da für den allerersten Datenpunkt kein Vorgänger-Schlusskurs existiert. Beachten Sie die veränderten Array-Indizes beim Zugriff auf die Ergebnisse.
Konsistenz: Die drei Eingabearrays $high, $low und $close müssen stets dieselbe Anzahl an Elementen haben, sonst schlägt die Berechnung fehl.