Backtrader هو واحد من أشهر أُطُر العمل مفتوحة المصدر للاختبار الخلفي والتداول الحي باستخدام لغة بايثون. تتميز صيغته النظيفة، وثائقها الشاملة، ومجتمعه القوي، مما يجعله مثالياً للمبتدئين والمتداولين المتقدمين على حد سواء. في هذا الدليل، سنشرح كيفية إعداد أول استراتيجية تداول آلية باستخدام Backtrader.
هل أنت جديد على Backtrader؟ اطلع على نظرة عامة مفصلة على Backtrader للبدء.
الخطوة 1: تثبيت Backtrader
يمكنك تثبيت Backtrader باستخدام pip:
pip install backtrader
# اختياري: قد ترغب أيضًا في تثبيت matplotlib للرسم البياني و pandas لمعالجة البيانات:
pip install matplotlib pandas
الخطوة 2: تحضير البيانات التاريخية
يدعم Backtrader ملفات CSV، وPandas DataFrames، وحتى البيانات الحية من الوسطاء. الآن، دعنا نحمل ملف CSV:
import backtrader as bt
import datetime
data = bt.feeds.YahooFinanceCSVData(
dataname='your-data.csv',
fromdate=datetime.datetime(2020, 1, 1),
todate=datetime.datetime(2023, 12, 31),
reverse=False
)
تأكد من أن ملف CSV يحتوي على أعمدة مثل: التاريخ، الفتح، الأعلى، الأدنى، الإغلاق، الحجم، الإغلاق المعدل.
الخطوة 3: إنشاء استراتيجية
أنشئ فئة استراتيجية عن طريق الوراثة من bt.Strategy. دعنا ننفذ استراتيجية تقاطع المتوسط المتحرك البسيط:
class SmaCross(bt.Strategy):
params = dict(period=20)
def __init__(self):
sma = bt.ind.SMA(period=self.p.period)
self.crossover = bt.ind.CrossOver(self.data.close, sma)
def next(self):
if not self.position:
if self.crossover > 0:
self.buy()
elif self.crossover < 0:
self.close()
الخطوة 4: إعداد محرك الاختبار الخلفي
الآن أنشئ محرك Cerebro — هو العقل المركزي في Backtrader.
cerebro = bt.Cerebro()
cerebro.addstrategy(SmaCross)
cerebro.adddata(data)
cerebro.broker.setcash(10000)
cerebro.broker.setcommission(commission=0.001)
الخطوة 5: تشغيل الاستراتيجية
print('قيمة المحفظة عند البداية: %.2f' % cerebro.broker.getvalue())
cerebro.run()
print('قيمة المحفظة النهائية: %.2f' % cerebro.broker.getvalue())
cerebro.plot()
ستشاهد نقاط دخول وخروج استراتيجيتك مرسومة بصريًا، بالإضافة إلى أداء المحفظة.
الخطوة 6: التوسيع بالمزيد من الميزات
مع زيادة خبرتك، فكر في إضافة:
- منطق وقف الخسارة وجني الأرباح
- مؤشرات متعددة
- محللات مخصصة (شارب، الانخفاض الأقصى، إلخ)
- تحسين المعلمات
يدعم Backtrader كل هذه الميزات بشكل أصلي. يمكنك أيضًا ربطه بوسطاء مثل Interactive Brokers أو OANDA للتداول الحي.
نصائح نهائية
- اجعل استراتيجيتك منظمة: فصل المنطق، البيانات، والمعلمات
- استخدم افتراضات واقعية للانزلاق، العمولات، والتأخير
- تحقق من صحتها عبر فترات زمنية وظروف سوق مختلفة
تعلم المزيد
لتعلم المزيد عن Backtrader وقراءة مراجعتنا المتعمقة، زر هذا الدليل المفصل.
هل تبحث عن إطار تداول مفتوح المصدر مناسب؟ ابدأ بـ مقارناتنا الكاملة والمراجعات.
اختبر بجرأة. تداول بحكمة.