𝗦𝗰𝗮𝗿𝗮𝗯 𝗗𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰 𝗙𝗶𝗲𝗹𝗱 𝗧𝗲𝘀𝘁 #𝟬𝟯𝟭
QuantConnect Lean had betere controle nodig over continuous futures rolls.
Gebruikers liepen tegen twee hoofdproblemen aan:
- Ze konden de timing van de roll niet instellen vóór de expiratiedatum.
- Ze konden geen specifieke contractmaandcycli selecteren.
Dit is geen eenvoudige bug. Het is een probleem met het mappingbeleid.
Als je dit probeert op te lossen door een nieuwe roll-kalender te maken, beschadig je de engine. Als je mapping-data dupliceert, creëer je fouten. Een slechte patch kan leiden tot een afwijking tussen wat een strategie wil en wat de engine doet.
Het doel was om een chirurgische reparatieroute te vinden.
De oplossing blijft binnen de bestaande mapping-grenzen. We herschrijven de futures engine niet. In plaats daarvan breiden we de manier uit waarop Lean omgaat met continuous futures mapping.
Wat er is veranderd in de PR:
- Een TradingDaysBeforeExpiry mapping-modus toegevoegd.
- Hiermee kunnen gebruikers de roll-timing instellen als een offset in verhandelbare dagen.
- De roll-offset loopt nu door de subscription-, history-, universe- en mapping-event-paden.
- Optionele contractmaandcyclus-walking toegevoegd.
- Dit ondersteunt specifieke houdcycli in plaats van een generieke sequentie.
- Bestaande LastTradingDay map-rijen hergebruikt om de gegevensbron enkelvoudig en betrouwbaar te houden.
Door de reparatie binnen het mappingbeleid te houden, zorgen we ervoor dat alle engine-onderdelen het eens zijn over welk contract actief is.
Het resultaat: Een begrensde reparatie die nieuwe mogelijkheden toevoegt zonder nieuwe systemen uit te vinden. Lokale build-validatie is geslaagd zonder fouten. De PR is nu klaar voor upstream review.
Optionele leercommunity: https://t.me/GyaanSetuAi