Scarab ڈائیگنوسٹک فیلڈ ٹیسٹ #031
QuantConnect Lean کو کنٹینیوس فیوچرز رولز (continuous futures rolls) پر بہتر کنٹرول کی ضرورت تھی۔
صارفین کو دو اہم مسائل کا سامنا تھا:
- وہ ایکسپائری (expiry) سے پہلے رول ٹائمنگ سیٹ نہیں کر سکتے تھے۔
- وہ مخصوص کنٹریکٹ-مہینہ سائیکلز (contract-month cycles) کا انتخاب نہیں کر سکتے تھے۔
یہ کوئی معمولی بگ (bug) نہیں ہے۔ یہ میپنگ پالیسی (mapping policy) کا مسئلہ ہے۔
اگر آپ نیا رول کیلنڈر بنا کر اسے ٹھیک کرنے کی کوشش کرتے ہیں، تو آپ انجن کو خراب کر دیتے ہیں۔ اگر آپ میپنگ ڈیٹا کو ڈپلیکیٹ کرتے ہیں، تو آپ غلطیاں پیدا کرتے ہیں۔ ایک ناقص پیچ (patch) اس فرق کا باعث بن سکتا ہے جو ایک اسٹریٹیجی کی ضرورت اور انجن کے عمل کے درمیان پیدا ہوتا ہے۔
مقصد ایک انتہائی درست اور مخصوص مرمتی راستہ (surgical repair lane) تلاش کرنا تھا۔
حل موجودہ میپنگ کی حدود کے اندر ہی رہتا ہے۔ ہم فیوچرز انجن کو دوبارہ نہیں لکھتے۔ اس کے بجائے، ہم اس بات کو وسعت دیتے ہیں کہ Lean کنٹینیوس فیوچرز میپنگ کو کیسے ہینڈل کرتا ہے۔
PR میں کیا تبدیلیاں کی گئیں:
TradingDaysBeforeExpiryمیپنگ موڈ شامل کیا گیا۔- یہ صارفین کو رول ٹائمنگ کو ٹریڈ ایبل-ڈے آفسیٹ (tradeable-day offset) کے طور پر سیٹ کرنے کی اجازت دیتا ہے۔
- رول آفسیٹ اب subscription، history، universe، اور mapping-event کے راستوں سے گزرتا ہے۔
- آپشنل کنٹریکٹ-مہینہ-سائیکل واکنگ (contract-month-cycle walking) شامل کی گئی۔
- یہ ایک عام ترتیب کے بجائے مخصوص ہولڈنگ سائیکلز کی حمایت کرتا ہے۔
- ڈیٹا کے ذریعے کو واحد اور درست رکھنے کے لیے موجودہ
LastTradingDayمیپ روز (map rows) کو دوبارہ استعمال کیا گیا۔
مرمت کو میپنگ پالیسی کے اندر رکھ کر، ہم اس بات کو یقینی بناتے ہیں کہ انجن کے تمام حصے اس بات پر متفق ہوں کہ کون سا کنٹریکٹ فعال ہے۔
نتیجہ: ایک محدود مرمت جو نئے نظام ایجاد کیے بغیر نئی صلاحیتیں شامل کرتی ہے۔ لوکل بلڈ ویلیڈیشن (local build validation) بغیر کسی غلطی کے مکمل ہو گئی۔ PR اب اپ اسٹریم ریویو (upstream review) کے لیے تیار ہے۔
Optional learning community: https://t.me/GyaanSetuAi