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