Signatur
Beschreibung
trader_errno() ist Teil der PHP-TRADER-Erweiterung, die auf der TA-Lib (Technical Analysis Library) basiert. Die Funktion gibt den Fehlercode zurück, der beim letzten Aufruf einer TRADER-Funktion aufgetreten ist.
Da viele trader_*-Funktionen im Fehlerfall lediglich false zurückgeben, ohne eine Fehlermeldung auszugeben, ist trader_errno() das primäre Mittel zur Fehlerdiagnose. Der zurückgegebene Integer-Wert entspricht einem TA-Lib-internen Fehlercode (z. B. TA_SUCCESS = 0, TA_OUT_OF_RANGE_START_INDEX = 1, usw.).
Typisches Einsatzszenario: Nach einem fehlgeschlagenen Aufruf einer technischen Analyse-Funktion (etwa trader_macd()) kann der genaue Fehlergrund mit trader_errno() abgerufen und zum Debugging genutzt werden.
Die Fehlercodes entsprechen den TA_RetCode-Werten aus der TA-Lib. Ein Rückgabewert von 0 bedeutet Erfolg (TA_SUCCESS), alle anderen Werte stehen für unterschiedliche Fehlerzustände wie ungültige Parameter oder fehlerhafte Eingabedaten.
Rückgabewert
0 steht für TA_SUCCESS (kein Fehler). Alle anderen Werte sind TA-Lib-spezifische Fehlercodes, die auf Probleme wie ungültige Parameter, leere Eingabearrays oder Bereichsfehler hinweisen.Beispiele
Fehlerbehandlung nach einem fehlgeschlagenen MACD-Aufruf
<?php
// Absichtlich fehlerhafte Eingabedaten (zu wenig Datenpunkte)
$closePrices = [1.0, 2.0]; // Viel zu wenige Datenpunkte für MACD
$result = trader_macd($closePrices, 12, 26, 9);
if ($result === false) {
$errorCode = trader_errno();
echo "TRADER-Fehler aufgetreten. Fehlercode: " . $errorCode . PHP_EOL;
// Fehlercode 0 = TA_SUCCESS, andere Werte = Fehler
if ($errorCode !== 0) {
echo "Die Berechnung konnte nicht durchgeführt werden." . PHP_EOL;
}
} else {
echo "MACD erfolgreich berechnet." . PHP_EOL;
}
Erfolgreiche Berechnung – errno ist 0
<?php
// Ausreichend Datenpunkte für eine RSI-Berechnung
$closePrices = array_map('floatval', range(10, 60));
$result = trader_rsi($closePrices, 14);
if ($result !== false) {
$errorCode = trader_errno();
echo "RSI erfolgreich berechnet. Fehlercode: " . $errorCode . PHP_EOL; // 0 = TA_SUCCESS
echo "Letzter RSI-Wert: " . round(end($result), 2) . PHP_EOL;
} else {
echo "Fehlercode: " . trader_errno() . PHP_EOL;
}
// Wichtig · Fallstricke
Voraussetzung: Die PHP-TRADER-Erweiterung muss installiert und aktiviert sein (pecl install trader). Sie ist nicht Teil des PHP-Standardlieferumfangs.
Die Fehlercodes stammen direkt aus der TA-Lib-Enumeration TA_RetCode. Eine vollständige Liste der Codes ist in der TA-Lib-Dokumentation oder im Header ta_defs.h zu finden. Häufige Codes sind: 0 = TA_SUCCESS, 1 = TA_LIB_NOT_INITIALIZE, 2 = TA_BAD_PARAM.
Da der Fehlercode nur den letzten Aufruf widerspiegelt, sollte trader_errno() unmittelbar nach dem fehlgeschlagenen Aufruf abgerufen werden, bevor weitere TRADER-Funktionen aufgerufen werden.