← Alle Insights

Market Impact: das Square-Root-Law in der Praxis.

Jede Order bewegt den Preis. Diese Bewegung ist nicht linear, nicht konstant, und in den meisten Retail-Backtests schlicht ignoriert. Das Square-Root-Law ist die empirisch best-belegte Faustregel der Praxis — und der Grund, warum Strategien, die im Backtest funktionieren, in Live-Konten verbluten.

Permanent vs. Temporary Impact, noch einmal genau.

Eine Order hat zwei Effekte auf den Preis. Der permanente Teil verschiebt das Mid-Level dauerhaft: Sie haben Information ins Markt-Gleichgewicht eingebracht, der Markt repreist sich. Der temporäre Teil ist das Ausführungs-Overhead: Sie überspringen mehrere Levels im Order-Buch, der Markt erholt sich danach.

Empirisch beobachtet man auf US-Equities: ungefähr 60–70 % des unmittelbaren Impacts sind temporär, 30–40 % permanent. Auf weniger liquiden Märkten verschiebt sich das Verhältnis zugunsten des permanenten Teils — wer eine illiquide Aktie kauft, sendet ein stärkeres Informations-Signal.

Das Square-Root-Law: die zentrale Empirie.

Über zwei Jahrzehnte hinweg haben Forscher (BARRA, JPM, Bouchaud-Gruppe, Citigroup) in immer denselben Befund eingeschlagen: der Impact einer Meta-Order skaliert nicht linear mit der Größe, sondern als Quadratwurzel. Formal:

Impact ≈ Y · σ · √(Q/V)

wobei σ die tägliche Volatilität, Q die gehandelte Menge und V das tägliche Volumen ist. Y ist eine asset-klassen-spezifische Konstante, typischerweise im Bereich 0.5–1.0 für US-Equities. Beispiel: Sie handeln 5 % des täglichen Volumens in einer Aktie mit 2 % daily-Volatilität. Erwarteter Impact: 1.0 · 0.02 · √0.05 ≈ 45 Basispunkte.

Das Bemerkenswerte: dieses Gesetz hält über drei Größenordnungen, über Asset-Klassen hinweg, über Jahre hinweg, über Broker hinweg. Es ist eine der robustesten empirischen Regularitäten der quantitativen Finanzwelt.

Kyle's Lambda: die theoretische Grundlage.

Albert Kyle hat 1985 ein Modell vorgestellt, in dem ein informierter Trader gegen einen Pool von Noise-Tradern und einen risiko-neutralen Market-Maker handelt. Im Gleichgewicht: der Market-Maker setzt einen Preis, der mit der signed Order-Flow-Menge skaliert. Der Skalierungsfaktor heißt Kyle's Lambda — und ist im Original-Modell linear.

Warum die Empirie trotzdem Square-Root sieht: weil große institutionelle Orders nicht als single trade auftreten, sondern als Meta-Orders über Stunden oder Tage. Andere Marktteilnehmer adaptieren ihre Quotes während der Ausführung, der volle Linear-Impact wird nicht realisiert. Das Square-Root-Gesetz ist also nicht das Kyle-Modell auf Trade-Ebene, sondern auf der Meta-Order-Ebene.

Bouchaud-Modell: Impact mit Memory.

Jean-Philippe Bouchaud und Mitarbeiter (Bouchaud-Mastromatteo-Muzy, 2018) haben das Square-Root-Gesetz mit einem dynamischen Impact-Modell verbunden: jeder einzelne Trade hat einen Impact, der mit der Zeit als Power-Law-Funktion abklingt. Die Aggregation vieler Trades über eine Meta-Order ergibt das Square-Root-Skalierungs- Gesetz.

Formal: Impact eines Trades zur Zeit t fällt mit (T-t)^(-β) ab, mit β ≈ 0.3 für US- Equities. Das hat eine wichtige praktische Konsequenz: Impact ist nicht beim Ende der Order weg. Auch eine Stunde nach Order-Ende ist ein Teil des Impacts noch im Preis. Das ist für Strategien relevant, die unmittelbar nach einer großen Order in dieselbe Richtung weiter handeln wollen.

Konkrete Messung: Implementation Shortfall pro Strategie.

Wie misst man eigenen Impact? Die saubere Methode ist eine Pre-/Post-Analyse pro Trade:

import pandas as pd
import numpy as np

def measure_impact(trades_df, prices_df):
    """
    trades_df: Spalten [symbol, ts_decision, ts_first_fill, ts_last_fill,
                       signed_qty, avg_fill_price, adv_share]
    prices_df: Mid-Preise mit Zeitstempel
    """
    results = []
    for _, t in trades_df.iterrows():
        p_decision = prices_df.loc[t.ts_decision, t.symbol]
        p_last     = prices_df.loc[t.ts_last_fill, t.symbol]
        p_post30   = prices_df.loc[t.ts_last_fill + pd.Timedelta("30min"), t.symbol]
        # Total slippage (in bps, signed)
        total = np.sign(t.signed_qty) * (t.avg_fill_price - p_decision) / p_decision * 1e4
        # Permanent share (preis hält nach 30 min)
        perm  = np.sign(t.signed_qty) * (p_post30 - p_decision) / p_decision * 1e4
        # Temporary share
        temp = total - perm
        results.append({"adv_share": t.adv_share, "total_bps": total,
                        "perm_bps": perm, "temp_bps": temp})
    return pd.DataFrame(results)

Wenn Sie diese Tabelle für 200+ Trades haben, fitten Sie das Square-Root-Modell gegen die Daten und bekommen Ihre persönlichen Impact-Parameter. Das ist die Grundlage für alles Folgende.

Wann ist Impact überhaupt relevant?

Die Schwelle, ab der Sie Impact ernst nehmen müssen, ist überraschend niedrig:

Für einen Privat-Trader mit 100k-Konto: meistens irrelevant. Für einen Mandanten mit 5-Millionen-Konto und mittel-illiquiden Aktien: jeden Trade.

Cost-Adjusted Backtests: Impact einbauen.

Der größte Selbstbetrug im quantitativen Backtest: man rechnet mit Mid-Price oder Close-Price und ignoriert Impact komplett. Eine korrigierte Backtest-Engine zieht pro Trade einen Impact-Term ab:

def cost_adjusted_fill_price(side, mid_price, qty, adv, sigma_daily,
                              Y=0.8, spread_bps=2.0):
    impact_bps = Y * sigma_daily * 1e4 * np.sqrt(qty / adv)
    half_spread_bps = spread_bps / 2.0
    total_cost_bps = impact_bps + half_spread_bps
    sign = 1 if side == "buy" else -1
    return mid_price * (1 + sign * total_cost_bps / 1e4)

Das ist die Mindest-Annahme, mit der Sie Backtests rechnen sollten. Jedes andere Modell überschätzt Ihren Edge.

Anwendung: Order-Größen-Limits aus Impact-Schätzung.

Aus dem Square-Root-Gesetz folgt eine schöne Regel für Maximal-Order-Größen pro Strategie. Wenn die Strategie einen Erwartungswert von, sagen wir, 30 bps pro Trade hat, dann sollten die Ausführungskosten nicht mehr als ein Drittel davon ausmachen. Setzen Sie 10 bps als Kostenbudget. Daraus ergibt sich:

10 = Y · σ · √(Q/V) · 10000 ⇒ Q/V = (10 / (Y · σ · 10000))²

Bei σ = 2 % und Y = 0.8: Q/V ≈ (10 / 160)² ≈ 0.39 %. Mit anderen Worten: bei einer Strategie mit 30-bps-Edge sollten einzelne Orders unter 0.4 % ADV bleiben. Das ist eine harte, datenbasierte Position-Sizing-Grenze.

Meine Praxis.

Bei jedem Mandanten-Setup über 1 Mio Euro Kapital ist Market-Impact-Schätzung Teil des Pre-Trade-Checks. Konkret: jede Order wird vor der Ausführung gegen das eigene kalibrierte Square-Root-Modell gerechnet. Wenn der erwartete Impact über dem erwarteten Strategie-Edge liegt, wird die Order entweder kleiner gemacht oder über mehrere Tage gesplittet.

Außerdem läuft jedes Backtest, das in Produktion gehen soll, mit eingebautem Square-Root-Impact. Nicht selten zerfällt eine schöne Mid-Price-Equity-Kurve dabei in eine Flatline — und das ist ein Feature, nicht ein Bug. Lieber im Backtest enttäuscht als im Live-Konto.

Wer Impact in Backtest und Sizing nicht ernst nimmt, baut systematisch Strategien, die nur in Excel funktionieren. Wer ihn ernst nimmt, hat eine realistische Vorstellung davon, was im realen Markt von einem Edge übrigbleibt.

Sie wollen wissen, wie viel Impact Sie aktuell in Ihrer Strategie zahlen? Erstgespräch buchen — wir messen es konkret aus Ihren Trade-Logs.