598 / 736WFA

Walk-forward Analysis

التحليل بالتقدم الزمني المتتابع

تختبر Walk-forward Analysis استراتيجية تتجدد بمرور الوقت: تختار قاعدة من المعلومات المعروفة، وتقيّمها في الفترة التالية، ثم تتقدم وتكرر العملية.

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]

مثالمثال · WFA

قد يخسر الفائز السابق في الفترة التالية

لنأخذ مثالًا افتراضيًا من إعدادنا: ست فترات متساوية من 1 إلى 6 ونسختان محددتان مسبقًا A وB. بحجم تداول ثابت ومتساوٍ، تكون النتائج الصافية A ⁦[4, -1, 2, -3, 5, -2] USD⁩ وB ⁦[1, 2, 1, 1, -2, 4] USD⁩. تتوفر كل نتيجة بعد انتهاء فترتها فقط، وتشمل جميع تكاليف النموذج ولا تترك مركزًا مفتوحًا. لا توجد تكاليف انتقال إضافية أو ديون أو إيداعات أو سحوبات. نحدد قبل الاختبار إجراءً بسيطًا: جمع آخر ثلاث فترات مكتملة، واختيار المجموع الأعلى، واستخدام الفائز في الفترة التالية فقط؛ وعند التعادل نختار A. نوافذ الاختيار هي ⁦[1, 2, 3]⁩ و⁦[2, 3, 4]⁩ و⁦[3, 4, 5]⁩، والاختبارات التالية ⁦[4, 5, 6]⁩. مجاميع اختيار A هي ⁦[5, -2, 4] USD⁩ وB هي ⁦[4, 4, 0] USD⁩. لذلك نختار بالتتابع A ثم B ثم A. لا يدخل في نتيجة الاختبار المجمعة سوى ⁦[-3, -2, -2] USD⁩، بإجمالي ⁦-7 USD⁩. يبدأ حساب الاختبار قبل الفترة 4 بنقد قدره ⁦1000 USD⁩ وينتهي عند ⁦993 USD⁩؛ ولا يتغير حجم التداول مع الرصيد. لا نضيف أرباح فترات الاختيار إلى الحساب، ونحسب كل اختبار مرة واحدة. يوضح المخطط تحرك نوافذ الاختيار والاختبارات التالية، لا تاريخًا حقيقيًا للسوق أو احتمالًا للنجاح مستقبلًا.

للحصول على صورة أوضح، اقرأ هذا المدخل مع Backtesting, Overfitting, Look-ahead Bias, Trading Plan, Trading Journal. تشير إلى هذا المدخل أيضًا Backtesting, Overfitting, Look-ahead Bias, Survivorship Bias.

01هل يمكن استخدام اختبار سابق في الاختيار لاحقًا؟

نعم، بعد انتهاء الفترة وتوفر البيانات اللازمة، إذا سمح الإجراء المحدد مسبقًا بذلك. لكن لا يجوز تغيير النسخة أو النتيجة المسجلة لذلك الاختبار بأثر رجعي.

02هل تمنع Walk-forward Analysis فرط التكيّف؟

ليس وحدها. يمكن الاستمرار في ضبط النوافذ أو المرشحين أو الإجراء بأكمله وفق النتائج نفسها. سجّل المحاولات، وافحص تسرب المعلومات، وميّز التطوير الإضافي عن تحقق جديد فعلًا.

DOC · 001QuantConnect — Walk Forward Optimizationتوثيق DOC · 002QuantConnect — Optimization Parametersتوثيق DOC · 003scikit-learn — TimeSeriesSplitتوثيق DOC · 004scikit-learn — Common Pitfalls: Data Leakageتوثيق DOC · 005QuantConnect — Trade Fills: Key Conceptsتوثيق DOC · 006Bailey et al. — The Probability of Backtest Overfittingمصدر أولي DOC · 007NFA — Use of Promotional Material Containing Hypothetical Performance Resultsتوثيق
تمت المراجعة: المصادر أولًا · ليست نصيحة استثمارية