𝗦𝗰𝗮𝗿𝗮𝗯 𝗗𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰 𝗙𝗶𝗲𝗹𝗱 𝗧𝗲𝘀𝘁 #𝟬𝟯𝟭
QuantConnect Lean కి కంటిన్యూయస్ ఫ్యూచర్స్ రోల్స్ (continuous futures rolls) పై మెరుగైన నియంత్రణ అవసరమైంది.
వినియోగదారులు రెండు ప్రధాన సమస్యలను ఎదుర్కొన్నారు:
- వారు ఎక్స్పైరీ (expiry) కంటే ముందే రోల్ టైమింగ్ను సెట్ చేయలేకపోయారు.
- వారు నిర్దిష్ట కాంట్రాక్ట్-నెల సైకిల్లను (contract-month cycles) ఎంచుకోలేకపోయారు.
ఇది కేవలం ఒక సాధారణ బగ్ కాదు. ఇది మ్యాపింగ్ పాలసీ (mapping policy) సమస్య.
మీరు కొత్త రోల్ క్యాలెండర్ను సృష్టించడం ద్వారా దీనిని పరిష్కరించడానికి ప్రయత్నిస్తే, ఇంజిన్ దెబ్బతింటుంది. మీరు మ్యాపింగ్ డేటాను డూప్లికేట్ చేస్తే, లోపాలు (errors) ఏర్పడతాయి. ఒక తప్పుడు ప్యాచ్, స్ట్రాటజీ కోరుకునే దానికీ మరియు ఇంజిన్ చేసే దానికీ మధ్య తేడాను (drift) కలిగించవచ్చు.
దీని లక్ష్యం ఒక ఖచ్చితమైన మరమ్మత్తు మార్గాన్ని (surgical repair lane) కనుగొనడం.
ఈ పరిష్కారం ఇప్పటికే ఉన్న మ్యాపింగ్ బౌండరీలోనే ఉంటుంది. మేము ఫ్యూచర్స్ ఇంజిన్ను తిరిగి రాయడం లేదు. దానికి బదులుగా, Lean కంటిన్యూయస్ ఫ్యూచర్స్ మ్యాపింగ్ను ఎలా నిర్వహిస్తుందో దానిని విస్తరిస్తున్నాము.
PRలో ఏమి మారింది:
- TradingDaysBeforeExpiry మ్యాపింగ్ మోడ్ను జోడించాము.
- ఇది వినియోగదారులు రోల్ టైమింగ్ను ట్రేడబుల్-డే ఆఫ్సెట్గా (tradeable-day offset) సెట్ చేయడానికి అనుమతిస్తుంది.
- రోల్ ఆఫ్సెట్ ఇప్పుడు subscription, history, universe, మరియు mapping-event పాత్ల ద్వారా ప్రవహిస్తుంది.
- ఐచ్ఛిక కాంట్రాక్ట్-నెల-సైకిల్ వాకింగ్ను (contract-month-cycle walking) జోడించాము.
- ఇది సాధారణ క్రమం (generic sequence) కు బదులుగా నిర్దిష్ట హోల్డింగ్ సైకిల్లను సపోర్ట్ చేస్తుంది.
- డేటా సోర్స్ను ఏకైక మరియు ఖచ్చితంగా ఉంచడానికి ఇప్పటికే ఉన్న LastTradingDay మ్యాప్ రోస్ను తిరిగి ఉపయోగించాము.
మరమ్మత్తును మ్యాపింగ్ పాలసీలోనే ఉంచడం ద్వారా, ఏ కాంట్రాక్ట్ యాక్టివ్గా ఉందో అన్ని ఇంజిన్ భాగాలు అంగీకరించేలా మేము నిర్ధారిస్తాము.
ఫలితం: కొత్త వ్యవస్థలను సృష్టించకుండానే కొత్త సామర్థ్యాలను జోడించే ఒక పరిమిత మరమ్మత్తు (bounded repair). లోకల్ బిల్డ్ వాలిడేషన్ ఎటువంటి లోపాలు లేకుండా పూర్తయింది. PR ఇప్పుడు అప్స్ట్రీమ్ రివ్యూ కోసం సిద్ధంగా ఉంది.
ఐచ్ఛిక అభ్యాస సమూహం: https://t.me/GyaanSetuAi