𝗦𝗰𝗮𝗿𝗮𝗯 𝗗𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰 𝗙𝗶𝗲𝗹𝗱 𝗧𝗲𝘀𝘁 #𝟬𝟯𝟭
QuantConnect Lean benötigte eine bessere Kontrolle über Continuous Futures Rolls.
Nutzer standen vor zwei Hauptproblemen:
- Sie konnten den Roll-Zeitpunkt nicht vor dem Verfall festlegen.
- Sie konnten keine spezifischen Kontraktmonats-Zyklen auswählen.
Dies ist kein einfacher Bug. Es handelt sich um ein Problem mit der Mapping-Policy.
Wenn man versucht, dies durch das Erstellen eines neuen Roll-Kalenders zu beheben, bringt man die Engine zum Absturz. Wenn man Mapping-Daten dupliziert, entstehen Fehler. Ein fehlerhafter Patch kann zu einer Abweichung (Drift) zwischen dem, was eine Strategie beabsichtigt, und dem, was die Engine tut, führen.
Das Ziel war es, einen chirurgischen Lösungsweg zu finden.
Die Lösung bleibt innerhalb der bestehenden Mapping-Grenzen. Wir schreiben die Futures-Engine nicht neu. Stattdessen erweitern wir die Art und Weise, wie Lean das Mapping von Continuous Futures handhabt.
Was sich im PR geändert hat:
- Ein
TradingDaysBeforeExpiry-Mapping-Modus wurde hinzugefügt. - Dies ermöglicht es Nutzern, den Roll-Zeitpunkt als Offset in Handelstagen festzulegen.
- Der Roll-Offset fließt nun über die Pfade Subscription, History, Universe und Mapping-Event.
- Optionales Contract-Month-Cycle Walking wurde hinzugefügt.
- Dies unterstützt spezifische Haltedauern anstelle einer generischen Sequenz.
- Bestehende
LastTradingDay-Map-Zeilen wurden wiederverwendet, um die Datenquelle konsistent und eindeutig zu halten.
Indem wir die Korrektur innerhalb der Mapping-Policy belassen, stellen wir sicher, dass alle Engine-Komponenten sich einig darüber sind, welcher Kontrakt aktiv ist.
Das Ergebnis: Eine begrenzte Korrektur, die neue Funktionen hinzufügt, ohne neue Systeme zu erfinden. Die lokale Build-Validierung wurde ohne Fehler bestanden. Der PR ist nun bereit für das Upstream-Review.
Optional learning community: https://t.me/GyaanSetuAi