𝗦𝗰𝗮𝗿𝗮𝗯 𝗗𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰 𝗙𝗶𝗲𝗹𝗱 𝗧𝗲𝘀𝘁 #𝟬𝟯𝟭
QuantConnect Lean ला continuous futures rolls वर अधिक चांगल्या नियंत्रणाची गरज होती.
वापरकर्त्यांना दोन मुख्य समस्यांचा सामना करावा लागला:
- ते expiry च्या आधी roll timing सेट करू शकत नव्हते.
- ते विशिष्ट contract-month cycles निवडू शकत नव्हते.
ही केवळ एक साधी त्रुटी (bug) नाही. ही एक mapping policy ची समस्या आहे.
जर तुम्ही नवीन roll calendar तयार करून हे सुधारण्याचा प्रयत्न केला, तर engine बिघडते. जर तुम्ही mapping data ची पुनरावृत्ती (duplicate) केली, तर त्रुटी निर्माण होतात. एक चुकीचा patch स्ट्रॅटेजीला काय हवे आहे आणि engine काय करते, यामध्ये तफावत (drift) निर्माण करू शकतो.
उद्दिष्ट एक अचूक आणि मर्यादित उपाय (surgical repair lane) शोधणे हे होते.
हा उपाय सध्याच्या mapping boundary च्या आतच राहतो. आम्ही futures engine पुन्हा लिहित नाही. त्याऐवजी, Lean कशा प्रकारे continuous futures mapping हाताळते, याचे विस्तार करतो.
PR मध्ये काय बदलले:
- TradingDaysBeforeExpiry mapping mode जोडला.
- यामुळे वापरकर्ते roll timing हे tradeable-day offset म्हणून सेट करू शकतात.
- roll offset आता subscription, history, universe आणि mapping-event मार्गांद्वारे प्रवाहित होतो.
- पर्यायी contract-month-cycle walking जोडली.
- हे सामान्य क्रमाऐवजी (generic sequence) विशिष्ट holding cycles ला सपोर्ट करते.
- डेटा सोर्स एक आणि अचूक ठेवण्यासाठी अस्तित्वात असलेल्या LastTradingDay map rows चा पुन्हा वापर केला.
सुधारणा mapping policy च्या आत ठेवून, आम्ही हे सुनिश्चित करतो की engine चे सर्व भाग कोणता contract सक्रिय आहे यावर सहमत आहेत.
परिणाम: नवीन प्रणाली शोधल्याशिवाय नवीन क्षमता प्रदान करणारी एक मर्यादित सुधारणा. Local build validation शून्य त्रुटींसह यशस्वी झाले. PR आता upstream review साठी तयार आहे.
Optional learning community: https://t.me/GyaanSetuAi