تخطٍّ إلى المحتوى
الجمعة، 13 نوفمبر 2026 · لندنENع
ريان الأزهري.الاستدامة · الطاقة · الكربون · البيئة المبنية · علم البيانات
التداول الكمي الإنتاجي

التحقق المتقاطع المُطهَّر وانحراف التدريب عن التشغيل: أربع بوابات قبل أن يتداول نموذج تعلّم آلي

حين تكون الاستراتيجية نموذج تعلّم آلي، يكذب عليك التحقق القياسي: تتداخل نوافذ الوسم عبر طيّات k-fold الساذجة فتتسرّب المعلومة بينها وتُصطنَع نتيجة وهمية. هنا البوابات الأربع، على مستوى الآلية نفسها، التي أُخضِع لها أي نموذج تعلّم آلي قبل أن يبدأ التداول بأموال حقيقية، وقصة حرب عن نموذج بدا ممتازاً إلى أن طهّرتُ الطيّات وحجرتها فانهار أمام عينيّ.

ريان الأزهريأخصائي بيئي معتمد · 9 دقيقة قراءة

كان أول نموذج كدت أن أموّله يبدو ممتازاً. كان مصنّفاً (Classifier) للتداول في سوق الصرف الأجنبي (FX)، مبنياً بطريقة التعزيز التدرّجي (Gradient Boosting)، يتغذى ببضع عشرات من الخصائص، وتحت التحقق المتقاطع القياسي بخمس طيّات سجّل نتيجة كنت لأفخر بعرضها على أي أحد: كانت الطيّات متسقة فيما بينها، وتنبؤات خارج الطيّة (Out-of-Fold) تتبّعت الأوسمة بدقة، وقالت كل غريزة لديّ إن هذا الشيء تعلّم شيئاً حقيقياً. ثم طهّرتُ الطيّات وحجرتها، أي أسقطتُ من كل مجموعة تدريب العيّنات التي تداخلت أوسمتها زمنياً مع مجموعة الاختبار، فانهارت النتيجة. لم تخفّ. بل انهارت، إلى ما يقارب رمية عملة. لم يتعلّم النموذج قط أن يتنبأ بالسوق، بل تعلّم أن يقرأ مجموعة اختباره هو نفسه عبر التداخل في أوسمته، وسلّمه k-fold الساذج ورقة الإجابة.

هذا هو الفخ الذي أريد وصفه، لأنه خاص باستراتيجيات التعلّم الآلي، ولا تُمسكه أي من الانضباطات التي تُبقي نظاماً قائماً على قواعد ثابتة صادقاً أصلاً. مجموعة المعاملات صغيرة وثابتة وواضحة للقراءة: يمكنك مقارنتها سطراً بسطر، وتفحّصها بالعين المجردة، والتفكير فيها منطقياً. أما النموذج المُدرَّب فكبير ومعتم، ويتسرّب بطرق لا تقدر عليها أي عتبة، ويتقادم مع الوقت. وفي اللحظة التي يدخل فيها نموذج إلى الحلقة، يرث كل قاعدة "الشك قبل الاحتفال" التي أطبّقها على أي استراتيجية، بالإضافة إلى أربع بوابات خاصة به وحده. هذه ملاحظة ميدانية من النصف المدفوع من كتابي. سأمنحك البوابات الأربع والآلية وراء كل واحدة، وأحتفظ بالتطبيق الكامل لطريقة الحاجز الثلاثي (Triple-Barrier) والتحقق المتقاطع المُطهَّر للكتاب نفسه.

لماذا يدين لك النموذج بأكثر مما تدين به الاستراتيجية؟

ارسم الخط بوضوح، لأن معظم الكتابة عن التعلّم الآلي المالي تُطمسه. ما لا أُعلّمه، لا في الكتاب ولا هنا، هو الفرصة (Alpha): أي الخصائص تحمل الإشارة، وأي بنية معمارية تُلائم، وكيف تُنقّب في فضاء النماذج. ذلك كتالوج استراتيجيات، وهو خارج النطاق عمداً. أما ما أُصرّ عليه فهو انضباط دورة الحياة، لأن النموذج المُدرَّب ليس إلا ادّعاءً آخر ينتظر التحقق، وفي اللحظة التي يلمس فيها رأس المال يصبح مديوناً بالإثبات.

والسبب في أنه مديون بإثبات أكبر مما تدين به مجموعة معاملات سببٌ بنيوي. فكل بوابة من البوابات الأربع أدناه هي طريقة يجتاز بها نموذج التحقق بنظافة ثم يفشل عند التشغيل الفعلي، ولا واحدة منها تغطيها الفحوص التي تُبقي استراتيجية قائمة على قواعد صادقةً أصلاً. يمكن لنموذج أن يجتاز عمودي الفقري المعتاد للترقية بأكمله، بوابة إفراط الملاءمة (Overfitting)، وبوابة النجاة، وبوابة العمليات، ويبقى مع ذلك عديم القيمة، لأن النتيجة التي أوصلته عبر بوابة إفراط الملاءمة كانت كذبة صنعتها أوسمة متسرّبة. لذا يحصل على أربع بوابات إضافية.

Figure

Four gates before a model trades

A machine-learning strategy owes you these four before a single live bar. A blank on any one caps the verdict at unconfirmed.

  1. 1

    Purged and embargoed cross-validation

    kill label leakage across overlapping folds

  2. 2

    No train/serve skew

    the live feature code is the training feature code, asserted feature by feature

  3. 3

    No look-ahead in the features

    run the corrupt-the-future test across the whole feature matrix

  4. 4

    Calibration and decay monitoring

    the edge has a half-life, so pre-commit a retraining policy

A retrained model is a new, unvalidated strategy, so it re-enters at gate one.

Source: Building a Production Quant Trading System (Titan)

البوابة الأولى: التحقق المتقاطع المُطهَّر والمحجور

يرتكز التحقق المتقاطع القياسي على افتراض واحد: أن العيّنات مستقلة. وفي التعلّم الآلي المالي لا تكون كذلك في الغالب، والسبب هو الوسم (Label). فالوسم المفيد يُبنى عادةً من نافذة أمامية: هل لامس السعر الحاجز العلوي قبل السفلي خلال العشرين شمعة القادمة؟ هذه هي فكرة الحاجز الثلاثي (Triple-Barrier)، وهي فكرة سليمة. لكنها تعني أن وسم عيّنة يتداخل زمنياً مع أوسمة جاراتها، لأن نوافذها الأمامية متداخلة. ضع جارة واحدة في طيّة الاختبار والبقية في طيّة التدريب، ويتشارك التدريب والاختبار الآن معلومات عبر تلك النوافذ المتداخلة. النموذج يُختبَر جزئياً على بيانات تدرّب عليها. فتتضخم النتيجة، وتُطلق نموذجاً بدا تنبؤياً لسبب واحد فقط: أن تقييمه كان مسرّباً.

يوجد تصحيحان يجعلان حدود الطيّة صادقة. التطهير (Purge): أسقِط من مجموعة التدريب كل عيّنة تتداخل نافذة وسمها مع نافذة الاختبار، بحيث لا تتخطى الحدَّ أي عيّنة تحمل معلومات مشتركة. الحجر (Embargo): أسقِط أيضاً هامشاً صغيراً من عيّنات التدريب مباشرة بعد نافذة الاختبار، لأن الارتباط التسلسلي يُسرّب قليلاً إلى ما بعد التداخل الدقيق نفسه. والحجر حزام الأمان فوق التطهير.

تخطَّ هذا وتصبح نتيجة النموذج المتحقَّق منها بالتقاطع الكذبة نفسها التي يقولها اختبار محاكاة تطلّعي متنكراً في زي التحقق المتقاطع. بل هي أسوأ من تسرّب تطلّعي عادي، لأنها تجتاز كل بوابة أخرى: العوائد في التقييم المسرَّب وقعت فعلاً، تحت نموذج لاءم فعلاً البيانات المسرَّبة. لا شيء يبدو معطوباً. والشيء الوحيد الذي يمسك بها هو رفض الثقة بنتيجة k-fold الساذجة لأي وسم له نافذة أمامية.

Chart

What the overlapping labels were leaking

A model's cross-validated score on the same data and features under two regimes. The gap between them is the information a naive split leaks across folds. Illustrative and sanitised; the no-skill baseline sits near 0.5.

Naive k-fold (inflated)0.7Purged + embargoed CV (honest)0.5
Source: Building a Production Quant Trading System (Titan), illustrative

ذلك الرسم البياني هو البوابة كلها في صورة واحدة. النموذج نفسه، والبيانات نفسها، والخصائص نفسها: k-fold الساذج على اليسار يُبلغ بنتيجة قوية، والتحقق المتقاطع المُطهَّر والمحجور على اليمين يُبلغ بالنتيجة الصادقة. والفجوة بينهما ليست تشويشاً. إنها بالضبط مقدار المعلومات التي كانت الأوسمة المتداخلة تُسرّبها، وهي المقدار الذي كنت ستدفعه زائداً ثمناً لفرصة وهمية.

البوابة الثانية: انعدام الانحراف بين التدريب والتشغيل الفعلي

تعيش البوابة الثانية طبقة واحدة قبل الإشارة، أسفل عند الخصائص. حين أتحقق من استراتيجية عادية، أُثبت أن مسار الإشارة الفعلي يساوي مرجع بحث مستقل. أما بالنسبة إلى نموذج، فينتقل التباعد الخطير إلى المدخلات. فالمسار الذي يحسب خاصية أثناء التشغيل الفعلي، شمعة إثر شمعة من مخزن تدفق حي، يجب أن ينتج الرقم نفسه الذي ينتجه المسار الذي حسب تلك الخاصية دون اتصال مباشر، في دفعة واحدة مُتّجهة، أثناء التدريب.

وحين تختلفان، يكون النموذج يُسجّل درجات لخصائص لم يتدرّب عليها قط، ويصبح سلوكه غير مُعرَّف. وطرق اختلافهما مبتذلة وقاتلة معاً: حالة حافة مختلفة للنافذة المتحركة عند بداية المخزن، ودالة fillna مختلفة، وإصدار مكتبة غيّر قيمة افتراضية، وخاصية استخدمت إحصاءً من كامل السلسلة أثناء التدريب وإحصاءً سببياً فقط أثناء التشغيل الفعلي. هذا هو انحراف التدريب عن التشغيل الفعلي (Train/Serve Skew)، وهو الطريقة الأكثر شيوعاً على الإطلاق التي يتدنى بها أداء نموذج مُتحقَّق منه عند التشغيل الفعلي بينما تستمر كل لوحات المراقبة في الإبلاغ عن أن كل شيء سليم. والنموذج قوي بما يكفي ليُخفي مُدخلاً واحداً منحرفاً، إلى أن يأتي اليوم الذي لا يعود قادراً فيه على ذلك.

والدفاع هو التكافؤ (Parity)، موجَّهاً نحو الخصائص، لا نحو الإشارة. شغّل مسار خصائص التشغيل الفعلي ومسار خصائص التدريب على المدخل الاصطناعي نفسه، وتحقق من أنهما يتفقان خاصيةً بخاصية، لا عند التنبؤ النهائي فقط. فاختبار تكافؤ على مستوى الإشارة قد ينجح بينما تنحرف خاصية واحدة بهدوء، لأن النموذج يمتصها. القاعدة القابلة للنقل: شيفرة الخصائص أثناء التشغيل الفعلي وشيفرة الخصائص أثناء التدريب يجب أن تكونا الشيفرة نفسها، ويجب أن يكون لديك اختبار يُثبت ذلك، لأن النموذج لا يكون صادقاً إلا بقدر ما تكون خصائصه متطابقة.

البوابة الثالثة: انعدام التحيز التطلعي في الخصائص

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

في استراتيجية عادية أُشغّل هذا على الإشارة. أما في نموذج فأشغّله على مصفوفة الخصائص بأكملها، لأن خاصية واحدة متسربة تكفي لتضخيم النموذج، وغالباً ما يُدفن التسرب بالضبط داخل التحويلات الروتينية التي تبدو أبرأ ما يكون: معيار z محسوب على كامل السلسلة، أو قيمة من إطار زمني أعلى مُعبّأة أمامياً (Forward-Filled) تسافر عبر الزمن لتعود إلى الصباح، أو مُنعِّم ثنائي الجانب تعتمد قيمته الحالية على نقاط إلى يمينه. لا شيء من هذا يبدو غشاً. كل واحد منها يُقرأ كشيفرة رقمية أنيقة. ولا تهتم نسخة البيانات المُسمَّمة بمدى أناقة الشيفرة؛ فهي تسأل فقط إن كانت الإجابة تتغير حين تتغير بيانات كان يُفترض أن تظل غير مرئية. شغّل اختبار تسميم المستقبل على كل عمود قبل أن يُسمح للنموذج بتسجيل درجة على شمعة واحدة في التشغيل الفعلي.

البوابة الرابعة: المعايرة ومراقبة التدهور

تُوصل البوابات الثلاث الأولى النموذج إلى خط البداية. أما الرابعة فهي التي لا تواجهها استراتيجية قائمة على قواعد أبداً: النموذج يتقادم. مجموعة المعاملات ثابتة، فمتى تحقّقت صحتها بقيت صحيحة. أما فرصة النموذج (Edge) فلها نصف عمر، ونموذج كان صادقاً في يناير يمكن أن يصبح مخطئاً بهدوء بحلول يونيو، لأن السوق الذي تعلّم منه قد مضى قُدماً بعيداً عنه.

لذا فإن نموذجاً يتداول بأموال حقيقية مديون بأمرين منذ اللحظة التي يبدأ فيها التداول. أولاً، المعايرة (Calibration): حين يقول النموذج سبعين في المائة، هل يقع الحدث بمعدل سبعين في المائة تقريباً فعلاً، هذا الشهر أيضاً، لا على مجموعة التحقق فقط؟ يمكن لنموذج أن يحافظ على ترتيبه ويفقد معايرته، والنموذج سيئ المعايرة يُفسد كل قرار تحجيم يعتمد عليه لاحقاً. ثانياً، مراقبة التدهور: تتبّع الفرصة الفعلية مقابل خط الأساس المُتحقَّق منه، والتزم كتابةً، سلفاً، بما ستفعله حين تخبو. هل تُعيد التدريب على وتيرة ثابتة أم عند مُشغِّل (Trigger) ينطلق مع الانحراف (Drift)؟ كلا الخيارين مدافَع عنه. أما إعادة التدريب حسب المزاج فلا.

والفخ داخل هذه البوابة هو الفخ المُغري: النموذج المُعاد تدريبه استراتيجية جديدة غير مُتحقَّق منها، لا استراتيجية قائمة تُصان. وعبارة "البنية نفسها، بيانات أحدث فقط" تجعل الكائن المنشور بهدوء شيئاً مختلفاً عن الكائن المُتحقَّق منه، والتصرف الصادق هو إعادة النموذج المُعاد تدريبه عبر البوابات من الأولى إلى الثالثة وكسب حكم جديد قبل أن يأخذ رأس المال مرة أخرى، تماماً كما يفعل نموذج جديد كلياً.

القاعدة القابلة للنقل: قائمة تحقق التعلّم الآلي ذات البوابات الأربع

إن أخذت شيئاً واحداً من هذا المقال، فخذ هذا. قبل أن يتداول نموذج تعلّم آلي جنيهاً واحداً حقيقياً، عليه أن يجتاز أربع بوابات، وأي فراغ في أي سطر يُبقي الحكم عند "غير مؤكد" (unconfirmed)، ما يعني أن النموذج لم يوجد بعد، لا أنه سيئ.

  1. التحقق المتقاطع المُطهَّر والمحجور. تُحسب النتيجة بعد تطهير تداخلات الأوسمة من التدريب وهامش حجر بعد كل نافذة اختبار. ولا تُحتسب نتيجة k-fold الساذجة.
  2. انعدام الانحراف بين التدريب والتشغيل. مسار خصائص التشغيل الفعلي هو الشيفرة نفسها التي يستخدمها التدريب، مُثبَتاً باختبار تكافؤ خاصيةً بخاصية على مدخل مطابق.
  3. انعدام التحيز التطلعي في الخصائص. يجتاز اختبار تسميم المستقبل مصفوفة الخصائص بأكملها: سمِّم كل سعر بعد نقطة قطع، وتحقق من ألا تتحرك أي خاصية قبل القطع.
  4. المعايرة ومراقبة التدهور. النموذج مُعايَر على بيانات فعلية حديثة، وتُتَبَّع فرصته مقابل خط الأساس، وتوجد سياسة إعادة تدريب مكتوبة تُعيد تشغيل البوابات من الأولى إلى الثالثة على أي نموذج مُعاد تدريبه.

علّقها فوق مكتبك، إلى جانب أي عمود فقري للترقية تُشغّله بالفعل للاستراتيجيات القائمة على القواعد. إنها ليست نصيحة حول ماذا تُنمذج. بل مجموعة البوابات التي تقرر ما إذا كان يُسمح لك بعدُ بتصديق نتيجة نموذج.

أين تكمن الآلية الكاملة

لم أُدرِج التطبيقات هنا عمداً: وسم الحاجز الثلاثي، وأداة التحقق المتقاطع المُطهَّر والمحجور، وإطار اختبار تكافؤ الخصائص، ومراقبا المعايرة والتدهور، والإحكام (Sealing) الذي يجعل النموذج المنشور مطابقاً حرفياً للنموذج المُتحقَّق منه. هذه، بمخططها الدقيق (Schema) وشيفرتها الكاملة، موجودة في النصف المدفوع من الكتاب، Building a Production Quant Trading System، كنسخة رقمية حية على Leanpub ونسخة ورقية مطبوعة على Amazon. ويُظهر الإطار البرمجي المرافق، المُنقّح والمرخّص بموجب Apache-2.0، البنية التي تعيش فيها هذه البوابات، ونسخة قابلة للتشغيل من اختبار تسميم المستقبل يمكنك تطبيقها على مصفوفة خصائص اليوم.

احمل جملة واحدة من هنا: نتيجة التحقق المتقاطع لنموذج تعلّم آلي ادّعاء يجب اختباره تحت الضغط، وإذا كانت أوسمته ذات نافذة أمامية، فنتيجة k-fold الساذجة ليست ادّعاءً، بل هي وهم.

هذا مقال هندسي، وليس نصيحة استثمارية، ولا يحتوي على أي استراتيجية قابلة للتداول. جميع الأرقام توضيحية ومُنقّحة، وقصص الحرب فيه عن الأخطاء البرمجية، لا عن الأرباح.

Figure

Four gates before a model trades

A machine-learning strategy owes you these four before a single live bar. A blank on any one caps the verdict at unconfirmed.

  1. 1

    Purged and embargoed cross-validation

    kill label leakage across overlapping folds

  2. 2

    No train/serve skew

    the live feature code is the training feature code, asserted feature by feature

  3. 3

    No look-ahead in the features

    run the corrupt-the-future test across the whole feature matrix

  4. 4

    Calibration and decay monitoring

    the edge has a half-life, so pre-commit a retraining policy

A retrained model is a new, unvalidated strategy, so it re-enters at gate one.

Source: Building a Production Quant Trading System (Titan)

Chart

What the overlapping labels were leaking

A model's cross-validated score on the same data and features under two regimes. The gap between them is the information a naive split leaks across folds. Illustrative and sanitised; the no-skill baseline sits near 0.5.

Naive k-fold (inflated)0.7Purged + embargoed CV (honest)0.5
Source: Building a Production Quant Trading System (Titan), illustrative

قراءات إضافية

ملاحظات في التداول الكمي، الجزء 18 من 25

مقالات ذات صلة

البيانات تتدفق والأمر يُرفض: كتالوج الوسيط، لا قوة الفرصة، هو ما يحدد ما تتداوله

بموجب لائحة PRIIPs، يمكن لحساب تجزئة في المملكة المتحدة أو الاتحاد الأوروبي أن يستقبل بيانات صندوق أمريكي مُتداول بالكامل، بينما يُحظر عليه حيازته إلى الأبد، لأن الصندوق لا ينشر مستند المعلومات الأساسية (KID). هذا هو النمط الإنتاجي الذي أتّبعه حين تعيش أنظف إشارة لديّ على أداة لا يُسمح لي بتداولها: احسب الإشارة على الخط المخصص للبيانات فقط، وتداول بديلاً من نوع UCITS، وطابِق البديل على العملة لا على الارتباط وحده. كتالوج الوسيط، لا قوة الفرصة، هو ما يحدد الأدوات التي يُسمح لك بتداولها فعلياً.

· 9 دقيقة

الكذبة السادسة: حين تُزوّر التنفيذات الخيالية عائد اختبارك التاريخي

يقتبس الجميع الأكاذيب الخمس لاختبار المحاكاة التاريخي، لكن ثمة كذبة سادسة هي الأعلى كلفة: التنفيذات (Fills). فاختبار المحاكاة يسجّل الصفقات بأسعار ما كان السوق ليمنحك إياها أبداً، فيفسد سلسلة العائد نفسها قبل أن يُحسب عليها أي مقياس. هنا بوابة إعادة التكلفة التي أستخدمها للتمييز بين فرصة حقيقية وتنفيذات خيالية.

· 9 دقيقة

لماذا ينحرف التداول الفعلي عن اختبار المحاكاة: الأسباب البرمجية التي لا يذكرها أحد

حين ينجرف أداء حسابك الحقيقي عن اختبار المحاكاة الذي اعتمدته، فالمتهم نادراً ما يكون نفسياً. إنه خلل برمجي: المقياس نفسه محسوب بطريقتين مختلفتين قليلاً بين شيفرة البحث ومسار التحجيم الفعلي. هنا فاحص التطابق (Parity Oracle) الذي أفرضه الآن بوابةً قبل كل إطلاق، والقاعدة الأعمق خلفه: يجب أن يستدعي التداول الفعلي والبحث الشيفرة نفسها، لا نسختين منها.

· 9 دقيقة

مقالات إلى بريدك

كتابات جديدة عن سوريا والاستدامة والتمويل، بضع مرات في الشهر.

يمكنك إلغاء الاشتراك في أي وقت. يقرأها أكثر من ٤٢٠٠ متخصّص.