Crypto Quant: التداول الآلي لـ BTC باستخدام Binance وBacktrader - الجزء الثاني من 2 PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

كمية التشفير: التداول الآلي لـ BTC باستخدام Binance و Backtrader - الجزء 2 من 3


Crypto Quant: التداول الآلي لـ BTC باستخدام Binance وBacktrader - الجزء الثاني من 2 PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

في هذا الجزء wالبريد تريد التثبيت متراجع و backtest بعض نماذج التداول مقابل بيانات Binance التي جمعناها في القسم السابق.

هناك العديد من المقالات ومقاطع الفيديو على Backtrader وإعداده. تسهل مكتبة Python الشهيرة هذه العمل الكمي للاختبار الخلفي لاستراتيجيات التداول باستخدام البيانات التاريخية ، والإجابة على السؤال الجوهري "ما مدى ربحية التجارة باستخدام استراتيجيات الشراء / البيع المحددة". هذا يبدو كأنه خيمياء رياضية في البداية ولكن على المرء أن يتذكر أن البيانات التاريخية ، حسناً ، تاريخية! من غير المرجح أن تنجح إستراتيجية التداول التي نجحت أمس ... لكننا سنعود إلى ذلك قريبًا.

تعليمات التثبيت Backtrader ('bt') هي هنا. ملاحظة: هناك مشكلات معروفة في إصدارات mapplotlib أعلى من 3.2.0 ، لذا احذر من ذلك.

دليل البدء السريع مفيد للقراءة ، ابحث عنه هنا.

RSI

ما سنحاوله مع Backtrader هنا هو اختبار backtest RSI (مؤشر القوة النسبية) إستراتيجية التداول على بيانات التشفير التاريخية (لـ BTC) من وقت سابق من العام.

يتم شرح مؤشر الزخم RSI هنا. يقيس ظروف ذروة البيع والشراء النسبية لأصل تداول معين ومعلمة "الفترة" وهي عدد النقاط (فترات التداول) إلى الوراء.

يتم تعيين معلمة الفترة افتراضيًا على 14 ، لذلك إذا كان الفاصل الزمني عبارة عن دقائق ، فستتضمن الصيغة 14 علامة فاصلة من البيانات. كما سنستكشف بعد ذلك ، يحتوي كل مؤشر فني على معلمات تمثل طريقتنا في "ضبط" ظروف السوق ؛ هذه المعلمات لها تأثير كبير على ربحية أي مؤشر معين داخل الإستراتيجية.

Backtest.py

إعداد الاختبار الخلفي لدينا: backtest.py ويشارك هنا. سيوفر هذا بنية اختبار backtest لإجراء اختبار backtest الخاص بنا ، والذي سيتم تحديده بعد ذلك. هذا هو إعداد "bt" قياسي إلى حد ما. دعنا نراجع بعضًا من هذا الكود ، لاحظ أن هناك الكثير من الأمثلة ودروس الفيديو عبر الإنترنت على بايثون باك تيست للتعلم منها.

هنا في تعريف الفصل ، نضع معلمات لاستراتيجية RSI الخاصة بنا.

  • مطنب: إذا أردنا إخراج بيانات السجل أثناء الاختبار الخلفي
  • فترة maperiod: متوسط ​​الفترة المتحركة ، عدد التكات التي يجب مراعاتها
  • كمية: عدد الأسهم المراد بيعها / شرائها
  • أعلى: الحد الأعلى لمؤشر ذروة الشراء
  • خفض: الحد الأدنى لمؤشر ذروة البيع
  • إيقاف الخسارة: إعداد وقف الخسارة للبيع

التالى() الوظيفة في فئة إستراتيجية Backtrader هي ما يحدث بعد كل "علامة" فترة زمنية للبيانات. هنا شراء () أو بيع () وفقًا للبيانات ، في هذه الحالة مؤشر RSI وحدودنا.

هنا نحدد ال runbacktest () الوظيفة التي سيتم استدعاؤها بواسطة الكود الخاص بنا. تمت إضافة وظيفة استراتيجية RSI المذكورة أعلاه إلى دماغ حتة.

جميع الأشياء الخلفية القياسية إلى حد ما. دعونا نرى كيفية تشغيل هذا مقابل بياناتنا.

اختبار رجعي لبياناتنا

تأكد من الحصول على البيانات (باستخدام خطوات القسم الأخير) من 1 كانون الثاني (يناير) إلى 2 كانون الثاني (يناير) 2021 ، سيكون هذا في ملف باسم: BTCUSDT-20210101–20210102–1m.csv مع 1440 سطرًا بتنسيق CSV ، واحد لكل دقيقة من اليوم.

هنا هو الكود والإخراج لقيمة يوم تداول يوم واحد دقيقة بدقيقة لـ Bitcoin (BTC):

إلقاء نظرة فاحصة:

المعلمات بسيطة ، نريد تحليل يوم واحد من التداول ، باستخدام مؤشر RSI بفترة 12 علامة ، لا يوجد وقف خسارة وحدود افتراضية 70,30،XNUMX لمحفزات ذروة الشراء والبيع المفرط.

نتائج 1 يناير مع استراتيجية مؤشر RSI القياسية

يلخص آخر سطر من الإخراج نتائج هذا الاختبار الخلفي:

/ BTCUSDT-20210101-20210102-1m.csv ، مؤشر القوة النسبية (Pd 12) (SL 0.0٪) (U70 L30) صافي 777.78 دولار (0.78٪) WL 18/7 SQN 1.76

فترة مؤشر القوة النسبية 12 ، 0 (لا) وقف الخسارة ، حد (U) لكل فرد 70 (L) حد أقصى 30، صافي الربح (في يوم واحد) 777.78 دولارًا أمريكيًا مع 18 صفقة رابحة و 7 صفقات خاسرة.

الرقم الأخير هو سقن، "رقم جودة النظام" (SQN) المصمم لمساعدة المتداولين في تحديد نقاط القوة ، والرغبة ، وجودة نظام التداول. يُنظر إلى إستراتيجية الجودة الجيدة على أنها استراتيجية فعالة وقابلة للتداول. *

تشير قيم SQN التالية إلى "الصفات" التالية:

  • 1.6-1.9 أقل من المتوسط
  • 2.0–2.4 المتوسط
  • 2.5 - 2.9 جيد
  • 3.0–5.0 ممتاز
  • 5.1–6.9 ممتاز
  • 7.0 - الكأس المقدسة

صيغة SQN:

SquareRoot (NumberTrades) * المتوسط ​​(TradesProfit) / StdDev (TradesProfit)

عادةً ما نصر على 30 صفقة على الأقل لهذا المقياس ليكون ذا دلالة إحصائية ولكننا سنتجاهل ذلك في الوقت الحالي لأننا نختبر الاختبار الخلفي في فترة زمنية قصيرة.

يمكنك تكبير أجزاء من الحبكة ، على سبيل المثال:

هنا نرى إشارة شراء (سهم أخضر لأعلى) حيث تنخفض قيمة مؤشر القوة النسبية إلى ما دون 30 ثم إشارة بيع مربحة كمؤشر ربح (دائرة زرقاء) حيث يصل مؤشر القوة النسبية فوق 70. انظر قيم مؤشر القوة النسبية في الزاوية اليمنى السفلية .

يعتبر الربح (في يوم واحد) البالغ 777.78 دولارًا أمريكيًا مع 18 صفقة رابحة و 7 صفقات خاسرة جيدًا جدًا ، خاصة ليوم تداول به حركة ضحلة نسبيًا (+ 1.42٪). تخيل ما يمكننا تحقيقه في يوم صعودي بحجم كبير!

معلمات النموذج

يمكنك تشغيل get_data لأيام مختلفة وتحليلها بشكل منفصل. لاحظ كيف تؤثر معلمات مؤشر القوة النسبية المختلفة على الربحية من يوم إلى آخر.

مثال على ذلك ، في نفس يوم تداول BTC ولكن مع فترة مؤشر القوة النسبية لـ 20 بدلاً من 12 ، خسارة ربح قدرها 2/3 و a صافي ربح - $ 21.51 (بما في ذلك رسوم التداول). هذا فرق كبير عن الاختبار الخلفي الأخير!

يمكنك أيضًا تجربة حدود مختلفة لمؤشر القوة النسبية (بخلاف المحدد الافتراضي 70/30) ومعلمات وقف الخسارة. وقف الخسارة هو أمر بيع تلقائي بمجرد أن ينخفض ​​السعر إلى ما دون مستوى معين بالنسبة لأمر الشراء المنفذ. كما يوحي الاسم ، يمكن أن يعمل هذا على "إيقاف الخسارة" بعد الدخول في مركز متذبذب.

وقف الخسارة

الطريقة التي قمنا بإعداد أوامر وقف الخسارة بها هنا هي كما يلي:

  • 0 : لا يوجد إعداد لإيقاف الخسارة ، انتظر حتى يقوم المؤشر بإطلاق أمر بيع
  • 0.00x : وقف الخسارة بنسبة٪ أقل من سعر الشراء ، 0.001 أقل من 0.1٪
  • -0.0س: سيتبع وقف الخسارة المتحرك التداول مع ارتفاع السعر ، 0.01 هو وقف الخسارة المتحرك 1٪ أقل من سعر الشراء

يعد وقف الخسارة هذا معلمة مهمة لكل صفقة ويمكن أن يكون له أثر كبير ، وليس مفاجئًا ، على الأداء. لمعرفة المزيد عن استراتيجيات وقف الخسارة انظر هنا.

هنا في backtest.py لدينا حيث قمنا بإعداد هذا باستخدام backtrader:

هذا هو نفس المسار الذي حللناه للتو ولكن مع وقف خسارة متدرج بنسبة 0.1٪

صافي ربح 383.67 دولارًا أمريكيًا مع 12 فوزًا و 12 خسارة ، أفضل بكثير من الخسارة التي تعرضنا لها سابقًا. يمكنك أن ترى في الرسم البياني أن وقف الخسارة المتحرك يحمي العديد من الصفقات من الانزلاق إلى الخسائر حيث ينتظر المؤشر إشارة البيع (ذروة الشراء).

ضمن مؤشر واحد ، في هذا الإعداد إذن ، لدينا العديد من البدائل الممكنة المختلفة:

  • تتراوح الفترة بين 10 و 30 فترات (20 متغيرًا)
  • إعداد وقف الخسارة (دعنا نتخيل 5 متغيرات عملية مختلفة)
  • عتبة ذروة الشراء / ذروة البيع (دعنا نتخيل 5 متغيرات في الوقت الحالي)

سيكون ذلك 20 × 5 × 5 أو 500 تنوع مختلف لكل يوم. إن فحص هذه الأشياء واحدة تلو الأخرى يدويًا سيكون أمرًا مثيرًا للسخرية ، ومع ذلك فنحن نريد أن نعرف أي المعايير كانت أكثر ربحية وأعلى جودة تداول وأيها لم تكن كذلك.

كيمياء الكم!

هذا يقودنا إلى خطوتنا التالية في استكشاف Crypto Quant. يمكننا تحديد معايير إستراتيجية التداول الأكثر ربحية والأعلى جودة لفترة معينة من التداول ، ثم نرى كيف تستمر هذه المعايير.

Source: https://medium.com/@gk_/crypto-quant-programmatic-trading-of-btc-using-binance-and-backtrader-part-2-of-3-d8af44c93e2b?source=rss——-8—————–cryptocurrency

الطابع الزمني:

اكثر من متوسط