Walk-forward Analysis تختبر إجراء الاختيار زمنيًا. تُختار القواعد أو تُضبط باستخدام الماضي المتاح، ثم تُقيّم على بيانات لاحقة لم تدخل في ذلك الاختيار.
لدى بيتر عدة نسخ من قاعدة تداول، ويريد استخدام النسخة الأفضل في الماضي القريب. تتيح Walk-forward Analysis إعادة هذه الفكرة خطوة خطوة: الاختيار من التاريخ المعروف، وتسجيل نتيجة الفترة التالية، ثم الاختيار مجددًا. تصف QuantConnect هذا التعديل الدوري. نحن نختبر طريقة الاختيار أيضًا، لا نسخة ثابتة فقط. لذا يجب تحديد المرشحين ومعيار الاختيار وموعد المراجعة التالية مسبقًا. [1]
إذا اختار بيتر نسخة بسبب ربحها الماضي، فلا يثبت الربح نفسه صحة الاختيار بصورة مستقلة. توضح QuantConnect أن تلك البيانات أصبحت جزءًا من التطوير. السؤال المنصف هو: كيف أدت النسخة بعد اختيارها؟ لا يجوز للاختبار الحالي اختيار فائزه بنفسه. لكن بعد انتهاء الفترة وتوفر نتائجها، قد يستخدمها الإجراء المحدد مسبقًا لاختيار لاحق. هذا لا يعيد كتابة القرار المسجل سابقًا. [2]
نافذة الاختيار هي المقطع التاريخي المستخدم الآن. تحافظ النافذة المتحركة على طولها وتتخلى عن البيانات الأقدم؛ أما المتوسعة فتحافظ على بدايتها وتضيف مشاهدات جديدة. توسع أداة TimeSeriesSplit من scikit-learn بيانات التدريب افتراضيًا، لكنها تسمح بوضع حد لحجمها. حدد الطول وتكرار التحديث قبل الاختبار. تشترط الوثائق تساوي المسافات بين المشاهدات لمقاييس قابلة للمقارنة؛ لذلك يجب مع السجلات غير المنتظمة فحص المدة التقويمية الفعلية أيضًا. [3]
تخيل أن نتيجة آخر مشاهدة تدريبية لا تكتمل إلا أثناء الاختبار التالي. لم تكن معروفة وقت الاختيار. ترتيب الجدول زمنيًا لا يعالج ذلك. يسمح المعامل gap في TimeSeriesSplit باستبعاد مشاهدات من نهاية التدريب. ينبغي أن يتحدد الفاصل حسب توفر المدخلات واكتمال النتائج، لا حسب أجمل منحنى. وحتى الفاصل المناسب لا يثبت استقلال الفترات المتجاورة ولا يزيل جميع الانحيازات. [3]
ليس ضروريًا أن يكون التسرب في قاعدة التداول. فقد يُحسب متوسط لإعادة قياس القيم من الملف كله، بما فيه الاختبار المستقبلي. تحذر scikit-learn من المشكلة نفسها عند ملء القيم الناقصة أو اختيار الخصائص المدخلة. يجب تعلم إعدادات التحويل من التدريب وحده ثم تطبيقها على الاختبار. كرر الفصل عند كل خطوة؛ تقسيم جدول محوّل لاحقًا لا يلغي التسرب. احتفظ كذلك بنسخة البيانات وأوقات توفرها الفعلية. [4]
بعد اختبار الفترات منفردة، يجب دمج النتائج بصورة صحيحة. تصف QuantConnect نماذج سعر التنفيذ وكميته التي قد تشمل فرق السعر وSlippage. ثم يحتاج تقييمنا إلى حسابات واضحة: لا نضيف أرباح التطوير إلى حساب الاختبار ولا نحسب الاختبارات المتداخلة مرات عدة دون تفسير. عند تغيير النسخة، وضّح ما يحدث للمراكز المفتوحة ورأس المال وتكاليف الانتقال. يبسط المثال أدناه ذلك بإنهاء كل فترة دون مركز مفتوح. [5]
قد يكرر بيتر تغيير أطوال النوافذ أو الأهداف أو المرشحين حتى يبدو الاختبار جميلًا. عندئذ استخدم سلسلة الاختبار في التطوير أيضًا. يناقش Bailey وزملاؤه النجاحات العشوائية الناتجة عن البحث المتكرر في البيانات نفسها. سجّل جميع الإجراءات المجربة وميّز أي تحقق إضافي على تاريخ لم يُستخدم بعد. التقدم زمنيًا وحده ليس ضمانًا إحصائيًا ولا تقديرًا لاحتمال فرط التكيّف، أي التوافق المفرط مع بيانات الماضي. [6]
احتفظ بحدود النوافذ والمرشحين ودرجات الاختيار والقرارات الفعلية ونتائج الفترات التالية بعد التكاليف. أضف إلى المجموع الخسائر وعدد المشاهدات ومقارنة بشروط متساوية. تذكّر NFA الأمريكية بأن النتائج الافتراضية لا تلتقط جميع مشكلات السيولة والانزلاق والسلوك عند الخسارة الحقيقية؛ قواعدها الترويجية تخص أعضاء محددين. لا يدحض مثال صغير خاسر المنهج كله، كما لا يثبت مجموع موجب ميزة مستقبلية. [7]
قد يخسر الفائز السابق في الفترة التالية
للحصول على صورة أوضح، اقرأ هذا المدخل مع Backtesting, Overfitting, Look-ahead Bias, Trading Plan, Trading Journal. تشير إلى هذا المدخل أيضًا Backtesting, Overfitting, Look-ahead Bias, Survivorship Bias.
01هل يمكن استخدام اختبار سابق في الاختيار لاحقًا؟+
نعم، بعد انتهاء الفترة وتوفر البيانات اللازمة، إذا سمح الإجراء المحدد مسبقًا بذلك. لكن لا يجوز تغيير النسخة أو النتيجة المسجلة لذلك الاختبار بأثر رجعي.
02هل تمنع Walk-forward Analysis فرط التكيّف؟+
ليس وحدها. يمكن الاستمرار في ضبط النوافذ أو المرشحين أو الإجراء بأكمله وفق النتائج نفسها. سجّل المحاولات، وافحص تسرب المعلومات، وميّز التطوير الإضافي عن تحقق جديد فعلًا.