← Alle Insights

Meta-Labeling: ML-Filter über klassische Trading-Strategien.

Die meisten ML-Trading-Modelle scheitern, weil sie versuchen, alles selbst zu entscheiden: Richtung, Timing, Größe. Meta-Labeling teilt das Problem auf — und macht aus einem mittelmäßigen Modell oft das, was funktioniert.

Wenn ich einen Mandanten frage, was sein ML-Modell tut, höre ich oft: „Es sagt mir, ob ich kaufen oder verkaufen soll." Das ist die Standard-Architektur — und meistens der Grund, warum es nicht läuft. Meta-Labeling, das Konzept von Marcos Lopez de Prado, dreht die Frage um: das ML-Modell entscheidet nicht was gehandelt wird, sondern ob ein gegebener Trade gehandelt wird.

Die zwei Modelle.

Meta-Labeling besteht aus zwei Schichten:

Das Primärmodell hat hohen Recall (es findet alle potenziellen Setups), aber niedrige Precision (viele False Positives). Das Sekundärmodell filtert die schlechten heraus. Sie tauschen also bewusst Trade-Häufigkeit gegen Trefferquote.

Wieso das besser ist als ein All-in-One-Modell.

Ein End-to-End-ML-Modell muss vier Dinge gleichzeitig lernen: Richtungsvorhersage, Timing, Risiko-Bewertung, Markt-Regime. Bei 5000 Beispielen pro Jahr ist das jedem Klassifizierer zu viel verlangt — er overfittet eine der vier Dimensionen und ignoriert die anderen.

Mit Meta-Labeling fixieren Sie zwei der Dimensionen (Richtung und Timing kommen vom Primärmodell) und lassen das ML-Modell nur noch das tun, wofür es geeignet ist: Pattern-Erkennung auf hoch­ dimensionalen Features. Das Modell hat einen klar umrissenen Job, nicht ein vages „Sage-mir-die-Zukunft".

Welche Features das Meta-Modell sieht.

Das Meta-Modell bekommt nicht den Preis — es bekommt Kontext. Ich nutze typischerweise:

Bet-Sizing aus der Meta-Probability.

Hier wird Meta-Labeling richtig elegant: das Sekundärmodell liefert nicht nur „ja / nein", sondern eine Wahrscheinlichkeit p ∈ [0, 1]. Daraus leiten Sie direkt die Positionsgröße ab.

size(t) = max(0, 2 × p_meta(t) - 1)

p_meta = 0.5  →  size = 0    (kein Edge, kein Trade)
p_meta = 0.7  →  size = 0.4  (40 % der Maximalposition)
p_meta = 0.9  →  size = 0.8  (80 % der Maximalposition)
p_meta = 1.0  →  size = 1.0  (Maximalposition)

Das ist die diskrete Variante einer Kelly-ähnlichen Allokation, ohne dass Sie das Edge schätzen müssen — das Edge steckt direkt in p_meta. In der Praxis kappe ich p_meta bei 0.95, damit die Größe nicht auf einzelne Modell-Outlier reagiert.

Implementation in Python.

# Meta-Labeling-Pipeline, vereinfacht
import pandas as pd
from sklearn.ensemble import RandomForestClassifier

# 1. Primärmodell: SMA-Crossover
def primary_signal(prices, fast=20, slow=50):
    sig = (prices.rolling(fast).mean() > prices.rolling(slow).mean()).astype(int)
    return sig.diff().fillna(0)  # +1 entry long, -1 exit

# 2. Triple-Barrier-Labels nur für Trades, die das Primärmodell aufmacht
entries = primary_signal(prices)
events  = entries[entries != 0].index
labels  = triple_barrier_labels(prices, events, sigma)
# Meta-Label: 1 wenn Primärmodell-Richtung gewinnt, sonst 0
meta_y = ((labels > 0) == (entries.loc[events] > 0)).astype(int)

# 3. Features für Meta-Modell
X = build_context_features(prices, events)  # Vola, Volumen, Regime, ...

# 4. Meta-Modell trainieren mit Purged K-Fold
clf = RandomForestClassifier(n_estimators=200, max_depth=5)
clf.fit(X_train, meta_y_train)

# 5. Live: Trade nur wenn p_meta > Schwelle, Größe ∝ p_meta
p_meta = clf.predict_proba(X_live)[:, 1]
position_size = np.maximum(0, 2 * p_meta - 1)

Ergebnis aus einer Trendfolge-Strategie.

Ein konkretes Beispiel aus einem Mandanten-Projekt: eine klassische 50/200-EMA-Trendfolge auf US-Aktien-ETFs. Ohne Meta-Filter: Sharpe 0.7, Win-Rate 38 Prozent, Max DD 22 Prozent.

Nach Meta-Labeling mit RandomForest-Filter (Schwelle p_meta > 0.55): Sharpe 1.3, Win-Rate 53 Prozent, Max DD 12 Prozent. Trade-Anzahl: minus 30 Prozent. Die Strategie wird selektiver, handelt seltener — aber wenn sie handelt, hat sie deutlich besseren Edge.

Wichtig: das Primärmodell wurde nicht verändert. Die ganze Verbesserung kommt aus dem Filter. Das ist die Pointe — Sie verbessern eine bestehende, verstandene Strategie, statt eine neue Blackbox zu bauen.

Caveat: Overfitting des Meta-Modells.

Meta-Modelle overfitten leichter als Primärmodelle, weil sie nur auf den Subset der Primär-Signale trainiert werden — typischerweise wenige hundert bis tausend Beispiele. Drei Gegenmittel:

Meine Praxis.

Ich nutze Meta-Labeling als Strategie-Verbesserer, nicht als Stand-Alone-ML. Konkret: jede klassische Strategie, die ich für Mandanten umsetze, bekommt — optional — einen Meta-Filter. Das Primärmodell ist transparent und auditierbar, das Meta-Modell ist die ML-Schicht obendrauf, die man bei Bedarf ein- und ausschalten kann.

Was ich nicht mehr baue: pure End-to-End-Deep-Learning-Modelle, die alles selbst entscheiden. Die Erfolgsquote in der Praxis ist zu niedrig, und wenn sie versagen, weiß niemand warum. Meta-Labeling ist die ehrlichere Architektur: klassische Logik plus interpretierbarer ML-Filter.

Sie haben eine funktionierende Strategie, die Sie mit ML verbessern wollen? Erstgespräch buchen — wir prüfen, ob Meta-Labeling Mehrwert bringt.