احتمال الإفراط في تخصيص الاختبار الرجعي: هل تغلب بحثك على رمية عملة؟
مقال من سلسلة "اختبارات رجعية بلا أوهام".
📄 تطورت هذه المقالة إلى ورقة بحثية. كل رقم أدناه يأتي من سكريبت حتمي واحد يبني حقيقة أساسية مضبوطة — عمليات بحث بضوضاء خالصة، وعمليات بحث بميزة مزروعة، وشبكة معلمات حقيقية لمتوسط متحرك على مسير عشوائي — ثم يُشغّل التحقق المتقاطع المتماثل تركيبياً (CSCV) لتقدير احتمال الإفراط في تخصيص الاختبار الرجعي عليها، قايساً مباشرة مدى جودة تعميم إجراء الانتقاء نفسه. اقرأ الورقة على الإنترنت (نسخة تفاعلية + PDF) على pbo-search.marketmaker.cc، والكود والبيانات على github.com/suenot/pbo-search.
وضعت نسبة Sharpe المخفّضة فائزك في قفص الاتهام: بالنظر إلى أنك بحثت في N توليفة، هل هذه الـSharpe الواحدة تتجاوز ما يشتريه الحظ؟ تضع هذه المقالة شيئاً آخر في قفص الاتهام — فعل الانتقاء نفسه. شغَّلت شبكة، واحتفظت بأفضل خلية، ومضيت قدماً. لكن هل كان الانتقاء نفسه جديراً بالثقة؟ لو أعدت تشغيل تقسيمة داخل-العينة/خارج-العينة كاملة بطريقة مختلفة، هل كانت نفس التوليفة ستخرج في القمة مجدداً — أم أنك توّجت فقط الأوفر حظاً من بين مئة عملة؟
يُجيب احتمال الإفراط في تخصيص الاختبار الرجعي (PBO)، الذي قدّمه Bailey وBorwein وLópez de Prado وZhu (2017)، عن هذا السؤال بالضبط، ويفعل ذلك برقم يُخطئ معظم الناس قراءته من أول نظرة. إليك الجملة الأهم في هذه المقالة كلها، فاقرأها مرتين:
قيمة العدم لـPBO هي 0.5، لا 1. بحث بلا أي مهارة خارج العينة يُسجِّل PBO ≈ 0.5. النصف ليس "نصف إفراط في التخصيص" — النصف هو إفراط كامل في التخصيص، رمية عملة. تريد PBO قريبة من الصفر.
هذا يُعثِر الجميع. تدرَّبنا على قراءة الاحتمالات مقابل عدم يعني "لا شيء"، وبخصوص الإفراط في التخصيص تقول غريزتنا إن القراءة "البريئة" هي 0. ليست كذلك. PBO هو احتمال أن تهبط التوليفة التي اخترتها كأفضل داخل العينة في النصف السفلي من الحقل خارج العينة. إذا لم يتعلّم بحثك حقاً أي شيء يُعمَّم، فإن الفائز داخل العينة يكون، خارج العينة، بنفس احتمال التواجد في أي مكان من الترتيب — لذا يهبط في النصف السفلي في حوالي نصف الوقت. PBO ≈ 0.5 يعني أن إجراء الانتقاء لديك رمية عملة. PBO ≈ 0 يعني أن الفائز داخل العينة يبقى فائزاً بموثوقية خارج العينة — الانتقاء جدير بالثقة. كل ما يلي مبنيّ لجعل حقيقة المعايرة هذه ملموسة، على بيانات نعرف فيها الحقيقة الأساسية.
| النظام (200 توليفة، T = 1000، S = 16) | ما هو | Sharpe الفائز داخل العينة | Sharpe خارج العينة | PBO | الحكم |
|---|---|---|---|---|---|
| حقل بلا ميزة (200 استراتيجية ضوضاء iid) | حظ خالص، بلا ميزة في أي مكان | 1.98 | 0.06 | 0.476 | إفراط في التخصيص — رمية عملة |
| ميزة مزروعة (20 توليفة تحمل Sharpe سنوية 2.38) | مهارة حقيقية وقوية | 3.73 | 2.34 | 0.001 | جدير بالثقة |
| شبكة تقاطع متوسط متحرك على مسير عشوائي خالص (170 توليفة) | سراب مغرٍ | 0.97 | 0.04 | 0.463 | إفراط في التخصيص — رمية عملة |
نِسَب Sharpe مُسنَّنة سنوياً ×√252. تُتوسِّط الصفوف الثلاثة كلها Sharpe الاستراتيجية المُنتقاة عبر 60 مصفوفة مونت كارلو — مقارنة عادلة، بحيث تُقيَّم شبكة الإفراط في التخصيص بنفس طريقة تقييم حالة العدم والميزة المزروعة. على هذا الأساس المتوسَّط، فإن Sharpe الشبكة المُنتقاة داخل العينة (0.97) أدنى فعلياً من قيمة العدم المُضخَّمة 1.98، وSharpe خارج العينة موجبة قليلاً عند 0.04، وPBO (0.463) تقف أدنى بقليل من ½ — لا تُميَّز إحصائياً عن حالة العدم. الأرقام الدرامية لمصفوفة واحدة (أفضل Sharpe في الشبكة داخل العينة قدرها 2.33 تنهار إلى وسيط Sharpe خارج العينة قدره −0.22، PBO تبلغ 0.573) تخص بذرة (seed) مسير عشوائي تمثيلية واحدة وتظهر، موسومة بوضوح، في الفصل 4. كل رقم يُتتبَّع إلى ملف النتائج.
ثلاثة أنظمة، عبرة واحدة. بحث بلا ميزة يقف عند خط رمية العملة 0.5 سواء كانت الضوضاء iid (PBO تبلغ 0.476) أو مُتنكِّرة في هيئة شبكة تقاطع متوسط متحرك حقيقية (PBO تبلغ 0.463) — الاثنتان لا تُميَّزان إحصائياً، وكلتاهما مُدينة. تخفض ميزة حقيقية PBO إلى 0.001. بالمتوسط عبر المصفوفات، فإن الفائز المُنتقى من الشبكة غير لافت — Sharpe داخل العينة تبلغ 0.97، أدنى من قيمة العدم المُضخَّمة 1.98 — وهذا بحد ذاته التشخيص الصادق: بحث بلا ميزة يُقرَأ كحالة عدم. الدراما تعيش في الذيل. على مصفوفة مسير عشوائي تمثيلية واحدة (الفصل 4)، تُسجِّل أفضل خلية في الشبكة Sharpe داخل العينة قدرها 2.33 — تُساوي عملياً الـ2.34 خارج العينة للميزة المزروعة، تعادل تام — ومع ذلك فإنها خارج العينة تهبط في النصف السفلي بمعدل مقارب لهبوطها في النصف العلوي. تلك الفجوة بين اختبار رجعي رائع وانتقاء عديم القيمة غير مرئية في Sharpe الفائز نفسها ومرئية فقط عندما تُقيِّم الإجراء. هذا بالضبط ما تفعله PBO.
الفصل 1 — الإجراء في قفص الاتهام: ما الذي يفعله CSCV فعلياً

DSR معلمية (parametric): تُصمِّم توزيع أقصى Sharpe تحت فرضية عدم وتُخفِّض دلالة الفائز تحليلياً. CSCV هو الجواب اللامعلمي (non-parametric) لنفس مشكلة تحيز الانتقاء — بدلاً من تصميم القيمة القصوى، يُعيد أخذ عينات من تقسيمة التدريب/الاختبار بكل طريقة ممكنة ويُراقب، تجريبياً، ما إذا كان الفائز داخل العينة يستمر في الفوز. بلا افتراض توزيعي، وبلا عدّ "تجارب فعّالة". فقط: هل يُعمَّم الاختيار؟
ابدأ بالمادة الخام. اختبرت رجعياً N = 200 توليفة من فئة استراتيجية عبر T = 1000 مشاهدة متزامنة. كدِّس سلسلة عوائد كل توليفة في عمود وستحصل على T × N مصفوفة أداء M — 1,000 صف من الزمن، و200 عمود من الاستراتيجيات. هذا هو المُدخَل الوحيد الذي يحتاجه CSCV.
الآن البناء، في أربع خطوات:
- قسِّم الزمن إلى
S = 16كتلة منفصلة متساوية الطول (T/Sصف لكل منها). تحافظ الكتل على البنية الزمنية المحلية — خيار تصميم يُهم بمجرد أن يكون للعوائد ذاكرة. - اختر كل طريقة لاستخدام نصف الكتل للتدريب ونصفها للاختبار. مع
S = 16، هذا يعني كلC(16, 8) = 12,870طريقة لاختيار 8 من أصل 16 كتلة كمجموعة تدريب؛ والـ8 الأخرى مجموعة اختبار. من هنا يأتي "متماثل تركيبياً": لكل تقسيمة صورة مرآة (تبديل التدريب والاختبار)، بحيث يستخدم المخطط بياناتك بتماثل بدلاً من القطع الوحيد المُميَّز من الماضي إلى المستقبل الذي يمنحك إياه walk-forward واحد. - في كل تقسيمة، رتِّب التوليفات الـ200 كلها بحسب Sharpe داخل العينة واختر الفائز
n*. ثم اعثر على مرتبة نفس التوليفةn*خارج العينة، على الكتل الـ8 المحجوزة. - سجِّل المرتبة النسبية للفائز خارج العينة وحوِّلها إلى لوجيت (logit). PBO هي نسبة الـ12,870 تقسيمة التي يكون فيها ذلك اللوجيت ≤ 0.
التعداد صغير جداً في الكتابة:
from itertools import combinations
combos = list(combinations(range(S), S // 2)) # C(16, 8) = 12,870 splits
لكل تقسيمة، لتكن هي مرتبة الفائز داخل العينة خارج العينة من بين توليفة (المرتبة 1 = الأسوأ، = الأفضل). طبِّعها إلى مرتبة نسبية ، وخذ لوجيتها ، وكامِلها عبر التقسيمات:
اللوجيت مجرد مسطرة مريحة. يعني أن الفائز هبط في النصف العلوي خارج العينة (مرتبة نسبية فوق ½) — اتساق داخل العينة/خارج العينة، جيد. يعني أنه هبط عند وسيط خارج العينة أو دونه — الاختيار داخل العينة لم يُعمَّم في تلك التقسيمة. PBO هي نسبة التقسيمات التي فشل فيها الفائز داخل العينة في التفوق على الوسيط خارج العينة. المصفوفة كاملة هي ما يُحدِّدها: بمعرفة M وS، فإن PBO حتمية — بلا بذرة إعادة أخذ عينات، وتُعدَّد التقسيمات الـ12,870 كلها بشكل شامل.
في الكود، بمجرد أن تمتلك Sharpe داخل وخارج العينة لكل توليفة على كل تقسيمة (المصفوفتان R_tr وR_te، كل منهما 12,870 × 200)، فإن قلب المُقدِّر ست أسطر:
n_star = R_tr.argmax(axis=1) # in-sample winner, per split
oos_sh = R_te[rows, n_star] # that winner's OWN out-of-sample Sharpe
rank = (R_te <= oos_sh[:, None]).sum(axis=1) # its OOS rank among N configs, 1..N
omega = np.clip(rank / (N + 1.0), 1e-6, 1 - 1e-6) # relative OOS rank in (0,1)
lambdas = np.log(omega / (1.0 - omega)) # logit
pbo = float(np.mean(lambdas <= 0.0)) # fraction of splits with lambda <= 0
لاحظ ما هو غير موجود هنا: لا قيمة p، ولا عتبة على Sharpe الفائز، ولا نموذج لتوزيع العدم. لا تسأل PBO أبداً عمّا إذا كان الفائز جيداً. إنها تسأل ما إذا كان اختيار الأفضل داخل العينة قراراً ينجو من ملامسة بيانات محجوزة. هذه خاصية لبحثك، لا لاستراتيجيتك — وهذا بالضبط سبب اكتشافها أشياء لا تستطيع إحصاءات الفائز نفسه اكتشافها.
الفصل 2 — المعايرة هي البرهان كله: قيمة العدم هي 0.5

تشخيص لا يمكنك معايرته مجرد شائعة. لذا قبل الوثوق بـPBO على أي شيء حقيقي، ثبِّت نقطتي طرف على بيانات تُعرَف فيها الإجابة: حقل بلا أي ميزة في أي مكان، وحقل بـميزة حقيقية. إن لم تهبط PBO قرب 0.5 على الأول وقرب 0 على الثاني، فهي عديمة القيمة.
طرف العدم. ابنِ M من 200 عمود من ضوضاء Normal مستقلة بانجراف صفري وميزة صفرية — Sharpe الحقيقية 0 تماماً لكل توليفة — وشغِّل CSCV. تَوسَّط عبر 60 مصفوفة كهذه. تُسجِّل الاستراتيجية المُنتقاة (الأفضل داخل العينة) بالمتوسط Sharpe سنوية داخل العينة قدرها 1.98. هذا ليس رقماً صغيراً؛ إنه نفس تضخيم الانتقاء الذي قاسته مقالة DSR — أفضل عمود من بين 200 عمود ضوضاء يبدو كاستراتيجية قابلة للتمويل. خارج العينة، يُقدِّم نفس الفائز Sharpe سنوية قدرها 0.06. أعاد تقريباً كل ما ربحه. والحكم على الإجراء:
هذه هي رمية العملة، مقاسة. عبر التقسيمات الـ12,870، فإن الفائز داخل العينة يهبط بنفس احتمالية دون الوسيط خارج العينة كما فوقه — 0.476، أدنى بشعرة من ½، لا تُميَّز عن 0.5 بالنظر إلى تشتت مونت كارلو. التشخيص المرافق يتفق: احتمال أن تكون Sharpe الاستراتيجية المُنتقاة خارج العينة سالبة هو 0.475 — اختر الأفضل داخل العينة من ضوضاء خالصة وستخسر مالاً خارج العينة في حوالي نصف الوقت. لا توجد مهارة في الانتقاء لأنه لا توجد مهارة لتُوجَد، وتُبلغ PBO عن ذلك بالضبط: 0.5 هو خط الإفراط في التخصيص، والضوضاء الخالصة تقف عليه.
لماذا 0.5 لا 1؟ لأنه تحت عدم حقيقي، الأعمدة الـ200 كلها قابلة للتبادل — سحبات قابلة للتبادل إحصائياً من نفس عملية الضوضاء. الفائز داخل العينة مميز فقط داخل العينة؛ خارج العينة هو مجرد عمود آخر، بنفس احتمالية الترتيب في أي مكان. لذا فإن مرتبته النسبية خارج العينة مُنتظمة على ، واللوجيت متماثل حول 0، وتتقارب نسبة إلى ½. PBO تبلغ 1 ستكون أسوأ من رمية عملة — ستعني أن النجاح داخل العينة يتنبأ بموثوقية بالفشل خارج العينة، وهو ما يتطلب آلية معاكسة-استمرارية نشطة، لا مجرد غياب ميزة (المزيد حول ذلك في ملاحظات الصدق).
طرف الميزة. الآن ابنِ حقلاً حيث تحمل 20 من التوليفات الـ200 ميزة حقيقية مزروعة — Sharpe لكل مشاهدة قدرها 0.15، تُسنَّن سنوياً إلى 2.38 (مُشتقة: ) — واترك الـ180 الأخرى كضوضاء. شغِّل نفس CSCV بالضبط. تنقلب القصة كلياً:
| Sharpe داخل العينة (سنوية) | Sharpe خارج العينة (سنوية) | PBO | احتمال خسارة خارج العينة | |
|---|---|---|---|---|
| العدم (ميزة 0) | 1.98 | 0.06 | 0.476 | 0.475 |
| الميزة المزروعة (Sharpe تبلغ 2.38) | 3.73 | 2.34 | 0.001 | 0.0006 |
يُسجِّل فائز الميزة المزروعة Sharpe سنوية داخل العينة قدرها 3.73 — مُضخَّمة بالانتقاء، كالعادة — لكنه هذه المرة يحتفظ بـ2.34 خارج العينة، وتنهار PBO إلى 0.001. عبر التقسيمات الـ12,870 كلها، لا يهبط الفائز داخل العينة في النصف السفلي خارج العينة عملياً أبداً. يهبط احتمال خسارة خارج العينة إلى 0.0006. هذا هو شكل إجراء الانتقاء الجدير بالثقة: أياً كانت طريقة قطعك للتدريب مقابل الاختبار، يستمر نفس نوع التوليفة في الفوز، لأن هناك أثراً حقيقياً وقوياً يستطيع البحث الإمساك به. النقطتان الطرفيتان — 0.476 على الضوضاء، و0.001 على ميزة حقيقية — هما المعايرة. PBO تعمل.
الفصل 3 — مقياس حرارة مستمر، لا اختبار نعم/لا

تُثبت نقطتا الطرف أن PBO تستطيع التمييز بين الضوضاء والميزة. لكن الخاصية الأعمق هي أنها تفعل ذلك بسلاسة. امسح الميزة المزروعة من العدم إلى القوة ولن تقفز PBO من 0.5 إلى 0 — بل تنزلق عبر منحدر رتيب، وترتفع Sharpe الاستراتيجية المُنتقاة خارج العينة لتلتقي بها، خطوة بخطوة:
| Sharpe الحقيقية المزروعة (سنوية) | PBO | Sharpe الاستراتيجية المُنتقاة خارج العينة (سنوية) |
|---|---|---|
| 0.00 | 0.52 | −0.05 |
| 0.48 | 0.44 | 0.19 |
| 0.95 | 0.21 | 0.81 |
| 1.59 | 0.03 | 1.65 |
| 2.38 | 0.001 | 2.48 |
| 3.17 | 0.00 | 3.29 |
اقرأ عمودي البيانات معاً. عند ميزة حقيقية صفرية، PBO تبلغ 0.52 وتربح الاستراتيجية المُنتقاة −0.05 خارج العينة — رمية العملة، مجدداً، وفائز يخسر مالاً. أضف همسة من ميزة (سنوية 0.48) وتنخفض PBO إلى 0.44. عند Sharpe حقيقية سنوية تبلغ 0.95 — ميزة متواضعة ومُصدَّقة فعلاً — تكون PBO بالفعل 0.21 وتصعد Sharpe خارج العينة إلى 0.81. عند 1.59 هي 0.03؛ وعند 2.38، 0.001؛ وعند 3.17، عملياً 0.00، مع حمل الاستراتيجية المُنتقاة 3.29 خارج العينة. تهبط PBO رتيباً مع نمو الميزة الحقيقية، ويرتفع أداء الفائز خارج العينة بالتوازي — الاثنان نفس الحقيقة مرئية من جانبين.
هذه هي الخاصية التي تجعل PBO قابلة للاستخدام عملياً: إنها مقياس حرارة مستمر للإفراط في التخصيص، لا إنذاراً ثنائياً. PBO تبلغ 0.21 لا تقول فقط "غير مُفرِط في التخصيص" — إنها تقول إن انتقاءك يملك مهارة جزئية خارج العينة: يتفوق الفائز داخل العينة على الوسيط خارج العينة 79% من الوقت، لكن الميزة رقيقة بما يكفي بحيث لا يزال خُمس التقسيمات يدفنه. يمكنك مراقبة الرقم يتحرك بينما تُقوِّي إشارتك، أو تُضيِّق عالمك، أو تُقلِّم شبكتك، ومعرفة أي اتجاه صادق. القاعدة العملية الخاصة بالورقة نفسها — الرفض عندما تتجاوز PBO 0.05 — تنبثق طبيعياً من هذا المنحدر: تحت Sharpe سنوية ~1.5 لم يتخطَّ البحث العتبة؛ وفوق ~1.6 تخطاها. لكن المنحدر نفسه أكثر إفادة من أي عتبة واحدة، لأنه لا يخبرك فقط ما إذا كنت مُفرِطاً في التخصيص بل كم أنت قريب من رمية عملة.
الفصل 4 — الفخ الواقعي: اختبار رجعي جميل، مُصدَّق عديم القيمة

عدم الضوضاء iid صادق لكن يسهل رفضه — "استراتيجياتي ليست أعمدة Normal عشوائية." لذا إليك الفخ بالشكل الذي يقع فيه الممارسون فعلياً. خذ تقاطع متوسط متحرك، القاعدة الأكثر اختباراً رجعياً في العالم: ادخل شراءً عندما يعبر متوسط متحرك سريع فوق متوسط متحرك بطيء، وابقَ خارج السوق غير ذلك. اجعله شبكة — 10 أطوال سريعة 17 طولاً بطيئاً، مع الاحتفاظ بأزواج السريع-أدنى-من-البطيء الصالحة، لـK = 170 توليفة. الآن شغِّل تلك الشبكة على سلسلة ذات ميزة صفرية مُثبَتة: مسير عشوائي خالص. لا يوجد شيء لإيجاده. لا يستطيع التقاطع التنبؤ بمسير عشوائي. نعرف أن الإجابة هي "لا استراتيجية".
الشبكة لا تعرف ذلك. إنها تُسلِّمك فائزاً، والفائز مُغرٍ:
| التشخيص (مصفوفة مسير عشوائي تمثيلية واحدة، بذرة 3000، K = 170، S = 16) | القيمة |
|---|---|
| أفضل Sharpe داخل العينة (سنوية) | 2.33 |
| PBO | 0.573 |
| وسيط Sharpe خارج العينة (سنوية) | −0.22 |
| احتمال خسارة خارج العينة | 0.63 |
| ميل تدهور خارج-العينة-مقابل-داخل-العينة | −0.92 |
| وسيط اللوجيت | −0.25 |
هذه مصفوفة واحدة ببذرة محددة. بالمتوسط عبر 60 مصفوفة مسير عشوائي مستقلة، تقرأ نفس هذه التشخيصات PBO تبلغ 0.463 ± 0.223، وSharpe مُنتقاة داخل العينة قدرها 0.97 تتحلل إلى 0.04، وP(خسارة خارج العينة) تبلغ 0.47 — لا تُميَّز إحصائياً عن العدم. الـ0.573 لبذرة 3000 هي سحبة واحدة على الجانب المرتفع من نطاق العدم ~0.5 — ضوضاء أخذ عينات حول قيمة رمية العملة، وضمن نطاق التشتت من مصفوفة إلى أخرى ±0.223 تماماً — والقصة مطابقة في كلتا الحالتين.
Sharpe سنوية داخل العينة تبلغ 2.33 على تقاطع متوسط متحرك هي النوع من النتائج التي تنتهي في عرض تقديمي لجمع تمويل. إنها تُساوي عملياً Sharpe خارج العينة لميزتنا المزروعة الحقيقية من الفصل 2 (2.34 — تعادل تام). لو توقفت عند الاختبار الرجعي، لكنت موّلتها. يرفض CSCV. PBO هنا رمية عملة: 0.463 بالمتوسط عبر الـ60 مصفوفة، و0.573 على هذه بالذات — كلاهما يقول إن البحث بلا مهارة خارج العينة. لا تُفرط في قراءة الـ0.573: إنها تقف 0.073 فوق ½، ضوضاء أخذ عينات حول عدم 0.5 وضمن نطاق ±0.223 من مصفوفة إلى أخرى تماماً؛ PBO حقاً فوق 0.5 — حيث يتنبأ النجاح داخل العينة فعلياً بالفشل خارج العينة — تحتاج بنية معاكسة-استمرارية أو تكلفة تداول لا يحتويها هذا المسير العشوائي (انظر ملاحظات الصدق). على هذه المصفوفة، يضع وسيط اللوجيت البالغ −0.25 وسيط الفائز داخل العينة عند مرتبة نسبية خارج العينة تبلغ حوالي 0.44 (مُشتقة: ) — أي تقريباً المرتبة 75 من أصل 170 (مُشتقة: )، أدنى بقليل من منتصف الحقل الذي كان يُفترض أن يقوده. وسيط Sharpe خارج العينة لذلك الفائز هو −0.22 — سالب — ويأخذ خسارة خارج العينة 63% من الوقت. Sharpe اختبار رجعي قدرها 2.33 توقعها خارج العينة خسارة: هذا هو تعريف السراب.
ميل التدهور البالغ −0.92 هو السكين الثانية. اربط انحدارياً Sharpe كل تقسيمة خارج العينة للفائز المُنتقى على Sharpe داخل العينة؛ الميل سالب بحدة — كلما بدت التوليفة أفضل داخل العينة، كانت أسوأ خارج العينة. هذا هو بصمة الإفراط في التخصيص على سلسلة ذات ذاكرة: يتشبث التقاطع بأنماط عابرة في كتل التدريب، وهي بكونها آثاراً لمسير عشوائي، تنعكس خارج العينة. دقة واحدة تستحق الذكر حتى لا تُفرط في قراءة الميل: الميل السالب ليس بحد ذاته حكماً. حتى نظام الميزة الحقيقية من الفصل 2 له ميل تدهور سالب (−0.52) — يسحب الانحدار نحو الوسط دائماً القيمة القصوى المُنتقاة قليلاً إلى الأسفل خارج العينة. ما يفصل السراب عن الميزة الحقيقية ليس كون الميل سالباً بل أين يهبط الفائز: تبقى الميزة الحقيقية قرب القمة (PBO تبلغ 0.001) بينما تُعيد القليل؛ ويقف السراب على خط رمية العملة (PBO تبلغ 0.463 بالمتوسط، و0.573 على هذه البذرة)، وفائزه ليس أكثر احتمالاً للوجود فوق الوسيط خارج العينة منه تحته. اقرأ الميل لمعرفة مقدار الانكماش؛ واقرأ PBO لمعرفة ما إذا كان لا يزال يُعمَّم. يفشل السراب في كليهما.
هذا هو سبب استحقاق PBO مكانها إلى جانب اختبار رجعي خام. Sharpe داخل العينة البالغة 2.33 ليست كذبة — ربحتها الاستراتيجية فعلاً، داخل العينة، على ذلك المسير العشوائي. إنها انتقاء، مُتنكِّر في قاعدة مألوفة على شبكة تبدو واقعية، ولا يكشفه أي قدر من التحديق في منحنى رأس المال. فقط تقييم الإجراء يكشفه.
الفصل 5 — PBO وDSR: سؤالان صادقان، هضبة واحدة

PBO ونسبة Sharpe المخفّضة هما نصفا نفس فحص الصدق، وهما ليسا زائدين عن الحاجة — إنهما يستجوبان جسمين مختلفين:
| نسبة Sharpe المخفّضة (DSR) | احتمال الإفراط في تخصيص الاختبار الرجعي (PBO) | |
|---|---|---|
| الجسم في قفص الاتهام | الفائز | إجراء الانتقاء |
| السؤال | هل تتجاوز هذه الـSharpe ما يشتريه الحظ عبر N تجربة؟ | هل يُعمَّم اختيار الأفضل داخل العينة خارج العينة؟ |
| الطريقة | معلمية — تُخفِّض عتبة الدلالة | لامعلمية — تُعيد أخذ عينات من كل تقسيمات التدريب/الاختبار C(S, S/2) |
| قيمة العدم | DSR ≈ 0.5 (الفائز يُطابق سقف الضوضاء فقط) | PBO ≈ 0.5 (الفائز رمية عملة خارج العينة) |
| تريد | DSR قريبة من 1 | PBO قريبة من 0 |
| تحتاج إلى عدد التجارب N؟ | نعم — والشبكات المترابطة تجعل N غامضاً | لا — إعادة أخذ عينات التقسيمة تتعامل مع الاعتماد أصلياً |
يمكنهما حتى أن يختلفا، والاختلاف تشخيصي. يمكن خداع DSR بشبكة مترابطة لتُفرط في التخفيض (الفخ الذي يدور حوله الفصل الأخير من مقالة DSR بالكامل — 640 خلية مترابطة ليست 640 تجربة مستقلة، وتغذية العدد الخام تُفرط في تضخيم سقف الضوضاء). لا تعدّ PBO التجارب أبداً؛ إنها تُعيد أخذ عينات من مصفوفة العوائد الفعلية، بحيث يكون ارتباط الشبكة مُدمَجاً في التقسيمات مجاناً. وعلى العكس، تخبرك PBO أن الإجراء يُعمَّم لكن ليس ما إذا كان الفائز يتخطى معدل عتبة — يمكن لبحث أن تكون له PBO منخفضة ويختار مع ذلك شيئاً Sharpe خارج العينة له، رغم كونها أعلى بموثوقية من وسيط الحقل، صغيرة جداً على التداول. DSR تُسعِّر الفائز؛ وPBO تُسعِّر الإجراء. شغِّل كليهما.

ثمة حدس هندسي كامن تحت هذا كله، وهو أكثر شيء مفيد يمكن أخذه معك. الميزة الحقيقية هضبة؛ والإفراط في التخصيص قمة. عندما يدفع أثر حقيقي شبكتك، تتجمّع التوليفات الجيدة — fast=3/slow=55 تنجح، وكذلك جيرانها، لأنها كلها تأخذ عينات من نفس الإشارة الكامنة. تلك الهضبة صامدة أمام إعادة أخذ العينات: أياً كانت 8 من أصل 16 كتلة تدرَّب عليها، فإن الفائز داخل العينة مسحوب من نفس المنطقة العريضة، وتلك المنطقة لا تزال في القمة خارج العينة. تقسيمات كثيرة تتفق ← PBO منخفضة. عندما يدفع الإفراط في التخصيص شبكتك، يكون "الفائز" قمة وحيدة — خلية واحدة صادف أنها لاءمت ضوضاء كتل التدريب، محاطة بجيران متوسطين. تلك القمة هشة: تُتوِّج تقسيمة تدريب/اختبار مختلفة قمة وحيدة مختلفة، ولا تنجو أي منها إلى مجموعة الاختبار. التقسيمات تختلف ← PBO ≈ 0.5. هذه هي نفس العبرة التي تصل إليها دراسة تحليل الهضبة لدينا من جانب خريطة المعلمات؛ PBO هي، فعلياً، التمييز بين الهضبة والقمة مقاساً عبر كل إعادة أخذ عينات متماثلة لبياناتك دفعة واحدة.
هذا يُفسِّر أيضاً لماذا يتفوق CSCV على تقسيمة walk-forward الافتراضية عند الممارسين. يمنحك walk-forward قطعاً واحداً من الماضي إلى المستقبل وحكماً واحداً؛ ويمنحك CSCV 12,870 قطعاً متماثلاً ويسأل ما إذا كان الفائز ينجو منها كلها. يمكن لقمة أن تنجو من قطع اعتباطي واحد بالحظ؛ لكنها لا تستطيع النجاة من 12,870. (يُوسِّع التحقق المتقاطع التركيبي المُطهَّر، CPCV، لـLópez de Prado بالضبط هذه الفكرة بالتطهير والحظر لقتل تسرب التصنيفات الذي يمكن أن تعانيه إعادة أخذ العينات البسيطة تحت الاعتماد التسلسلي — الدرجة التالية الطبيعية بمجرد أن تتداخل تصنيفاتك.) نفس التحذير البنيوي يمتد عبر السلسلة كلها: المقياس الذي تُحسِّنه يختار استراتيجيتك سراً (تصميم دالة الهدف)، وتسرب بفارق شمعة واحدة يُصنِّع Sharpe قدرها 15 من الضوضاء (تحيز النظر المستقبلي)، وبحث اختبار متعدد يُصنِّع Sharpe قدرها 1.63 من الضوضاء (DSR) — وهنا، يُصنِّع إجراء انتقاء مُعاد أخذ عينات منه فائزاً عديم القيمة لا يستطيع كشفه سوى PBO.
ملاحظات الصدق
أربعة تحذيرات، مذكورة بوضوح، لأن دراسة مضبوطة لا تكسب استنتاجاتها إلا بتسمية حدودها.
- عمليات توليد البيانات اصطناعية — عن قصد. ضوضاء Normal iid لحالة العدم، وحقل Sharpe مزروعة لمسح الميزة، وشبكة متوسط متحرك على مسير عشوائي خالص للفخ. لا شيء من هذا ادعاء بواقعية السوق؛ كل واحد اختير من أجل حقيقة أساسية مضبوطة. لا يمكننا إثبات أن PBO تقرأ 0.5 على "لا مهارة" و0 على "مهارة حقيقية" إلا بتوليد بيانات نعرف فيها أيهما أيهما. العوائد الحقيقية ذات ذيول سمينة، ومترابطة ذاتياً، وغير مستقرة؛ والمُنتَج المُسلَّم هنا هو التشخيص المُعايَر، لا استراتيجية.
- قيمة العدم لـPBO هي 0.5، وهذه ميزة، لا شذوذ. اذكرها في كل مرة تُبلغ فيها عن PBO، لأن نصف قرائك سيعاملون 0.5 كـ"آمنة نصفياً" لولا ذلك. بحث بلا مهارة خارج العينة يقف عند 0.5؛ وميزة حقيقية تدفعها إلى 0. لا توجد قراءة "بريئة" لـPBO ≈ 0.5 — إنها حكم الإفراط الكامل في التخصيص.
- PBO > 0.5 منطقة "منحرفة" لا نفرضها. PBO أعلى من 0.5 بشكل منهجي يعني أن النجاح داخل العينة يتنبأ فعلياً بالفشل خارج العينة — تصبح التوليفات الأسوأ داخل العينة الأفضل خارج العينة. هذا يتطلب بنية معاكسة-استمرارية أو تكلفة تداول، لا مجرد غياب ميزة. تقف عمليات بحثنا المُفرِطة في التخصيص عند ≈ 0.5 (0.476 للضوضاء iid؛ و0.463 بالمتوسط لشبكة MA؛ و0.573 على بذرة واحدة عالية الجانب، ضمن نطاق مونت كارلو ±0.14–0.22 عبر 60 مصفوفة)، وهو ما يعني بالفعل "لا مهارة خارج العينة". لا نُصنِّع المنطقة المنحرفة؛ نُظهر فقط أن الإفراط في التخصيص يضعك على خط رمية العملة، وهذا مُدين بما يكفي.
- PBO حتمية بمعرفة المصفوفة؛ العشوائية فقط في المصفوفة. لـ
MوS = 16ثابتين، تُعدَّد التقسيمات الـC(16, 8) = 12,870كلها بشكل شامل — لا بذرة بوتستراب ولا تباين أخذ عينات في PBO نفسها. التشتت الذي نُبلغ عنه (±0.137 على العدم، و±0.223 على شبكة MA) هو تباين عبر الـ60 مصفوفة مونت كارلو، لا داخل المُقدِّر. تُقدَّر Sharpe على كل جانب على حوالي 500 مشاهدة — 496 بعد تقليم كتل CSCV، إذ إنT = 1000مُقسَّمة إلى 16 كتلة متساوية تترك 992 صفاً قابلاً للاستخدام، مُقسَّماً إلى نصفين من 496؛ ولأن Sharpe غير متأثرة بالترتيب، فإن ترتيب الصفوف داخل مجموعة تدريب أو اختبار لا يهم (بخلاف مقاييس تعتمد على المسار مثل نسبة العائد/التراجع).
الخلاصات
- تُقيِّم PBO إجراء الانتقاء، لا الفائز — وقيمة عدمها هي 0.5. إنها احتمال أن تهبط التوليفة التي اخترتها كأفضل داخل العينة في النصف السفلي خارج العينة. PBO ≈ 0.5 رمية عملة (إفراط كامل في التخصيص)؛ وPBO ≈ 0 انتقاء جدير بالثقة. تريدها قريبة من الصفر، ويجب أن تقول ذلك بصوت عالٍ، لأن 0.5 تُقرَأ كـ"آمنة" لعين غير مدرَّبة بينما تعني العكس تماماً.
- المعايرة تُثبت أنها تعمل. على 200 استراتيجية iid بلا ميزة، تنهار أفضل Sharpe سنوية داخل العينة قدرها 1.98 إلى 0.06 خارج العينة وPBO = 0.476 — الضوضاء تقف على خط رمية العملة، خاسرة مالاً خارج العينة 47.5% من الوقت. ازرع ميزة حقيقية (Sharpe سنوية 2.38) وتنجو الـ3.73 داخل العينة إلى 2.34 خارج العينة بينما تهبط PBO إلى 0.001. نقطتان طرفيتان، تشخيص واحد مُعايَر.
- PBO مقياس حرارة مستمر. امسح الميزة المزروعة وتهبط PBO رتيباً — 0.52 ← 0.44 ← 0.21 ← 0.03 ← 0.001 ← 0.00 عند Sharpe حقيقية سنوية 0.00 / 0.48 / 0.95 / 1.59 / 2.38 / 3.17 — مع ارتفاع Sharpe الاستراتيجية المُنتقاة خارج العينة بالتوازي (من −0.05 إلى 3.29). إنها تقيس كم أنت قريب من رمية عملة، لا مجرد نعم/لا.
- الفخ الواقعي هو بيت القصيد كله. شبكة متوسط متحرك من 170 توليفة على مسير عشوائي خالص تتوسط Sharpe مُنتقاة داخل العينة قدرها 0.97 فقط تتحلل إلى 0.04، مع PBO 0.463 — لا تُميَّز إحصائياً عن العدم، بحث بلا ميزة يُقرَأ كعدم. على مصفوفة تمثيلية واحدة يكون السراب صارخاً: أفضل Sharpe داخل العينة تبلغ 2.33 (رقم يصلح لعرض تقديمي لجمع تمويل)، ووسيط Sharpe خارج العينة −0.22، واحتمال 63% لخسارة خارج العينة، وPBO 0.573، وميل تدهور حاد قدره −0.92. اختبار رجعي جميل بتوقع سلبي خارج العينة، غير مرئي في كل إحصائية مطبوعة بجانب الفائز ومرئي فقط عندما تُقيِّم الإجراء.
- اقرن PBO بنسبة Sharpe المخفّضة. تُسعِّر DSR الفائز (هل هذه الـSharpe تتجاوز الحظ، بمعرفة N تجربة؟)؛ وتُسعِّر PBO الإجراء (هل يُعمَّم الانتقاء؟). تحتاج DSR إلى عدد تجارب ويمكن خداعها بشبكات مترابطة؛ وPBO تُعيد أخذ عينات من المصفوفة ولا تعدّ التجارب أبداً. الميزة الحقيقية هضبة عريضة تتفق عليها تقسيمات كثيرة (PBO منخفضة)؛ والقمة الوحيدة داخل العينة إفراط في التخصيص (تختلف التقسيمات، PBO ≈ 0.5). شغِّل كليهما، واقرأ الهضبة.
فائز البحث مذنب حتى تثبت براءته — وPBO تستجوب البحث نفسه، لا الحجة التي يُقدِّمها لك. تتجاهل مدى جودة مظهر الفائز داخل العينة وتسأل فقط ما إذا كان اختياره قراراً ينجو من إعادة القطع 12,870 طريقة. عندما لا ينجو — عندما تتضح أن Sharpe الرائعة البالغة 2.33 تهبط في النصف السفلي خارج العينة بمعدل مقارب لهبوطها في النصف العلوي — فأنت لم تجد استراتيجية. لقد وجدت أوفر عملة حظاً، وPBO هي الرقم الذي يضبطها وهي تدور.
التجربة الكاملة — إطار عمل معايرة العدم، ومسح مقياس حرارة الميزة المزروعة، وفخ شبكة المسير العشوائي، وكل رقم في هذه المقالة قابل لإعادة التوليد من سكريبت حتمي واحد — موجودة في الورقة المرافقة على pbo-search.marketmaker.cc، مع الكود والبيانات على github.com/suenot/pbo-search.
Authors
Trading-systems engineer
Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.