الـbacktesting بوصفه دليلًا
تمشيط 253 قاعدة عادية من قواعد المتوسطات المتحركة على إغلاقات هذه الدورة الستين يُخرج فائزًا يكسب 9.84 دولار للسهم بعد التكاليف، مقابل 5.68 للاحتفاظ، في 7 صفقات، وبإحصاءة t قدرها 3.65. والآن اخلط تلك الحركات الستين نفسها من شمعة إلى شمعة بحيث لا تبقى أي بنية زمنية، واحتفظ بالانجراف والتقلّب كما هما تمامًا، وأعد تشغيل البحث نفسه. في 52.5 في المئة من تلك السلاسل الخالية من البنية تتفوق أفضل قاعدة على الاحتفاظ بما لا يقل عمّا تفوقت به القاعدة الحقيقية، وفي 77.2 في المئة تتفوق عليه أصلًا. النتيجة تقع دون وسيط ما ينتجه سوق لا شيء فيه. backtest لقاعدة واحدة قياس؛ أما backtest لأفضل 253 فهو قياس للبحث نفسه.
المتطلبات المسبقة: الدرس 62، لأجل الجملة ذات الأجزاء الأربعة التي يجب أن تُكتب بها القاعدة قبل أن يمكن اختبارها أصلًا، الدرس 19، لأجل ما تستطيع سبع صفقات حمله وما لا تستطيع، و الدرس 11، لأجل تكلفة الذهاب والإياب التي تطرحها هذه الصفحة من كل رقم عليها.
الدعوى، مقولةً كما يُقصد بها فعلًا
الحجج المؤيدة للـbacktesting جيدة وتستحق أن تُعرض كما ينبغي قبل أن يُفعل بها أي شيء. القاعدة مجموعة تعليمات. والتاريخ سجل لما فعلته الأسعار. فيمكنك إذن تشغيل التعليمات على السجل ومعرفة كم كانت القاعدة ستكسب، وهذا اختبار هندسي عادي لا خرافة. إن خسرت فقد تعلّمت ذلك بثمن زهيد. وإن ربحت فقد أثبتّ على الأقل أن الفكرة ليست خاوية على نحو ظاهر. ولا أحد عاقل يزعم أن الـbacktest يتنبأ بالمستقبل. الدعوى أضيق من ذلك وتبدو غير قابلة للاعتراض: الـbacktest يخبرك إن كانت القاعدة قد عملت.
وإليك ما يخبرك به فعلًا، على بيانات طبعتها هذه الدورة سلفًا. خذ الإغلاقات الستين وعائلة قواعد واحدة: اشترِ حين يقطع متوسط متحرك سريع للإغلاقات متوسطًا بطيئًا صعودًا، واخرج حين يقطعه هبوطًا مجددًا. الأطوال السريعة من 2 إلى 12، والبطيئة من 3 إلى 30، والبطيء أطول من السريع دائمًا. هذه 253 تهيئة، وهو بحث صغير بأي مقياس، وكل واحدة منها قاعدة كان يمكن لشخص عاقل أن يقترحها.
اصطلاح التنفيذ يزن أكثر مما يبدو، ولذلك يُثبَت على الصفحة. التقاطع لا يُرى إلا بعد أن تُغلق الشمعة، فتُقرأ الإشارة عند إغلاق الشمعة i وتُنفَّذ الصفقة عند إغلاق الشمعة i زائد واحد. والتنفيذ على شمعة الإشارة نفسها هو الاستشراف الذي يُشغّل نصف عمليات الـbacktest على الإنترنت، ويساوي هنا نحو ثلث الأفضلية الظاهرة. التكاليف: سنت واحد سبريد، وخمس نقاط أساس slippage لكل جهة على سعر قريب من 103، ونصف سنت للسهم عمولة، وهو ما يبلغ 0.1230 للسهم لكل ذهاب وإياب. وأي مركز ما يزال مفتوحًا على الشمعة الأخيرة يُغلق هناك.
شغّل الـ253 كلها، فتكون الأفضل متوسطًا سريعًا من شمعتين مقابل بطيء من خمس. تُنفّذ 7 صفقات وتحقق 10.70 للسهم إجمالًا، و9.84 بعد التكاليف، مقابل 5.68 للشراء عند الإغلاق الأول والبيع عند الأخير. نسبة إصابتها 6 من 7، ومتوسط صفقتها 0.910 من انحراف معياري لشمعة واحدة، وإحصاءة t على سجل صفقاتها نفسه هي 3.65. وكل رقم من هذه الأرقام من النوع الذي يجلب تمويلًا لاستراتيجية.
ما الذي يجده البحث نفسه في سوق لا شيء فيه
الاختبار رخيص. خذ الحركات الـ59 من شمعة إلى شمعة التي تتألف منها هذه السلسلة، واسحب 59 منها عشوائيًا مع الإرجاع، ثم صُفّها واحدة تلو الأخرى من السعر الابتدائي نفسه. الناتج له الانجراف نفسه والتقلّب نفسه كالأصل، مبنيًّا حرفيًّا من الحركات نفسها، وليست فيه أي بنية زمنية على الإطلاق: لا شيء فيه يمكن أن تستغله قاعدة تعتمد على ترتيب أي شيء، لأن الترتيب قد دُمّر. افعل ذلك 4,000 مرة انطلاقًا من البذرة 20260903 وشغّل على كل واحدة البحث نفسه ذا الـ253 خانة.
| المقياس | القيمة |
|---|---|
| الأفضل من 253، إجمالًا | 10.70 |
| الأفضل من 253، بعد التكاليف | 9.84 |
| الشراء والاحتفاظ، بعد التكاليف | 5.68 |
| الأفضلية على الاحتفاظ | 4.16 |
| السلاسل الخالية من البنية التي تتفوق خانتها الأفضل على الاحتفاظ | 0.772 |
| السلاسل الخالية من البنية التي تتجاوز الأفضلية الحقيقية | 0.525 |
في 77.2 في المئة من السلاسل التي لا بنية فيها إطلاقًا، تتفوق أفضل القواعد الـ253 على الشراء والاحتفاظ. وفي 52.5 في المئة تتفوق عليه بما لا يقل عن الـ4.16 التي وجدها البحث الحقيقي. النتيجة المقيسة ليست فحسب غير مثيرة للإعجاب إزاء ذلك التوزيع: بل تقع دون وسيطه. مهما وجد البحث على الإغلاقات الحقيقية، فإن بحثًا بالحجم نفسه يجد أكثر من ذلك، في أكثر من نصف الحالات، في بيانات لا تحوي شيئًا يُوجَد.
لاحظ ما لا يقوله هذا. لا يقول إن القاعدة رديئة، ولا يقول إن السلسلة بلا بنية. يقول إن الرقم 9.84 أنتجه إجراء ينتج أرقامًا مثل 9.84 على أي حال، ومن ثم لا يصلح الرقم دليلًا عن السوق. هذا قول عن القياس، وهو سبب أن أحدًا تقريبًا ممن تتداول ضدهم لم يتحقق من قياسه قط: التحقق يكلّف أمسية وحلقة إعادة معاينة، ولا يستطيع إلا أن يسلبك نتيجة.
عمودان يُضافان إلى الورقة التي فتحتها هذه الوحدة في الدرس 62، إلى جوار الجملة. ما أعاده الـbacktest، وهو هنا 4.16 فوق المرجع. وما أعاده البحث نفسه على بيانات لا شيء فيها، وهو هنا 4.16 أو أفضل في 52.5 في المئة من المحاولات. والسطر الذي لا يكون عموده الثاني أكبر بمريح من عموده الثالث لم يكسب شيئًا، والزوج يساوي أكثر من أي من الرقمين وحده، لأن أيًّا منهما لا يعني كثيرًا من دون الآخر.
الطرحان اللذان يسبقانه
التكاليف أولًا، لأنها الجزء الوحيد المؤكد من كل هذا. الذهاب والإياب يكلّف هنا 0.1230 للسهم، والانحراف المعياري لشمعة واحدة على هذه السلسلة هو 1.5443، فيكون الذهاب والإياب 0.0796 من R واحد. يبدو صغيرًا حتى يُضرَب. القاعدة الفائزة تُنفّذ 7 صفقات فتدفع 0.557R تكاليف؛ والاحتفاظ ينفّذ واحدة ويدفع 0.0796R. القاعدة كثيرة التداول تبدأ متأخرة بنحو نصف R قبل أن يصيب أي منهما في أي شيء، والتكلفة نفسها تساوي 0.0398R إزاء وقف بانحرافين معياريين و0.1593R إزاء وقف بنصف انحراف، لأن التكلفة مثبّتة بالسنتات أما R فلا.
ثم المرجع، وهو الطرح الغائب في معظم الأحوال. الخانة الأفضل حققت 9.84. والاحتفاظ حقق 5.68. إسهام القاعدة ليس 9.84 بل 4.16، لأن السلسلة صعدت، وأي قاعدة تقضي وقتًا في الشراء تلتقط ذلك الصعود، فهمت شيئًا أم لم تفهم. والـbacktest الذي يعرض منحنى رأس مال الاستراتيجية ولا يعرض منحنى المرجع أبدًا قد أخفى الأكبر من الرقمين.
السطر الذي لا يستطيع اختبار العيّنة المقسومة رؤيته
الدفاع المعتاد إزاء هذا كله هو الاختبار خارج العيّنة، وهو يستحق فعلًا، فلنفعله هنا. حسّن على الإغلاقات الثلاثين الأولى وحدها. الخانة الأفضل على تلك النافذة هي زوج 2 و5 مجددًا، يحقق 5.53 صافيًا في 3 صفقات، على مقطع خسر فيه الشراء والاحتفاظ 0.82. يبدو ذلك كقاعدة تجد شيئًا في سوق لم يقدّم شيئًا. جمّد المعاملات، لا تلمس شيئًا، وشغّلها على الإغلاقات الثلاثين الأخيرة.
| النافذة | أفضل قاعدة، صافيًا | الشراء والاحتفاظ، صافيًا | الصفقات |
|---|---|---|---|
| الشموع 1 إلى 30، حُسّن هنا | 5.53 | -0.82 | 3 |
| الشموع 31 إلى 60، معاملات مجمّدة | 4.29 | 6.88 | 5 |
تنجح. هبط الأداء من 5.53 إلى 4.29، أي تدهور بنسبة 22 في المئة، وكل قائمة تحقق في هذا الميدان تعتبر ما دون 30 في المئة نجاحًا. لم تكن القاعدة مطوّعة للمنحنى بالمعنى الذي تقصده القائمة: فقد ظلت تعمل فعلًا على بيانات لم ترها قط.
وعلى تلك الشموع غير المرئية نفسها، حقق ألا تفعل شيئًا 6.88. القاعدة المُصادَق عليها خسرت أمام المرجع بمقدار 2.59 في النافذة ذاتها التي كان يُفترض أن تبرّئها، ولم يكن بوسع اختبار خارج العيّنة أن يبلّغ عن ذلك، لأنه لا يحوي مرجعًا في أي موضع منه. الاختبار يسأل هل تتكرر النتيجة. ولا يسأل قط هل كانت النتيجة تستحق أصلًا.
الإغلاقات الستون نفسها، على أربع درجات من الصدق
لا شيء مما يلي يغيّر البيانات ولا القاعدة. تقاطع 2 و5 هو القاعدة نفسها في كل درجة، مُشغَّلًا على الإغلاقات الستين نفسها. الذي يتغير هو ما تُقاس إليه فحسب، وكل درجة هي التي يتوقف عندها معظم عمليات الـbacktest.
قف عند الدرجة الأولى: حققت القاعدة 10.70 للسهم في 7 صفقات منها 6 رابحة. قف عند الثانية: تأخذها التكاليف إلى 9.84، وهو اقتطاع بنسبة 8 في المئة يشعرك بالتدقيق، لأن صفحة تطرح التكاليف تبدو حريصة. قف عند الثالثة: يأخذها المرجع إلى 4.16، فيقطعها إلى أقل من النصف مرة أخرى، وبهذا تكون قد بلغت أبعد مما تبلغه أغلب عمليات الـbacktest المنشورة.
الدرجة الرابعة هي التي تغيّر الحكم لا الحجم. أعد سحب الحركات، وأعد تشغيل البحث: 52.5 في المئة من السلاسل الخالية من البنية تنتج خانة فُضلى تتفوق على الاحتفاظ بمقدار 4.16 أو أكثر. وإحصاءة t للقاعدة نفسها، 3.65، ليست خاطئة؛ إنها تجيب عن سؤال آخر. تقيس مدى تأكّد ابتعاد صفقات هذه الخانة السبع عن الصفر، ولا سبيل لها إلى معرفة أن 252 خانة أخرى دخلت الاختبار واستُبعدت. إحصاءة t تُحسب داخل الفائز. أما البحث فقد جرى خارجه.
الـbacktest يقيس البحث الذي شغّلته، لا السوق الذي شغّلته عليه.
ما ينجو أكثر مما يبدو. لا يزال الـbacktest يقتل القواعد، بثمن زهيد وعلى نحو نهائي: القاعدة التي تخسر داخل العيّنة، قبل التكاليف، ميتة، ومعرفة ذلك في عصر واحد هي جُلّ ما وُجدت له هذه التقنية. وما لا يستطيعه وحده هو ترقية قاعدة. الترقية تحتاج المرجع والتكاليف والتوزيع الصفري المعاد معاينته، والتوزيع الصفري حلقة برمجية واحدة.
فشغّل الليلة الدرجات الأربع كلها على قاعدتك أنت، بهذا الترتيب، وقف عند أولها التي تسلبك النتيجة.
ما لا يحسمه هذا
أن الـbacktesting لا يعمل. اختبرت الصفحة عائلة قواعد واحدة على سلسلة واحدة من ستين شمعة ببحث من 253 خانة، بينما البرنامج الحقيقي يجري على آلاف الشموع وأدوات كثيرة، حيث تكون ضوضاء المعاينة التي تستغلها هذه الصفحة أصغر بكثير جدًّا. حجة التضخّم بالبحث لا تتوقف على حجم أي منهما، أما الـ52.5 في المئة بعينها فتتوقف، وعلى سلسلة أطول كان البحث نفسه ليصنع أفضلية أصغر بالتناسب. لا شيء هنا يبيّن أن التقنية عديمة الجدوى: بل يبيّن ما على النتيجة أن تنجو منه قبل أن تعني شيئًا.
أن اختبار إعادة المعاينة هو التوزيع الصفري الصحيح. سحب الحركات مع الإرجاع يدمّر البنية الزمنية كلها دفعة واحدة، وهو ما يجعله اختبارًا لما إذا كانت القاعدة تستغل الترتيب، ولا شيء غير ذلك. وهو يدمّر أيضًا تكتّل التقلّب، وهو حقيقي وتستطيع قاعدة تقاطع أن تتداوله فعلًا، فالتوزيع الصفري من هذه الناحية أسهل من اللازم في التغلّب عليه والنسبة الحقيقية أميل إلى ما فوق 52.5 في المئة منها إلى ما دونها. وإعادة المعاينة بالكتل تحفظ جزءًا من تلك البنية وهي الخطوة التالية الأمينة؛ وهذه الصفحة لا تشغّلها.
أن التكاليف تكاليفك أنت. سنت من السبريد وخمس نقاط أساس slippage تصف أداة سائلة بحجم صغير. وعلى شيء أوسع هي متفائلة على نحو خطير، وعلى سهم كبير عميق بمئة سهم هي متشائمة. وكل رقم في هذه الصفحة يتحرك مع ذلك الافتراض، والقاعدة ذات الـ7 صفقات تتحرك أسرع من المرجع بنحو سبعة أمثال، وهو الاتجاه الذي يجامل الاحتفاظ.
أن الشراء والاحتفاظ هو المرجع الصحيح. هو الصحيح هنا لأن القاعدة شرائية فقط على سلسلة صاعدة، وهو الخطأ لقاعدة تبيع على المكشوف، أو لمقطع هابط. على سلسلة هابطة تبدو كل قاعدة شرائية فقط ضعيفة إزاء الاحتفاظ لسبب لا علاقة له بالقاعدة، واختيار مرجع يجاملك هو الخطأ نفسه الذي في اختيار نافذة تفعل ذلك. المرجع يجب أن يُختار قبل الاختبار، وهذه الصفحة اختارته بعده، لأن السلسلة كانت مكتوبة من قبل.
أن نتيجة العيّنة المقسومة تعمّم. ثلاثون شمعة لكل نصف قليلة جدًّا، ونافذة داخل العيّنة تحوي 3 صفقات ونافذة خارجها 5، ومع عيّنات بهذا الصغر لا يحمل رقم التدهور البالغ 22 في المئة أي معلومة تقريبًا. والنتيجة التي يسندها ليست أن اختبارات خارج العيّنة تمرّر القواعد الرديئة عادةً؛ بل الأضيق والأمتن: أنها قد تمرّر قاعدة تخسر أمام المرجع، لأنها لا تحوي مرجعًا. وهذا العيب بنيوي ولا يتوقف على حجم العيّنة بتاتًا.
والتنازل الأغلى ثمنًا: هذه الصفحة تقول لك اطرح ما كان البحث سينتجه، ولا تعطيك سبيلًا لفعل ذلك مع البحث الذي أجريته حقًّا. الخانات الـ253 قابلة للعدّ لأنها كُتبت في الشيفرة. أما القواعد التي نظرت إليها على رسم بياني وتركتها، والمعامل الذي حرّكته مرتين ثم أعدته، والأداة التي جرّبتها أولًا وأسقطتها لأنها كانت قبيحة — فتلك تهيئات أيضًا، وهي غير مسجَّلة، وهي شبه أكيد أكثر عددًا من 253. والتصحيح في هذه الصفحة لا يمكن حسابه إلا للجزء من البحث الذي كان أمينًا بما يكفي ليُكتب. والدرس 64 يواجه هذه المشكلة مباشرة ويجد أن التضخّم يمكن التنبؤ به سلفًا من العدد وحده: لبحث في 15,000 تهيئة على 156 صفقة، تُظهر الخانة الأفضل 0.351R من الأفضلية قبل أن يكون السوق قد فعل أي شيء على الإطلاق.
تمارين
- سعّر ذهابًا وإيابًا واحدًا بـR. خذ سبريد أداتك، وعمولة وسيطك، ورقم slippage تستطيع الدفاع عنه، واجمعها لذهاب وإياب، واقسم على انحراف معياري لشمعة واحدة على الإطار الزمني الذي تتداوله. عشر دقائق، وتخرج برقم واحد: تكلفة الصفقة بـR، وهي المبلغ الذي أسقطه كل backtest قرأته في حياتك.
- ضع المرجع إلى جوار قاعدتك. خذ قاعدة تتداولها بالفعل أو تصدّقها بالفعل، وشغّلها على مئتَي شمعة صافيةً من التكلفة التي حسبتها للتو، واحسب على المئتَي شمعة نفسها ما كان الشراء عند الإغلاق الأول والبيع عند الأخير ليحققه. نصف ساعة، وتخرج برقم واحد: الفجوة بينهما، وهي الجزء الوحيد من منحنى رأس مالك الذي تتحمل القاعدة مسؤوليته.
- شغّل التوزيع الصفري. خذ تغيّرات المئتَي شمعة نفسها من شمعة إلى شمعة، واسحب مئتين عشوائيًا مع الإرجاع، وصُفّها واحدة تلو الأخرى، وأعد تشغيل بحثك كله على السلسلة الاصطناعية. افعل ذلك ألف مرة ببذرة تدوّنها، وعُدّ كم مرة تتفوق أفضل نتيجة على المرجع بما لا يقل عمّا وجده بحثك الحقيقي. أمسية واحدة، وتخرج برقم واحد: تلك النسبة، وهي احتمال أن يكون سوق لا شيء فيه قد سلّمك ما وجدته.
المصادر. Halbert White، «A Reality Check for Data Snooping» (Econometrica، 2000)، لأجل إجراء إعادة المعاينة الذي يشغّله هذا الدرس مصغَّرًا، ولأجل الحجة القائلة إن ما يجب أن يُحاكَم إليه البحث هو توزيع أفضل قاعدة، لا توزيع قاعدة ما. Ryan Sullivan, Allan Timmermann و Halbert White، «Data-Snooping, Technical Trading Rule Performance, and the Bootstrap» (The Journal of Finance، 1999)، لأجل التجربة نفسها منفَّذةً بالحجم الكامل على قرن من البيانات اليومية وآلاف القواعد، وهي الدراسة التي تُعدّ هذه الصفحة محاكاةً لها على ستين شمعة. David H. Bailey, Jonathan M. Borwein, Marcos López de Prado و Qiji Jim Zhu، «Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance» (Notices of the American Mathematical Society، 2014)، لأجل النتيجة القائلة إن عدد التهيئات المجرَّبة وحده يكفي للتنبؤ بمقدار الأفضلية الظاهرة التي ستبرز، وهو ما يحسبه الدرس التالي. Bradley Efron، «Bootstrap Methods: Another Look at the Jackknife» (The Annals of Statistics، 1979)، لأجل طريقة إعادة المعاينة التي بُني منها التوزيع الصفري في هذا الدرس.
ما الذي كان ينبغي أن يحدث
الجملة ذات الأجزاء الأربعة التي يجب أن تُكتب بها القاعدة قبل أن يمكن اختبارها أصلًا.
اقرأ الدرس ←Slippage والأثر عند حجم التجزئة
تكلفة الذهاب والإياب التي يطرحها هذا الدرس من كل رقم على الصفحة.
اقرأ الدرس ←لأغراض تعليمية فقط. ينطوي التداول على مخاطر خسارة كبيرة. هذه ليست نصيحة مالية. الأداء السابق لا يضمن النتائج المستقبلية.
💬 نقاش (0 تعليق)
جارٍ تحميل التعليقات…
هل أنت مستعدّ للتداول مع Signal Pilot؟
طبّق ما تعلّمته باستخدام مؤشرات احترافية وأدوات لتحليل السوق في الوقت الفعلي.
العودة إلى Signal Pilot →