الصفحاتتصحيح الأخطاء · 21 / 29
تصحيح الأخطاء
يمكن لبيئة التطوير تشغيل شيفرة Python الخاصة بك تحت مصحّح أخطاء لتتمكن من التوقف عند سطر وفحص مكدس الاستدعاءات والمتغيرات. يوجد وضعان لتصحيح الأخطاء، يُطلق كلاهما من شريط أدوات التصحيح.
| الوضع | ما يشغّله |
|---|---|
| Debug Run | يشغّل ملف Python الحالي مباشرةً تحت مصحّح الأخطاء. متاح دائمًا عند فتح ملف. |
| Debug Test | يشغّل استراتيجيتك على أعمدة تاريخية (اختبار رجعي) تحت مصحّح الأخطاء. يظهر فقط عندما يكون الملف النشط استراتيجية تنفّذ دوال الاستدعاء الخاصة بالاختبار الرجعي. |
يفتح Debug Test أولًا نافذة إعداد الاختبار الرجعي ثم يشغّل. ويدعم اختبارًا رجعيًا واحدًا فقط — لا عمليات مسح التحسين — ومصدر Selected symbols فقط (وليس Screener). ويقرأ البيانات الأساسية تمامًا كما يفعل الاختبار الرجعي، بما في ذلك قاعدة تاريخ الإيداع، بحيث يطابق ما تفحصه ما سيراه تشغيل Test.
يُخفى شريط أدوات التصحيح بينما يتحكم QuantCraft AI في بيئة التطوير؛ ويعود عند انتهاء جلسة الذكاء الاصطناعي. لمعرفة علاقة الأوضاع بالتشغيل العادي، راجع تشغيل الشيفرة والاختبارات الرجعية.
تعيين نقاط التوقف
- انقر على الهامش الواقع بجانب أرقام الأسطر لتبديل نقطة توقف عند ذلك السطر؛ وانقر مرة أخرى لإزالتها.
- نقاط التوقف خاصة بكل ملف وتُجمع من جميع علامات التبويب المفتوحة عند بدء الجلسة.
- لا يمكن النقر على الهامش إلا عندما لا يعمل شيء — عيّن نقاط التوقف قبل بدء التشغيل.
بدء جلسة
- أول مرة تبدأ فيها جلسة تصحيح سترى إخلاء مسؤولية للتشغيل يظهر مرة واحدة (ويمكنك تخطيه في المرة التالية).
- يحتاج Debug Run إلى ملف مفتوح. ويظهر Debug Test عندما تكون علامة التبويب النشطة ملف
.pyيعرّف دوال استدعاء استراتيجية تتعرف عليها بيئة التطوير (on_init/on_bar/on_finish)؛ وهو لا يتطلب حساب تداول نشطًا لدى وسيط. وتستخدم بيانات B2 / QuantCraft تسجيل دخولك إلى QC عند الحاجة. - لا يزال محرك الاختبار الرجعي يتطلب دالة
on_tickقابلة للاستدعاء (ودوال الاستدعاء الأخرى المطلوبة). فإذا غابتon_tick، فقد يظهر Debug Test في شريط الأدوات لكن التشغيل يفشل عند بدء الاختبار الرجعي. - تعمل جلسة تصحيح واحدة فقط في كل مرة، ويُحظر التصحيح أثناء تشغيل Run عادي أو اختبار رجعي.
عناصر التحكم
يعرض شريط الأدوات عناصر تحكم بحسب حالة الجلسة.
| عنصر التحكم | متى | ما يفعله |
|---|---|---|
| Stop | أثناء التشغيل | ينهي جلسة التصحيح. |
| Continue | عند الإيقاف المؤقت | يستأنف حتى نقطة التوقف التالية. |
| Step Over | عند الإيقاف المؤقت | ينفّذ السطر الحالي مع البقاء في الدالة نفسها. |
| Step Into | عند الإيقاف المؤقت | يدخل إلى استدعاء الدالة في السطر الحالي. |
| Step Out | عند الإيقاف المؤقت | ينفّذ حتى تعود الدالة الحالية. |
| Step Bar | عند الإيقاف المؤقت (Debug Test فقط) | يقدّم الاختبار الرجعي بمقدار شمعة واحدة. |
لا يوجد Restart — لإعادة التشغيل أوقف الجلسة وانقر Debug Run / Debug Test مرة أخرى.
ما تراه عند الإيقاف المؤقت
- ينتقل المحرر إلى الملف الموقوف مؤقتًا ويميّز السطر الموقوف.
- تُفتح علامة تبويب فرعية Debug في لوحة المخرجات فيها جزآن:
- Call Stack — سلسلة الإطارات، يعرض كل منها اسم دالة و
الملف:السطر. انقر إطارًا لفحص متغيراته. - Variables — مجمّعة حسب النطاق (Locals وGlobals وClosure وغيرها). يعرض كل متغير اسمه ونوعه وقيمته؛ وتتوسّع الكائنات والقوائم لتكشف محتواها.
- Call Stack — سلسلة الإطارات، يعرض كل منها اسم دالة و
- في Debug Test، تعرض لافتة سياق الخطوة موضعك في الاختبار الرجعي، مثل
Bar 12 / 240 · AAPL · <time> · O … H … L … C …. - تُبثّ مخرجات البرنامج إلى لوحة المخرجات كالمعتاد.
القيود
- لا توجد لوحة مراقبة ولا مُقيِّم تعبيرات — Call Stack وVariables فقط.
- لا يوجد عنصر Restart (أوقف ثم أعد التشغيل).
- Debug Test لاختبار رجعي واحد فقط — ولا يمكنه تصحيح تشغيل تحسين.
- لا يوجد مصدر رموز Screener — يتوقف Debug Test برسالة
Debug test doesn't support a Screener symbol source …. بدّل إلى Selected symbols واختر بضعة رموز. - يتطلب Debug Test أن تكون علامة التبويب النشطة ملف استراتيجية
.pyيتضمن دوال الاختبار الرجعي؛ أما النص البرمجي العادي فيحصل على Debug Run فقط. - لا يتحقق ظهور Debug Test في شريط الأدوات من وجود
on_tick؛ بل يتحقق منه المحرك.
انظر أيضًا
- الاختبارات الرجعية — تشغيل اختبار رجعي ونافذة Run
- دورة حياة الاستراتيجية — دوال استدعاء الاستراتيجية وترتيب المحاكاة
- الأخطاء المحتملة — رسائل الخطأ الشائعة وحلولها

