Eine kontinuierliche Futures-Reihe verbindet aufeinanderfolgende, auslaufende Kontrakte zu einer einzigen Historie. Diese Historie eignet sich zur Untersuchung von Signalen, doch wer das Trading-P&L direkt aus ihren Preisänderungen berechnet, kann bei jedem Roll Gewinne und Verluste künstlich erzeugen. Aus der Reihe geht nicht hervor, welchen Kontrakt du gehalten hast.
Nehmen wir ein besonders drastisches Beispiel: NYMEX-WTI-Rohöl am 20. April 2020. Der Mai-Kontrakt schloss bei minus 37.63 $ pro Barrel. Der Juni-Kontrakt schloss bei plus 20.43 $. Beide Kurse waren real. Auch die Differenz von 58.06 $ war real. Doch der Wechsel im Chart von Mai auf Juni brachte einer Long-Position diesen Betrag nicht ein.
Sehen wir uns diesen Übergang genauer an. Dies sind historische Abrechnungskurse; die hypothetischen Abrechnungsbeispiele unten dienen dazu, die Rechenweise zu veranschaulichen, und behaupten nicht, dass eine Order zu diesen Kursen hätte ausgeführt werden können.
CLK20 und CLM20: die Kennungen, die im Chart verschwanden
| Merkmal | Mai-Kontrakt | Juni-Kontrakt |
|---|---|---|
| Kontraktkennung | CLK20 | CLM20 |
| Liefermonat | Mai 2020 | Juni 2020 |
| Abrechnungskurs am 20. April, Dollar pro Barrel | −37.63 | 20.43 |
| Kontraktgröße | 1,000 Barrel | 1,000 Barrel |
Der Monatscode ist wichtiger als das Tickersymbol-Präfix. K steht für Mai, M für Juni. Diese Kontrakte hatten unterschiedliche Lieferverpflichtungen und unterschiedliche Preise. Der Mai-Kontrakt näherte sich seinem Verfall, während der Lagerdruck außergewöhnlich hoch war. Der Juni-Kontrakt bot einen weiteren Monat.
Das kontinuierliche Symbol eines Datenanbieters verbirgt diesen Unterschied hinter einer erfreulich kompakten Bezeichnung. Kompakte Symbole gefallen mir, solange sie nicht die einzige Kennung im Trade-Log sind. Sonst gleicht die Fehlersuche archäologischer Arbeit – nur mit schlechterem Kaffee.
Eine einheitliche kontinuierliche Historie gibt es zudem nicht. Ein Datenanbieter rollt vielleicht eine festgelegte Zahl von Geschäftstagen vor dem Verfall, beim Wechsel des Volumenschwerpunkts oder nach einem anderen Zeitplan. Viele Historien waren schon vor dem 20. April aus dem Mai-Kontrakt gerollt. Unser Beispiel verbindet bewusst die Abrechnungskurse dieser beiden Kontrakte, um den Fehler sichtbar zu machen; es bezieht sich nicht auf den Roll eines bestimmten Anbieters.
1,000 Barrel: der Multiplikator hinter jedem Kurs
Der standardmäßige NYMEX-WTI-Futures-Kontrakt umfasst 1,000 Barrel. Eine Kursbewegung von 1 $ verändert den Wert einer Long-Position in einem Kontrakt daher um 1,000 $. Ein Tick von 0.01 $ entspricht 10 $.
Für eine unveränderte Position in einem Kontrakt lautet die Grundrechnung:
gross_pnl = contracts × 1,000 × (ending_price − starting_price)
Das funktioniert auch bei negativen Kursen. Prozentuale Renditen auf den notierten Futures-Kurs sind dann deutlich weniger hilfreich: Beim Kreuzen der Nulllinie können sie undefiniert werden oder ihre scheinbare Bedeutung umkehren. Die Strategierendite sollte sich aus dem Kontowert und der verwendeten Cashflow-Konvention ergeben. Der notierte Barrelpreis entspricht nicht dem für die Strategie eingesetzten Kapital.
58.06 $: der Sprung an der Verbindungsstelle
Angenommen, eine naive Engine sieht auf den Abrechnungskurs des Mai-Kontrakts den des Juni-Kontrakts folgen und wendet die Formel so an, als hätte sich das Instrument nicht geändert:
invented_pnl = 1 × 1,000 × (20.43 − (−37.63))
= $58,060
In diesem Vergleich ist im Zeitverlauf nichts passiert. Es sind die Kurse zweier Kontrakte aus derselben Handelssitzung. Die Engine verwechselt die Preisdifferenz zwischen den Kontrakten mit einem Gewinn aus der Haltedauer.
Bei einem tatsächlichen täglichen Übergang enthält die Kursänderung zudem sowohl die gewöhnliche Marktbewegung im alten Kontrakt vom Vortag als auch den Kurs des neuen Kontrakts von heute. Dadurch ist der Fehler schwerer zu erkennen. Die verbuchte Änderung umfasst die Bewegung des alten Kontrakts und die Differenz zwischen den Kontrakten zum Wechselzeitpunkt.
Auch 58,060 $ als vermeintliche Cash-„Rollkosten“ abzuziehen, behebt das Modell nicht. Futures werden nicht gekauft, indem man ihren gesamten notierten Nominalwert bezahlt. Beim Schließen eines Kontrakts und Eröffnen eines anderen ändern sich Positionen; außerdem fallen realisiertes oder abgerechnetes P&L, Gebühren, Ausführungseffekte und Margin-Anforderungen an. Die Differenz zwischen den Kursniveaus ist nicht automatisch eine Barbelastung.
+58.06: das in die Historie eingerechnete Back-Adjustment
Bei einer gängigen Methode zum Erstellen kontinuierlicher Reihen wird die Roll-Differenz zu den früheren Kursen addiert. Nach dieser Konvention wird aus −37.63 im Mai-Kontrakt 20.43, sodass der Übergang zum Juni-Kontrakt ohne Sprung erfolgt. Auch frühere Beobachtungen desselben historischen Abschnitts steigen um 58.06.
| Konstruktion | Was an dieser Verbindungsstelle geschieht | Folge für die Analyse |
|---|---|---|
| Unadjusted | Die Differenz von 58.06 $ bleibt bestehen | Indikatoren können den Kontraktwechsel als Marktbewegung interpretieren |
| Additives Back-Adjustment | 58.06 zum älteren Abschnitt addieren | Dollaränderungen innerhalb des Abschnitts bleiben erhalten; historische Niveaus und prozentuale Änderungen verschieben sich |
| Ratio-Back-Adjustment | Den älteren Abschnitt mit 20.43 / −37.63 multiplizieren, also ungefähr mit −0.543 | Der negative Faktor kehrt das Vorzeichen der Preisänderungen innerhalb des Abschnitts um |
Darum genügt mir „ratio-adjustiert“ nicht als vollständige Datenspezifikation. Eine Methode, die bei strikt positiven Kursen sinnvoll funktioniert, braucht eine klare Regel für Kurse um null und darunter.
Auch das additive Adjustment hat Folgen. Ein Signal, das unter einem festen Schwellenwert von 30 $ kauft, kann sich ändern, wenn spätere Rolls frühere Kursniveaus neu festlegen. Ein Signal auf Basis eines schnellen minus langsamen gleitenden Durchschnitts kann gegenüber einer einheitlichen additiven Verschiebung invariant sein, sofern beide Zeitfenster dieselbe Verschiebung erhalten. Zeitfenster, die eine Adjustierungsgrenze überschreiten, müssen gesondert geprüft werden.
Halte Adjustierungsmethode, Roll-Zeitplan und Datenversion zusammen mit dem Forschungsergebnis fest. Bei Signalen, die von adjustierten Kursniveaus abhängen, solltest du die Historie rekonstruieren, die zum jeweiligen Entscheidungszeitpunkt verfügbar war. Ein aktueller Download kann Adjustments aus Rolls enthalten, die damals noch nicht stattgefunden hatten.
Die zwei Orderzeilen, die im kontinuierlichen Chart fehlen
Hier ist ein bewusst vereinfachtes Ledger. Angenommen, ein Mai-Kontrakt wurde vor dem Roll bei −30.00 bewertet. Nehmen wir an, der Ausstieg aus dem Mai-Kontrakt und der Einstieg in den Juni-Kontrakt erfolgen zu den historischen Abrechnungskursen oben; danach wird der Juni-Kontrakt bei 21.00 bewertet. Diese angenommenen Ausführungskurse dienen nur zur Veranschaulichung der Abrechnung.
| Ledger-Ereignis | Berechnung | Brutto-P&L |
|---|---|---|
| Einen Mai-Long-Kontrakt bei −37.63 schließen | 1,000 × (−37.63 − (−30.00)) | −$7,630 |
| Einen Juni-Long-Kontrakt bei 20.43 eröffnen | Keine Kursbewegung beim Einstieg | $0 |
| Juni-Kontrakt bei 21.00 bewerten | 1,000 × (21.00 − 20.43) | +$570 |
| Gesamt | Vor Ausführungskosten und Gebühren | −$7,060 |
Die Differenz von 58.06 $ taucht nirgends als eigenständiger Ertrag oder Aufwand auf. Die tägliche Variation Margin bestimmt, wann das Futures-P&L dem Bargeld gutgeschrieben wird; sie erzeugt keine zweite Kopie dieses P&L.
Ein realer Roll kann über eine Kalender-Spread-Order statt über zwei unabhängige Orders ausgeführt werden. Der Simulator sollte den angenommenen Mechanismus samt Ausführungen und Kosten abbilden und dabei die einzelnen Kontraktpositionen erhalten.
Meine Prüfung ist einfach: Jeder Dollar Futures-P&L muss sich einem benannten Kontrakt, einer Stückzahl, einem Multiplikator und zwei Kursen dieses Kontrakts zuordnen lassen. Außerdem möchte ich den Zeitstempel der Roll-Entscheidung und die dafür verwendeten Eingaben sehen. Eine volumenbasierte Regel, die das abgeschlossene Tagesvolumen von heute verwendet, darf nicht unbemerkt schon während derselben Sitzung handeln.
Zeige die kontinuierliche Linie zur Einordnung. Darunter sollten die tatsächlich gehaltenen Kontrakte zu sehen sein, mit Markierungen für jeden Übergang. Springt die Equity-Kurve an einem Übergang, sehe ich mir zuerst diese beiden Orderzeilen an.
← Alle Beiträge


