البحث العشوائي مقابل البحث الذكي: نقطة التقاطع هي تكلفة التقييم، لا الخوارزمية
جزء من سلسلة "اختبارات خلفية بلا أوهام".
هناك حكمة متوارثة في مجال تحسين المعاملات الفائقة: البحث العشوائي هو خط أساس يُفترض أن تتجاوزه. النتيجة الكلاسيكية لـ Bergstra وBengio (2012) أثبتت أن البحث العشوائي يتفوق على البحث الشبكي؛ ثم كان من المفترض أن يتفوق التحسين البايزي وTPE وCMA-ES وطرق تعدد الدقة مثل Hyperband/ASHA على البحث العشوائي بدورها. لذا عندما جلسنا لقياس أداء طرق البحث عن المعاملات لمحرك التداول الخاص بنا، توقعنا السلّم المعتاد: العشوائي في القاع، وأداة أخذ عينات ذكية في القمة.
لكننا حصلنا على العكس تمامًا — ثم حصلنا على الإجابة الأكاديمية المتوقعة أيضًا. نفس الاستراتيجية، نفس فضاء المعاملات، نفس الهدف، نفس الجهاز. الشيء الوحيد الذي غيرناه هو مدى تكلفة اختبار خلفي واحد، وترتيب طرق البحث انقلب. عندما كان كل تقييم رخيصًا، سحق تسلسل Sobol المخلوط الغبي كل أداة أخذ عينات "ذكية". وعندما جعلنا كل تقييم مكلفًا، تقدمت الطرق الذكية ووجدت التهيئة الوحيدة التي نجت خارج العينة.
الدرس ليس أن "العشوائي مُقلَّل من قيمته" أو أن "البايزي مبالغ في تقديره". بل إن نقطة التقاطع بين البحث العشوائي والذكي يحكمها تكلفة التقييم، لا براعة الخوارزمية. اختر مُحسِّنك بناءً على تكلفة اختبار خلفي واحد، لا بناءً على سمعته. تقيس هذه المقالة بدقة أين تقع نقطة التقاطع، ولماذا تقع هناك، وشرطًا مسبقًا واحدًا — الدقة (fidelity) — يحدد ما إذا كانت حيل النظام المكلف (التوقف المبكر، التقليم متعدد الدقة) آمنة للاستخدام على الإطلاق.
كل ما يلي مأخوذ من نصّين برمجيين في محرك الاختبار الخلفي لدينا: bench_search.py (الإصدار 4، commit ee092f1) لنظام الإطار الزمني الواحد الرخيص، وbench_search_multitf.py (commit 102853c) لنظام الأطر الزمنية المتعددة المكلف. كلاهما خالٍ من التسرب — القرار يُتَّخذ عند إغلاق الشمعة i، والتنفيذ عند open[i+1] — وكلاهما يُقيّم كل طريقة على هدف walk-forward متدحرج متعدد الطيات مع نافذة اختبار محجوزة لا يراها البحث أبدًا.
السؤال: الإنتاجية أم كفاءة العينة؟

تُنفق كل طريقة بحث ميزانية زمن التنفيذ الفعلي على أمرين: تحديد أين نأخذ العينة التالية (حساب أداة أخذ العينات نفسها) وتقييم العينة (تشغيل الاختبار الخلفي). لنسمِّ الأول تكلفة ask/tell والثاني تكلفة التقييم. القوة البحثية الفعلية لطريقة ما ضمن ميزانية زمن تنفيذ فعلي ثابتة هي تقريبًا:
وجودتها النهائية هي ذلك العدد مضروبًا في مدى حسن وضع كل نقطة. مقبضان يتجاذبان:
- الإنتاجية — عدد النقاط في الثانية. أدوات أخذ العينات الغبية (العشوائي، Sobol/QMC المخلوط) لها تكلفة ask/tell شبه معدومة: تُصدر نقطة منخفضة التباين وتمضي قدمًا. إنها تعظِّم العدد.
- كفاءة العينة — الجودة لكل نقطة. أدوات أخذ العينات الذكية (TPE وCMA-ES وASHA) تنفق حسابًا حقيقيًا في نمذجة الهدف لوضع كل نقطة بشكل أفضل. إنها تعظِّم الوضع، على حساب الإنتاجية.
أي مقبض يفوز يعتمد كليًا على المقام. عندما تكون تكلفة التقييم ضئيلة، تهيمن تكلفة ask/tell على المقام، لذا فإن أي شيء يضخّمها — نموذج بديل، تقدير كثافة نواة، تحديث مصفوفة تباين مشترك — يقلّص مباشرة عدد النقاط التي تستكشفها. وعندما تكون تكلفة التقييم كبيرة، تصبح تكلفة ask/tell مجرد خطأ تقريب، لذا فإن الذكاء يصبح مجانيًا فعليًا وينبغي أن تشتري منه أكبر قدر ممكن.
هذه هي الأطروحة كلها في جملة واحدة: ضريبة ask/tell ثابتة، لكن أهميتها تُحدَّد بتكلفة التقييم التي تقسمها عليها. والآن دعونا نشاهد ذلك يحدث.
النظام الرخيص: Sobol الغبي يفوز بالإنتاجية

استراتيجيتنا ذات الإطار الزمني الواحد هي قاعدة فصل HMA/HMA3 خالية من التسرب على فضاء من 7 معاملات، تُقيَّم بواسطة دالة eval_batch من numba تعمل داخل العملية نفسها وتُشغِّل prange عبر التهيئات دون أي عبء اتصال بين العمليات. على هذا المحرك، الاختبار الخلفي الواحد شبه مجاني — النواة الخام تُقيِّم التهيئات بمعدل يقارب 3-4 آلاف تهيئة في الثانية. هذا هو النظام الرخيص، وهو حيث يختلف التداول اختلافًا حادًا عن بيئة التعلم العميق التي جاءت منها معظم حكمة تحسين المعاملات الفائقة الشعبية: "دالة الهدف" لدينا ليست تدريبًا لوحدة معالجة رسومات لمدة 6 ساعات، بل هي عبور مصفوفة واحد مدته 0.3 مللي ثانية.
أعطينا كل طريقة نفس الميزانية — 1500 تقييم — وسجّلنا زمن التنفيذ الفعلي الذي احتاجه كل منها لإنفاق هذه التقييمات، بالإضافة إلى هدف الاختبار المحجوز الذي وجدته. ولأن ميزانية التقييم ثابتة، فإن عمود زمن التنفيذ الفعلي هو قراءة مباشرة لعبء كل أداة أخذ عينات:
| الطريقة | التقييمات | زمن التنفيذ الفعلي | الإنتاجية | اختبار محجوز TEST |
|---|---|---|---|---|
| sobol (QMC) | 1500 | 0.53 ثانية | ~2,830 تهيئة/ث | −259 |
| random | 1500 | 0.85 ثانية | ~1,770 تهيئة/ث | −27 |
| sobol→cmaes | 1500 | 1.38 ثانية | ~1,085 تهيئة/ث | −367 |
| cmaes | 1500 | 1.76 ثانية | ~850 تهيئة/ث | −85 |
| tpe | 1500 | 9.76 ثانية | ~154 تهيئة/ث | −161 |
| tpe-mv+sobol | 1500 | 12.15 ثانية | ~123 تهيئة/ث | −151 |
| asha (folds) | 1500 | 15.79 ثانية | ~95 تهيئة/ث | −165 |
TEST هو هدف walk-forward (ربح وخسارة سنوي مُقاس بالوقت النشط × مستوى ثقة عدد الصفقات) على نافذة محجوزة لم يلمسها البحث أبدًا؛ الأعلى أفضل.
هناك حقيقتان تبرزان. أولًا، انظر إلى عمود الإنتاجية. يعمل Sobol المخلوط بمعدل ~2,830 تهيئة/ث — قريبًا من سقف المحرك. تعمل TPE بمعدل ~154 تهيئة/ث وASHA بمعدل ~95. هذا تباطؤ بمقدار 18-30 ضعفًا لإجراء نفس العدد المطابق من التقييمات. أدوات أخذ العينات الذكية لا تُقيِّم شيئًا إضافيًا؛ إنها تنفق ذلك الوقت داخل آلية ask/tell الخاصة بها.
ثانيًا — وهذا هو الجزء الذي يُبقي القصة صادقة — لم تجد أي طريقة نتيجة إيجابية خارج العينة. كل قيمة TEST سالبة. في نظام الإطار الزمني الواحد، استراتيجيتنا ببساطة ليس لديها ميزة دائمة خارج العينة، لذا فإن "أي طريقة تفوز" ليس سؤالًا عن الربح النهائي؛ إنه سؤال عن كفاءة البحث. وفيما يخص كفاءة البحث ضمن ميزانية تقييم ثابتة، تفوز الطرق الغبية بشكل قاطع: يصل Sobol والعشوائي إلى نفس الأرقام المحجوزة أو أفضل منها مقارنة بأدوات أخذ العينات الذكية بينما ينفقان 1/20 فقط من زمن التنفيذ الفعلي.
الآن لنقلب المقارنة بالطريقة التي يختبرها الممارس فعليًا — ثبِّت زمن التنفيذ الفعلي، لا عدد التقييمات. إذا أعطيت كل طريقة الـ15.8 ثانية التي احتاجتها ASHA لـ1500 تقييم، فإن Sobol لن يتوقف عند 1500. سيستمر إلى نحو 45,000 تهيئة. في النظام الرخيص، السؤال ليس أبدًا "أي أداة أخذ عينات تضع 1500 نقطة بأفضل شكل" — بل "هل تفضل 1500 نقطة موضوعة بذكاء أم 45,000 نقطة مخلوطة، عندما تكون كل نقطة شبه مجانية؟" مع تقييم شبه مجاني، يفوز الاتساع. تغطية أوسع بثلاثين ضعفًا لفضاء ذي 7 أبعاد تتفوق على نموذج أفضل له.
ضريبة ask/tell
أين تذهب تلك الأضعاف العشرون؟ ليس في الاختبار الخلفي نفسه — فذاك متطابق عبر الطرق. إنها تذهب إلى محاسبة أداة أخذ العينات لكل نقطة، التي تعمل في بايثون، داخل الحلقة:
- TPE تُطابِق زوجًا من تقديرات كثافة النواة (المحاولات الجيدة مقابل السيئة) في كل عملية
ask، وتزداد التكلفة مع تاريخ المحاولات. تُطابِق TPE متعددة المتغيرات هذه التقديرات معًا عبر الأبعاد — نمذجة أكثر، وبايثون أكثر. - CMA-ES تُحدِّث وتأخذ عينات من مصفوفة تباين مشترك في كل جيل. أرخص من TPE هنا (كانت تعمل بمعدل ~850 تهيئة/ث)، لكنها لا تزال أعلى بمقدار رتبة كاملة من عبء إصدار نقطة Sobol.
- ASHA تدفع تكلفة محاسبة الترقية/الدرجات الخاصة بأداة التقليم، وأيضًا، في تصميمنا الذي يستخدم الطيات كدقة، تدفع الحساب المسبق الثابت للمؤشر قبل أن تتمكن من تقليم أي شيء — لذا فإن التقييمات "الموفَّرة" توفِّر أقل مما توحي به المحاسبة.
لا شيء من هذا انتقاد للخوارزميات. بل هو صميم الفكرة: تكلفة ask/tell هي عدد ثابت تقريبًا من الملي ثواني لكل نقطة، وعندما يكون التقييم الذي تغلّفه هو أيضًا بضعة ملي ثوانٍ، تصبح تلك التكلفة الثابتة فجأة 90% من ميزانيتك. تنفق أداة أخذ العينات الذكية تسعة أعشار زمن تنفيذها الفعلي في التفكير أين تنظر، وعُشرًا واحدًا فقط في النظر فعليًا. أما تسلسل Sobol المخلوط فينفق كل وقته في النظر. عندما يكون النظر رخيصًا، يفوز النظر.
تعمّدنا عدم قياس أداء مُحسِّن بايزي كامل قائم على عملية غاوسية هنا، وللسبب نفسه: النموذج البديل GP له تعقيد بالنسبة لعدد المحاولات. أمام تقييم يكلف ملي ثوانٍ، ستستهلك مطابقة النموذج البديل ميزانية البحث بأكملها قبل أن يُقيِّم جزءًا ذا معنى من الفضاء. في النظام الرخيص، يُستبعد GP-BO حسابيًا.
النظام المكلف: نقطة التقاطع تنقلب

الآن نجعل اختبارًا خلفيًا واحدًا مكلفًا. تكدّس الاستراتيجية متعددة الأطر الزمنية إطارًا عاليًا وإطارًا متوسطًا وإطارًا منخفضًا (ثلاثي الأطر الزمنية)، يُسهم كل منها بحساب مؤشر وعتباته الخاصة، وتُقيَّم جميعها عبر نفس walk-forward متعدد الطيات. يكلّف التقييم الواحد الآن نحو 0.1-0.5 ثانية بدلًا من 0.3 مللي ثانية — قفزة بثلاث رتب من الحجم. انتقلت تكلفة التقييم من حد خطأ التقريب في مقامنا إلى الحد المهيمن. بحسب الأطروحة، يجب أن تتوقف ضريبة ask/tell عن أن تكون ذات أهمية ويجب أن يبدأ الذكاء بتحقيق مردود. وهذا بالضبط ما يحدث.
شغّلنا كل طريقة تحت ميزانية زمن تنفيذ فعلي ثابت نحو 150 ثانية على مسألة ثلاثي الأطر الزمنية (فضاء من 18 معاملًا)، وسمحنا لكل طريقة بإنفاق تلك الميزانية وفق ما تُمليه أداة أخذ العينات الخاصة بها، ثم قيّمنا أفضل تهيئة واحدة أعادتها على نافذة اختبار محجوزة:
| الطريقة (ثلاثي الأطر الزمنية، 150 ثانية) | التقييمات | اختبار محجوز TEST | الحكم |
|---|---|---|---|
| sobol (QMC) | 349 | −673 | خسارة |
| cascade (sobol²×64) | 20,864 | −585 | خسارة |
| asha (folds) | 292 فعّال | −239 | خسارة |
| tpe-mv+sobol | 455 | −43 | خسارة |
| sobol→cmaes | 15,239 | +226 | الوحيدة الإيجابية خارج العينة |
TEST هو نفس هدف walk-forward كما سبق. طريقة واحدة فقط عبرت الصفر.
خط أساس Sobol الغبي الذي هيمن على النظام الرخيص أصبح الآن في المرتبة الأخيرة، عند −673. أخذ العينات الأعمى منخفض التباين لفضاء ذي 18 بعدًا، بـ349 تقييمًا فقط لإنفاقها لأن كل تقييم مكلف، لا يُحدِّد موقع أي شيء أبدًا. الطريقة الذكية، sobol→cmaes — إنفاق 30% من الميزانية على Sobol لزرع بذرة حوض جذب، ثم تنقيح CMA-ES من أفضل بذرة — هي الطريقة الوحيدة التي أنتجت نتيجة إيجابية خارج العينة على الإطلاق. على النافذة المحجوزة النهائية غير الملموسة، أعاد البطل 2.62%+ (19 صفقة، ~6.6% تعرُّض رأسمالي) فوق نافذة اختبار أعادت 16.35%+ (46 صفقة، ~15.7% تعرُّض). كل بطل من المنافسين الآخرين خسر المال خارج العينة.
هذه هي نقطة التقاطع، مُقاسة على نفس عائلة الاستراتيجيات، ونفس الهدف، ونفس الجهاز: غيِّر شيئًا واحدًا فقط هو تكلفة تقييم واحد، وينقلب ترتيب طرق البحث. في النظام الرخيص يفوز Sobol وتُعد أدوات أخذ العينات الذكية هدرًا بمقدار 20 ضعفًا؛ وفي النظام المكلف تكون أداة أخذ العينات الذكية هي الشيء الوحيد الذي ينجح ويكون Sobol هو الهدر.
لماذا يفوز "الذكي" هنا — وليس بسبب كفاءة العينة فقط

النسخة المُبسَّطة من هذه القصة هي "التقييمات المكلفة تكافئ كفاءة العينة، لذا فإن الطريقة التي تضع نقاطًا أقل وأفضل تفوز." هذا صحيح جزئيًا، والبيانات تفرض علينا النصف الآخر الأكثر صدقًا وإثارة.
انظر إلى أعداد التقييمات مرة أخرى. لم تفز sobol→cmaes بتقييم عدد أقل من النقاط مقارنة بـ Sobol الأعمى — بل قيّمت 15,239 نقطة مقابل 349 لـ Sobol، أي أربعين ضعفًا أكثر، في نفس الـ150 ثانية. كيف؟ لأن تكلفة تقييمنا متعدد الأطر الزمنية مُهيكَلة، وليست موحّدة. هناك محوران: محور مؤشر مكلف (فترات الأطر الزمنية وأطوال HMA، تكلّف كل منها 30-500 مللي ثانية لأنها تفرض إعادة حساب المؤشر) ومحور عتبات رخيص (مستويات فصل الدخول/الخروج، ~1-2 مللي ثانية لكل منها على إشارات مخبَّأة). الفجوة بينهما 30-100 ضعف.
يتجاهل Sobol الأعمى هذه البنية. كل نقطة يسحبها تُهزهز محور المؤشر المكلف، مما يفرض إعادة حساب جديدة — لذا يدفع السعر الكامل في جميع تقييماته الـ349. أما sobol→cmaes، فبمجرد أن يُحدِّد CMA-ES منطقة واعدة، يميل إلى إبقاء بنية المؤشر الخشنة ثابتة تقريبًا وإزعاج العتبات المستمرة، التي تقع على إشارات مخبَّأة وتكلّف تقريبًا لا شيء. تُحوِّل الطريقة الذكية نفس زمن التنفيذ الفعلي إلى نقاط موضوعة بشكل أفضل وعدد أكبر بكثير منها في آن واحد، لأن كون المرء تكيُّفيًا هنا يعني أن يكون واعيًا بالتكلفة: البقاء على المحور الرخيص بعد تثبيت المحور المكلف. أسلوب استغلالنا الصريح cascade(sobol²×64) يفعل هذا بأقصى قدر من العدوانية — 20,864 تقييمًا عبر تجميع العتبات الرخيصة دفعة واحدة على إشارات مخبَّأة — ورغم أنه خسر اختبار ثلاثي الأطر الزمنية، فقد فاز صراحة في نافذة الاختبار في نسخة الإطارين الزمنيين بنسبة 20.2%+ (قبل أن يفشل في مجموعته المحجوزة الخاصة — المزيد عن ذلك أدناه).
إذن العبارة الأدق لنقطة التقاطع هي: في النظام المكلف، تصبح ضريبة ask/tell مهملة، مما يُحرِّرك لتكون ذكيًا — و"الذكي" يعني التكيُّف مع بنية تكلفة الهدف، لا شكله فقط. أخذ العينات الأعمى لا يستطيع فعل أي منهما. هذه بالضبط البنية ثنائية المحاور التي صُمِّم محركنا للتنقيب متعدد الدقة التكيفي لاستغلالها، وهذا هو سبب انتماء طرق تعدد الدقة إلى النظام المكلف — شريطة تحقق شرط واحد.
الدقة: الشرط المسبق الخفي للتقليم
طرق تعدد الدقة — Hyperband وASHA وأي أداة تقليم بالتوقف المبكر — تستند إلى افتراض واحد: أن التقييم الرخيص والجزئي يُرتِّب التهيئات بنفس الطريقة التي سيُرتِّبها بها التقييم المكلف والكامل. إذا كانت تهيئة تبدو جيدة على طية واحدة من طيات walk-forward تميل إلى أن تبدو جيدة على جميعها، يمكنك قتل الخاسرين مبكرًا وإنفاق ميزانية الناجين على الفائزين. وإذا رتَّبت الدقة الرخيصة عشوائيًا، فإن التوقف المبكر ليس سوى التخلص من التهيئات الجيدة بقذف عملة.
لذا قبل أن نثق بأي أداة تقليم، نقيس الافتراض مباشرة. دقتنا هي عدد طيات walk-forward (التقييم على r طيات برخص، أو جميع طيات K بالتكلفة الكاملة)، وتحسب بوابة الدقة معامل ارتباط الرتب سبيرمان ρ بين الهدف الرخيص ذي r طيات والهدف الكامل عبر عينة من تهيئات عشوائية. ρ@1 هو الارتباط عندما تحكم على أساس طية واحدة — أكثر الدقات عدوانية وأرخصها. إليك ما أبلغت عنه هذه البوابة عبر النظامين:
| الدقة (الطيات المستخدمة) | ρ للإطار الواحد | ρ للأطر المتعددة |
|---|---|---|
| ρ@1 (طية واحدة) | ~0.03 | 0.43 |
| ρ@2 | — | 0.67 |
| ρ@3 | — | 0.78 |
| ρ@4 | — | 0.82 |
| ρ@5 | — | 0.91 |
في نظام الإطار الزمني الواحد، تُرتِّب طية واحدة التهيئات بارتباط قدره ~0.03 مع الحقيقة — لا يمكن تمييزه إحصائيًا عن العشوائية. هذا ليس مصادفة؛ إنه نفس الحقيقة القائلة "لم تجد أي طريقة ميزة خارج العينة". عندما لا تملك استراتيجية إشارة دائمة، يكون أداؤها لكل طية في الغالب حظًا، لذا فإن أي طية واحدة هي سحب شبه عشوائي، والتقليم منخفض الدقة سيقتل التهيئات الجيدة ويُرقّي التهيئات المحظوظة. تعدد الدقة غير آمن في النظام الرخيص هنا — ليس لأن الطريقة سيئة، بل لأن الإشارة الرخيصة هي ضوضاء. (تكشف بوابتنا هذا وترفض التقليم بعدوانية.)
في نظام الأطر الزمنية المتعددة، توجد ميزة حقيقية، وتتحول صورة الدقة: يرتفع ρ@1 إلى 0.43، وبحلول الطية الخامسة يتسلق ρ إلى 0.91. الآن تحمل طية واحدة معلومات ترتيب حقيقية، وتحمل خمس طيات تقريبًا كل هذه المعلومات. يصبح التوقف المبكر آمنًا — التهيئة التي تخسر في أول طيتين أو ثلاث تكون بالفعل خاسرة على الأرجح. هذا هو السبب الثاني وراء انتماء طرق تعدد الدقة إلى النظام المكلف: ليس فقط لأن التقييمات المكلفة تجعل التقليم يستحق العناء، بل لأن النظام المكلف هو حيث تُرتِّب الدقة الرخيصة أخيرًا مثل الدقة المكلفة.
القاعدة التي يمنحها لنا هذا صريحة ورخيصة التشغيل: قِس ρ قبل أن تُقلِّم. ارتباط الدقة هو حساب من سطرين على بضع مئات من التهيئات العشوائية، وهو الفارق بين أن يُسرِّعك البحث متعدد الدقة وبين أن يُخرِّبك بصمت.
الفوز بالبحث ليس هو النجاة منه
ملاحظة صدق أخيرة، لأن هذه السلسلة تدور حول الاختبارات الخلفية التي تكذب. بطلنا في ثلاثي الأطر الزمنية، sobol→cmaes، كان الطريقة الوحيدة التي حققت نتيجة محجوزة إيجابية — 2.62%+، فوق 16.35%+ في نافذة الاختبار. هذا هو الخبر الجيد. وإليك التحذير: لم ينجُ من التضخيم الإحصائي المُخفِّض (deflation).
البطل هو الأفضل من بين عشرات الآلاف من التهيئات المُجرَّبة عبر جميع الطرق. تحت هذا القدر من الاختبار المتعدد، ليست نتيجة محجوزة قدرها 2.62%+ حقيقية تلقائيًا. شغَّلنا بوابات الإفراط في المطابقة التي تعتمد عليها السلسلة بأكملها — نسبة شارب المُخفَّضة بعدد فعّال N مُصحَّح للارتباط بين المحاولات، وPBO عبر التحقق المتقاطع التماثلي التوافقي (CSCV). اجتاز البطل PBO (0.12، أقل بشكل مريح من عتبة 0.2 — رتبته مستقرة عبر تقسيمات CSCV) لكن نسبة شارب المُخفَّضة انهارت إلى صفر (تتطلب البوابة ≥ 0.95). الحكم: لا ينجو.
اقرأ هذا بعناية، لأنه صميم التمرين بأكمله. نتيجة نقطة التقاطع حقيقية: البحث الذكي فاز بالبحث في النظام المكلف، بشكل حاسم، وخسر Sobol. لكن الفوز بالبحث بيان عن المُحسِّن، لا عن الاستراتيجية. أفضل تهيئة يمكن لمُحسِّن جيد إيجادها من فضاء عديم الميزة تبقى عديمة الميزة — التخفيض هو ما يخبرك بأي واحدة تحملها. اختيار طريقة البحث الصحيحة يمنحك أفضل إجابة متاحة بكفاءة؛ لكنه لا يصنع ميزة لم تكن موجودة قط. المُحسِّن وبوابات الإفراط في المطابقة أداتان مختلفتان تقيسان أشياء مختلفة، وتحتاج كلتيهما.
قاعدة قرار يمكنك تطبيقها فعليًا
لست بحاجة لإعادة تشغيل معيارنا لاختيار مُحسِّن. تحتاج إلى رقم واحد: كم يستغرق اختبار خلفي واحد؟ قِس زمن تقييم واحد لهدفك — مسار walk-forward كامل واحد، بجميع الطيات — واقرأ النظام الناتج.
- تقييم رخيص (≲ ~10 مللي ثانية/اختبار خلفي): اشترِ الإنتاجية. استخدم Sobol/QMC المخلوط أو العشوائي. ستكلفك ضريبة ask/tell على TPE/CMA-ES/ASHA 10-30 ضعفًا من عدد نقاطك مقابل وضع لا يكافئه تقييم شبه مجاني. لا تكلف نفسك عناء التقليم متعدد الدقة — وإذا راودك الإغراء، تحقق من ρ@1 أولًا؛ في نظام رخيص منخفض الميزة، من المرجح أن تكون قريبة من الصفر، مما يعني أن التقليم هو مجرد قذف عملة. أنفق وقت الهندسة الموفَّر على توسيع البحث، لا تضييقه.
- تقييم مكلف (≳ ~100 مللي ثانية إلى ثوانٍ/اختبار خلفي): اشترِ كفاءة العينة. استخدم CMA-ES أو TPE أو هجينًا من CMA-ES مزروعًا بـ Sobol؛ أصبح عبء أداة أخذ العينات الآن خطأ تقريب مقابل التقييم. إذا كانت تكلفة تقييمك مُهيكَلة (محور مؤشر بطيء ومحور عتبات سريع، كما في الأطر الزمنية المتعددة)، فضِّل الطرق التي تستغل هذه البنية — التتالي (cascades)، التنقيب، أي شيء واعٍ بالتكلفة — على الطرق التي تعامل كل بُعد على أنه مكلف بنفس القدر.
- بين ذلك، أو عند عدم اليقين: الهجين المزروع بـ Sobol (
sobol→cmaes) هو الخيار الافتراضي المتين. يتصرف مثل Sobol واسع النطاق في البداية (رخيص، لا نموذج ليُطابَق) ومثل منقِّح ذكي لاحقًا، لذا يتدهور بأناقة أيًا كان النظام الذي تجد نفسك فيه — وهذا بالضبط سبب كونه بطل نظامنا المكلف. - قبل أي أداة تقليم، قِس الدقة. احسب معامل سبيرمان ρ بين الدقة الرخيصة والهدف الكامل على بضع مئات من التهيئات العشوائية. إذا كان ρ@1 منخفضًا، لا تُقلِّم على طية واحدة؛ ارفع الحد الأدنى للموارد حتى يتجاوز ρ نحو 0.5. يكلف هذا سطرين من الكود ويمنع مُسرِّعك من التخلص بصمت من أفضل تهيئاتك.
- أيًا كانت الطريقة الفائزة بالبحث، شغِّل بوابات التخفيض. فائز المُحسِّن هو الكائن الأكثر عرضة للإفراط في المطابقة الذي ستنتجه طوال الأسبوع. DSR وPBO، لا درجة المُحسِّن، هما ما يقرران قابليته للتداول.
أين يتصل هذا
تقع هذه النتيجة في مركز عدة خيوط ظلت هذه السلسلة تشدها:
- إنها تفترض أن المحرك الكامن تحتها صادق. ميزة النظام الرخيص بأكملها موجودة لأن محرك numba الخاص بنا داخل العملية يصل إلى آلاف التهيئات في الثانية دون أي اتصال بين العمليات — سلّم السرعة هو ما يضعك في نظام فوز الإنتاجية في المقام الأول. محرك بطيء تُثقله أُطر العمل سيضع كل مسألة في النظام المكلف افتراضيًا، ولن ترى أبدًا نقطة التقاطع.
- استغلال النظام المكلف هو البنية ثنائية المحاور التي صُمِّم حولها محرك التنقيب متعدد الدقة التكيفي لدينا: التحديد الموقعي على المحور الخشن المكلف، ثم استغلال المحور الدقيق الرخيص.
- كل طريقة هنا موثوقة فقط لأن المحرك خالٍ من التسرب. البحث عبر عشرات الآلاف من المحاولات هو أكفأ آلة ممكنة لإيجاد واستغلال خلل استباق النظر إلى الأمام — "الفائز" سيكون أي تهيئة اتكأت بأقصى قوة على التسرب. أصلح الساعة أولًا، ثم ابحث.
- ومصير البطل — الفوز بالبحث، والفشل في التخفيض — هو الحجة الكاملة لمعاملة البحث عن المعاملات وضبط الإفراط في المطابقة كمرحلتين منفصلتين بأدوات منفصلة.
الخلفية الأكاديمية هي نفسها التي يعود إليها هذا المجال دومًا: Bergstra وBengio (2012) حول لماذا يتفوق العشوائي على الشبكي؛ Hyperband لـ Li وآخرين (2018) ومتابعة ASHA (2020) حول تعدد الدقة؛ وBailey وLópez de Prado (2014) حول لماذا يجب تخفيض فائز أي بحث كبير قبل تصديقه. لا تصف أيٌّ منها مُحسِّنًا واحدًا أفضل، لأنه لا يوجد واحد كهذا — يوجد نظام، وتكلفة تختاره.
الخلاصات
- نقطة التقاطع بين البحث العشوائي والذكي تُحدَّد بتكلفة التقييم، لا بالخوارزمية. قلبنا ترتيب كل طريقة بتغيير شيء واحد فقط هو مدى تكلفة اختبار خلفي واحد.
- تقييم رخيص ← يفوز Sobol الغبي بالإنتاجية. على محرك الإطار الزمني الواحد لدينا (~3-4 آلاف تهيئة/ث)، عملت TPE وASHA أبطأ بـ18-30 ضعفًا لنفس عدد التقييمات — ~95-154 تهيئة/ث مقابل ~2,830 لـ Sobol. عند نفس زمن التنفيذ الفعلي، يتفوق الاتساع على نموذج أفضل للفضاء عندما تكون كل نقطة شبه مجانية.
- تقييم مكلف ← تفوز الطرق الذكية بالكفاءة. في مسألة ثلاثي الأطر الزمنية، كانت
sobol→cmaesالطريقة الوحيدة التي وجدت نتيجة إيجابية خارج العينة (16.35%+ اختبار، 2.62%+ محجوز)؛ انتهى Sobol الأعمى في المرتبة الأخيرة. - في النظام المكلف، "الذكي" يعني الوعي بالتكلفة. استغل الفائز الفجوة البالغة 30-100 ضعف بين محور المؤشر المكلف ومحور العتبات الرخيص — أجرى تقييمات أكثر ووضعها بشكل أفضل، بالبقاء على المحور الرخيص بمجرد تثبيت المحور المكلف.
- الدقة شرط مسبق للتقليم. ارتفع ارتباط ترتيب الطية الواحدة من ρ@1 ≈ 0.03 (إطار واحد، عشوائي أساسًا) إلى 0.43 (أطر متعددة)، ليصل إلى 0.91 بحلول الطية الخامسة. تعدد الدقة/ASHA لا يُجدي إلا عندما تُرتِّب الدقة الرخيصة مثل الدقة المكلفة — لذا قِس ρ قبل أن تُقلِّم.
- الفوز بالبحث ليس هو النجاة منه. اجتاز البطل PBO لكنه فشل في بوابة نسبة شارب المُخفَّضة. اختر المُحسِّن بناءً على تكلفة التقييم؛ وقرِّر القابلية للتداول ببوابات التخفيض. إنهما أداتان مختلفتان، وتحتاج كلتيهما.
اختر مُحسِّنك بناءً على ما يكلفه اختبار خلفي واحد. ثم تذكَّر أن أفضل إجابة يمكن لمُحسِّن إيجادها في فضاء عديم الميزة تبقى عديمة الميزة — ودع البوابات، لا البحث، تخبرك بأي واحدة منها تحملها.
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.