Signatur
Beschreibung
Die Funktion trader_obv ist Teil der PECL-Erweiterung Trader, die technische Analysefunktionen auf Basis der TA-Lib bereitstellt. Das On-Balance-Volume (OBV) ist ein Momentum-Indikator, der das kumulative Volumen in Relation zur Kursentwicklung setzt.
Das Grundprinzip: Schließt der Kurs eines Tages höher als der Vortag, wird das Volumen des Tages zum OBV addiert. Schließt er tiefer, wird es subtrahiert. Bleibt der Kurs unverändert, ändert sich das OBV nicht. Durch diese Akkumulation entsteht ein Indikator, der Kauf- und Verkaufsdruck sichtbar macht.
OBV wird häufig eingesetzt, um Trends zu bestätigen oder Divergenzen zwischen Kurs und Volumen zu erkennen. Steigt der Kurs bei gleichzeitig steigendem OBV, gilt das als starkes Kaufsignal. Fällt das OBV trotz steigendem Kurs, kann dies auf eine bevorstehende Trendwende hindeuten.
Die Funktion ist nützlich in Finanzanwendungen, Handelssystemen und im Backtesting von Strategien für Aktien, Kryptowährungen oder andere handelbare Instrumente.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $real Pflicht | array | Numerisches Array mit den Schlusskursen (Closing Prices) als Float-Werte, chronologisch aufsteigend sortiert. | |
| $volume Pflicht | array | Numerisches Array mit den Handelvolumina, die den jeweiligen Schlusskursen in real entsprechen. Beide Arrays müssen dieselbe Länge haben. |
Rückgabewert
false zurückgegeben.Beispiele
Einfache OBV-Berechnung mit Beispieldaten
<?php
// Schlusskurse und Volumina für 6 Handelstage
$closePrices = [44.34, 44.09, 44.15, 43.61, 44.33, 44.83];
$volumes = [24010, 22330, 19600, 17540, 15070, 18100];
$obv = trader_obv($closePrices, $volumes);
if ($obv === false) {
echo "Fehler bei der OBV-Berechnung.";
} else {
foreach ($obv as $index => $value) {
echo "Tag $index: OBV = " . round($value, 2) . PHP_EOL;
}
}
OBV-Divergenz erkennen
<?php
// Kurse steigen, aber OBV fällt — mögliche Trendumkehr
$closePrices = [100.0, 101.5, 103.0, 104.5, 105.0, 106.0];
$volumes = [50000, 40000, 30000, 20000, 10000, 5000];
$obv = trader_obv($closePrices, $volumes);
if ($obv !== false) {
$first = reset($obv);
$last = end($obv);
echo "Erster OBV-Wert: " . $first . PHP_EOL;
echo "Letzter OBV-Wert: " . $last . PHP_EOL;
if ($last < $first) {
echo "Warnung: OBV-Divergenz erkannt — sinkendes Volumen bei steigendem Kurs!" . PHP_EOL;
}
}
// Wichtig · Fallstricke
Voraussetzung: Die PECL-Erweiterung trader muss installiert und aktiviert sein (pecl install trader und entsprechender Eintrag in der php.ini). Ohne diese Erweiterung ist trader_obv nicht verfügbar.
Array-Länge: Beide Arrays (real und volume) müssen die gleiche Anzahl an Elementen enthalten. Unterschiedliche Längen führen zu false als Rückgabewert.
Index-Verschiebung: Das Rückgabe-Array beginnt möglicherweise nicht bei Index 0 des Eingabe-Arrays. Beachte den tatsächlichen Startindex des Rückgabe-Arrays bei der Zuordnung zu den Eingabedaten.