← Alle Insights

Dark-Pool-Execution: Im Verborgenen handeln.

Dark Pools haben einen schlechten Ruf — oft zu Unrecht, manchmal zu Recht. Für institutionelle Trader sind sie ein essenzielles Werkzeug, um große Orders ohne Information Leakage in den Markt zu bringen. Für Retail-Trader und ungenügend informierte Akteure sind sie ein potenzielles Feld für Adverse Selection. Wer Dark Pools nutzt, sollte verstehen, was dort wirklich passiert.

Was Dark Pools sind — und was nicht.

Ein Dark Pool ist ein Handelsplatz ohne Pre-Trade-Transparenz: Orderbuch und Quotes sind nicht öffentlich sichtbar. Erst nach erfolgter Ausführung wird der Trade gemeldet — oft mit einer kleinen Verzögerung, je nach Regulierung des jeweiligen Marktes.

Was Dark Pools nicht sind: unregulierte Schattenmärkte. Die meisten relevanten Dark Pools — IEX, MS Pool, JPMX, Liquidnet, UBS PIN, Cboe BIDS — sind entweder als ATS (USA) oder als MTF/OTF (Europa) reguliert. Trades unterliegen denselben Best-Execution- und Reporting-Pflichten wie an Lit Exchanges.

Wer dort handelt und warum.

Die ursprüngliche Idee von Dark Pools war einfach: Wenn eine Pensionskasse fünf Millionen Aktien Apple verkaufen will, möchte sie nicht, dass das Orderbuch das sieht. Eine sichtbare Großorder bewegt den Markt nach unten, bevor sie überhaupt ausgeführt ist. In einem Dark Pool kann sie gegen eine gleichermaßen große Counterparty matchen, ohne dass jemand sonst es mitbekommt — beide Seiten sparen Impact.

In der Praxis sind die Akteure heute heterogener: Institutionelle Buy-Side mit großen Orders bilden weiterhin den Kern. Daneben handeln Market Maker, die in mehreren Venues gleichzeitig Liquidität stellen. Und schließlich sind auch viele HFT-Firmen in Dark Pools aktiv — was zu der berechtigten Diskussion um Toxizität geführt hat.

Mid-Point-Matching: Der Standardpreis im Dark Pool.

Die meisten Dark Pools matchen zum Mid-Point des öffentlichen Marktes — also dem Mittelwert zwischen Bid und Ask der primären Lit-Venues. Das ist auf den ersten Blick attraktiv: Käufer und Verkäufer sparen jeweils den halben Spread.

Der Haken: Der Mid-Point wird gegen die aktuelle Quote berechnet — und die kann gerade in volatilen Phasen sehr schnell wandern. Wenn der Bid bei 100,00 und der Ask bei 100,04 steht, ist der Mid bei 100,02. Wer hier kauft, glaubt einen guten Preis bekommen zu haben. Wenn aber 50 Millisekunden später eine ungünstige Nachricht kommt und der Markt auf 99,95/99,99 fällt, war der „Mid"-Kauf bei 100,02 in Wirklichkeit ein extrem schlechter Preis. Genau diese Asymmetrie heißt Adverse Selection.

import numpy as np
import pandas as pd

def estimate_toxicity(fills: pd.DataFrame, horizon_ms: int = 5000) -> float:
    """
    Schätzt Adverse Selection: Wie oft bewegt sich der Mid kurz nach
    einem Dark-Pool-Fill gegen uns?
    fills: DataFrame mit ['ts', 'side', 'fill_price', 'mid_after_horizon'].
    Rückgabe: durchschnittliche Bewegung in Basispunkten gegen die Fill-Richtung.
    """
    def signed_move(row):
        delta = row["mid_after_horizon"] - row["fill_price"]
        # Bei buy ist negative Bewegung schlecht; bei sell positive Bewegung schlecht.
        signed = delta if row["side"] == "sell" else -delta
        return 1e4 * signed / row["fill_price"]

    return fills.apply(signed_move, axis=1).mean()

# Beispiel: 4 Dark-Pool-Fills, kurzfristige Mid-Bewegung danach
df = pd.DataFrame([
    {"ts": "09:35:01", "side": "buy",  "fill_price": 100.02, "mid_after_horizon": 99.98},
    {"ts": "10:12:14", "side": "buy",  "fill_price": 100.10, "mid_after_horizon": 100.12},
    {"ts": "11:45:22", "side": "sell", "fill_price":  99.95, "mid_after_horizon": 99.99},
    {"ts": "14:02:55", "side": "sell", "fill_price": 100.20, "mid_after_horizon": 100.15},
])
print(f"Toxizität: {estimate_toxicity(df):.1f} bps gegen uns (negativ = gut)")

Order-Typen im Dark Pool.

Pinging und Information Leakage.

Eine der Hauptkritiken an Dark Pools: Sophistizierte Akteure schicken kleine Test-Orders („Pings") an den Pool, um zu erfahren, ob dort gerade eine große Order liegt. Sobald ein Ping einen Fill bekommt, weiß der Akteur, dass jemand zum Mid oder besser handeln will — und kann diese Information an der Lit Venue ausnutzen, indem er gegen die vermutete Richtung handelt.

Dagegen helfen drei Verteidigungslinien: Erstens MAQ-Orders, die kleinen Pings keinen Fill geben. Zweitens Block-Pools, die nur große Counterparties zulassen. Drittens Anti-Gaming-Logik in modernen Pools, die HFT-typische Muster erkennen und betroffene Akteure herabstufen oder ganz ausschließen.

import pandas as pd

def venue_quality_scorecard(fills: pd.DataFrame) -> pd.DataFrame:
    """
    Pro Dark Pool: Fill-Rate, durchschnittliche Fill-Größe, Toxizität.
    fills: DataFrame mit ['venue', 'requested_qty', 'filled_qty',
                          'fill_price', 'mid_after_5s', 'side'].
    """
    fills = fills.copy()
    fills["fill_rate"] = fills["filled_qty"] / fills["requested_qty"]
    fills["signed_move_bps"] = fills.apply(
        lambda r: 1e4 * ((r["mid_after_5s"] - r["fill_price"])
                         * (-1 if r["side"] == "buy" else 1)) / r["fill_price"],
        axis=1
    )
    g = fills.groupby("venue").agg(
        avg_fill_rate=("fill_rate", "mean"),
        avg_fill_size=("filled_qty", "mean"),
        toxicity_bps=("signed_move_bps", "mean"),
        n_orders=("filled_qty", "count"),
    )
    g["score"] = g["avg_fill_rate"] - 0.1 * g["toxicity_bps"].clip(lower=0)
    return g.sort_values("score", ascending=False)

Wie eine sinnvolle Dark-Pool-Strategie aussieht.

Erstens: Nicht alle Pools sind gleich. Eine seriöse Buy-Side führt eine eigene Scorecard pro Pool, die mindestens Fill-Rate, durchschnittliche Fill-Größe und Post-Trade-Toxizität trackt. Pools, deren Toxizität über mehrere Wochen signifikant positiv ist, werden im SOR herabgestuft oder ganz deaktiviert.

Zweitens: Dark Pools sind kein Selbstzweck. Bei kleinen Orders unter 1 % des Tagesvolumens lohnt sich der Aufwand selten — Lit-Venues sind hier oft besser, weil ihre Liquidität verlässlicher und ihre Toxizität niedriger ist. Dark Pools entfalten ihren Wert vor allem bei Block-Trades und bei Strategien mit langer Halbwertszeit.

Drittens: Conditional und Block-orientierte Pools haben strukturell weniger Toxizitäts-Probleme als kontinuierliche Mid-Peg-Pools. Wer signifikante Volumen handelt, sollte einen Liquidnet-Zugang in Erwägung ziehen, auch wenn die Mitgliedschaft anspruchsvoll ist.

Regulatorische Entwicklung.

In Europa hat MiFID II den Dark-Pool-Anteil pro Aktie auf 8 % des Gesamtvolumens (Double Volume Cap) beschränkt — mit gemischten Konsequenzen. Liquidität ist teilweise in Periodic Auctions und Systematic Internalisers gewandert, statt wirklich an Lit Exchanges zurückzukehren. Im US-Markt gibt es weiterhin keine harte Begrenzung, dafür intensivere Transparenz-Pflichten gegenüber der SEC.

Die SEC hat in den letzten Jahren mehrere große Banken wegen unangemessenen Dark-Pool-Praktiken verklagt — typischerweise wegen falscher Aussagen über die Beteiligung von HFT-Akteuren. Wer als institutioneller Trader einen Pool nutzt, sollte den jeweiligen Form-ATS-Filing oder das europäische Pendant durchgelesen haben.

Fazit für die Praxis.

Dark Pools sind weder Allheilmittel noch Falle. Sie sind ein Werkzeug, das in bestimmten Situationen — große Orders, Strategien mit langer Halbwertszeit, Block-Trading — erheblichen Mehrwert liefert, in anderen aber wirkungslos oder sogar schädlich ist. Wer sie nutzt, sollte die eigene Toxizitätsmessung beherrschen und sich nicht auf Broker-Versprechen verlassen.

Sie wollen Ihre Dark-Pool-Performance analysieren? Erstgespräch buchen — wir bauen ein TCA-Setup, das auch Dark-Venues sauber bewertet.