اختبار ميداني لمجموعة Scarab Diagnostic Suite رقم #030
حددت Scarab Diagnostic Suite خطأً برمجياً في Hummingbot.
كانت المشكلة تكمن في PositionExecutor؛ حيث كان أمر الإغلاق يفشل ويؤدي إلى تفعيل حلقة إعادة محاولة (retry loop). وإذا وصل تنفيذ متأخر (late fill) خلال هذه الحلقة، كان النظام يتجاهله، إذ لم يقم المنفذ بربط التنفيذ المتأخر بالأمر الفاشل، مما تسبب في إرسال النظام لأمر إغلاق سوق ثانٍ.
تؤدي الأوامر المكررة إلى مخاطر مالية.
يحافظ الإصلاح على هوية أوامر الإغلاق الفاشلة، مما يتيح لـ PositionExecutor تسوية التنفيذات المتأخرة. فإذا وصل تنفيذ بعد حدوث فشل، يقوم النظام بتحديده كعملية ناجحة، ومن ثم يتجنب المنفذ وضع أمر مكرر.
نتائج التحقق:
- اجتاز اختبار التراجع (regression test) الخاص بتسابق أوامر الإغلاق (close-order race).
- اجتاز 35 اختباراً في ملف PositionExecutor.
- اجتاز 35 اختباراً في ملف ClientOrderTracker.
- طلب السحب (PR) العام مفتوح للمراجعة.
ينقل هذا الاختبار Scarab إلى مرحلة تنفيذ التداول. وفي هذا المجال، تُعد هوية الأمر وحالة دورة حياته أمراً حيوياً، إذ تحدد عمليات التنفيذ المتأخرة وإعادة المحاولات كيفية عمل النظام.
مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi