VectorBT: الإطار الأسرع للاختبار العكسي باستخدام بايثون

نظرة عامة على VectorBT - مكتبة مبتكرة للتحليل الكمي تغير نهج الاختبار العكسي بفضل قوة NumPy و Numba.

VectorBT Overview

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

وهنا يأتي دور VectorBT — وهي مكتبة للتحليل الكمي تطبق نهجاً مختلفاً جذرياً للاختبار العكسي.

ما هو VectorBT؟

What is VectorBT

يعمل VectorBT حصرياً مع كائنات pandas و NumPy ، ويستخدم مترجم Numba لتسريع الحسابات. يتيح ذلك تحليل أي بيانات بسرعة فائقة وقابلية للتوسع، واختبار عشرات الآلاف من الاستراتيجيات في ثوانٍ معدودة.

بدلاً من معالجة كل شمعة أو تكة بالدور (كما تفعل أدوات الاختبار العكسي التقليدية)، يمثل VectorBT البيانات المعقدة كمصفوفات منظمة. يوفر توجيه العمليات بالاشتراك مع Numba (الذي يحل مشكلة الاعتماد على المسار من خلال السماح بترجمة حلقات بايثون إلى لغة الآلة) أداءً بمستوى لغة C.

الميزات الرئيسية

VectorBT Key Features

  • الاختبار العكسي الموجه (Vectorized): اختبار الاستراتيجيات في أسطر قليلة من الكود. لا توجد حلقات بايثون بطيئة.
  • تحسين واسع النطاق: قم بتحسين استراتيجية التداول الخاصة بك في وقت واحد عبر العديد من المعلمات والأطر الزمنية والأصول بضربة واحدة.
  • التصور التفاعلي: يتيح التكامل المدمج مع Plotly و Jupyter Widgets إنشاء مخططات ولوحات معلومات معقدة للغاية (مثل Tableau) مباشرة في Jupyter Notebook دون تأخير ملحوظ في العرض.
  • لا فقدان للسيطرة: على عكس المنصات السحابية مثل TradingView، تظل بياناتك وخوارزمياتك معك فقط. في الوقت نفسه، يكون أداء الحساب قابلاً للمقارنة بالمنصات الجاهزة، بل وغالباً ما يتجاوزها.
  • تحضير البيانات: مجموعة أدوات ممتازة لتحليل السلاسل الزمنية وهندسة الميزات (Feature Engineering) لنماذج تعلم الآلة.

كيف يعمل؟ (مثال)

How it works - Strategy Pipeline

لنقل إننا نريد اختبار استراتيجية تقاطع المتوسط المتحرك المزدوج (DMAC) الكلاسيكية على البيتكوين (BTC).

في إطار عمل OOP الكلاسيكي، سيتعين عليك إنشاء فئة استراتيجية، ووصف منطق next() الذي يتم تفعيله عند كل شمعة، والتكرار عبر جميع الشموع. في VectorBT، كل شيء أكثر أناقة وأسرع بكثير:

import vectorbt as vbt

# 1. تحميل بيانات السعر (باستخدام محمل Yahoo Finance المدمج)
btc_price = vbt.YFData.download('BTC-USD', start='2019-01-01 UTC', end='2020-01-01 UTC').get('Close')

# 2. حساب المتوسطات المتحركة السريعة والبطيئة.
# يمكنك تمرير مصفوفة (ARRAY) من الفترات دفعة واحدة لاختبار جميع المجموعات!
fast_ma = vbt.MA.run(btc_price, [10, 20], short_name='fast')
slow_ma = vbt.MA.run(btc_price, [30, 30], short_name='slow')

# 3. إنشاء إشارات الدخول والخروج (تقاطع الخطوط)
entries = fast_ma.ma_crossed_above(slow_ma)
exits = fast_ma.ma_crossed_below(slow_ma)

# 4. تجميع المحفظة بناءً على الإشارات المستلمة ورؤية النتيجة
pf = vbt.Portfolio.from_signals(btc_price, entries, exits)

print(pf.total_return())

في هذا المثال، قمنا في لحظة واحدة باختبار عدة بدائل لاستراتيجية DMAC: المجموعات (10، 30) و(20، 30). ستكون النتيجة (في شكل عمود) هي العائد لكل خيار من المعلمات:

fast_window  slow_window
10           30             0.848840
20           30             0.543411
Name: total_return, dtype: float64

هل تريد إضافة Ethereum و Solana وعشر عملات أخرى؟ فقط ادمج أسعارها في DataFrame واحد. هل تريد اختبار نطاقات زمنية مختلفة؟ استخدم وظيفة range_split. يسمح التمثيل الموجه بمضاعفة الأبعاد بشكل لا محدود تقريباً (طالما توفرت ذاكرة وصول عشوائي كافية).

VectorBT PRO

VectorBT PRO Elite Tools

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

لماذا تستخدم VectorBT؟

إذا كنت تحتاج فقط إلى "تشغيل" استراتيجية واحدة على أداة واحدة، فقد تكون الأطر القياسية كافية. ولكن إذا كان هدفك هو التحليل الاستكشافي، وإيجاد الأنماط الإحصائية (alpha)، واختبار الفرضيات على آلاف الأدوات في وقت واحد، فإن VectorBT سيكون اكتشافاً حقيقياً لك.

إنها أداة لعلماء البيانات تم نقلها إلى التداول. إنها تمنح ميزة تنافسية في المعلومات من خلال القدرة على التحقق من الأفكار بشكل أسرع بعشرات ومئات المرات مما يفعله المشاركون الآخرون في السوق باستخدام بايثون.