Trade-Markouts erklärt: Ausführungsqualität
Was ist ein Trade-Markout? Erklärung der Vorzeichenkonvention und einer echten Markout-Kurve von einer Sekunde bis fünf Minuten, mit Einordnung der Ausführungsqualität.
Ein Trade-Markout ist die Veränderung des Mid-Preises über einen festgelegten Zeitraum nach einer Ausführung, gemessen ab dem Zeitpunkt, an dem diese Ausführung am Markt ausgedruckt wurde. Ein positives Ergebnis bedeutet, dass sich der Markt nach dem Trade zu Ihren Gunsten bewegt hat. Ein negatives Ergebnis bedeutet, dass er sich gegen Sie bewegt hat. Trading Desks bezeichnen das als Adverse Selection. Der gewählte Zeitraum – eine Sekunde oder fünf Minuten – bestimmt, welche Frage die Kennzahl beantwortet.
Was ist ein Trade-Markout?
Beginnen wir mit dem Mid-Preis. Er liegt genau zwischen dem besten Geldkurs und dem besten Briefkurs, also in der Mitte von dem NBBO. Für einen Markout wird der Mid-Preis zu einem gewählten Zeitpunkt nach der Ausführung genommen, davon ein Referenzpreis abgezogen und das Ergebnis mit dem Vorzeichen der Handelsseite versehen.
**Markout zum Zeitpunkt h = Seite * (Mid-Preis bei t+h – Referenzpreis)**, wobei die Seite plus eins bei einem Kauf und minus eins bei einem Verkauf ist.
Die Vorzeichenkonvention sorgt meist für Verwirrung. Fällt der Mid-Preis nach einem Kauf, ist der Markout negativ: Sie haben gekauft, der Preis ist gefallen, und der Verkäufer hat das bessere Ergebnis erzielt. Das ist Adverse Selection, als Zahl ausgedrückt. Fällt der Mid-Preis nach einem Verkauf, ist der Markout positiv, weil sich das Vorzeichen mit der Handelsseite ändert. Jede Ausführung hat zwei Seiten. Der Markout der einen Seite entspricht dem Markout der anderen Seite mit umgekehrtem Vorzeichen.
Die drei Referenzpreise
Der abgezogene Referenzpreis bestimmt, was der Markout misst.
- Der Ausführungspreis. Der Markout wird zu einem Geldbetrag: Er zeigt, was die Position bei t+h im Vergleich zu Ihrem Kaufpreis wert ist. Der bezahlte oder vereinnahmte spread ist darin enthalten.
- Der Mid-Preis zum Zeitpunkt der Ausführung. Dadurch wird der spread herausgerechnet. Gemessen wird dann nur, wie sich der Markt nach dem Trade bewegt hat. Das ist die klarste Messung der Adverse Selection.
- Das Quote auf der gehandelten Seite. Der Vergleich mit dem genommenen oder eingestellten Touch zeigt, wie die Ausführung im Verhältnis zu dem tatsächlich verfügbaren Preis war.
Bei der Analyse der Ausführungsqualität wird der zweite Referenzpreis für Adverse Selection und der erste für Gewinn und Verlust verwendet. Beide sind im ersten Panel unten über denselben Ausführungen dargestellt.
Die Markout-Kurve und die Bedeutung ihrer Form
Wird dieselbe Kennzahl für viele Zeiträume berechnet, entsteht eine Kurve. Ihre Form sagt mehr aus als jeder einzelne Wert.
- Eine Kurve, die innerhalb der ersten Sekunde stark fällt und anschließend niedrig bleibt, beschreibt Flow, der abgegriffen wurde. Der Preis bewegt sich fast unmittelbar gegen die Ausführung.
- Eine Kurve, die über mehrere Minuten weiter fällt, beschreibt Flow mit echten Informationen darüber, wohin sich der Preis bewegt.
- Eine flache Kurve nahe null steht für unproblematischen Flow. Nach fünf Minuten liegt der Mid-Preis ungefähr dort, wo er bei der Ausführung lag.
- Eine Kurve, die zunächst negativ ist und anschließend wieder in Richtung null steigt, ist die Form, die ein passiver Market Maker mit vereinnahmten Rebates sehen möchte. Der anfängliche Rückgang entspricht dem spread zuzüglich der unmittelbaren Preiswirkung. Die Erholung zeigt, dass der Markt zurückkehrt.
Die Wahl des Zeitraums ist selbst eine Entscheidung darüber, was gemessen werden soll. Unter einer Sekunde misst ein Markout vor allem Latenz und die Queue-Position. Wird der Zeitraum auf eine Minute verlängert, misst er die kurzfristigen Informationen im Flow. Nach mehr als fünf Minuten beginnt die normale Marktbewegung, die Wirkung der Ausführung zu überlagern.
Eine tatsächliche Markout-Kurve, Ausführung für Ausführung
Das Panel unten umfasst jeden INTC-Print aus der regulären Handelssitzung am 10. Juni 2026. Jede Ausführung wird anhand des letzten Quotes der Sekunde vor dem Print als käufer- oder verkäuferinitiiert klassifiziert. Anschließend wird der signierte Markout über 5 Zeiträume gemittelt. Zwei Reihen basieren auf denselben Ausführungen: Eine wird vom Mid-Preis bei der Ausführung gemessen, die andere vom Ausführungspreis.
Das exakte SQL hinter jeder Zahl
WITH
mid_by_second AS
(
SELECT
dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
argMax((toFloat64(bid_price) + toFloat64(ask_price)) / 2, sip_timestamp) AS mid
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'INTC'
AND sip_timestamp >= toDateTime('2026-06-10 13:30:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-10 20:00:00', 'UTC')
AND bid_price > 0
AND ask_price > bid_price
GROUP BY sec
),
signed_fills AS
(
SELECT
t.sec AS sec,
t.fill_price AS fill_price,
q.mid AS ref_mid,
if(t.fill_price > q.mid, 1, -1) AS side
FROM
(
SELECT
dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
sec - 1 AS ref_sec,
toFloat64(price) AS fill_price
FROM global_markets.stocks_trades
WHERE ticker = 'INTC'
AND sip_timestamp >= toDateTime('2026-06-10 13:30:01', 'UTC')
AND sip_timestamp < toDateTime('2026-06-10 19:55:00', 'UTC')
AND price > 0
AND size > 0
) AS t
INNER JOIN mid_by_second AS q ON q.sec = t.ref_sec
WHERE t.fill_price != q.mid
)
SELECT
multiIf(f.horizon_s < 60,
concat(toString(f.horizon_s), ' sec'),
concat(toString(intDiv(f.horizon_s, 60)), ' min')) AS horizon,
round(avg(f.side * (fut.mid - f.ref_mid) / f.ref_mid) * 10000, 3) AS mid_basis_bps,
round(avg(f.side * (fut.mid - f.fill_price) / f.fill_price) * 10000, 3) AS fill_basis_bps,
count() AS fill_count
FROM
(
SELECT
sec,
fill_price,
ref_mid,
side,
horizon_s,
sec + horizon_s AS future_sec
FROM signed_fills
ARRAY JOIN [1, 5, 15, 60, 300] AS horizon_s
) AS f
INNER JOIN mid_by_second AS fut ON fut.sec = f.future_sec
GROUP BY f.horizon_s
ORDER BY f.horizon_sÜber 900593 klassifizierte Ausführungen beträgt die auf dem Mid-Preis basierende Reihe 3.068 Basispunkte bei 1 sec und 2.977 Basispunkte bei 5 min. Ein Basispunkt entspricht einem Hundertstel Prozent des Preises. Eine einzelne Ausführung bewegt daher nur den Rundungsfehler, während eine Million Aktien einen realen Geldbetrag ausmachen.
Die auf dem Ausführungspreis basierende Reihe beginnt bei -0.488 Basispunkten. Der Abstand zwischen den beiden Reihen beim kürzesten Zeitraum entspricht dem effektiven halben spread: dem Abstand zwischen dem Print und dem Mid-Preis. Ein Taker bezahlt diesen Abstand beim Einstieg, ein Maker vereinnahmt ihn. Alles nach dem ersten Zeitraum ist die Bewegung des Marktes.
Ausführungsgröße und die Form der Kurve
Adverse Selection verteilt sich nicht gleichmäßig über alle Ausführungen. Werden dieselben Ausführungen nach Print-Größe aufgeteilt, lassen sich kleine Ausführungen und Blöcke von mindestens tausend Aktien auf denselben Achsen vergleichen.
Das exakte SQL hinter jeder Zahl
WITH
mid_by_second AS
(
SELECT
dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
argMax((toFloat64(bid_price) + toFloat64(ask_price)) / 2, sip_timestamp) AS mid
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'INTC'
AND sip_timestamp >= toDateTime('2026-06-10 13:30:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-10 20:00:00', 'UTC')
AND bid_price > 0
AND ask_price > bid_price
GROUP BY sec
),
signed_fills AS
(
SELECT
t.sec AS sec,
t.fill_size AS fill_size,
q.mid AS ref_mid,
if(t.fill_price > q.mid, 1, -1) AS side
FROM
(
SELECT
dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
sec - 1 AS ref_sec,
toFloat64(price) AS fill_price,
size AS fill_size
FROM global_markets.stocks_trades
WHERE ticker = 'INTC'
AND sip_timestamp >= toDateTime('2026-06-10 13:30:01', 'UTC')
AND sip_timestamp < toDateTime('2026-06-10 19:55:00', 'UTC')
AND price > 0
AND size > 0
) AS t
INNER JOIN mid_by_second AS q ON q.sec = t.ref_sec
WHERE t.fill_price != q.mid
)
SELECT
multiIf(f.horizon_s < 60,
concat(toString(f.horizon_s), ' sec'),
concat(toString(intDiv(f.horizon_s, 60)), ' min')) AS horizon,
round(avgIf(f.side * (fut.mid - f.ref_mid) / f.ref_mid, f.fill_size < 1000) * 10000, 3) AS small_fill_bps,
round(avgIf(f.side * (fut.mid - f.ref_mid) / f.ref_mid, f.fill_size >= 1000) * 10000, 3) AS block_fill_bps,
countIf(f.fill_size >= 1000) AS block_fill_count
FROM
(
SELECT
sec,
fill_size,
ref_mid,
side,
horizon_s,
sec + horizon_s AS future_sec
FROM signed_fills
ARRAY JOIN [1, 5, 15, 60, 300] AS horizon_s
) AS f
INNER JOIN mid_by_second AS fut ON fut.sec = f.future_sec
GROUP BY f.horizon_s
HAVING countIf(f.fill_size < 1000) > 0
AND countIf(f.fill_size >= 1000) > 0
ORDER BY f.horizon_sBeim Zeitraum 5 min erzielen Prints unter tausend Aktien durchschnittlich 2.983 Basispunkte. Die 11588 Prints mit mindestens tausend Aktien erzielen dagegen durchschnittlich 2.495 Basispunkte. Zwei Quotes, die dasselbe Gesamtvolumen gegen diese beiden Gruppen ausführen, schließen den Handelstag daher nicht am selben Punkt ab.
Wie Markouts zu den spread-Kennzahlen in Ausführungsberichten werden
Der Markout ist der fehlende Begriff in der Standardzerlegung des spreads. Der effektive spread zeigt, was ein Taker tatsächlich bezahlt hat: den zweifachen signierten Abstand zwischen dem Mid-Preis und dem Print. Dieser Betrag wird in zwei Teile zerlegt. Der eine Teil ist der realisierte spread, also der Betrag, den ein Maker behält, nachdem sich der Markt bewegt hat. Der andere Teil ist die Adverse Selection. Sie entspricht dem Mid-basierten Markout multipliziert mit zwei. Die Identität ist exakt: effektiver spread = realisierter spread + Adverse Selection.
Das exakte SQL hinter jeder Zahl
WITH
mid_by_second AS
(
SELECT
dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
argMax((toFloat64(bid_price) + toFloat64(ask_price)) / 2, sip_timestamp) AS mid
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'INTC'
AND sip_timestamp >= toDateTime('2026-06-10 13:30:00', 'UTC')
AND sip_timestamp < toDateTime('2026-06-10 20:00:00', 'UTC')
AND bid_price > 0
AND ask_price > bid_price
GROUP BY sec
),
signed_fills AS
(
SELECT
t.sec + 60 AS future_sec,
t.et_time AS et_time,
t.fill_price AS fill_price,
q.mid AS ref_mid,
if(t.fill_price > q.mid, 1, -1) AS side
FROM
(
SELECT
dateDiff('second', toDateTime('2026-06-10 13:30:00', 'UTC'), sip_timestamp) AS sec,
sec - 1 AS ref_sec,
toFloat64(price) AS fill_price,
formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), toIntervalMinute(30)), '%H:%i') AS et_time
FROM global_markets.stocks_trades
WHERE ticker = 'INTC'
AND sip_timestamp >= toDateTime('2026-06-10 13:30:01', 'UTC')
AND sip_timestamp < toDateTime('2026-06-10 19:55:00', 'UTC')
AND price > 0
AND size > 0
) AS t
INNER JOIN mid_by_second AS q ON q.sec = t.ref_sec
WHERE t.fill_price != q.mid
)
SELECT
f.et_time AS et_time,
round(avg(2 * f.side * (f.fill_price - f.ref_mid) / f.ref_mid) * 10000, 3) AS effective_spread_bps,
round(avg(2 * f.side * (f.fill_price - fut.mid) / f.ref_mid) * 10000, 3) AS realized_spread_bps,
round(avg(2 * f.side * (fut.mid - f.ref_mid) / f.ref_mid) * 10000, 3) AS adverse_selection_bps,
count() AS fill_count
FROM signed_fills AS f
INNER JOIN mid_by_second AS fut ON fut.sec = f.future_sec
GROUP BY f.et_time
ORDER BY f.et_timeIn der halben Stunde ab 09:30 Eastern beträgt der effektive spread durchschnittlich 10.651 Basispunkte. Davon entfallen 8.313 auf die Adverse Selection bei einem Zeitraum von sechzig Sekunden. 2.338 verbleiben beim Maker. Das Panel umfasst 13 halbstündige Zeitfenster.
Diese Komponenten werden in den Ausführungsberichten nach Rule 605 und 606 für die einzelnen Handelsplätze zusammengefasst. Sie bilden auch die mathematische Grundlage der Aussagen zu Price Improvement im Zusammenhang mit der Sub-Penny-Regel und Price Improvement. Ein Rebate ist eine feste Gutschrift je Aktie. Adverse Selection ist ein variabler Kostenbetrag je Aktie für die Ausführungen, die ein Quote tatsächlich erhält. Der Vergleich dieser Größen über eine gemessene Kurve statt über eine veröffentlichte Gebührentabelle ist die Grundlage für die Beurteilung von Maker-Taker-Gebühren und Rebates. Sie ergänzt die Mechanik hinter den Gründen, warum Market Maker Geld verlieren.
So wurden diese Zahlen berechnet
Jedes Panel basiert auf Quotes und Prints von INTC aus der regulären Handelssitzung am 10. Juni 2026 von 09:30 bis 16:00 Eastern. Die Quotes werden auf einen Mid-Preis je Sekunde reduziert, nämlich den letzten innerhalb dieser Sekunde ausgedruckten Quote. Ein Print wird als käuferinitiiert klassifiziert, wenn er über dem Mid-Preis der vorherigen Sekunde liegt, und als verkäuferinitiiert, wenn er darunter liegt. Das ist die Standardregel auf Basis der Quotes. Prints genau auf diesem Mid-Preis werden nicht geschätzt, sondern aus der Stichprobe entfernt. Ausführungen zum Mid-Preis liegen daher außerhalb der Stichprobe. Die Verwendung des Mid-Preises der vorherigen Sekunde verhindert, dass der Referenzpreis Informationen aus der Zukunft enthält. Die Zeiträume werden als ganze Sekunden ab der Sekunde des Prints gezählt. Eine Ausführung wird nur dann in einen Zeitraum aufgenommen, wenn für die Zielsekunde ein Quote vorliegt.
FAQ
Was ist ein Markout im Trading?
Ein Markout ist die signierte Veränderung des Mid-Preises über einen festgelegten Zeitraum nach einer Ausführung. Ein positives Ergebnis bedeutet, dass sich der Markt nach der Ausführung in Richtung Ihres Trades bewegt hat. Ein negatives Ergebnis bedeutet, dass er sich in die andere Richtung bewegt hat. Das ist die Definition von Adverse Selection.
Ist ein negativer Markout immer eine schlechte Ausführung?
Nein. Ein negativer Markout nach einer Sekunde bei einer handelbaren Order entspricht überwiegend dem spread, den diese Order für die sofortige Ausführung bezahlt hat. Wichtiger ist, ob die Kurve über längere Zeiträume weiter fällt oder sich abflacht.
Was ist der Unterschied zwischen Markout und Slippage?
Slippage vergleicht eine Ausführung mit einem Entscheidungspreis oder einem Arrival-Preis. Damit wird der gesamte Verlauf einer Order bewertet. Ein Markout vergleicht eine Ausführung mit dem Mid-Preis zu einem bestimmten Zeitpunkt danach. Er bewertet also, was anschließend passiert ist. Das eine misst die Parent-Order, das andere die einzelne Ausführung.
Welcher Zeitraum sollte für einen Markout verwendet werden?
Das hängt vom Zweck der Ausführung ab. Zeiträume unter einer Sekunde bewerten latenzsensitives Trading. Eine Minute ist bei liquiden Aktien der übliche Standard für die Messung von Adverse Selection. Nur wenn der Zeitraum neben der Kennzahl veröffentlicht wird, sind zwei Markouts überhaupt vergleichbar.
Wie hängt ein Markout mit dem effektiven spread zusammen?
Der effektive spread zerfällt in den realisierten spread und eine Komponente für Adverse Selection. Diese Komponente entspricht dem Mid-basierten Markout multipliziert mit zwei. Wird der Zeitraum geändert, verschiebt sich auch die Aufteilung zwischen den beiden Komponenten. Deshalb ist eine veröffentlichte spread-Kennzahl ohne Angabe des Zeitraums unvollständig.
Jedes Panel wird zusammen mit dem SQL-Code bereitgestellt, mit dem es berechnet wurde. Öffnen Sie ein Panel, ersetzen Sie den ticker oder das Datum, und dieselbe Markout-Kurve wird auf dem Strasmore-Terminal von Grund auf neu erstellt.