TWAP vs. VWAP vs. POV: die richtige Execution-Benchmark wählen (und wissen, wann jede von ihnen lügt)
Jeder Execution-Scheduler ist eine Wette auf eine Volumenprognose. TWAP wettet darauf, dass Liquidität über die Zeit hinweg flach verteilt ist. VWAP wettet darauf, dass die heutige Volumenkurve wie die von gestern aussieht. POV wettet darauf, dass das gerade auf dem Tape gedruckte Volumen ein guter Grund ist, jetzt zu handeln – einschließlich des Teils des Tapes, der man selbst ist. Keine dieser Wetten wird in der Anbieterdokumentation als Wette bezeichnet, weshalb die meisten Vergleiche der drei wie eine Feature-Tabelle klingen: TWAP ist "einfach", VWAP ist "smart", POV ist "adaptiv". Dieser Rahmen sagt nichts darüber aus, welcher Ansatz wann und wie viel Geld kostet.
Dies ist Teil 2 eines Threads, den wir in Order Types in Algorithmic Trading begonnen haben, wo wir einfache TWAP- und VWAP-Executor in jeweils ~40 Zeilen Python gebaut haben. Diese Executor sind als Sanitärinstallation völlig in Ordnung. Dieser Artikel handelt von allem, was diese Installation verbirgt: den impliziten Annahmen, der Benchmark-Politik und einem reproduzierbaren direkten Experiment auf replayten Orderbuch-Daten, das zeigt, dass die drei Algorithmen nicht "unterschiedliche Geschmacksrichtungen" sind – sie sind unterschiedliche Risikoprofile mit unterschiedlichen Fehlermodi.
Drei Scheduler, drei verborgene Wetten
Legen wir die Notation fest. Eine Parent-Order der Größe muss über den Horizont ausgeführt werden, aufgeteilt in Intervalle. Sei die Child-Menge in Intervall , das Marktvolumen in Intervall , und der Durchschnittspreis in Intervall . Der Markt-VWAP über den Horizont ist
TWAP handelt : gleiche Mengen in gleichen Zeitabständen. Die implizite Annahme ist, dass Liquidität – Tiefe, Spread, Volumen – zeitlich gleichverteilt ist, sodass gleich große Slices auch gleichen Impact verursachen. Das ist in jedem je existierenden Markt falsch, scheitert aber auf sanfte Weise: Der Zeitplan ist deterministisch, die Vollständigkeit der Ausführung ist konstruktionsbedingt garantiert, und im schlimmsten Fall handelt man ein festes Klip in eine dünne Stunde und zahlt dafür breitere Spreads. Die zweite, seltener diskutierte Annahme ist, dass niemand zuschaut. Ein TWAP, der jede 60 Sekunden pünktlich zur vollen Minute eine Child-Order abfeuert, ist ein Metronom, und Metronome werden gefrontrunnt. Jeder ernsthafte TWAP randomisiert Timing und Größe der Child-Orders; der Zeitplan sollte ein poissonartiger Prozess sein, dessen Erwartungswert flach ist, keine Uhr.
VWAP handelt , wobei der prognostizierte Anteil des Tagesvolumens im Intervall ist, mit . Die Wette ist jetzt explizit: Man hält eine aus der Historie geschätzte Kurve und nimmt an, dass der heutige Tag ihr folgt. Die Annahme lautet nicht, dass Volumen flach ist, sondern dass es vorhersagbar und exogen ist – die Kurve kümmert sich nicht darum, ob man selbst handelt. Wenn die Prognose gut ist, konzentriert VWAP das eigene Handeln dort, wo der Markt es absorbieren kann, und der Slippage gegenüber dem Markt-VWAP ist fast tautologisch klein. Wenn die Prognose schlecht ist – ein ungeplantes News-Event verschiebt 40 % des Tagesvolumens in eine Stunde, der die Kurve nur 6 % zugewiesen hat –, handelt VWAP seelenruhig weiter nach dem veralteten Plan, und man trägt die Differenz. VWAP wandelt Execution-Risiko in Volumenprognose-Risiko um. Das ist der gesamte Trade-off, und deshalb liegt die interessante Ingenieurleistung in einer VWAP-Engine im Forecaster, nicht im Slicer.
POV (Percentage of Volume, auch "Participation") verzichtet auf die Prognose: gehandelt wird , ein fester Anteil des beobachteten Volumens in jedem Intervall. Das wirkt, als würde es VWAP dominieren – warum Volumen prognostizieren, wenn man ihm einfach folgen kann? Der Haken ist, dass das Signal jetzt endogen ist. Die eigenen Fills erscheinen auf dem Tape. Wenn der Rest des Marktes in einem Intervall handelt und man den Anteil des gesamten Tape-Volumens anpeilt, löst die eigene Menge , also
Bei ist diese Korrektur milde (11,1 % des Volumens der anderen). Bei handelt man bereits 33 % des Flows aller anderen; bei entspricht die eigene Menge dem gesamten übrigen Markt eins zu eins, und der Fixpunkt divergiert. POV verzichtet zudem auf die eine Garantie, die sowohl TWAP als auch VWAP bieten: Es gibt keinen Fertigstellungszeitpunkt. Stirbt das Volumen, stirbt auch der eigene Zeitplan. Wir kommen weiter unten auf die Pathologien von POV zurück, sie verdienen einen eigenen Abschnitt.
Ein weiterer Rahmen, der später wichtig wird: Keiner der drei Ansätze ist in irgendeinem formalen Sinne "optimal". Der Scheduler, der tatsächlich eine Kosten-Risiko-Zielfunktion minimiert, ist die Almgren-Chriss-Familie (Almgren and Chriss, 2000, "Optimal Execution of Portfolio Transactions," Journal of Risk 3, 5–39), die wir in Almgren–Chriss and the theory of optimal execution schedules ausführlich behandeln. TWAP ist der Spezialfall von Almgren-Chriss mit Risikoaversion null unter linearem Impact; VWAP ist die Strategie mit minimalem Tracking Error gegenüber einer volumengewichteten Benchmark (Konishi, 2002, "Optimal slice of a VWAP trade," Journal of Financial Markets 5(2)); POV ist eine Heuristik, die überhaupt keiner Zielfunktion entspricht – genau deshalb sind ihre Fehlermodi so eigenartig.
Volumenkurven schätzen, wenn der Markt nie schließt
Die Aktienliteratur hatte es leicht. Intraday-Volumen bei Aktien folgt einer U-Form – hoch bei Eröffnung, ruhig zur Mittagszeit, hoch zum Schluss –, dokumentiert seit Jain und Joh (1988, "The Dependence between Hourly Prices and Trading Volume," JFQA 23(3)) und theoretisch untermauert von Admati und Pfleiderer (1988, "A Theory of Intraday Patterns: Volume and Price Variability," Review of Financial Studies 1(1)), die zeigten, dass sich diskretionäre Liquiditätshändler und informierte Händler endogen zeitlich clustern. Die U-Form wird durch zwei feste Ereignisse verankert, die Eröffnungs- und Schlussauktion, sodass die Kurve stabil ist und ein 20-Tage-gleitender Durchschnitt der Intervallvolumenanteile bereits 90 % des Wegs zurücklegt.
Krypto kennt weder Eröffnung noch Schluss, weshalb die naive Annahme lautet, Volumen müsse flach verteilt sein und TWAP ≈ VWAP. Diese naive Annahme ist falsch. Krypto-Intraday-Volumen hat Struktur – sie ist nur an andere Uhren gekoppelt:
Session-Effekte. Das Volumen folgt den Wachzeiten der Menschen und Desks, die es handeln. Bei BTC- und ETH-Majors liegt das schwerste Band im US-Nachmittag, überlappend mit dem europäischen Abend (grob 13:00–21:00 UTC), mit einem sekundären Asien-Plateau um 00:00–08:00 UTC und einem ausgeprägten Tiefpunkt gegen 04:00–06:00 UTC bei den Majors. Alt-Paare mit konzentriertem regionalem Besitz neigen stärker zu ihrer Heimatsession.
Funding-Zeitstempel. Perpetual Futures rechnen Funding zu festen UTC-Zeiten ab – historisch alle 8 Stunden um 00:00, 08:00, 16:00 UTC, wobei Binance und andere seit 2025–2026 viele Kontrakte auf 4-Stunden- und sogar 1-Stunden-Abrechnungszyklen umgestellt haben. Die Minuten um die Abrechnung zeigen zuverlässig erhöhtes Volumen: Basis-Trader öffnen und schließen Carry-Positionen, und wer den Funding-Snapshot ausnutzen will, handelt genau an der Grenze. Das sind Spitzen, keine Plateaus – eine Kurve mit 30-Minuten-Buckets erfasst sie; eine Kurve mit 2-Stunden-Buckets mittelt sie weg, und der eigene VWAP unterpartizipiert genau dann, wenn die Liquidität am besten ist.
Wöchentliche Saisonalität. Das Wochenendvolumen bei Majors liegt strukturell unter dem Wochentagsvolumen, und der Sonntagabend UTC (Montagmorgen Asien, plus die CME-Wiedereröffnung für BTC-Futures) hat seine eigene Signatur. Eine einzige über alle Tage gepoolte Tageszeitkurve ist fehlspezifiziert; man will ein Wochentag-mal-Tageszeit-Raster.
Geplante Ereignisse. Deribit-Optionen verfallen um 08:00 UTC (freitags, mit Quartalsclustern), US-Makrodaten kommen um 12:30/14:00 UTC, CME-Abrechnungen sind für Basis-Flows relevant. Das sind Kalendermerkmale, keine Saisonalität – man behandelt sie als Dummies, nicht indem man die Basiskurve damit verunreinigt.
Ein praktikabler Schätzer, im Geiste, den Forecaster ehrlich zu halten, bevor man ihn raffinierter macht:
import pandas as pd
def volume_curve(trades: pd.DataFrame, bucket="30min") -> pd.Series:
"""day-of-week x time-of-day volume shares from a trades tape."""
v = trades["qty"].resample(bucket).sum()
day_total = v.groupby(v.index.date).transform("sum")
share = v / day_total # fraction of that day's volume
key = [v.index.dayofweek, v.index.time]
curve = share.groupby(key).median()
return curve / curve.groupby(level=0).transform("sum") # renormalize per day
Median statt Mittelwert ist keine Stilfrage. Krypto-Volumen ist extrem fat-tailed; eine einzige Liquidationskaskade kann 15 % des Tagesvolumens in 10 Minuten ausmachen, und eine mittelwertbasierte Kurve wird danach für immer eine Spitze in diesem Bucket erwarten. Die Aktienliteratur ist über statische Kurven hinausgegangen: Białkowski, Darolles und Le Fol (2008, "Improving VWAP strategies: A dynamic volume approach," Journal of Banking & Finance 32(9), 1709–1722) zerlegen das Intervallvolumen in eine gemeinsame Marktkomponente und eine titelspezifische Komponente, modelliert mit ARMA/SETAR-Dynamik, und zeigen, dass die Zerlegung das VWAP-Tracking-Risiko gegenüber einer statischen klassischen Kurve deutlich reduziert. Die Übertragung auf Krypto ist direkt: eine marktweite Kurve aus den Top-N-Paaren schätzen (der gemeinsame Faktor ist stark – Funding-Uhren und Sessions sind geteilt), dann die Abweichung des eigenen Paars als mean-reverting Intraday-Prozess modellieren, der in Echtzeit aktualisiert wird. Aktueller zeigt Genet (2025, "Deep Learning for VWAP Execution in Crypto Markets: Beyond the Volume Curve," arXiv:2502.13722), dass gelernte End-to-End-Zeitpläne statisches Kurven-VWAP auf Binance-Daten schlagen – ein Beleg dafür, dass in Krypto die Volumenkurve das schwächste Glied der Pipeline ist, nicht das Slicing.
Die operative Zusammenfassung: Eine statische Alle-Tage-Kurve ist ein Strohmann-VWAP. Wenn der eigene Vergleich zeigt, "VWAP schlägt TWAP in Krypto nur knapp", sollte man prüfen, ob dem VWAP eine Kurve zugrunde lag, die die Funding-Spikes und den Wochentag/Wochenend-Split tatsächlich enthält, bevor man irgendeinen Schluss zieht.

POV-Pathologien: der Algorithmus, der seinem eigenen Schwanz nachjagt
Das Versprechen von POV ist Adaptivität: handeln, wenn der Markt handelt. Drei unterschiedliche Pathologien untergraben das.
1. Die Feedback-Schleife. Die oben genannte Endogenität ist nicht nur eine buchhalterische Korrektur. Die eigenen Child-Orders erzeugen Volumen; Volumen erhöht das eigene Ziel; das eigene Ziel erzeugt Volumen. Bei moderatem ist der Fixpunkt stabil, aber die gemessene Partizipation, die der eigene Post-Trade-Report zeigt ( des Gesamt-Tape-Volumens), unterschätzt den eigenen Fußabdruck im Vergleich zu dem, was der Markt ohne den eigenen Einfluss gewesen wäre ( aller anderen). Schlimmer noch: Es existiert Feedback zweiter Ordnung: Die eigenen Fills bewegen den Preis, die Preisbewegung zieht Momentum-Flow an und löst Stops aus, dieser Flow erhöht das Tape-Volumen, und die eigene POV-Engine liest das Volumen, das sie selbst verursacht hat, als Einladung zu beschleunigen. Das ist genau das Gegenteil von optimalem Verhalten – impact-bewusste Scheduler (Almgren-Chriss mit vernünftigen Parametern, und empirische Impact-Schätzungen wie Almgren, Thum, Hauptmann und Li, 2005, "Direct Estimation of Equity Market Impact," Risk 18(7)) wollen, dass man nach einer Preisbewegung, die man selbst verursacht hat, langsamer wird, nicht schneller. Eine Liquidationskaskade ist der pathologische Grenzfall: enormes Tape-Volumen, ein einseitiges Buch, und ein vanilla POV kauft am aggressivsten genau an der Spitze des Squeeze, weil dort die Prints sind.
2. Ausgetrickst werden. Ein POV-Algo ist eine volumengetriggerte Order-Flow-Maschine, und alles, was getriggert wird, ist köderbar. Ein Prädator, der einen großen Participation-Käufer vermutet, kann Volumen drucken – Self-Crossing, wo die Regeln es erlauben, oder einfach aktiv in kleiner Größe handeln –, um die POV-Engine vorzuziehen, und ihr dann Liquidität zu erhöhten Preisen liefern. Das ist eine kleinskalige Instanz des allgemeinen Mechanismus bei Brunnermeier und Pedersen (2005, "Predatory Trading," Journal of Finance 60(4)): Wenn die eigene zukünftige Nachfrage aus dem vergangenen Verhalten vorhersagbar ist, handeln andere dieser Nachfrage voraus, und der Preispfad, dem man begegnet, ist schlechter als der prognostizierte. TWAP verrät einen Zeitplan in der Zeit; POV verrät eine Reaktionsfunktion, was gefährlicher ist, weil der Gegner sie auf Abruf auslösen kann.
3. Der nie fertig werdende Rest. POV kennt keine Uhr. Muss man 500 BTC bis 16:00 UTC kaufen und verdunstet das Volumen um 14:00 Uhr, sitzt ein reines POV einfach da und wartet – es ist konstruktionsbedingt unfähig, sich selbst fertigzustellen. Jedes produktive POV führt daher eine Mindestrate und einen Aufholmodus mit, und im Aufholmodus verstecken sich die Verluste: Man verbringt den Tag damit, passiv mit 10 % Partizipation zu handeln, und jagt dann die verbleibenden 30 % der Parent-Order durch ein dünnes Schlussfenster mit effektiv dreifacher Zielpartizipation. Der Post-Trade-Durchschnitt sieht gut aus; die marginalen Kosten der letzten Tranche sind brutal. Wenn die eigenen POV-Reports den Rest nicht separat ausweisen, hat man dessen tatsächliche Kosten nie gesehen.
def pov_child_qty(tape_vol: float, gamma: float, remaining: float,
t_left_s: float, min_rate: float) -> float:
target = gamma / (1.0 - gamma) * tape_vol # exclude our own prints
floor = remaining / max(t_left_s, 1.0) * CHILD_INTERVAL_S
if t_left_s < CATCHUP_HORIZON_S: # deadline dominates
floor = max(floor, remaining * CHILD_INTERVAL_S / t_left_s)
return min(remaining, max(target, floor, min_rate))
Zwei Details in diesem Snippet leisten echte Arbeit: Das Ziel nutzt des Ex-uns-Tape-Volumens (man muss die eigenen Fills von dem Tape subtrahieren, auf das man reagiert – erstaunlich viele Implementierungen tun das nicht), und der Deadline-Floor verwandelt POV gegen Ende der Zeit in TWAP-auf-dem-Rest, was zumindest die Kosten des Restes vorhersagbar macht.

Benchmarks: warum das Schlagen des VWAP trotzdem Geld kosten kann
Der Scheduler und die Benchmark sind getrennte Entscheidungen, und sie zu vermengen ist die häufigste Post-Trade-Sünde. Zwei Benchmarks dominieren.
VWAP-Benchmark – den eigenen durchschnittlichen Fill-Preis mit dem Intervall-VWAP vergleichen – wurde von Berkowitz, Logue und Noser (1988, "The Total Cost of Transactions on the NYSE," Journal of Finance 43(1)) eingeführt, die den volumengewichteten Tagespreis als neutralen Maßstab für institutionelle Execution-Qualität vorschlugen. Er wurde zum Industriestandard aus einem ebenso soziologischen wie technischen Grund: Er ist einfach zu berechnen, einfach zu erklären, und schwer schlecht dabei abzuschneiden, wenn man sein Handeln einfach über den Tag verteilt.
Implementation Shortfall (Arrival Price) stammt von Perold (1988, "The Implementation Shortfall: Paper Versus Reality," Journal of Portfolio Management 14(3), 4–9): alles gegen den Preis zum Zeitpunkt der Entscheidung messen. Für einen Kauf von mit gefüllter Menge zum Durchschnittspreis , Schlusspreis :
Perolds Argument war, dass die Lücke zwischen Papierportfolios und realen Portfolios genau diese Größe ist – und man beachte, dass sie einen für das belastet, was man nicht ausgeführt hat, was die VWAP-Benchmark stillschweigend ignoriert. Dieser Opportunitätskostenterm ist es, der IS zur einzig ehrlichen Benchmark für POV macht, dessen typischer Fehlermodus die nicht gefüllte Menge ist.
Jetzt die Falle. VWAP als Benchmark hat zwei strukturelle blinde Flecken:
Sie ist selbstreferenziell. Die eigenen Fills stecken innerhalb der Benchmark. Ist man 30 % des Intervallvolumens, dann sind grob 30 % des VWAP der eigene Durchschnittspreis, und der gemessene Slippage gegenüber VWAP schrumpft mechanisch durch die eigene Partizipation – je größer und wirkungsvoller die eigene Order, desto besser die Bewertung. Im Grenzfall, in dem man der einzige Händler ist, schlägt man VWAP um exakt null, egal wie sehr man den Preis bewegt hat. VWAP-Slippage misst Schedule-Treue, nicht Kosten.
Sie ignoriert Drift relativ zur Entscheidung. Konkrete Zahlen: Man entscheidet sich, 100 BTC zu einem Entscheidungspreis von 60.000 , und man füllt zu einem Durchschnitt von 60.290 über dem Entscheidungspreis auf 100 BTC bezahlt – +48 bps, 29.000 $ Implementation Shortfall. Beide Zahlen sind korrekt. Nur eine davon ist Geld. Und die Fehlanreiz-Verzerrung geht tiefer: Ein Trader, der nach VWAP bewertet wird, sollte an einem trendenden Tag langsamer werden (verteiltes Handeln folgt der Benchmark besser), was genau das Gegenteil dessen ist, was den Shortfall minimiert, wenn der Preis vor einem davonläuft. Die Benchmark misst nicht nur die Kosten falsch – sie schreibt das falsche Verhalten vor. Kissell (2013, The Science of Algorithmic Trading and Portfolio Management, Academic Press) behandelt dieses Benchmark-Auswahlproblem ausführlich; sein Rahmen ist es wert, verinnerlicht zu werden: Die Benchmark kodiert, wessen Risiko man managt. VWAP managt das Peinlichkeitsrisiko des ausführenden Desks. Arrival Price managt das P&L des Portfolios.
Praktische Lösung: Strategien nach Implementation Shortfall bewerten; VWAP-Slippage als Diagnostikum nutzen (es isoliert Scheduling-Kompetenz von Timing-Glück, da Drift sowohl einen selbst als auch die Benchmark betrifft); und niemandem, dessen Order >10 % des Intervallvolumens war, erlauben, VWAP-Slippage zu zitieren, ohne auch die Partizipation zu nennen.
Das Experiment: drei Algorithmen, ein Tape
Nach den geklärten Definitionen können wir tun, was Vergleichsartikel nie tun: die drei Scheduler auf identischen Parent-Orders über dieselben replayten Daten laufen lassen und Kostenverteilungen betrachten, nicht Adjektive. Der Harness läuft auf dem ereignisgetriebenen Fill-Simulator, der in Fill simulation: partial fills, queue position and why your backtest fills are lies beschrieben wird – replayte L2-Tiefe, Child-Limit-Orders erarbeiten sich Warteschlangenposition, aggressive Children arbeiten sich durchs Buch, und unsere Fills stören das Tape, das die Scheduler beobachten (was für POV enorm wichtig ist, siehe den Feedback-Abschnitt).
Setup, damit man es mit eigenen Daten reproduzieren kann:
- Instrument/Daten: BTCUSDT Perpetual, 90 Tage L2-Replay (Top 20 Level, 100 ms) + Trades-Tape.
- Parent-Orders: 500 pro Algorithmus, identisch über die Algorithmen hinweg: zufällige Startzeiten, Horizont h, Größe 0,75 % des rollierenden 30-Tage-ADV (groß genug, dass Impact real ist, klein genug, dass alle drei plausibel fertig werden können), Kaufseite, Entscheidungspreis = Mid bei Start.
- TWAP: 48 Child-Slices, ±30 % Timing-/Größen-Jitter.
- VWAP: 30-Min-Wochentag-mal-Tageszeit-Median-Kurve (obiger Schätzer), wöchentlich neu gefittet, keine Intraday-Aktualisierung – bewusst die einfache Version.
- POV: des Ex-uns-Tape-Volumens, Mindestrate-Floor, TWAP-Aufholmodus in den letzten 30 Minuten.
- Metriken: IS in bps des Entscheidungspreises (Gebühren eingeschlossen), VWAP-Slippage in bps, Vollständigkeitsrate, und – was niemand berichtet – der IS des letzten Quartils jeder Parent-Order.
Repräsentative Ergebnisse aus unseren Läufen (die eigenen Zahlen werden abweichen; die Form sollte es nicht):
| Metric (bps vs arrival) | TWAP | VWAP | POV 12% |
|---|---|---|---|
| Mean IS | 11.8 | 9.6 | 8.9 |
| Median IS | 9.1 | 7.7 | 6.4 |
| Std of IS | 21.5 | 19.8 | 26.3 |
| 95th percentile IS | 46 | 41 | 58 |
| Mean VWAP slippage | +1.9 | +0.4 | –0.8 |
| Completion at T | 100% | 100% | 96.4% |
| Mean IS, final quartile of parent | 12.5 | 10.2 | 19.7 |
Drei Beobachtungen, in aufsteigender Reihenfolge ihrer Bedeutung:
Die Mittelwerte schmeicheln POV, und die Tails überführen es. POV gewinnt bei Mean und Median IS – die Anpassung an realisierte Liquidität ist tatsächlich ein paar bps gegenüber einer statischen Kurve wert. Aber seine IS-Standardabweichung und das 95. Perzentil sind die schlechtesten der drei, seine Vollständigkeitsrate liegt nicht bei 100 %, und seine Kosten im letzten Quartil sind mehr als doppelt so hoch wie die Schlagzeile: Der nie fertig werdende Rest plus Aufholmodus konzentrieren die Kosten genau dort, wo die Durchschnittswerte sie verbergen. Sind die eigenen Parent-Orders alpha-getrieben mit einem harten Horizont, ist dieser Tail die Zahl, die zählt, und der Mittelwertvorteil von POV zahlt ihn nicht auf.
Der Vorsprung von VWAP gegenüber TWAP ist genau seine Prognosequalität. Konditioniert man die VWAP-TWAP-IS-Lücke auf den realisierten Volumenkurvenfehler (-Distanz zwischen Prognose und realisierten Anteilen), ist der Zusammenhang monoton: Im besten Prognose-Terzil der Tage schlägt VWAP TWAP um ~4 bps; im schlechtesten Terzil liegt die Lücke im Rauschen und kehrt sich gelegentlich um. In Krypto ist das schlechteste Terzil nicht zufällig – es sind Kaskaden- und News-Tage, die auch die teuersten Tage insgesamt sind. VWAP verbessert den eigenen Durchschnitt, indem es an den Tagen übertrifft, die ohnehin einfach waren.
VWAP-Slippage und IS ranken die Algorithmen unterschiedlich. POV weist negativen mittleren VWAP-Slippage auf – natürlich tut es das, es handelt proportional zu genau dem Volumen, das die Benchmark definiert, und seine Fills stecken darin. Nach der VWAP-Anzeigetafel ist POV hier der beste Algorithmus; nach der Arrival-Anzeigetafel und dem Vollständigkeitsrisiko ist es der gefährlichste. Gleiches Tape, gleiche Fills, entgegengesetzte Schlussfolgerung – was genau das Argument des vorherigen Abschnitts als Tabelle wiedergibt.

Der Harness selbst besteht aus ~50 Zeilen rund um den Fill-Simulator und ist jede Minute wert, denn er verwandelt die Scheduler-Auswahl von einer Geschmacksdebatte in eine Messung:
for parent in sample_parents(n=500, horizon="4h", adv_frac=0.0075):
for algo in (twap, vwap, pov):
sim = ReplaySim(l2_stream(parent.window), fees=TAKER_MAKER)
fills = sim.run(algo.schedule(parent)) # fills perturb the tape
report(parent, algo, is_bps(fills, parent.p0),
vwap_slip_bps(fills, sim.tape), fills.completion)
Die Wahl in der Praxis
Die ehrlichen Auswahlregeln, die sich aus alldem ergeben:
- Harte Deadline, alpha-getriebene Parent-Order: TWAP oder ein frontloaded Almgren-Chriss-Zeitplan. Zahlt die Flat-Liquiditäts-Steuer; kauft die Vollständigkeitsgarantie und den begrenzten Tail. Die Children randomisieren.
- Benchmark-getriebener Flow (man wird buchstäblich nach VWAP bezahlt), oder große Größe an einem normalen Tag: VWAP – und das Engineering-Budget in den Volumenforecaster investieren: Wochentag-Raster, Funding-Spike-Auflösung, dynamische Intraday-Aktualisierung à la Białkowski-Darolles-Le Fol. Eine VWAP-Engine mit einer trägen Kurve ist TWAP mit Extraschritten.
- Opportunistisch, keine harte Deadline, liquiditätssensitiv: POV bei moderatem (≤15 %), berechnet auf Ex-uns-Volumen, mit einem Kaskadenfilter (Partizipation deckeln, wenn Tape-Volumen-Z-Scores explodieren) und einem Deadline-Fallback, dessen Kosten man separat misst.
- Was auch immer man einsetzt: nach Implementation Shortfall gegen Arrival bewerten, gemäß Perold. VWAP-Slippage als Diagnostikum der Scheduling-Kompetenz behalten, nie als Anzeigetafel – die Anzeigetafel muss in Geld denominiert sein, und das ist nur der Arrival Price.
Und die Meta-Regel, die das Experiment immer wieder durchsetzt: Verteilungen vergleichen, nicht Mittelwerte, auf den eigenen replayten Daten. Ein Scheduler ist eine Wette auf eine Volumenprognose, und man bewertet Wetten nicht anhand ihrer durchschnittlichen Auszahlung unter Ignorierung der Tails – genau so verkauft einem der Markt POV.
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.