𝗦𝗰𝗮𝗿𝗮𝗯 𝗗𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰 𝗙𝗶𝗲𝗹𝗱 𝗧𝗲𝘀𝘁 #𝟬𝟯𝟭
QuantConnect Lean ilihitaji udhibiti bora zaidi wa mzunguko wa futures endelevu (continuous futures rolls).
Watumiaji walikabiliwa na matatizo makuu mawili:
- Hawakuweza kuweka muda wa mzunguko (roll timing) kabla ya muda wa kumalizika (expiry).
- Hawakuweza kuchagua mizunguko maalum ya mwezi wa mkataba (contract-month cycles).
Hili si hitilafu (bug) rahisi. Ni suala la sera ya uainishaji (mapping policy).
Ukijaribu kurekebisha hili kwa kuunda kalenda mpya ya mzunguko, unaharibu injini (engine). Ukijadili data ya uainishaji, unazalisha makosa. Marekebisho mabaya yanaweza kusababisha upotofu (drift) kati ya kile mkakati unachotaka na kile injini inachofanya.
Lengo lilikuwa kupata njia ya ukarabati mahususi (surgical repair lane).
Suluhisho linabaki ndani ya mipaka ya uainishaji iliyopo. Hatuiandiki upya injini ya futures. Badala yake, tunaongeza uwezo wa jinsi Lean inavyoshughulikia uainishaji wa futures endelevu.
Nini kimebadilika kwenye PR:
- Imeongezwa hali ya uainishaji ya TradingDaysBeforeExpiry.
- Hii inaruhusu watumiaji kuweka muda wa mzunguko kama kigezo cha siku za biashara (tradeable-day offset).
- Kigezo cha mzunguko (roll offset) sasa hupita kupitia njia za subscription, history, universe, na mapping-event.
- Imeongezwa uwezo wa hiari wa contract-month-cycle walking.
- Hii inasaidia mizunguko maalum ya kumiliki badala ya mfuatano wa jumla.
- Tumetumia tena mistari ya ramani ya LastTradingDay iliyopo ili kuweka chanzo cha data kuwa cha umoja na cha kweli.
Kwa kuweka ukarabati ndani ya sera ya uainishaji, tunahakikisha sehemu zote za injini zinakubaliana kuhusu mkataba gani unaofanya kazi.
Matokeo: Ukarabati wenye mipaka ambao unaongeza uwezo mpya bila kuvumbua mifumo mipya. Uhakiki wa ujenzi wa ndani (local build validation) umepita bila makosa yoyote. PR sasa iko tayari kwa uhakiki wa upstream.
Jumuiya ya kujifunza ya hiari: https://t.me/GyaanSetuAi