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

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

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

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

يستطيع أي شخص في هذه الزاوية من الإنترنت أن يسرد الأكاذيب الخمس لاختبار المحاكاة التاريخي عن ظهر قلب: وحدات القياس الخاطئة، وحسابات الناجين فقط، والتحيز التطلعي (Look-ahead bias)، والسمات المُطبَّعة على بيانات لم تقع بعد، وغياب هوامش الخطأ. سمّيت هذه الأكاذيب الخمس بنفسي في فصل سابق، وما زلت عند رأيي فيها. لكن ثمة كذبة سادسة، وهي التي كلّفتني أكثر من غيرها جميعاً، لأن الأكاذيب الخمس الأخرى تفسد قياس سلسلة عائد وقعت بالفعل، بينما الكذبة السادسة تفسد سلسلة العائد نفسها، قبل أن يُحسب عليها أي رقم نسبة شارب (Sharpe Ratio) أو كالمار (Calmar) أو احتمال الإفلاس (Risk of Ruin). إنها التنفيذات (Fills).

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

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

أربعة أوجه لكذبة التنفيذ

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

Figure

The four faces of the fill

Every one flatters you in the same direction: a cost the backtest forgot to charge lands as invented profit.

Bar timing

same-bar close vs next-bar open

Filling at the close the signal was computed on is the close cousin of look-ahead. Real signals fire on a closing bar and fill on the next one.

The half-spread

you never fill at the mid

A buy lifts the offer, a sell hits the bid. You cross half the spread each side, every round trip. A mid-price backtest touches a level no aggressive order gets.

Stops fill past the trigger

1R designed, ~1.5R paid

A stop trades once price reaches a level; on a gap the next print is materially worse. A backtest that fills at the trigger models a discipline the market does not provide.

Impact grows with size

small is nearly free

A large clip fills in pieces at worse prices, and slippage scales with participation. The term that turns a capacity question into a hard ceiling.

The only honest Sharpe is the one that has already paid to trade.

Source: Building a Production Quant Trading System (Titan)

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

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

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

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

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

قصة حرب: فرصة كانت في حقيقتها كلفة لم تُدفع

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

ثم أعدت حساب تكاليفها بأمانة، فتبخّرت الفرصة بالكامل.

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

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

الخلاصة القابلة للنقل: بوابة إعادة التكلفة

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

أعد تشغيل فرصة الاستراتيجية عند 0x و1x و2x من تكلفتك المُنمذَجة، واقرأ الشكل الناتج.

تشغيلة 0x هي الوهم الإجمالي، الرقم الذي يبلّغ عنه اختبار محاكاة ساذج. وتشغيلة 1x تحتسب تقديرك الصادق والمبني بعناية لكلفة التداول الفعلية: نصف الفارق السعري على كل جانب، والانزلاق، وحد العمولة الأدنى، والتمويل والتدوير (Roll) على الأرجل التي تُحمل، وكلها مُحتسَبة عند الانتقالات وعلى التقويم، لا على كل شمعة تُحمَل خلالها. وتشغيلة 2x هي هامش الأمان لديك ضد احتمال أنك قلّلت من تقدير الاحتكاك، وهو احتمال شبه مؤكد.

والآن احكم على النمط الناتج، واحكم عليه بالاستناد إلى الحد الأدنى لفترة ثقة شارب المبنية على إعادة المعاينة، لا التقدير النقطي أبداً:

Chart

The edge collapses as you charge realistic cost

Net Sharpe (bootstrap lower bound) for one illustrative strategy re-run at three cost levels. An edge that is gone by 1x was never real; the 0x-to-1x drop is the size of the fictional fills. Illustrative and sanitised.

0x cost (gross fantasy)1.4 Sharpe1x cost (honest estimate)0.2 Sharpe2x cost (margin of safety)-0.4 Sharpe
Source: Building a Production Quant Trading System (Titan), illustrative
  • الفرصة الحقيقية تنجو من تكلفة 1x الواقعية وحدّها الأدنى ما يزال فوق الصفر، وتتراجع بتدرّج نحو 2x. إنها تنحني، ولا تنكسر.
  • أما الفرصة التي تبدو جذابة عند 0x وتختفي عند 1x فلم تكن فرصة قط، بل كانت الاحتكاك الذي نسيت احتسابه، مرتدياً نسبة شارب كقناع. ارفضها. ولا يهم مدى استقرارها ظاهرياً، ولا نظافة هضبتها، ولا مقدار رغبتك في أن تكون حقيقية.

وإليك التشخيص المدفون داخل هذه التشغيلات الثلاث نفسها، وهو أفيدها عندي على الإطلاق. الهبوط من 0x إلى 1x قياس مباشر لمقدار ما كان من فرصتك تنفيذات خيالية. فإذا كانت شارب الإجمالية 1.4 والصافية عند 1x هي 1.2، فالتنفيذات كانت خطأ تقريب لا أكثر ولديك إشارة حقيقية. أما إذا كانت الإجمالية 1.4 والصافية عند 1x هي 0.1، فمعظم الأمر كله كان وهماً تنفيذياً، وكنت محظوظاً بشكل استثنائي أنك أجريت هذا الاختبار قبل تمويل الاستراتيجية. وذلك الرقم المفرد، انهيار 0x إلى 1x، هو الحجم الصادق للكذبة السادسة في استراتيجيتك أنت بالذات.

اربطه بمسار الترقية بحيث لا تصل أي استراتيجية إلى رأس المال دون اجتياز الصافي عند 1x، تماماً كما تشترط أصلاً اجتياز الحد الأدنى الإجمالي. فنسبة شارب الصادقة الوحيدة هي تلك التي دفعت ثمن التداول بالفعل.

لماذا هذه هي الكذبة الأعلى كلفة

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

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

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

فاحمل هذا معك من هنا: تنفيذات اختبارك التاريخي خيال حتى تدفع ثمنها، وأرخص طريقة لمعرفة كم من فرصتك خيال هي أن تعيد تشغيلها عند 0x و1x و2x من الكلفة، وتراقب ما يموت. فإن ماتت عند 1x، فلم تكن فرصتك يوماً. كانت فرصة الوسيط، وأنت فقط لم تكن قد دفعت له ثمنها بعد.

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

Chart

The edge collapses as you charge realistic cost

Net Sharpe (bootstrap lower bound) for one illustrative strategy re-run at three cost levels. An edge that is gone by 1x was never real; the 0x-to-1x drop is the size of the fictional fills. Illustrative and sanitised.

0x cost (gross fantasy)1.4 Sharpe1x cost (honest estimate)0.2 Sharpe2x cost (margin of safety)-0.4 Sharpe
Source: Building a Production Quant Trading System (Titan), illustrative

Figure

The four faces of the fill

Every one flatters you in the same direction: a cost the backtest forgot to charge lands as invented profit.

Bar timing

same-bar close vs next-bar open

Filling at the close the signal was computed on is the close cousin of look-ahead. Real signals fire on a closing bar and fill on the next one.

The half-spread

you never fill at the mid

A buy lifts the offer, a sell hits the bid. You cross half the spread each side, every round trip. A mid-price backtest touches a level no aggressive order gets.

Stops fill past the trigger

1R designed, ~1.5R paid

A stop trades once price reaches a level; on a gap the next print is materially worse. A backtest that fills at the trigger models a discipline the market does not provide.

Impact grows with size

small is nearly free

A large clip fills in pieces at worse prices, and slippage scales with participation. The term that turns a capacity question into a hard ceiling.

The only honest Sharpe is the one that has already paid to trade.

Source: Building a Production Quant Trading System (Titan)

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

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

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

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

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

· 9 دقيقة

التحقق من البيانات بالإخفاق المُغلَق: لماذا يجب أن ترفض عقدة التداول الإقلاع على بيانات فاسدة

بوابة جودة بيانات تدخل في حلقة تعطّل متكررة أمام بيانات فاسدة أو قديمة أو خالية من القيم فعلياً ليست عطلاً، بل هي تعمل كما ينبغي: فالبديل هو الإخفاق المفتوح، أي التداول على بيانات تالفة بقيم افتراضية صامتة. هنا قصة الحرب من الجانبين، والمرة التي بالغت فيها بوابتي في التشدد فحبستني خارج سوق كان ينبغي أن أكون فيه، والقاعدة الواحدة القابلة للنقل: عند سوء البيانات، ارفض التداول ونبّه بصوت عالٍ، ولا تمضِ أبداً بقيمة افتراضية تتنكّر بمظهر بيانات حقيقية.

· 9 دقيقة

الختم عند الفتح أم عند الإغلاق: طابع زمني واحد يُسرّب شمعة كاملة من التحيز التطلعي

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

· 9 دقيقة

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

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

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