CUSUM-Filter erklärt: Ereignisstichproben im Financial Machine Learning
Erfahre, wie der CUSUM-Filter logarithmische Renditen kumuliert, Ereigniszeitpunkte auswählt und wie Schwellenwahl, Zeitstempel und Validierung zu behandeln sind.
In diesem LeitfadenWelche Frage beantwortet der CUSUM-Filter?
Kurze Zusammenfassung
Ein CUSUM-Filter summiert kleine Logrenditen in zwei getrennten Pfaden, einem positiven und einem negativen, und markiert ein Ereignis, sobald einer davon eine festgelegte Schwelle überschreitet. So lassen sich Zeiten mit ausreichend großer kumulierter Bewegung auswählen, statt jede Zeitkerze gleich zu gewichten. Der Filter bestimmt den Ereigniszeitpunkt; er sagt weder die Richtung voraus noch vergibt er ein Trainingslabel oder garantiert Stabilität, Liquidität oder Gewinn.
Welche Frage beantwortet der CUSUM-Filter?
Eine Stichprobe bei jedem Tagesschluss kann viele ruhige Beobachtungen enthalten, während Phasen mit bedeutsamer kumulierter Bewegung untergehen. Ein einzelner Schwellenvergleich mit dem Rohpreis kann wiederum wiederholt auslösen, wenn der Preis um ein Niveau pendelt. Der CUSUM-Filter summiert aufeinanderfolgende Abweichungen getrennt nach oben und unten. Erst wenn seit dem letzten Reset genug Bewegung zusammengekommen ist, wird ein neuer Ereigniszeitpunkt erfasst.
López de Prado stellt den symmetrischen Filter in Kapitel 2 von Advances in Financial Machine Learning als Teil der ereignisbasierten Stichprobenziehung vor. Die mlfinpy-Dokumentation zur Filterung beschreibt, wie die ausgewählten Ereignisse anschließend zur Messung späterer Renditen dienen können. Das Grundprinzip ist älter als seine Finanzanwendung: Pages Arbeit zu Continuous Inspection Schemes behandelt kumulierte Abweichungen zur Erkennung anhaltender Veränderungen.
Die beiden kumulierten Pfade
Berechne aus positiven Schlusskursen P die Logrendite rₜ = ln(Pₜ/Pₜ₋₁). Aktualisiere dann einen positiven und einen negativen Akkumulator:
$$S^+_t = max(0, S^+_{t-1} + r_t)$$ $$S^-_t = min(0, S^-_{t-1} + r_t)$$
In diesem Leitfaden wird ein Ereignis markiert, wenn S⁺>h oder S⁻<−h gilt. Der Akkumulator, der ausgelöst hat, wird auf null zurückgesetzt; der andere wird mit den folgenden Renditen weitergeführt. Eine neue Bewegung kann danach wieder Ereignisse aufbauen. h muss positiv sein und wird in Einheiten der Logrendite angegeben. h=0,005 entspricht ungefähr einem kumulierten Logbewegungsmaß von einem halben Prozentpunkt, nicht einem festen Geldbetrag pro Kerze.
Der Erläuterungstext der Bibliothek spricht vom Erreichen der Schwelle; der veröffentlichte Code prüft strikt S⁺>h beziehungsweise S⁻<−h und setzt den ausgelösten Akkumulator zurück. Siehe die mlfinpy-Implementierung des CUSUM-Filters. Ob bei exakter Gleichheit > oder ≥ gilt, ist daher eine Implementierungsentscheidung, die dokumentiert werden sollte. Auch Reset und Reihenfolge der Prüfungen können je nach Version variieren; gleichen Sie die Beschreibung mit dem tatsächlich verwendeten Code ab.
Ein hypothetisches Beispiel für den Auslöser
Angenommen, die Schlusskurse lauten 100,00 → 100,20 → 100,40 → 100,60 → 100,40 → 100,20 → 100,00 und h=0,005 Logrenditeeinheiten. Im Aufwärtspfad beträgt die kumulierte Rendite von 100,00 bis 100,60 ln(100,60/100,00)=0,005982, also etwa 0,598 %. Beim Schlusskurs 100,60 überschreitet sie die Schwelle und markiert ein Aufwärtsereignis. Der positive Akkumulator wird anschließend zurückgesetzt.
Auf dem Rückweg von 100,60 auf 100,00 beträgt die kumulierte Logrendite ln(100,00/100,60)=−0,005982. Sie unterschreitet −0,005 und löst beim Schlusskurs 100,00 ein weiteres Ereignis aus. Diese Werte dienen nur der Veranschaulichung; sie sind weder Marktdaten noch ausführbare Kurse. In der Praxis steht ein Schlusskurs erst nach Abschluss der Kerze fest. Eine Handelsauswertung muss den Informationszeitpunkt und einen realistischen späteren Ausführungskurs berücksichtigen.
Feste oder dynamische Schwelle wählen
Eine feste Schwelle h ist leicht zu erklären und zu reproduzieren. In einer ruhigen Marktphase kann sie allerdings viele Ereignisse liefern, während sie in einer volatilen Phase nur selten auslöst. Alternativ lässt sich hₜ etwa anhand einer rollierenden Volatilität variieren. Die Schätzung muss zum Entscheidungszeitpunkt kausal verfügbar sein. Verwenden Sie nur bis dahin bekannte Beobachtungen und vermeiden Sie zentrierte Fenster oder nachträglich revidierte Werte.
Bei einer dynamischen Schwelle sollten Sie Einheiten und zeitliche Zuordnung zur Rendite rₜ festlegen und dokumentieren, was bei fehlenden Volatilitätswerten geschieht. Die Anpassung an Volatilität macht Ereignisse nicht automatisch vergleichbar: Die gewählte Schätzmethode verändert die Ereignisdichte über Marktregime hinweg. Halten Sie Fensterlänge, Umgang mit fehlenden Werten und die Frage fest, ob der aktuelle Schlusskurs in die Schwellenberechnung eingeht.
Schwelle, Rauschen und unregelmäßige Zeit
Eine kleinere Schwelle erkennt kumulierte Bewegungen früher, erzeugt aber mehr Ereignisse und kann stärker auf kurzfristiges Rauschen reagieren. Eine größere Schwelle filtert kleinere Bewegungen heraus, kann relevante Änderungen jedoch verpassen oder später erfassen. Einen universell besten Wert gibt es nicht. Wählen Sie h entsprechend der Forschungsfrage und beurteilen Sie die Zahl und zeitliche Verteilung der Ereignisse auf Trainingsdaten. Optimieren Sie nicht anhand der abschließenden Testperiode.
Die Zahl der CUSUM-Ereignisse entspricht nicht der Zahl der Zeitkerzen. Zwischen Ereignissen können viele Kerzen liegen; nach einem Reset können neue Bewegungen jedoch auch kurz hintereinander weitere Ereignisse auslösen. Diese unregelmäßigen Abstände sind beabsichtigt. Wenn Merkmale oder Modelle gleiche Zeitschritte voraussetzen, berücksichtigen Sie die verstrichene Zeit explizit oder verwenden Sie eine passende zeitbasierte Struktur, statt jede Ereigniszeile als gleich langen Schritt zu behandeln.
Filter, Stabilitätstest und Ergebnislabel auseinanderhalten
CUSUM bezeichnet mehrere Verfahren. Der hier beschriebene Filter summiert Preislogrenditen und verwendet eine operative Schwelle, um Stichprobenzeitpunkte auszuwählen. Ein CUSUM-Test in der Ökonometrie untersucht dagegen anhand rekursiver Residuen oder einer verwandten Statistik, ob Regressionsparameter unter einem bestimmten Modell stabil sind. Er beruht auf einer definierten Referenzverteilung und kritischen Grenzen. Die Schwelle h des Filters ist kein kritischer Testwert. Siehe den Leitfaden zum CUSUM-Test auf Regressionsstabilität und rekursive Residuen.
Auch Ereignisauswahl und Ereignislabel sind verschiedene Schritte. CUSUM wählt einen Startzeitpunkt; eine andere Regel misst anschließend das Ergebnis. Bei der Triple-Barrier-Methode entscheidet beispielsweise die erste horizontale Preisgrenze oder die vertikale Zeitgrenze über das Outcome. Mehr dazu im Leitfaden zur Triple-Barrier-Methode und Finanzereignis-Labels. Der Filter sagt allein weder die spätere Richtung voraus noch erzeugt er y. Er garantiert auch keine Stationarität, Liquidität oder Profitabilität.
Zeitstempel, Preise und belastbare Auswertung
Bei Schlusskursrenditen ist ein Ereignis erst am Schluss der aktuellen Kerze bekannt, nicht schon zu deren Beginn. Wird der aktuelle Schlusskurs zur Feature-Berechnung verwendet, darf die Entscheidung nicht so behandelt werden, als sei dieser Wert vorher bekannt gewesen. Legen Sie fest, wann Merkmale berechnet und Orders ausgelöst werden können und welcher nachfolgende Preis als Ausführung gilt. Ein Signal am Schluss mit angenommener Ausführung zum selben Schluss kann einen zeitlichen Vorteil vortäuschen.
Logrenditen erfordern positive Preise. Für eine Preisreihe mit Null- oder Negativwerten ist ln(Pₜ/Pₜ₋₁) nicht in der üblichen Form definiert, was bei manchen Futures- oder transformierten Reihen relevant ist. Prüfen Sie Preislücken, Kapitalmaßnahmen, Futures-Rolls, fehlende Beobachtungen und Zeitzonen. Dokumentieren Sie Preisquelle, Frequenz, Handelskalender und Regeln für fehlende Daten.
Wenn ein späteres Ergebnis über einen festen Zeitraum gemessen wird, können sich Ereignisfenster überlappen. Bewahren Sie die tatsächlichen Ereigniszeiten und nutzen Sie eine chronologische oder überlappungsbewusste Validierung statt zufälliger Zeilenaufteilung. Berücksichtigen Sie Spread, Provisionen, Slippage, Funding oder Leihkosten und Markteinfluss, wenn die Zielgröße handelbar sein soll. Eine strukturierte Stichprobenziehung ist für sich kein Nachweis für ein prognostisches Signal oder Gewinne.
Häufige Fragen
Q1Sagt der CUSUM-Filter die nächste Marktrichtung voraus?
Nein. Er markiert ein Ereignis nach einer kumulierten Bewegung nach oben oder unten. Was nach der Markierung geschieht, wird dadurch nicht vorhergesagt; dafür braucht es ein separates Ziel, Merkmale und eine Auswertung.
Q2Muss die Schwelle fest sein?
Nein. Sie kann fest oder zeitvariabel sein. Bei einer dynamischen Schwelle muss die Schätzung aus Informationen stammen, die zum Entscheidungszeitpunkt vorliegen; Einheiten und zeitliche Zuordnung sollten dokumentiert werden.
Q3Ist jedes CUSUM-Ereignis eine Handelsgelegenheit?
Nein. Ein Ereignis markiert eine Stichprobe oder den Beginn einer späteren Messung. Liquidität, Spread, Kosten, Ausführung und Ergebnisse außerhalb der Trainingsdaten sind separate Fragen.
Quellen und weiterführende Lektüre
Problem melden
Wir bereiten eine E-Mail mit dem Link zu diesem Artikel vor. Mark erhält den Hinweis erst nach dem Senden
Schnelltest
Fertig gelesen? Prüfe dich mit 3 Fragen
Frage 01
Wann markiert dieser Leitfaden ein Ereignis?
Wähle eine Antwort, um die Erklärung zu sehen
Optionsglossar
The current IV's position between a lookback-period low and high; one outlier can distort it, so it should not be read as a standalone signal.
Detaillierten Leitfaden lesenIV percentileThe percentage of observations in a lookback window below the current IV; the result depends on the data series, window, and treatment of missing or extreme values.
Detaillierten Leitfaden lesenVIXA constant 30-day expected-volatility measure for the S&P 500 calculated from a strip of SPX option prices; it is not the IV of an individual stock or contract.
Detaillierten Leitfaden lesen