لا تكفي لقطة مجمدة لبيانات السوق لجعل الاختبار التاريخي جديراً بالثقة. فقد تعيد إنتاج النتيجة نفسها، بينما تخفي أن المورّد غيّر المدخلات التي أفضت إليها.
احتفظ باللقطة. ثم احتفظ بسجلّ للتغييرات يخبرك بما تغيّر، ومتى تغيّر، وما إذا كانت الاستراتيجية قد تأثرت به. وتبرز أهمية ذلك خصوصاً حين يعتمد بحثك على صفقات مصححة، أو أساسيات منقحة، أو بيانات تمويل أُعيد بناؤها، أو سجل تاريخي حدّثه المورّد بصمت.
كيف يمكن لاختبار تاريخي قابل لإعادة الإنتاج أن يضللك؟
افترض أنك نزّلت بيانات شموع ساعية لخمس سنوات يوم الاثنين وشغّلت استراتيجية. وبحلول الجمعة، يكون المورّد قد أصلح صفقة خاطئة، أو عدّل إجراءً للشركة، أو ملأ فجوة. يظل ملفك المحفوظ يعطي نتيجة يوم الاثنين نفسها تماماً. هذا قابل لإعادة الإنتاج. لكن إذا أعدت التشغيل باستخدام السجل التاريخي الحالي لدى المورّد، فقد تحصل على نتيجة مختلفة من دون أي سجل يوضح السبب.
لا تقتصر المشكلة على التصحيحات الكبيرة. فقد تؤدي قمة واحدة معدّلة إلى تفعيل أمر إيقاف الخسارة، أو ينقل إغلاق منقح مؤشراً عبر حدّه. وفي مجموعة واسعة من الأصول، قد يغيّر تعديل سجل أحد الرموز ترتيبه، فيُخرج أصلاً آخر من المحفظة. وقد يتغير Sharpe النهائي حتى عندما يظل كود الاستراتيجية وإعداداتها متطابقين.
يخبرك تجزئة الملف أن ملفين مختلفان. لكنها لا تخبرك إن كان تعديل للأسعار بسبب تجزئة قد غيّر أسعار 40 عاماً، أو إن كان المورّد قد صحّح ثلاث صفقات، أو إن كان المحلّل قد حوّل حقلاً فارغاً إلى صفر.
ما الذي ينبغي أن يتضمنه سجلّ تغييرات بيانات السوق؟
سجّل التغييرات على أصغر مستوى مفيد، مع سياق كافٍ لإعادة تشغيل البحث المتأثر. وفي تدفق بيانات الشموع، يعني ذلك عادةً الأداة، والفاصل الزمني، ووقت الحدث، والقيمتين السابقة والجديدة، والمصدر، ووقت رصدك للتحديث. واحتفظ بالحمولة الأصلية إذا وفّرها المورّد.
| ما يُسجَّل | سبب الاحتفاظ به | مثال |
|---|---|---|
| إصدار المصدر أو وقت الاسترجاع | يحدد حالة المورّد المستخدمة | لقطة جُلبت في 2026-11-02 08:15 UTC |
| الحقل المتغير والقيمتان القديمة والجديدة | يوضح ما تغيّر فعلياً | ETHUSDT 1h القمة: 3,412.10 → 3,418.60 |
| تصنيف التغيير | يميّز الإصلاحات عن التحويلات | تصحيح صفقة متأخر، تعديل تجزئة، ملء بيانات ناقصة |
| إصدار خط المعالجة والمخطط | يميّز تعديلات المصدر عن معالجتك أنت | Normalizer v7، مخطط الشموع المعدّلة v3 |
للمجموعات الكبيرة، خزّن لقطات غير قابلة للتغيير وبياناً موجزاً يتضمن مجاميع التحقق الخاصة بها، وإصدارات المصدر، وأوقات الاسترجاع. وأضف فروقاً على مستوى الصفوف للأقسام التي تغيّرت. يمنحك ذلك حلاً عملياً وسطاً: تظل إعادة التشغيل الكاملة ممكنة من دون كتابة كل صف لم يتغير في جدول تدقيق ثانٍ.
كيف أقيس أهمية التصحيح؟
لا تتوقف عند إحصاء الصفوف المتغيرة. أعد تشغيل الاستراتيجية المتأثرة بالبيانات القديمة والجديدة باستخدام الكود والمعلمات والرسوم وافتراضات التنفيذ نفسها. وقارن القرارات والمسار المؤدي إلى النتيجة.
- حدّد الأدوات وأوقات الأحداث المتأثرة من الفروق.
- اعرف أيّ الخصائص أو الإشارات أو الأوامر أو أوزان المحفظة تستخدم تلك السجلات.
- أعد تشغيل أصغر نافذة صالحة، بما في ذلك فترة الاسترجاع وحالة المراكز المفتوحة.
- قارن الأوامر والتنفيذات والانكشاف ودوران المحفظة والتراجع والأداء النهائي.
على سبيل المثال، قد يغيّر تصحيح من المورّد قمةً على إطار 1-minute بمقدار $0.02 ويمسّ مليون صف من دون أن يؤثر في استراتيجية زخم يومية. وقد يكون لشمعة واحدة مصححة عند مستوى إيقاف الخسارة أثر أكبر. قِس أثر التغيير في القرار؛ فعدد السجلات المتغيرة مقياس بديل ضعيف لذلك الأثر.
أبقِ سؤالين منفصلين: «هل أستطيع إعادة إنتاج النتيجة من البيانات التي حفظتها؟» و«هل كان إصدار البيانات هذا متاحاً للاستراتيجية حينها؟». يساعد سجلّ التغييرات في الإجابة عن كليهما، لكن السؤال الثاني يتطلب أيضاً سجلات توافر البيانات في وقتها.
ما تكلفة ذلك، ومتى يستحق العناء؟
تضيف متابعة التغييرات تكاليف تخزين وجهداً في استيعاب البيانات وقرارات تشغيلية. وقد لا يتيح المورّدون إصدارات ثابتة، كما تُعاد أحياناً إعادة بناء بعض التدفقات التاريخية دورياً من دون إشعار واضح بالتصحيحات. لا يمكنك تسجيل تغيير لم ترصده قط.
ابدأ بالبيانات التي قد تغيّر مراجعاتك البحثية: الشموع المستخدمة في منطق إيقاف الخسارة، والأسهم المعدلة وفق إجراءات الشركات، والأساسيات المتاحة في وقتها، وسلاسل التمويل أو الفائدة المفتوحة التي يعاد بناؤها. قد يكفي بيان يومي مع مجاميع تحقق للأقسام في مجموعات البيانات الواسعة والمستقرة. وأضف فروقاً على مستوى الحقول عندما تكثر التحديثات أو تكون قرارات التداول حساسة لسجلات بعينها.
ومحقّ النقاد في أن الأرشيف الكامل والدائم لكل استجابة من المورّد قد يصبح مكلفاً، ومع ذلك قد يعجز عن حفظ ما كان المصدر يعرفه في حينه. والحل هو حصر التدقيق في البيانات والقرارات المهمة وتوثيق الثغرات. تتيح لك اللقطة إعادة تشغيل تجربة. ويتيح لك سجلّ التغييرات تفسير سبب تغيّر نتيجة التجربة.
→ جميع المقالات


