Start · Sprachen · PHP · Referenz · trader_sarext

trader_sarext

Funktion

Berechnet den erweiterten parabolischen SAR (Stop and Reverse) für eine Zeitreihe mit separaten Beschleunigungsparametern für Long- und Short-Positionen.

Kategorie: math

Signatur

trader_sarext(array $real, float $startvalue = 0.0, float $offsetonreverse = 0.0, float $accelerationinitlong = 0.02, float $accelerationlong = 0.02, float $accelerationmaxlong = 0.2, float $accelerationinitshort = 0.02, float $accelerationshort = 0.02, float $accelerationmaxshort = 0.2): array|false

Beschreibung

Der Parabolic SAR Extended (SAREXT) ist eine Erweiterung des klassischen parabolischen SAR-Indikators und wird in der technischen Analyse verwendet, um Trendumkehrpunkte zu identifizieren. Im Gegensatz zur Standard-Variante (trader_sar) ermöglicht SAREXT die getrennte Konfiguration der Beschleunigungsfaktoren für Long- und Short-Positionen, was eine feingranulare Anpassung an unterschiedliche Marktsituationen erlaubt.

Die Funktion ist Teil der PECL trader-Erweiterung, die auf der TA-Lib-Bibliothek basiert. Sie erwartet ein Array mit Schlusskurs-Daten (oder High/Low-Werten, je nach Konfiguration) und gibt ein Array mit den berechneten SAR-Werten zurück. Positive Werte zeigen eine Long-Position (SAR liegt unterhalb des Kurses), negative Werte eine Short-Position an.

Die SAR-Methode folgt dem Prinzip: Liegt der Kurs oberhalb des SAR-Wertes, wird ein Aufwärtstrend signalisiert; fällt der Kurs darunter, signalisiert der Indikator einen Umkehrpunkt und wechselt die Richtung. Der Beschleunigungsfaktor erhöht sich mit jedem neuen Extrempunkt, sodass der SAR zunehmend näher an den Kurs heranrückt.

SAREXT eignet sich besonders für Trader, die unterschiedliches Marktverhalten in Auf- und Abwärtstrends berücksichtigen möchten und Stop-Loss-Levels dynamisch anpassen wollen.

Parameter

Name Typ Default Beschreibung
$real Pflicht array Eindimensionales Array mit numerischen Kursdaten (z. B. Schlusskurse) als Eingabewerte für die Berechnung.
$startvalue float 0.0 Startwert für den SAR-Berechnung. Beeinflusst den initialen SAR-Wert zu Beginn der Zeitreihe.
$offsetonreverse float 0.0 Prozentualer Versatz (als Dezimalwert, z. B. 0.01 = 1 %), der beim Umkehrpunkt auf den neuen SAR-Wert aufgeschlagen wird.
$accelerationinitlong float 0.02 Initialer Beschleunigungsfaktor für Long-Positionen (Aufwärtstrend). Bestimmt, wie schnell der SAR zu Beginn einer Long-Phase dem Kurs folgt.
$accelerationlong float 0.02 Schrittweite des Beschleunigungsfaktors für Long-Positionen bei jedem neuen Extrempunkt.
$accelerationmaxlong float 0.2 Maximaler Beschleunigungsfaktor für Long-Positionen. Der Faktor wird nie über diesen Wert hinaus erhöht.
$accelerationinitshort float 0.02 Initialer Beschleunigungsfaktor für Short-Positionen (Abwärtstrend). Bestimmt, wie schnell der SAR zu Beginn einer Short-Phase dem Kurs folgt.
$accelerationshort float 0.02 Schrittweite des Beschleunigungsfaktors für Short-Positionen bei jedem neuen Extrempunkt.
$accelerationmaxshort float 0.2 Maximaler Beschleunigungsfaktor für Short-Positionen. Der Faktor wird nie über diesen Wert hinaus erhöht.

Rückgabewert

Typ
array|false
Beschreibung
Gibt bei Erfolg ein Array mit den berechneten SAREXT-Werten zurück. Positive Werte signalisieren Long-Positionen (SAR unterhalb des Kurses), negative Werte Short-Positionen. Das Array ist kürzer als das Eingabe-Array, da für die Lookback-Periode am Anfang keine Werte berechnet werden können. Bei einem Fehler wird false zurückgegeben.

Beispiele

Einfache SAREXT-Berechnung mit Standardparametern

<?php
// Beispiel-Kursdaten (z. B. tägliche Schlusskurse)
$preise = [
    44.34, 44.09, 44.15, 43.61, 44.33, 44.83, 45.10, 45.15,
    43.61, 44.33, 44.83, 45.10, 45.15, 45.98, 45.77, 45.54,
    45.38, 45.43, 44.86, 45.78, 46.05, 46.05, 45.43, 44.80
];

// Berechnung mit Standardwerten
$sarext = trader_sarext($preise);

if ($sarext === false) {
    echo "Fehler bei der Berechnung.\n";
} else {
    foreach ($sarext as $index => $wert) {
        $richtung = $wert > 0 ? 'Long (Aufwärtstrend)' : 'Short (Abwärtstrend)';
        printf("Index %d: SAR = %.4f (%s)\n", $index, $wert, $richtung);
    }
}
Index 1: SAR = -44.3400 (Short (Abwärtstrend)) Index 2: SAR = -44.3400 (Short (Abwärtstrend)) ...

SAREXT mit unterschiedlichen Long- und Short-Parametern

<?php
// Kursdaten
$preise = [
    100.0, 101.5, 103.2, 102.8, 104.5, 106.1, 105.3, 104.0,
    102.5, 101.0, 99.5,  98.2,  97.8,  99.0,  100.3, 101.8,
    103.5, 105.0, 106.8, 108.2, 107.5, 106.0, 104.5, 103.0
];

// Separate Konfiguration für Long- und Short-Beschleunigung
$sarext = trader_sarext(
    $preise,
    0.0,   // Startwert
    0.0,   // Versatz bei Umkehr
    0.01,  // Initialer AF Long (langsamer Start)
    0.01,  // AF-Schritt Long
    0.15,  // Max AF Long
    0.03,  // Initialer AF Short (schnellerer Start)
    0.03,  // AF-Schritt Short
    0.25   // Max AF Short
);

if ($sarext !== false) {
    $letzterIndex = array_key_last($sarext);
    $letzterSAR   = $sarext[$letzterIndex];
    $aktuellKurs  = $preise[$letzterIndex];

    echo "Letzter Kurs:  " . number_format($aktuellKurs, 2) . "\n";
    echo "Letzter SAR:   " . number_format(abs($letzterSAR), 2) . "\n";
    echo "Signal:        " . ($letzterSAR > 0 ? 'Long (Kaufsignal)' : 'Short (Verkaufsignal)') . "\n";
} else {
    echo "Fehler: Berechnung fehlgeschlagen.\n";
}
Letzter Kurs: 103.00 Letzter SAR: 108.20 Signal: Short (Verkaufsignal)

// Wichtig · Fallstricke

Voraussetzung: Die trader_sarext-Funktion steht nur zur Verfügung, wenn die PECL-Erweiterung trader installiert und aktiviert ist (extension=trader.so in der php.ini).

Lookback-Periode: Die ersten Werte des Eingabe-Arrays werden für die interne Initialisierung benötigt. Das Ergebnis-Array ist daher kürzer als das Eingabe-Array. Die Anzahl der fehlenden Anfangswerte hängt von den gewählten Parametern ab.

Vorzeichen-Konvention: Positive SAR-Werte stehen für Long-Positionen (SAR unterhalb des Kurses, Aufwärtstrend), negative Werte für Short-Positionen (SAR oberhalb des Kurses, Abwärtstrend). Dies weicht von manchen anderen Implementierungen ab.

Parameterwahl: Zu hohe Beschleunigungsfaktoren führen zu einem sehr reaktiven SAR, der häufig Umkehrsignale produziert (Whipsaws). Zu niedrige Werte machen den Indikator träge. Standardwerte (0.02 / 0.2) gelten als bewährter Ausgangspunkt.