Start · Sprachen · PHP · Referenz · trader_aroonosc

trader_aroonosc

Funktion

Berechnet den Aroon-Oszillator aus Hoch- und Tiefkursen über einen definierten Zeitraum und gibt ein Array mit den Oszillator-Werten zurück.

Kategorie: math

Signatur

trader_aroonosc(array $high, array $low, int $timePeriod = 14): array|false

Beschreibung

Der Aroon-Oszillator ist ein technischer Indikator aus der Aroon-Indikatorenfamilie und wird aus der Differenz von Aroon-Up und Aroon-Down gebildet. Er misst die Stärke und Richtung eines Trends: Positive Werte nahe +100 deuten auf einen starken Aufwärtstrend hin, negative Werte nahe -100 auf einen starken Abwärtstrend. Ein Wert um 0 signalisiert eine neutrale oder seitwärts tendierende Marktphase.

Die Funktion gehört zur trader-Erweiterung (PECL), die technische Analysefunktionen aus der TA-Lib-Bibliothek in PHP bereitstellt. Eingegeben werden je ein Array mit Hochkursen (high) und Tiefkursen (low) sowie der gewünschte Beobachtungszeitraum timePeriod. Die Arrays müssen numerisch indiziert und gleich lang sein.

Typische Anwendungsfälle sind die algorithmische Aktien-, Forex- oder Kryptowährungsanalyse, bei der Kauf- und Verkaufssignale automatisch erkannt werden sollen. Kreuzt der Oszillator die Nulllinie von unten nach oben, kann dies als Kaufsignal gewertet werden, ein Kreuzen von oben nach unten als Verkaufssignal.

Wichtig: Das Ergebnis-Array enthält am Anfang weniger Werte als die Eingabe-Arrays, da für die ersten timePeriod Elemente noch keine Berechnung möglich ist (sogenannter Lookback). Die gültigen Werte beginnen erst ab dem Index timePeriod.

Parameter

Name Typ Default Beschreibung
$high Pflicht array Numerisch indiziertes Array mit den Hochkursen der Perioden (z. B. Tages-Hochs einer Aktie).
$low Pflicht array Numerisch indiziertes Array mit den Tiefkursen der Perioden (z. B. Tages-Tiefs einer Aktie). Muss dieselbe Länge wie high haben.
$timePeriod int 14 Anzahl der Perioden, über die der Aroon-Oszillator berechnet wird. Zulässiger Bereich: 2–100000. Standardwert ist 14.

Rückgabewert

Typ
array|false
Beschreibung
Im Erfolgsfall ein numerisch indiziertes Array mit den berechneten Aroon-Oszillator-Werten (Gleitkommazahlen zwischen -100 und +100). Bei einem Fehler (z. B. ungültige Eingabedaten oder falscher Zeitraum) wird false zurückgegeben.

Beispiele

Grundlegende Berechnung des Aroon-Oszillators

<?php
// Beispielhafte Hoch- und Tiefkursdaten (z. B. einer Aktie über 20 Tage)
$high = [102, 104, 103, 107, 110, 108, 112, 115, 113, 116,
          118, 117, 120, 119, 121, 124, 122, 125, 127, 126];
$low  = [ 99, 101, 100, 104, 107, 105, 109, 112, 110, 113,
          115, 114, 117, 116, 118, 121, 119, 122, 124, 123];

$result = trader_aroonosc($high, $low, 14);

if ($result === false) {
    echo 'Fehler bei der Berechnung.' . PHP_EOL;
} else {
    echo 'Aroon-Oszillator Werte:' . PHP_EOL;
    foreach ($result as $index => $value) {
        printf('Index %2d: %+.4f%s', $index, $value, PHP_EOL);
    }
}
Aroon-Oszillator Werte: Index 14: +85.7143 Index 15: +85.7143 Index 16: +71.4286 Index 17: +85.7143 Index 18: +100.0000 Index 19: +92.8571

Trendanalyse mit Nulllinien-Crossover-Erkennung

<?php
// Kursreihen mit Trendwechsel
$high = [120, 119, 118, 117, 116, 115, 114, 113, 112, 111,
          110, 111, 112, 114, 115, 117, 119, 121, 122, 124];
$low  = [117, 116, 115, 114, 113, 112, 111, 110, 109, 108,
          107, 108, 109, 111, 112, 114, 116, 118, 119, 121];

$result = trader_aroonosc($high, $low, 10);

if ($result !== false) {
    $values = array_values($result);
    for ($i = 1; $i < count($values); $i++) {
        $prev = $values[$i - 1];
        $curr = $values[$i];
        // Nulllinien-Crossover erkennen
        if ($prev < 0 && $curr >= 0) {
            echo "Kaufsignal bei Eintrag " . ($i + 10) . ": Aroon-OSC wechselt von {$prev} auf {$curr}" . PHP_EOL;
        } elseif ($prev >= 0 && $curr < 0) {
            echo "Verkaufssignal bei Eintrag " . ($i + 10) . ": Aroon-OSC wechselt von {$prev} auf {$curr}" . PHP_EOL;
        }
    }
}
Kaufsignal bei Eintrag 19: Aroon-OSC wechselt von -20 auf 20

// Wichtig · Fallstricke

Erweiterung erforderlich: trader_aroonosc() ist Teil der PECL-Erweiterung trader, die separat installiert werden muss (pecl install trader) und in der php.ini aktiviert werden muss (extension=trader). Sie ist nicht Teil der PHP-Standardinstallation.

Lookback-Effekt: Das Ergebnis-Array enthält weniger Einträge als die Eingabe-Arrays. Für einen timePeriod von n fehlen die ersten n Werte. Beim Mapping auf Datums- oder Indexreihen muss dies berücksichtigt werden, um eine falsche Zuordnung zu vermeiden.

Array-Länge: high und low müssen identische Länge haben und mindestens timePeriod + 1 Elemente enthalten, sonst gibt die Funktion false zurück.