Signatur
Beschreibung
Die Funktion trader_set_unstable_period() gehört zur PECL-Erweiterung Trader, die technische Analyse-Indikatoren auf Basis der TA-Lib-Bibliothek bereitstellt. Viele Indikatoren (z. B. EMA, ATR, ADX) benötigen eine gewisse Anzahl an Eingangswerten, bevor sie stabile, verlässliche Ausgaben liefern können – diese Phase wird als instabile Periode oder Lookback-Aufwärmphase bezeichnet.
Mit trader_set_unstable_period() kann diese Aufwärmphase für eine spezifische Funktion manuell festgelegt werden. Das ist besonders nützlich, wenn man mit historischen Daten arbeitet und sicherstellen möchte, dass Berechnungen erst ab einem bestimmten Startpunkt als valide gelten. Der Parameter function_id entspricht einer der TRADER_FUNC_UNST_*-Konstanten.
Die Standardwerte der instabilen Perioden sind durch die TA-Lib-Bibliothek vorgegeben, können jedoch mit dieser Funktion überschrieben werden. Um den aktuell gesetzten Wert für eine Funktion abzufragen, steht trader_get_unstable_period() zur Verfügung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $function_id Pflicht | int | Die ID der Trader-Funktion, deren instabile Periode gesetzt werden soll. Zu verwenden ist eine der vordefinierten TRADER_FUNC_UNST_*-Konstanten, z. B. TRADER_FUNC_UNST_EMA oder TRADER_FUNC_UNST_ADX. |
|
| $period Pflicht | int | Die Anzahl der Datenpunkte, die als instabile Aufwärmphase gelten sollen. Muss eine nicht-negative ganze Zahl sein. Ein Wert von 0 deaktiviert die instabile Periode für die gewählte Funktion. |
Rückgabewert
true zurück, wenn die instabile Periode erfolgreich gesetzt wurde, andernfalls false.Beispiele
Instabile Periode für EMA setzen und auslesen
<?php
// Instabile Periode für den EMA-Indikator auf 50 Perioden setzen
$result = trader_set_unstable_period(TRADER_FUNC_UNST_EMA, 50);
if ($result) {
echo 'Instabile Periode erfolgreich gesetzt.' . PHP_EOL;
} else {
echo 'Fehler beim Setzen der instabilen Periode.' . PHP_EOL;
}
// Aktuellen Wert prüfen
$current = trader_get_unstable_period(TRADER_FUNC_UNST_EMA);
echo 'Aktuelle instabile Periode für EMA: ' . $current . PHP_EOL;
Instabile Periode für ADX-Indikator konfigurieren
<?php
// Schlusskurse (Beispieldaten)
$high = [48.70, 48.72, 48.90, 48.87, 48.82, 49.05, 49.20, 49.35, 49.92, 50.00];
$low = [47.79, 48.14, 48.39, 48.37, 48.24, 48.64, 48.94, 48.86, 49.50, 49.75];
$close = [48.16, 48.61, 48.75, 48.63, 48.74, 49.03, 49.07, 49.32, 49.91, 50.00];
// Instabile Periode für ADX auf 14 setzen
trader_set_unstable_period(TRADER_FUNC_UNST_ADX, 14);
// ADX berechnen
$adx = trader_adx($high, $low, $close, 3);
if ($adx !== false) {
echo 'ADX-Werte:' . PHP_EOL;
foreach ($adx as $value) {
echo round($value, 4) . PHP_EOL;
}
} else {
echo 'Berechnung fehlgeschlagen.' . PHP_EOL;
}
// Wichtig · Fallstricke
Voraussetzung: Die PECL-Erweiterung trader muss installiert und in der php.ini aktiviert sein (extension=trader). Sie ist nicht Bestandteil des PHP-Kerns.
Die TRADER_FUNC_UNST_*-Konstanten sind nur verfügbar, wenn die Trader-Erweiterung geladen ist. Eine falsche oder ungültige function_id führt dazu, dass die Funktion false zurückgibt. Es empfiehlt sich, den Rückgabewert stets zu prüfen.
Das Setzen einer zu niedrigen instabilen Periode kann zu numerisch ungenauen oder irreführenden Indikatorwerten führen, da der Algorithmus nicht genug Daten zur Stabilisierung hatte. Im Zweifelsfall sollte der Standardwert beibehalten werden.