← All Collections
4 parts

High-Performance Backtest Engines

How to build a backtest engine that runs hundreds of times faster without changing a single PnL number — data layout, caching, adaptive resolution, and architecture, from first speedups to production internals.

  1. 01
    سلم سرعة محرك الاختبار الرجعي: 298 ضعفاً على وحدة معالجة كمبيوتر محمول، بنفس PnL حتى آخر صفقة
    Jul 1, 2026 #algotrading

    سلم سرعة محرك الاختبار الرجعي: 298 ضعفاً على وحدة معالجة كمبيوتر محمول، بنفس PnL حتى آخر صفقة

    خمسة تطبيقات لنفس مسح 80 توليفة من المعلمات، جميعها مُتحقق من أنها تُنتج نفس PnL تماماً: pandas rolling.apply يستغرق 69.9 ثانية، numpy 3.1، numba 2.0، numba المتوازي 0.23 — تسريع مقيس بمقدار 298 ضعفاً على Apple M2 Max بدون أي تغيير في العتاد، وما زال ~13 ضعفاً أسرع من خط أساس مُتّجه (vectorized) كفؤ. ماذا تشتري كل درجة، ولماذا ليست وحدة معالجة الرسوميات (GPU) هي القطعة المفقودة، وأين يكمن الاختناق الحقيقي في البحث الجماعي عن المعلمات.

  2. 02
    ذاكرة التخزين المؤقت المجمعة لـ Parquet: كيف تُسرّع الاختبارات الرجعية متعددة الأُطُر الزمنية بمئات المرات
    Mar 16, 2026 #algotrading

    ذاكرة التخزين المؤقت المجمعة لـ Parquet: كيف تُسرّع الاختبارات الرجعية متعددة الأُطُر الزمنية بمئات المرات

    كيفية حساب الأُطُر الزمنية والمؤشرات مسبقاً من شموع الدقيقة، وحفظها في parquet، واستخدامها لاختبار الاستراتيجيات بشكل مكثف دون حسابات متكررة.

  3. 03
    الحفر التكيفي: اختبار رجعي بدقة متغيرة من الدقائق إلى الصفقات الخام
    Mar 17, 2026 #algotrading

    الحفر التكيفي: اختبار رجعي بدقة متغيرة من الدقائق إلى الصفقات الخام

    كيف تُسرّع دقة البيانات التكيفية الاختبارات الرجعية وتوفر مساحة التخزين: الحفر من 1m إلى 1s و100ms والصفقات الخام فقط حيث تحرك السعر بشكل كبير أو ارتفع الحجم، وليس عبر السلسلة التاريخية بأكملها.

  4. 04
    ضريبة IPC: ضع محرك الاختبار الرجعي خلف مقبس وتخسر 13% — لا يكاد أي منها بسبب المقبس
    Jul 2, 2026 #algotrading

    ضريبة IPC: ضع محرك الاختبار الرجعي خلف مقبس وتخسر 13% — لا يكاد أي منها بسبب المقبس

    نقلنا نواة اختبار رجعي بلغة numba سطراً بسطر إلى Rust واستدعيناها عبر حدود العملية بأربع طرق مختلفة، مع بوابة تكافؤ تُؤكد تطابق PnL حتى آخر صفقة. شحن سلسلة الأسعار الكاملة (1.2 ميجابايت) عبر مقبس Unix يكلف ~2 مللي ثانية — حوالي 0.1% من المهمة. ترميز نفس الحمولة بصيغة JSON يكلف 1348x أكثر من البايتات الخام، والاستدعاءات الثرثارة لكل توليفة تُعيد شحن البيانات 80 مرة، ونمط استدعاء لكل شمعة سيدفع 2.1 ثانية من IPC خالص على مهمة مدتها 2.0 ثانية. الحد رخيص؛ الضريبة في كيفية عبوره.