𝗦𝗰𝗮𝗿𝗮𝗯 𝗗𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰 𝗙𝗶𝗲𝗹𝗱 𝗧𝗲𝘀𝘁 #૦૩૧
QuantConnect Lean ને continuous futures rolls પર વધુ સારા નિયંત્રણની જરૂર હતી.
વપરાશકર્તાઓને બે મુખ્ય સમસ્યાઓનો સામનો કરવો પડ્યો:
- તેઓ એક્સપાયરી (expiry) પહેલા રોલ ટાઈમિંગ સેટ કરી શકતા નહોતા.
- તેઓ ચોક્કસ contract-month cycles પસંદ કરી શકતા નહોતા.
આ કોઈ સાધારણ બગ (bug) નથી. આ મેપિંગ પોલિસી (mapping policy) ની સમસ્યા છે.
જો તમે નવું રોલ કેલેન્ડર બનાવીને આને સુધારવાનો પ્રયાસ કરો છો, તો તમે એન્જિનને બગાડી નાખો છો. જો તમે મેપિંગ ડેટાનું ડુપ્લીકેટ બનાવો છો, તો તમે ભૂલો પેદા કરો છો. એક ખરાબ પેચ (patch) સ્ટ્રેટેજી શું ઈચ્છે છે અને એન્જિન શું કરે છે તે વચ્ચે તફાવત (drift) પેદા કરી શકે છે.
ધ્યેય એક સચોટ (surgical) સમારકામનો માર્ગ શોધવાનો હતો.
ઉકેલ હાલની મેપિંગ સીમા (mapping boundary) ની અંદર જ રહે છે. અમે ફ્યુચર્સ એન્જિનને ફરીથી લખતા નથી. તેના બદલે, Lean કેવી રીતે continuous futures mapping હેન્ડલ કરે છે તેને અમે વિસ્તૃત કરીએ છીએ.
PR માં શું બદલાયું:
- TradingDaysBeforeExpiry મેપિંગ મોડ ઉમેરવામાં આવ્યો.
- આ વપરાશકર્તાઓને રોલ ટાઈમિંગને tradeable-day offset તરીકે સેટ કરવાની મંજૂરી આપે છે.
- રોલ ઓફસેટ હવે subscription, history, universe, અને mapping-event પાથ દ્વારા વહે છે.
- વૈકલ્પિક contract-month-cycle walking ઉમેરવામાં આવી.
- આ સામાન્ય ક્રમ (generic sequence) ને બદલે ચોક્કસ હોલ્ડિંગ સાયકલને સપોર્ટ કરે છે.
- ડેટા સોર્સને સિંગલ અને સચોટ રાખવા માટે હાલની LastTradingDay મેપ રો (map rows) નો પુનઃઉપયોગ કરવામાં આવ્યો.
મેપિંગ પોલિસીની અંદર જ સમારકામ રાખીને, અમે સુનિશ્ચિત કરીએ છીએ કે એન્જિનના તમામ ભાગો કયો કોન્ટ્રાક્ટ સક્રિય છે તેના પર સહમત થાય.
પરિણામ: એક મર્યાદિત સમારકામ જે નવા સિસ્ટમો શોધ્યા વિના નવી ક્ષમતાઓ ઉમેરે છે. લોકલ બિલ્ડ વેલિડેશન શૂન્ય ભૂલો સાથે પાસ થયું છે. PR હવે અપસ્ટ્રીમ રિવ્યુ (upstream review) માટે તૈયાર છે.
વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi