المدونة
التداول الخوارزمي - تعرف على عقلية المتداول الناجح
مدرس شغوف بسوق الأسهم والاقتصاد
آخر تحديث
الوقت المتوقع للقراءة 5 د.فهرس المحتوى
لاختبار التاريخي هو عملية إدخال البيانات التاريخية في استراتيجية التداول لمعرفة كيف كان أداؤها لو طُبّقت في الماضي، على أمل أن يعطينا هذا الأداء التاريخي تصورًا معقولًا عما يمكن توقعه من أدائها المستقبلي
التداول الخوارزمي - تعرف على عقلية المتداول الناجح
أهمية الاختبار التاريخي (Backtesting)
الاختبار التاريخي هو عملية إدخال البيانات التاريخية في استراتيجية التداول لمعرفة كيف كان أداؤها لو طُبّقت في الماضي، على أمل أن يعطينا هذا الأداء التاريخي تصورًا معقولًا عما يمكن توقعه من أدائها المستقبلي. وتتضح أهمية هذه العملية بشكل خاص إذا قمت بتطوير استراتيجية من الصفر، إذ سيكون من الضروري معرفة كيفية أدائها فعليًا. ولكن حتى إذا اطّلعت على استراتيجية منشورة في كتاب أو بحث وكنت تثق بأن المؤلف قد عرض نتائجها بصدق، يبقى من الضروري للغاية أن تقوم بإجراء الاختبار التاريخي لها بشكل مستقل. ويرجع ذلك إلى عدة أسباب، من أهمها أن ربحية الاستراتيجية غالبًا ما تعتمد بدرجة كبيرة على تفاصيل التنفيذ الدقيقة؛ فعلى سبيل المثال، هل يجب إرسال أوامر الأسهم كأوامر سوق عند الافتتاح (Market-on-Open) أم كأوامر سوق مباشرة بعد الافتتاح؟ وهل ينبغي إدخال أمر عقد مؤشر ستاندرد آند بورز 500 المصغر (E-mini S&P 500) قبل إغلاق سوق الأسهم عند الساعة 4:00 مساءً أم قبل إغلاق سوق العقود الآجلة عند الساعة 4:15 مساءً؟ وهل يتم تفعيل الصفقة باستخدام سعر الطلب (Bid) أو سعر العرض (Ask)، أم باستخدام آخر سعر تداول (Last Price)؟ غالبًا ما يتم تجاوز هذه التفاصيل في المقالات أو الكتب المنشورة، وأحيانًا يكون ذلك مبررًا حتى لا تصرف الانتباه عن الفكرة الرئيسية، إلا أن هذه التفاصيل قد تؤثر تأثيرًا جوهريًا على ربحية الاستراتيجية عند تطبيقها في التداول الفعلي. والطريقة الوحيدة لضبط هذه الجوانب بدقة، بما يسمح بتنفيذها ضمن نظام تنفيذ آلي خاص بنا، هي إجراء الاختبار التاريخي للاستراتيجية بأنفسنا، بل إن الوضع المثالي هو أن يكون برنامج الاختبار التاريخي قابلاً للتحويل مباشرة إلى برنامج تنفيذ آلي للصفقات وبضغطة زر واحدة يمكن ضمان التنفيذ الدقيق لكافة التفاصيل.
وبمجرد أن نقوم بتنفيذ جميع تفاصيل الاستراتيجية على هيئة برنامج اختبار تاريخي، يصبح بإمكاننا إخضاعها للفحص الدقيق وتحليلها لاكتشاف أوجه القصور المحتملة سواء في عملية الاختبار التاريخي نفسها أو في الاستراتيجية ذاتها. فعلى سبيل المثال، عند إجراء اختبار تاريخي لاستراتيجية محفظة أسهم تتضمن مراكز شراء (Long) ومراكز بيع على المكشوف (Short)، هل أخذنا في الحسبان حقيقة أن بعض الأسهم يصعب اقتراضها، ولا يمكن بيعها على المكشوف بسهولة أو بأحجام معقولة؟ وعند اختبار استراتيجية تداول أزواج بين أسواق مختلفة (Intermarket Pair Trading) في العقود الآجلة، هل تأكدنا من أن أسعار الإغلاق في السوقين المعنيين تُسجَّل في الوقت نفسه؟ إن قائمة المشكلات المحتملة طويلة ومملة، غير أنني سأقوم بتسليط الضوء على عدد من أكثر هذه المشكلات شيوعًا في القسم المعنون «المزالق الشائعة في الاختبار التاريخي».
«الاختبار التاريخي (Backtesting)». في كثير من الأحيان، يمتلك كل سوق وكل استراتيجية مجموعة خاصة جدًا من المزالق المحتملة، وغالبًا ما تؤدي هذه المزالق إلى تضخيم أداء الاستراتيجية في الاختبار التاريخي مقارنة بأدائها الفعلي في الماضي، وهو أمر بالغ الخطورة. وحتى إذا تأكدنا من أننا فهمنا ونفّذنا كل تفصيلة من تفاصيل الاستراتيجية داخل برنامج الاختبار التاريخي، ولم نتمكن من اكتشاف أي خلل أو مأزق واضح، فإن إجراء الاختبار التاريخي لاستراتيجية منشورة يمكن أن يحقق فوائد مهمة. إذ يتيح لنا اختبار استراتيجية منشورة إجراء اختبار حقيقي خارج العينة (Out-of-Sample) خلال الفترة اللاحقة لنشرها، فإذا اتضح أن أداءها خارج العينة ضعيف، فذلك يدعو للقلق من أن الاستراتيجية ربما نجحت فقط على مجموعة بيانات محدودة. وهذه نقطة أكثر أهمية مما يدركه كثيرون، حيث يدّعي العديد من المؤلفين في مقالاتهم أن نتائج الاختبار التاريخي قد «تم التحقق منها باستخدام بيانات خارج العينة»، لكن في الواقع، إذا كانت نتائج الاختبار خارج العينة ضعيفة، فقد يكون المؤلفون قد قاموا بتغيير بعض المعلمات أو تعديل النموذج بشكل جوهري حتى تبدو النتائج جيدة مع بيانات «خارج العينة»، ولذلك فإن الاختبار الحقيقي خارج العينة لا يمكن أن يبدأ فعليًا إلا بعد نشر الاستراتيجية وتثبيتها دون تعديل. وأخيرًا، من خلال قيامنا باختبار الاستراتيجية بأنفسنا، نستطيع في كثير من الأحيان اكتشاف طرق لتحسينها وصقلها لجعلها أكثر ربحية أو أقل مخاطرة، إذ يجب أن تتبع عملية الاختبار التاريخي في التداول «المنهج العلمي»، حيث نبدأ بفرضية حول فرصة موازنة أو مراجحة (Arbitrage) محتملة، قد تكون مبنية على حدسنا الخاص بالسوق أو على بحث منشور، ثم نقوم بتأكيد هذه الفرضية أو نفيها من خلال الاختبار التاريخي.
إذا لم تكن نتائج الاختبار التاريخي (Backtest) جيدة بما فيه الكفاية، فيمكننا تعديل فرضيتنا وإعادة العملية من جديد. وكما تم التأكيد سابقًا، فإن أداء الاستراتيجية غالبًا ما يكون حساسًا للغاية للتفاصيل، وقد تؤدي تغييرات صغيرة في هذه التفاصيل إلى تحسينات كبيرة وملموسة في النتائج؛ فقد تقتصر هذه التعديلات على أمور بسيطة مثل تغيير فترة الرجوع (Look-back Period) المستخدمة في حساب المتوسط المتحرك، أو تنفيذ الأوامر عند الافتتاح بدلًا من الإغلاق. ويتيح لنا الاختبار التاريخي للاستراتيجية فرصة تجربة كل تفصيلة من تفاصيلها بصورة منهجية ومنظمة.
المزالق الشائعة في الاختبار التاريخي (Common Pitfalls of Backtesting)
على الرغم من أن كل استراتيجية تقريبًا تتيح فرصًا فريدة لارتكاب أخطاء أثناء الاختبار التاريخي، فإن هناك عددًا من الأنماط الشائعة لهذه الأخطاء؛ بعضها ينطبق بشكل عام على جميع الأسواق، في حين يرتبط بعضها الآخر بأسواق أو أدوات مالية محددة بعينها.
تجزئة الأسهم وتعديلات الأرباح النقدية
عندما تقوم شركة ما بإجراء تجزئة أسهم بنسبة N إلى 1، فإن سعر السهم يتم تقسيمه على N. ومع ذلك، إذا كنت تمتلك عددًا من أسهم تلك الشركة، فإن عدد الأسهم التي تملكها سيزداد بما يتناسب مع نسبة التجزئة، بحيث تظل القيمة الإجمالية للاستثمار دون تغيير من حيث المبدأ. وتُعد هذه النقطة بالغة الأهمية في سياق الاختبار التاريخي واستراتيجيات التداول، لأن تجاهل تأثير تجزئة الأسهم أو عدم تعديل البيانات السعرية والأرباح النقدية بشكل صحيح قد يؤدي إلى نتائج مضللة، ويعطي انطباعًا غير دقيق عن الأداء الحقيقي للاستراتيجية عند تحليل البيانات التاريخية.
إذا كنت تملك أسهمًا قبل التجزئة، فستمتلك عددًا مضاعفًا N من الأسهم بعد التجزئة، وبالتالي لا يحدث أي تغيير في القيمة السوقية الإجمالية للاستثمار. ومع ذلك، في سياق الاختبار التاريخي (Backtesting)، نركز عادةً على سلسلة أسعار الأسهم لتحديد إشارات التداول، وليس على القيمة السوقية لحساب افتراضي. لذلك، ما لم نقم بتعديل الأسعار تاريخيًا قبل تاريخ نفاذ التجزئة (Ex-Date) عن طريق قسمتها على N، فسنلاحظ انخفاضًا مفاجئًا في السعر في يوم النفاذ، وقد يؤدي ذلك إلى إطلاق إشارات تداول غير دقيقة أو خاطئة عند استخدام الاستراتيجية المبنية على الأسعار فقط.
قد تؤدي هذه الحالات أيضًا إلى إشارات تداول خاطئة، سواء في التداول الفعلي أو الاختبار التاريخي (Backtesting)، لذلك يجب دائمًا قسمة الأسعار التاريخية على N قبل فتح السوق في يوم نفاذ التجزئة أثناء التداول الفعلي أيضًا، وإذا كانت التجزئة عكسية بنسبة 1 إلى N، فسنضطر إلى ضرب الأسعار التاريخية قبل تاريخ النفاذ بـ N. وبالمثل، عندما تقوم شركة ما بدفع أرباح نقدية أو أسهم بقيمة $d للسهم، سينخفض سعر السهم بمقدار $d (في غياب أي تحركات أخرى في السوق)، وذلك لأن مالك السهم قبل تاريخ نفاذ الأرباح سيحصل على توزيعات نقدية أو أسهم في حسابه، وبالتالي لا يجب أن يتغير إجمالي القيمة السوقية للاستثمار. إذا لم يتم تعديل أسعار الأسهم التاريخية قبل تاريخ النفاذ، فقد يؤدي الانخفاض المفاجئ في السعر إلى إطلاق إشارات تداول خاطئة، ويجب تطبيق هذا التعديل على أي بيانات تاريخية تُستخدم في نموذج التداول الآلي قبل فتح السوق في يوم النفاذ. وينطبق هذا أيضًا على صناديق المؤشرات المتداولة (ETFs)، بينما يحتاج سعر الخيارات إلى معالجة أكثر تعقيدًا. يمكن العثور على معلومات تاريخية حول التجزئة والأرباح في العديد من المواقع، ويُعد موقع earnings.com مصدرًا ممتازًا مجانيًا، فهو يسجل الأرقام التاريخية ويعرض أيضًا المبالغ المعلنة للتجزئة والأرباح وتواريخ نفاذها المستقبلية، مما يساعد على التنبؤ بهذه الأحداث في برامج التداول الآلي. وإذا كنت تبحث عن بيانات تاريخية للأسهم معدلة بالفعل لتجزئة الأسهم والأرباح وسهلة التحميل، يمكنك تجربة موقع csidata.com.
تحيز البقاء في قواعد بيانات الأسهم (Survivorship Bias)
إذا كنت تجري اختبارًا تاريخيًا لنموذج تداول الأسهم، فستتعرض لمشكلة تحيز البقاء إذا لم تتضمن بياناتك التاريخية الأسهم التي تم شطبها من السوق. تخيّل حالة متطرفة: إذا طلب منك نموذجك شراء السهم الذي انخفض أكثر من غيره في اليوم السابق والاحتفاظ به إلى الأبد، فستجد أن هذه الاستراتيجية ستؤدي في الواقع إلى أداء ضعيف للغاية، لأن الشركة التي سجل سهمها أكبر انخفاض في اليوم السابق قد تتعرض للإفلاس لاحقًا، مما يؤدي إلى خسارة كاملة بنسبة 100٪ لمركزك في هذا السهم. لكن إذا كانت قاعدة البيانات التاريخية تتضمن فقط الأسهم التي استمرت في السوق، فإن هذا النموذج سيبدو وكأنه يحقق أرباحًا عالية بشكل مضلل، وهو مثال واضح على تحيز البقاء الذي يمكن أن يضلل نتائج الاختبار التاريخي ويعطي انطباعًا خاطئًا عن فعالية الاستراتيجية.
إذا كانت البيانات التاريخية لا تتضمن الأسهم التي تم شطبها، أي تحتوي فقط على الأسهم التي نجت حتى اليوم، فقد يبدو نتيجة الاختبار التاريخي ممتازة بشكل مضلل. يحدث هذا لأنك في الاختبار التاريخي ستشتري الأسهم التي تعرضت لانخفاض حاد لكنها نجت لاحقًا، بينما في حالة التداول الفعلي لا يمكنك التنبؤ ببقاء هذه الأسهم على قيد الحياة.
ويُعد تحيز البقاء أكثر خطورة على استراتيجيات الأسهم طويلة المدى المرتجعة نحو المتوسط (mean-reverting long-only) مقارنة باستراتيجيات الأسهم طويلة وقصيرة المدى (long-short) أو قصيرة فقط (short-only)، لأن هذا التحيز يميل إلى تضخيم أداء استراتيجية الشراء فقط التي تعتمد على شراء الأسهم المنخفضة وبيعها عند ارتفاعها، بينما يقلل من أداء استراتيجية البيع فقط التي تبيع الأسهم مرتفعة ثم تعيد شرائها عند انخفاضها؛ فالأسهم التي انخفضت إلى الصفر كانت ستؤدي أداءً ممتازًا في استراتيجية البيع فقط، لكنها لن تكون موجودة في بيانات الاختبار التاريخي المتأثرة بتحيز البقاء. أما في استراتيجيات العودة إلى المتوسط طويلة وقصيرة المدى، فإن هذين التأثيرين يكونان في اتجاهين متعاكسين، لكن عادةً ما يغلب تضخيم عائد الاستراتيجية الطويلة على تقليل عائد المحفظة القصيرة، لذلك يبقى الخطر موجودًا لكنه أقل حدة. ويكون تحيز البقاء أقل خطورة على نماذج الزخم (Momentum)، حيث أن صفقات الزخم القصيرة المربحة غالبًا ما تُستبعد من البيانات المتأثرة بالتحيز، وبالتالي ينخفض العائد في الاختبار التاريخي. يمكن الحصول على بيانات تاريخية خالية من تحيز البقاء بأسعار معقولة من موقع csidata.com الذي يوفر قائمة بالأسهم التي تم شطبها، وتشمل مصادر أخرى vendors مثل kibot.com و tickdata.com و crsp.com، أو يمكن جمع البيانات بنفسك يوميًا لجميع الأسهم في مؤشر معين لضمان خلوها من هذا التحيز.
إذا لم تتوفر بيانات خالية من تحيز البقاء (Survivorship Bias-Free Data)، فيمكنك الاقتصار على اختبار الاستراتيجيات تاريخيًا باستخدام أحدث ثلاث سنوات من البيانات تقريبًا لتقليل الضرر الناتج عن هذا التحيز.
الأسعار الأساسية مقابل الأسعار الموحدة للأسهم (Primary versus Consolidated Stock Prices)
يتم تداول العديد من الأسهم الأمريكية على عدة بورصات، وشبكات اتصال إلكترونية (ECNs)، وأسواق مظلمة (Dark Pools)، مثل بورصة نيويورك (NYSE)، وNYSE Arca، وNasdaq، وIsland، وBATS، وInstinet، وLiquidnet، وBloomberg Tradebook، وSigma X التابعة لـ Goldman Sachs، وCrossFinder التابعة لـ Credit Suisse، وغيرها. عند الاطلاع على سعر إغلاق السهم اليومي التاريخي، فإنه يعكس آخر سعر تنفيذ في أي من هذه الأسواق خلال ساعات التداول العادية، وبالمثل، فإن سعر الفتح اليومي التاريخي يعكس أول سعر تنفيذ في أي من هذه الأسواق. ومع ذلك، عند تقديم أمر سوق عند الإغلاق (Market-On-Close, MOC) أو أمر سوق عند الفتح (Market-On-Open, MOO)، فإن هذا الأمر يتم توجيهه دائمًا إلى البورصة الرئيسية فقط. على سبيل المثال، يتم توجيه أمر MOC على سهم IBM إلى بورصة نيويورك (NYSE)، وأمر MOC على صندوق SPY أيضًا إلى البورصة الأساسية الخاصة به.
يتم توجيه أمر MOC على سهم SPY إلى بورصة NYSE Arca، وأمر MOC على سهم مايكروسوفت (MSFT) إلى بورصة Nasdaq. لذلك، إذا كانت استراتيجيتك تعتمد على أوامر السوق عند الفتح أو الإغلاق (Market-On-Open / Market-On-Close)، فستحتاج إلى الأسعار التاريخية من البورصة الرئيسية لإجراء اختبار تاريخي دقيق لنموذجك. أما إذا استخدمت الأسعار التاريخية الموحدة المعتادة (Consolidated Prices) في الاختبار التاريخي، فقد تكون النتائج غير واقعية تمامًا. على وجه الخصوص، عند اختبار نموذج يعتمد على العودة إلى المتوسط (Mean-Reverting Model) باستخدام الأسعار الموحدة، من المحتمل أن يظهر الأداء في الاختبار التاريخي بشكل مضخم، لأن عددًا قليلًا من الأسهم قد تُنفذ خارج البورصة الرئيسية بأسعار تختلف كثيرًا عن سعر المزاد في البورصة الأساسية، والأسعار في يوم التداول التالي غالبًا ما تعود إلى المتوسط مقارنة بهذا السعر الاستثنائي الصعب الوصول إليه. (أسعار الإغلاق والافتتاح في البورصات الأمريكية الرئيسية يتم تحديدها دائمًا عن طريق المزاد، بينما لا يكون التداول عند الإغلاق في بورصة ثانوية نتيجة مزاد).
ينطبق نفس الاعتبار عند استخدام الأسعار العليا أو الدنيا (High/Low Prices) في استراتيجيتك، حيث أن البيانات التاريخية عادةً تسجل القيم الموحدة العليا أو الدنيا، وليس تلك الخاصة بالبورصة الرئيسية، وغالبًا ما تكون أرقامًا مبالغًا فيها أو غير ممثلة بسبب تنفيذ صفقات صغيرة في البورصات الثانوية، مما يؤدي أيضًا إلى تضخيم أداء الاختبار التاريخي إذا استخدمت هذه الأسعار.
أما بالنسبة لمصادر الحصول على الأسعار التاريخية من البورصات الرئيسية، فمستخدمي بلومبرغ (Bloomberg) يمكنهم الوصول إليها ضمن اشتراكهم، وبالطبع، تمامًا كما في حالة تخزين واستخدام بيانات خالية من تحيز البقاء، يمكن أيضًا الاشتراك في تغذيات مباشرة من البورصات الرئيسية للحصول على البيانات الحقيقية والأسعار الدقيقة لأغراض الاختبار التاريخي أو التداول الآلي.
يمكننا تخزين هذه الأسعار في قواعد بياناتنا الخاصة في الوقت الفعلي (real-time)، لتكون لاحقًا مصدرنا لبيانات البورصة الرئيسية. الاشتراك في مثل هذه التغذيات المباشرة يمكن أن يكون مكلفًا جدًا، لكن إذا كان لدى الوسيط المالي اشتراكات مماثلة ويعيد توزيع هذه البيانات لعملائه الذين يتواجدون داخل مركز البيانات الخاص به، فقد تكون التكلفة أقل بكثير. ومع ذلك، معظم الوسطاء التجزئة لا يعيدون توزيع التغذيات المباشرة من البورصات، بينما الوسطاء المؤسسيون مثل Lime Brokerage غالبًا ما يقومون بذلك. وإذا لم يكن لدينا إمكانية الوصول إلى مثل هذه البيانات، فلا يبقى أمامنا سوى تبني درجة من الشك الواعي تجاه نتائج الاختبار التاريخي.
اعتماد أسعار العملات على منصة التداول
بالمقارنة مع سوق الأسهم، فإن أسواق العملات أكثر تجزؤًا (fragmented)، ولا توجد قاعدة تقول إن التداول المنفذ في منصة معينة يجب أن يكون بسعر أفضل عرض أو طلب عبر جميع المنصات المختلفة. لذلك، فإن الاختبار التاريخي في أسواق العملات قد يُظهر أداءً مختلفًا بشكل ملحوظ اعتمادًا على المنصة المستخدمة لتحديد الأسعار، مما يجعل اختيار مصدر البيانات الدقيق أمرًا بالغ الأهمية لضمان نتائج اختبار تاريخي موثوقة.
تكتسب الدقة في اختيار طريقة تعديل الأسعار التاريخية (Back-Adjustment) أهمية أكبر عندما تتضمن استراتيجيتك تداول فروق الأسعار بين عقود مختلفة (Spreads). فإذا كانت استراتيجيتك تولد إشارات تداول بناءً على فرق السعر بين عقدين، فيجب اختيار الطريقة المناسبة لتعديل الأسعار التاريخية، وإلا فقد يكون فرق السعر غير صحيح مما يؤدي إلى إشارات تداول خاطئة. وعندما تتعلق الاستراتيجية بـ الفروقات الزمنية للعقود (Calendar Spreads)، أي الفروقات بين عقود بنفس الأصل ولكن بتواريخ انتهاء مختلفة، يصبح هذا التعديل أكثر أهمية، نظرًا لأن قيمة الفرق الزمنية عادة ما تكون صغيرة مقارنة بسعر أحد طرفي الفارق، وأي خطأ نتيجة التحويل بين العقود (Rollover) قد يشكل نسبة كبيرة من الفارق، مما يرفع احتمال توليد إشارة خاطئة سواء في الاختبار التاريخي أو التداول الفعلي. أما إذا كانت إشارات التداول تعتمد على نسبة الأسعار بين عقدين، فيجب حينها استخدام طريقة تعديل العوائد التاريخية (Return Back-Adjustment).
كما يظهر، عند اختيار مزود بيانات الأسعار التاريخية للعقود المستقبلية (Futures)، يجب أن نفهم تمامًا كيفية تعاملهم مع مسألة تعديل الأسعار التاريخية، لأن ذلك يؤثر بشكل مباشر على نتائج الاختبار التاريخي. على سبيل المثال، يستخدم موقع csidata.com تعديل الأسعار التاريخية فقط، مع خيار إضافة ثابت لتجنب تحول الأسعار إلى قيم سالبة، بينما يتيح tickdata.com خيار اختيار تعديل الأسعار أو تعديل العوائد، لكنه لا يوفر إمكانية إضافة ثابت لمنع الأسعار السالبة.
أسعار الإغلاق للعقود المستقبلية مقابل أسعار التسوية (Futures Close versus Settlement Prices)
عادةً ما يكون سعر الإغلاق اليومي لعقد مستقبلي الذي يقدمه مزود البيانات هو سعر التسوية (Settlement Price)، وليس آخر سعر تداول للعقد (Last Traded Price).
خلال ذلك اليوم. يجب ملاحظة أن العقد المستقبلي لديه سعر تسوية (Settlement Price) يومي محدد من البورصة، حتى لو لم يتم تداول العقد على الإطلاق في ذلك اليوم، وإذا تم التداول، فإن سعر التسوية يختلف عادة عن آخر سعر تداول فعلي (Last Traded Price). معظم مزودي البيانات التاريخية يقدمون سعر التسوية كسعر إغلاق يومي، لكن بعض المزودين، خاصة الذين يقدمون بيانات دقيقة Tick-by-Tick، قد يقدمون السعر الفعلي للصفقة فقط، وبالتالي يكون سعر الإغلاق هو آخر سعر تداول إذا كان هناك صفقة في ذلك اليوم.
فأي سعر يجب استخدامه لاختبار استراتيجياتنا تاريخيًا؟ في معظم الحالات، يجب استخدام سعر التسوية، لأنه الأقرب إلى السعر الذي ستتم عليه الصفقة لو تم التداول فعليًا قرب الإغلاق، بينما قد يكون آخر سعر مسجل للصفقة قد حدث قبل عدة ساعات ولا يعكس سعر الصفقة الفعلي عند الإغلاق. وهذا الأمر يصبح مهمًا بشكل خاص عند بناء استراتيجية تداول أزواج العقود المستقبلية (Pairs-Trading Strategy)، فإذا استخدمت أسعار التسوية لتحديد فروق العقود المستقبلية، فإنك ستضمن استخدام سعرين متزامنين زمنياً، بشرط أن يكون للعقدين نفس الأصل ولديهما نفس وقت الإغلاق. أما إذا استخدمت آخر أسعار تداول لتحديد الفرق، فقد تكون الأسعار مأخوذة في توقيتات مختلفة تمامًا، مما يؤدي إلى نتائج خاطئة، وقد ينتج عن ذلك أن برنامج الاختبار التاريخي يولد صفقات غير دقيقة بسبب فرق أسعار مبالغ فيه بشكل غير واقعي، وقد تبدو هذه الصفقات مربحة بشكل مبالغ فيه في الاختبار التاريخي عندما يعود الفرق إلى قيمته الصحيحة والصغيرة لاحقًا.
قد يؤدي ذلك إلى نتائج اختبار تاريخي مبالغ فيها، خاصة عند التداول على العقود المستقبلية، وربما يحدث هذا عند حدوث صفقات شبه متزامنة. كما هو الحال دائمًا، فإن النتائج المبالغ فيها في الاختبار التاريخي تشكل خطرًا كبيرًا.
إذا كانت لديك استراتيجية تداول فروق الأسعار داخل اليوم (Intraday Spread Strategy) أو تستخدم أسعار العقود المستقبلية داخل اليوم لاختبار استراتيجية فروق الأسعار، فستحتاج إما إلى بيانات تاريخية تحتوي على أسعار الطلب والعرض (Bid and Ask) لكل من العقدين، أو إلى بيانات داخل اليوم عن الفارق نفسه عندما يكون منشأه من البورصة. ويعود ذلك إلى أن العديد من العقود المستقبلية ليست ذات سيولة عالية، فإذا استخدمنا آخر سعر لكل فترة زمنية لتشكيل الفارق، فقد نجد أن آخر أسعار العقد A والعقد B في نفس الفترة تشير في الواقع إلى صفقات حدثت في أوقات مختلفة تمامًا، وبالتالي فإن الفارق الناتج من الأسعار غير المتزامنة لا يمكن شراؤه أو بيعه فعليًا بهذه الأسعار. وعليه، فإن اختبار استراتيجيات فروق الأسعار داخل اليوم باستخدام آخر سعر لكل طرف من الفارق بدلاً من استخدام آخر سعر للفارق نفسه سيؤدي مرة أخرى إلى تضخيم العوائد في الاختبار التاريخي. من بين المزودين الذين يوفرون بيانات تاريخية داخل اليوم لفروق العقود الزمنية (Calendar Spreads) بما في ذلك أسعار العرض والطلب وأسعار التداول، يوجد موقع cqgdatafactory.com.
هناك تفصيل عام مهم عند اختبار استراتيجيات فروق الأسعار بين الأسواق المختلفة (Intermarket Spreads) لا يجب تجاهله. إذا كانت العقود تُتداول في بورصات مختلفة، فمن المحتمل أن يكون لها أوقات إغلاق مختلفة، وبالتالي سيكون من الخطأ تكوين فارق بين الأسواق باستخدام أسعار الإغلاق. وينطبق هذا أيضًا إذا حاولنا تكوين فارق بين عقد مستقبلي وصندوق مؤشرات متداولة (ETF). والحل الواضح لذلك هو الحصول على بيانات داخل اليوم (Intraday) بأسعار العرض والطلب لضمان التزامن، أو بدلاً من ذلك، التداول بصندوق ETF يحوي العقد المستقبلي بدلًا من العقد نفسه. على سبيل المثال، بدلاً من تداول عقد الذهب المستقبلي GC (يتم تحديد سعر التسوية عند الساعة 1:30 م بتوقيت ET) مقابل صندوق الذهب-المستخرجين GDX، يمكن تداول صندوق الذهب GLD مقابل GDX، لأن كلاهما يُتداول على بورصة Arca، وبالتالي يتم تحديد أسعار الإغلاق في الوقت نفسه عند الساعة 4:00 م ET.
الأهمية الإحصائية للاختبار التاريخي: اختبار الفرضيات
في أي اختبار تاريخي، نواجه مشكلة حجم العينة المحدود (Finite Sample Size)؛ فكل المقاييس الإحصائية التي نحسبها، مثل متوسط العوائد أو أقصى خسائر متتالية (Maximum Drawdowns)، قد تكون عرضة للعشوائية. بمعنى آخر، قد يكون نجاح الاستراتيجية في عينة بيانات صغيرة مجرد حظ مؤقت. وقد طوّر الإحصائيون منهجية عامة تسمى اختبار الفرضيات (Hypothesis Testing) لمعالجة هذه المشكلة.
ويتمثل الإطار العام لاختبار الفرضيات عند تطبيقه على الاختبار التاريخي في عدة خطوات، وهي:
- حساب الإحصائية الاختبارية من الاختبار التاريخي: بناءً على اختبار تاريخي على عينة محدودة من البيانات، نقوم بحساب مقياس إحصائي معين يُعرف باسم الإحصائية الاختبارية (Test Statistic). على سبيل المثال، لنفترض أن الإحصائية الاختبارية هي متوسط العائد اليومي لاستراتيجية التداول خلال تلك الفترة.
- افتراض الفرضية الصفرية (Null Hypothesis): نفترض أن متوسط العائد اليومي الحقيقي المستند إلى مجموعة بيانات لا نهائية هو صفر. ويُعرف هذا الافتراض باسم الفرضية الصفرية.
- تحديد توزيع الاحتمالات: نفترض أن توزيع احتمالات العوائد اليومية معروف، ويكون بمتوسط صفر استنادًا إلى الفرضية الصفرية. وسيتم لاحقًا توضيح كيفية تحديد هذا التوزيع الاحتمالي.
- حساب القيمة الاحتمالية (p-value): اعتمادًا على توزيع الفرضية الصفرية، نقوم بحساب احتمالية p التي تعكس فرصة أن تكون متوسطات العوائد اليومية على الأقل بنفس حجم القيمة المرصودة في الاختبار التاريخي (أو، لأي إحصائية اختبار عامة، بنفس الدرجة من التطرف، مع السماح لاحتمالية أن تكون الإحصائية سالبة). تُسمى هذه الاحتمالية القيمة الاحتمالية أو p-value، وإذا كانت صغيرة جدًا (على سبيل المثال أصغر من... ).
إذا كانت القيمة الاحتمالية p-value أصغر من 0.01، فهذا يعني أنه يمكننا رفض الفرضية الصفرية (Null Hypothesis)، والاستنتاج بأن متوسط العائد اليومي في الاختبار التاريخي ذو دلالة إحصائية.
أكثر خطوة تتطلب التفكير في هذا الإجراء هي الخطوة 3، وهي تحديد توزيع الاحتمالات تحت الفرضية الصفرية. يمكننا افتراض أن العوائد اليومية تتبع توزيعًا احتماليًا معياريًا (Parametric) مثل التوزيع الغاوسي (Gaussian) بمتوسط صفر وانحراف معياري يُحسب من العينة. إذا اتبعنا هذا الافتراض، فمن الواضح أنه إذا كان للاختبار التاريخي نسبة شارب (Sharpe Ratio) عالية، سيكون من السهل جدًا رفض الفرضية الصفرية، لأن الإحصائية الاختبارية للتوزيع الغاوسي هي ببساطة المتوسط مقسومًا على الانحراف المعياري مضروبًا في الجذر التربيعي لعدد النقاط (√N) (Berntson, 2002). وتم إدراج القيم الاحتمالية p-values لمختلف القيم الحرجة في الجدول 1.1، على سبيل المثال، إذا كان نسبة شارب اليومية مضروبة في جذر عدد أيام الاختبار التاريخي ≥ 2.326، فإن القيمة الاحتمالية ستكون ≤ 0.01. تعكس هذه الطريقة في اختبار الفرضيات اعتقادنا بأن الاستراتيجيات ذات نسبة شارب العالية أكثر دلالة إحصائية.
طريقة أخرى لتقدير توزيع الاحتمالات للفرضية الصفرية هي استخدام طرق مونت كارلو (Monte Carlo) لتوليد بيانات سعرية تاريخية محاكاة، ثم تمرير هذه البيانات إلى استراتيجيتنا لتحديد التوزيع الاحتمالي التجريبي للأرباح. ويستند هذا النهج إلى اعتقادنا بأن ربحية استراتيجية التداول تعكس بعض الأنماط الدقيقة أو العلاقات الكامنة في البيانات.
إذا كانت القيمة الناتجة عن نسبة شارب اليومية مضروبة في جذر عدد أيام الاختبار التاريخي ≥ 2.326، فإن القيمة الاحتمالية p-value ستكون ≤ 0.01، ما يعني أن نتائج الاختبار التاريخي ذات دلالة إحصائية عالية. تتماشى هذه الطريقة في اختبار الفرضيات مع اعتقادنا بأن الاستراتيجيات ذات نسبة شارب العالية أكثر دلالة إحصائية.
طريقة أخرى لتقدير توزيع الاحتمالات للفرضية الصفرية هي استخدام طرق مونت كارلو (Monte Carlo) لتوليد بيانات سعرية تاريخية محاكاة، ثم تمرير هذه البيانات إلى استراتيجيتنا لتحديد التوزيع الاحتمالي التجريبي للأرباح. وتعتمد هذه الطريقة على افتراض أن ربحية استراتيجية التداول تعكس أنماطًا دقيقة أو ترابطات خفية في سلسلة الأسعار، وليس فقط نتيجة الخصائص الأساسية (First Moments) لتوزيع الأسعار. فإذا أنشأنا العديد من سلاسل الأسعار المحاكاة بنفس الخصائص الأساسية وطول البيانات الفعلية، وقمنا بتشغيل الاستراتيجية عليها جميعًا، يمكننا حساب النسبة p من هذه السلاسل التي يكون فيها متوسط العوائد أكبر من أو مساوي للعائد في الاختبار التاريخي، مما يوفر تقديرًا أكثر دقة للدلالة الإحصائية للأداء التاريخي للاستراتيجية.
متى لا يجب اختبار استراتيجية تاريخيًا
على الرغم من أننا ركزنا سابقًا على أهمية اختبار كل استراتيجية قبل تداولها، هناك حالات يُفضل فيها عدم إجراء اختبار تاريخي، لأن بعض الاستراتيجيات المنشورة قد تكون معيبة بوضوح ويكون اختبارها مجرد إضاعة للوقت. وبناءً على معرفتك بالمشاكل الشائعة في الاختبارات التاريخية، يمكنك تقييم ما إذا كنت تريد اختبار استراتيجية معينة دون الحاجة لمعرفة كل تفاصيلها.
مثال 1: استراتيجية تحقق عائد سنوي 30٪ في الاختبار التاريخي، مع نسبة شارب 0.3 ومدة أقصى خسارة متتالية تصل إلى سنتين. قلة من المتداولين (وليس المستثمرين فقط) يمكنهم تحمل استراتيجية تبقى خاسرة لفترة عامين. فوجود نسبة شارب منخفضة مع مدة خسارة طويلة يشير إلى أن الاستراتيجية غير متسقة. أما العائد المرتفع فيمكن أن يكون مجرد صدفة، ومن غير المرجح أن يتكرر عند التداول الفعلي. بمعنى آخر، قد يكون العائد المرتفع نتيجة تحيز التلويح بالبيانات (Data-Snooping Bias)، ومدة الخسارة الطويلة تجعل من الصعب أن تجتاز الاستراتيجية اختبار التحقق المتقاطع (Cross-Validation). لذلك، لا تهدر وقتك في اختبار استراتيجيات ذات عائد مرتفع ولكن نسبة شارب منخفضة، وكذلك لا تختبر الاستراتيجيات التي تتجاوز مدة الخسارة فيها الحد الذي يمكنك أنت أو المستثمرون تحمله.
مثال 2: استراتيجية تداول عقود النفط المستقبلية طويلة المدى فقط (Long-Only Crude Oil Futures) حققت عائد 20٪ في عام 2007 مع نسبة شارب 1.5. عند مراجعة سريعة للعائد الكلي من امتلاك عقود النفط لشهر التسليم الأمامي في 2007، نجد أنه كان 47٪ مع نسبة شارب 1.7. وبناءً على ذلك، الاستراتيجية المقترحة ليست بأي حال أفضل من استراتيجية الشراء والاحتفاظ البسيطة (Buy-and-Hold)، مما يجعل اختبارها التاريخي أو تنفيذها فعليًا غير مجدي من الناحية العملية.
الدرس المستفاد هنا هو أنه يجب دائمًا اختيار المؤشر المرجعي المناسب (Benchmark) لقياس أداء الاستراتيجية. بالنسبة للاستراتيجيات طويلة المدى فقط (Long-Only)، فإن المؤشر المناسب هو عائد استراتيجية الشراء والاحتفاظ (Buy-and-Hold)، وقياس الأداء غالبًا يتم باستخدام معدل المعلومات (Information Ratio) بدلاً من نسبة شارب (Sharpe Ratio).
مثال 3: استراتيجية بسيطة "اشترِ منخفضًا وبيع مرتفعًا" تختار أرخص 10 أسهم في بداية العام وتحتفظ بها لمدة عام، وقد حققت عائد اختبار تاريخي 388٪ في عام 2001. السؤال الأول الذي يجب أن يطرأ عند قراءة هذه الاستراتيجية هو: هل تم الاختبار باستخدام قاعدة بيانات خالية من تحيز البقاء (Survivorship-Bias-Free Stock Database)، أي هل تشمل قاعدة البيانات الأسهم التي تم شطبها لاحقًا؟ إذا كانت قاعدة البيانات تشمل فقط الأسهم التي بقيت حتى اليوم، فمن المحتمل أن تختار الاستراتيجية المخاطرين المحظوظين الذين كانوا رخيصين في بداية 2001، وبالنظر إلى النتائج بعد الحدث يمكن للاختبار أن يحقق 388٪. أما إذا كانت قاعدة البيانات تشمل الأسهم المشطوبة، فإن الاستراتيجية ستختار هذه الأسهم، مما يؤدي إلى خسارة تقارب 100٪، وهو العائد الفعلي لو تم التداول في 2001، بينما يمثل 388٪ عائدًا مبالغًا فيه لا يمكن تحقيقه. إذا لم يذكر المؤلف صراحة أن البيانات تشمل الأسهم المشطوبة، يمكننا افتراض أن الاختبار التاريخي يعاني من تحيز البقاء وأن العائد مبالغ فيه.
مثال 4: نموذج تداول باستخدام الشبكات العصبية (Neural Net) مع حوالي 100 عقدة يولد في الاختبار التاريخي نسبة شارب 6، وهو مؤشر على أن الأداء قد يكون مبالغًا فيه أو ناجم عن التكيف المفرط (Overfitting) إذا لم يتم التعامل مع المشكلات الإحصائية والاختبارات الدقيقة.
تثير لديّ دائمًا إنذارات حمراء عند سماع مصطلح نموذج التداول بالشبكات العصبية (Neural Net Trading Model)، خصوصًا إذا كان يحتوي على 100 عقدة. ما يجب معرفته عن العقد في الشبكة العصبية هو أن عدد المعلمات (Parameters) التي يتم ضبطها باستخدام بيانات التدريب داخل العينة يرتبط بعدد العقد، ومع وجود 100 معلمة على الأقل، يمكننا بسهولة تكييف النموذج لأي سلسلة زمنية نريدها والحصول على نسبة شارب رائعة. ومع ذلك، من الواضح أن هذا النموذج سيكون له قوة تنبؤية منخفضة أو معدومة مستقبلًا بسبب تحيز التلويح بالبيانات (Data-Snooping Bias).
مثال 5: استراتيجية تداول عالية التردد (High-Frequency) لعقود E-mini لمؤشر S&P 500 تُظهر عائد سنوي متوسط في الاختبار التاريخي 200٪ ونسبة شارب 6، مع متوسط فترة احتفاظ بالصفقة 50 ثانية. السؤال هنا: هل يمكن حقًا اختبار استراتيجية تداول عالية التردد تاريخيًا؟ يعتمد أداء استراتيجية التداول عالية التردد بشكل كبير على أنواع الأوامر المستخدمة وطريقة التنفيذ عمومًا، كما يعتمد بشكل حاسم على بنية السوق الدقيقة (Market Microstructure). حتى لو توافرت لدينا بيانات تاريخية كاملة لسجل الأوامر (Order Book)، فإن الربح من استراتيجية تداول عالية التردد لا يزال عرضة للاختلافات الدقيقة في التنفيذ والتأخير الزمني والفروق السعرية الصغيرة، مما يجعل نتائج الاختبار التاريخي غالبًا غير موثوقة عند محاولة تطبيقها في التداول الفعلي.
هل تحتاج مساعدة؟