Ein häufiger Anfängerfehler ist es, rohe Schlusskurse in ein Modell zu füttern und zu erwarten, dass es Muster findet. Kursniveaus sind nicht-stationär — ein Modell, das auf EUR/USD bei 1,05 trainiert wurde, weiß nichts mit 1,20 anzufangen. Feature-Engineering ist der Prozess, Rohdaten in stabile, vergleichbare, prädiktive Inputs zu verwandeln.
Kategorien nützlicher Features
- ▸Renditebasiert — logarithmische Renditen über verschiedene Horizonte (1-Bar, 5-Bar, 20-Bar) statt Kursniveaus.
- ▸Volatilitätsbasiert — realisierte Volatilität, ATR-Verhältnisse, Bollinger-Band-Breite.
- ▸Momentum/Trend — Moving-Average-Spreads, RSI, volatilitätsnormalisierte Rate-of-Change.
- ▸Querschnittlich — die Rendite-Rangfolge eines Assets relativ zu einem Vergleichskorb (stark genutzt im Equity-Quant).
- ▸Marktmikrostruktur — Geld-Brief-Spanne, Orderbuch-Ungleichgewicht, volumengewichtete Kennzahlen.
- ▸Kalender/Saisonalität — Wochentag, Monatsende, Nähe zu Optionsverfall als Flags.
Normalisierung zählt mehr als die Rohformel
Dasselbe Feature, auf zwei verschiedene Arten berechnet, kann sich in unterschiedlichen Volatilitätsregimen völlig anders verhalten. Eine rohe 20-Tage-Kursänderung von 3 Punkten bedeutet in einer Niedrig-Vol-Phase etwas anderes als in einer Hoch-Vol-Phase. Die Normalisierung anhand jüngster Volatilität (ein Z-Score) macht das Feature über die Zeit vergleichbar.
z = (x − rolling_mean(x, n)) / rolling_std(x, n)Durchgerechnetes Beispiel
Wenn eine 20-Tage-Kursänderung im Schnitt 0 mit einer rollierenden Standardabweichung von 1,5 Punkten beträgt, ergibt eine rohe Bewegung von 3 Punkten z = 2,0 — ein Zwei-Standardabweichungen-Ereignis, unabhängig davon, ob es in einem ruhigen oder volatilen Monat passierte. Das macht das Feature über Regime und Instrumente hinweg nutzbar.
Die Berechnung eines rollierenden Mittelwerts oder einer Standardabweichung mit dem gesamten Datensatz (einschließlich zukünftiger Bars) statt nur vergangener Daten lässt Backtests hervorragend aussehen und Live-Ergebnisse sofort einbrechen. Jedes Feature muss ausschließlich mit Informationen berechenbar sein, die strikt vor dem Bar verfügbar waren, den es kennzeichnet.
Feature-Zerfall
Die meisten Features haben eine begrenzte Haltbarkeit. Ein Momentum-Signal, das von 2015-2019 funktionierte, kann an Vorhersagekraft verlieren, sobald genug Teilnehmer dagegen handeln oder sich die Marktmikrostruktur ändert (z. B. Tick-Size-Änderungen, neue Teilnehmer). Verfolge die Feature-Performance rollierend und sei bereit, Features zu pensionieren, deren Korrelation mit Forward-Renditen zerfallen ist.
def zscore_feature(series, window=20):
roll_mean = series.rolling(window).mean().shift(1)
roll_std = series.rolling(window).std().shift(1)
return (series - roll_mean) / roll_std # shift(1) verhindert LookaheadDas Fazit
Gutes Feature-Design ist der Ort, an dem die eigentliche intellektuelle Arbeit des Quant-Tradings stattfindet — weit mehr als die Modellauswahl. Ein einfaches Modell mit gut designten Features schlägt konsequent ein anspruchsvolles Modell mit nachlässigen, leaky Features.