Signatur
Beschreibung
Die Funktion trader_beta gehört zur TRADER-Erweiterung (basierend auf der TA-Lib), die technische Analyse-Indikatoren für PHP bereitstellt. Sie berechnet den Beta-Koeffizienten zwischen zwei Preisreihen – klassischerweise einem Wertpapier und einem Referenzindex (z. B. S&P 500).
Der Beta-Koeffizient ist ein Maß für die relative Volatilität: Ein Beta von 1 bedeutet, dass sich das Wertpapier genau wie der Markt bewegt. Ein Beta > 1 zeigt eine stärkere Schwankung als der Markt an, Beta < 1 eine geringere. Negative Beta-Werte deuten auf eine gegenläufige Bewegung hin.
Technisch gesehen wird Beta über einen rollierenden Zeitraum (timePeriod) mittels linearer Regression berechnet: Beta = Cov(r_asset, r_market) / Var(r_market), wobei r die prozentualen Renditen bezeichnet.
Diese Funktion eignet sich besonders im Bereich des Portfolio-Managements und der Risikoanalyse, um die Sensitivität eines Assets gegenüber Marktbewegungen zu messen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real0 Pflicht | array | Numerisches Array mit den Preisdaten des zu analysierenden Wertpapiers (z. B. Schlusskurse). | |
| $real1 Pflicht | array | Numerisches Array mit den Preisdaten des Referenzindex oder Vergleichsassets (z. B. S&P 500 Schlusskurse). | |
| $timePeriod | int | 5 | Anzahl der Perioden, über die das rollierendende Beta berechnet wird. Muss im Bereich 1–100000 liegen. Standard ist 5. |
Rückgabewert
timePeriod Elemente fehlen (lookahead-kompensiert). Bei einem Fehler (z. B. ungültige Parameter oder zu kurze Eingabe-Arrays) wird false zurückgegeben.Beispiele
Einfache Beta-Berechnung zwischen Aktie und Index
<?php
// Schlusskurse einer Aktie (z. B. AAPL)
$asset = [150.0, 152.5, 149.0, 153.0, 155.0, 154.0, 157.5, 159.0, 158.0, 161.0];
// Schlusskurse des Referenzindex (z. B. S&P 500)
$market = [4200.0, 4215.0, 4195.0, 4220.0, 4240.0, 4230.0, 4255.0, 4270.0, 4260.0, 4285.0];
// Beta über 5 Perioden berechnen
$beta = trader_beta($asset, $market, 5);
if ($beta === false) {
echo "Fehler bei der Beta-Berechnung." . PHP_EOL;
} else {
echo "Beta-Werte:" . PHP_EOL;
foreach ($beta as $index => $value) {
echo "Periode $index: " . round($value, 4) . PHP_EOL;
}
}
Beta-Berechnung mit längerem Zeitraum zur Glättung
<?php
// Längere Zeitreihe für aussagekräftigere Analyse
$asset = array_map(fn($i) => 100 + sin($i * 0.3) * 10 + $i * 0.5, range(0, 29));
$market = array_map(fn($i) => 3000 + sin($i * 0.3) * 50 + $i * 2, range(0, 29));
// Beta über 14 Perioden (typische technische Analyse)
$beta14 = trader_beta($asset, $market, 14);
if ($beta14 !== false) {
$last = end($beta14);
echo "Letzter Beta-Wert (14 Perioden): " . round($last, 6) . PHP_EOL;
$avg = array_sum($beta14) / count($beta14);
echo "Durchschnittliches Beta: " . round($avg, 6) . PHP_EOL;
} else {
echo "Berechnung fehlgeschlagen." . PHP_EOL;
}
// Wichtig · Fallstricke
Voraussetzung: Die TRADER-PHP-Erweiterung muss installiert und aktiviert sein (pecl install trader bzw. entsprechender Paketmanager). Ohne diese Erweiterung ist trader_beta nicht verfügbar.
Array-Länge: Beide Eingabe-Arrays müssen gleich lang sein. Unterschiedliche Längen führen zu false als Rückgabewert.
Lookahead-Offset: Das Ergebnis-Array enthält weniger Elemente als die Eingabe-Arrays. Die ersten timePeriod - 1 Werte können nicht berechnet werden, da nicht genug historische Daten vorliegen. Die Indizes des Rückgabe-Arrays beginnen daher erst bei timePeriod - 1.
Interpretation: Beta misst die Korrelation und Stärke der Bewegung relativ zum Markt, ist aber kein Korrelationskoeffizient. Ein Beta nahe 0 bedeutet keine oder geringe Abhängigkeit vom Markt, nicht zwingend geringe Volatilität.