الفوركس backtesting - الثعبان
بت - فليكسيبل باكتستينغ فور بيثون ما هو بت حزب العمال هو إطار باكتستينغ مرنة لبيثون تستخدم لاختبار استراتيجيات التداول الكمي. الاختبار الخلفي هو عملية اختبار استراتيجية على مجموعة بيانات معينة. هذا الإطار يسمح لك بسهولة إنشاء الاستراتيجيات التي تخلط وتطابق ألغوس مختلفة. ويهدف إلى تعزيز إنشاء كتل قابلة للاختبار بسهولة، وإعادة استخدامها ومرنة للمنطق استراتيجية لتسهيل التطور السريع لاستراتيجيات تجارية معقدة. الهدف: لإنقاذ كوانتس من إعادة اختراع العجلة والسماح لهم التركيز على الجزء المهم من العمل - تطوير الاستراتيجية. يتم ترميز بت في بيثون وينضم إلى نظام بيئي نابض بالحياة وغنية لتحليل البيانات. وتوجد مكتبات عديدة للتعلم الآلي ومعالجة الإشارات والإحصاءات، ويمكن الاستفادة منها لتجنب إعادة اختراع العجلة - وهو أمر يحدث كثيرا عند استخدام لغات أخرى لا تملك فيها 8217t نفس الثروة من المشاريع ذات المصادر المفتوحة العالية الجودة. بنيت بت فوق فوق فن - مكتبة وظيفة مالية لبيثون. التحقق من ذلك وهناك مثال سريع هنا هو طعم سريع من حزب العمال: استراتيجية بسيطة باكتست Let8217s إنشاء استراتيجية بسيطة. سنقوم بإنشاء استراتيجية إعادة التوازن الشهرية، طويلة فقط حيث نضع أوزان متساوية على كل الأصول في عالمنا من الأصول. أولا، سوف نقوم بتحميل بعض البيانات. افتراضيا، يقوم bt. get (الاسم المستعار ل ffn. get) بتنزيل الإغلاق المعدل من ياهو فينانس. سنقوم بتحميل بعض البيانات ابتداء من 1 يناير 2018 لأغراض هذا العرض. مرة واحدة لدينا بياناتنا، ونحن سوف تخلق استراتيجيتنا. كائن الاستراتيجية يحتوي على منطق الاستراتيجية من خلال الجمع بين مختلف ألغوس. وأخيرا، سوف نقوم بإنشاء باكتست. وهو مزيج منطقي من استراتيجية مع مجموعة البيانات. وبمجرد الانتهاء من ذلك، يمكننا تشغيل باكتست وتحليل النتائج. الآن يمكننا تحليل نتائج باكتست لدينا. كائن النتيجة هو التفاف رقيقة حول ffn. GroupStats أن يضيف بعض الأساليب المساعد. الثابتة المدفوعة باكتستينغ مع بيثون - الجزء الأول قضينا ويف الشهرين الماضيين على كوانتستارت باكتستينغ استراتيجيات التداول المختلفة باستخدام بيثون والباندا. طبيعة المتجهات من الباندا يضمن أن عمليات معينة على مجموعات البيانات الكبيرة هي سريعة للغاية. ومع ذلك فإن أشكال باكتستر فيكتوريسد التي درسنا حتى الآن تعاني من بعض السلبيات في الطريقة التي يتم محاكاة تنفيذ التجارة. في هذه السلسلة من المقالات سنقوم بمناقشة نهج أكثر واقعية لمحاكاة استراتيجية تاريخية من خلال بناء بيئة باكتستينغ يحركها الحدث باستخدام بايثون. برنامج يحركها الحدث قبل أن نخوض في تطوير مثل هذا باكتستر نحن بحاجة إلى فهم مفهوم الأنظمة يحركها الحدث. توفر ألعاب الفيديو حالة استخدام طبيعية للبرامج التي يحركها الحدث وتوفر مثالا مباشرا لاستكشافها. لعبة فيديو لديها مكونات متعددة التي تتفاعل مع بعضها البعض في الإعداد في الوقت الحقيقي في فراميراتي عالية. يتم التعامل مع هذا من خلال تشغيل مجموعة كاملة من العمليات الحسابية داخل حلقة لانهائية المعروفة باسم حلقة الحدث أو حلقة حلقة. في كل علامة من لعبة حلقة دعا وظيفة لتلقي أحدث الحدث. والتي سوف تكون ولدت من قبل بعض الإجراءات السابقة المقابلة داخل اللعبة. اعتمادا على طبيعة الحدث، والتي يمكن أن تشمل مفتاح الصحافة أو النقر على الماوس، يتم اتخاذ بعض الإجراءات اللاحقة، والتي إما إنهاء حلقة أو توليد بعض الأحداث الإضافية. وستستمر العملية بعد ذلك. وفيما يلي بعض الأمثلة على رمز شبه: التعليمات البرمجية هو التحقق باستمرار للأحداث الجديدة ثم تنفيذ الإجراءات بناء على هذه الأحداث. على وجه الخصوص فإنه يسمح الوهم من التعامل مع الاستجابة في الوقت الحقيقي لأنه يتم باستمرار يتم عقد رمز والتحقق من الأحداث. كما سيصبح واضحا هذا هو بالضبط ما نحتاج إليه من أجل تنفيذ محاكاة التداول عالية التردد. لماذا الأنظمة التي تحركها الأحداث باكتستر توفر الأنظمة التي يحركها الحدث العديد من المزايا على نهج متجه: إعادة استخدام الشفرة - يمكن استخدام باكتستر يحركها الحدث، حسب التصميم، لكل من الاختبار التاريخي والتداول المباشر مع الحد الأدنى من تبديل المكونات. هذا ليس صحيحا في باكتسترس ناقلات حيث يجب أن تكون جميع البيانات متاحة في وقت واحد لإجراء التحليل الإحصائي. التحيز لوكاهيد - مع باكتستر يحركها الحدث لا يوجد تحيز لوكهيد كما يتم التعامل مع استلام بيانات السوق كحدث يجب أن يتم التصرف عليها. وبالتالي فمن الممكن للتنقيط تغذية باكتستر يحركها الحدث مع بيانات السوق، وتكرار كيفية إدارة النظام ونظام محفظة سوف تتصرف. الواقعية - باكتسترس يحركها الحدث تسمح التخصيص كبيرة على كيفية تنفيذ أوامر وتكاليف المعاملات يتم تكبدها. فمن السهل التعامل مع السوق الأساسية وأوامر الحد، وكذلك السوق على فتح (مو) والسوق على مقربة (موك)، لأنه يمكن بناء معالج الصرف المخصصة. على الرغم من أن النظم التي يحركها الحدث تأتي مع العديد من الفوائد التي تعاني من اثنين من العيوب الرئيسية على أنظمة فيكتوريسد أبسط. أولا أنها أكثر تعقيدا بكثير لتنفيذ واختبار. هناك المزيد من الأجزاء المتحركة مما يؤدي إلى فرصة أكبر لإدخال الأخطاء. للتخفيف من هذه المنهجية المناسبة اختبار البرمجيات مثل تطوير يحركها الاختبار يمكن استخدامها. ثانيا أنها أبطأ لتنفيذ بالمقارنة مع نظام فيكتوريسد. العمليات فيكتوريسيد الأمثل غير قادر على استخدامها عند إجراء العمليات الحسابية الرياضية. وسوف نناقش سبل التغلب على هذه القيود في المواد اللاحقة. نظرة عامة على أحداث باكتستر نظرة عامة لتطبيق نهج يحركه الحدث لنظام باكتستينغ من الضروري تحديد مكوناتنا (أو الأشياء) التي من شأنها التعامل مع مهام محددة: الحدث - الحدث هو وحدة الطبقة الأساسية للنظام يحركها الحدث. أنه يحتوي على نوع (مثل ماركيت، سيغنال، أوردر أو فيل) يحدد كيف سيتم التعامل معها داخل حلقة الحدث. قائمة انتظار الحدث - قائمة انتظار الحدث هي كائن قائمة انتظار بيثون في الذاكرة يقوم بتخزين كافة عناصر فئة فرعية الحدث التي يتم إنشاؤها بواسطة بقية البرنامج. داتاهاندلر - داتاهاندلر هو فئة قاعدة مجردة (أبك) التي تقدم واجهة للتعامل مع كل من بيانات السوق التاريخية أو الحية. وهذا يوفر قدرا كبيرا من المرونة بحيث يمكن إعادة استخدام وحدات الاستراتيجية والحافظة بين كلا النهجين. و داتاهاندلر يولد ماركيتيفنت جديدة على كل ضربات القلب من النظام (انظر أدناه). الاستراتيجية - الاستراتيجية هي أيضا أبك التي تقدم واجهة لأخذ بيانات السوق وتوليد سيغناليفنتس المقابلة، والتي يتم استخدامها في نهاية المطاف من قبل كائن محفظة. A سيغناليفنت يحتوي على رمز شريط، اتجاه (طويل أو قصير) والطابع الزمني. محفظة - هذا هو أبك الذي يعالج إدارة النظام المرتبطة المواقف الحالية واللاحقة لاستراتيجية. كما تقوم بإدارة المخاطر عبر المحفظة، بما في ذلك التعرض للقطاع وتحديد حجم المراكز. في تنفيذ أكثر تعقيدا يمكن تفويض هذا إلى فئة إدارة المخاطر. يأخذ المحفظة سيغناليفنتس من قائمة الانتظار ويولد أوردريليفنتس التي تحصل على إضافة إلى قائمة الانتظار. إيكسكوتيونهاندلر - تنفيذ إيكسكوتيونهاندل يحاكي اتصال إلى الوساطة. مهمة المعالج هو اتخاذ أوردريفنتس من قائمة الانتظار وتنفيذها، إما عن طريق نهج محاكاة أو اتصال الفعلي إلى الوساطة الكبد. مرة واحدة يتم تنفيذ أوامر المعالج يخلق فيليفنتس، والتي تصف ما تم فعلا التعامل، بما في ذلك الرسوم والعمولة والانزلاق (إذا نمذجة). الحلقة - كل هذه المكونات ملفوفة في حلقة حدث تعالج بشكل صحيح جميع أنواع الأحداث، وتوجيهها إلى المكون المناسب. هذا هو تماما نموذج أساسي لمحرك التداول. وهناك مجال واسع للتوسع، لا سيما فيما يتعلق بكيفية استخدام الحافظة. وبالإضافة إلى ذلك، يمكن أيضا استنباط نماذج مختلفة لتكاليف المعاملات في تسلسل هرمي خاص بها. في هذه المرحلة فإنه يدخل تعقيدا لا لزوم لها في هذه السلسلة من المقالات لذلك نحن لن نناقش ذلك في الوقت الراهن. في الدروس في وقت لاحق ونحن على الأرجح توسيع النظام لتشمل الواقعية إضافية. في ما يلي مقتطف من شفرة بايثون يوضح كيفية عمل باكتستر في الممارسة العملية. هناك نوعان من الحلقات التي تحدث في التعليمات البرمجية. يتم استخدام حلقة الخارجي لإعطاء باكتستر ضربات القلب. أما بالنسبة للتداول المباشر فهذا هو التردد الذي يتم فيه استطلاع بيانات السوق الجديدة. لاستراتيجيات باكتستينغ هذا ليس ضروريا تماما منذ باكتستر يستخدم بيانات السوق المقدمة في شكل بالتنقيط تغذية (انظر line. updatebars () خط). الحلقة الداخلية في الواقع يعالج الأحداث من كائن قائمة انتظار الأحداث. يتم تفويض أحداث محددة إلى المكون المعني وبعد ذلك يتم إضافة أحداث جديدة إلى قائمة الانتظار. عندما قائمة الانتظار الأحداث فارغة، تستمر حلقة ضربات القلب: هذا هو المخطط الأساسي لكيفية تصميم باكتستر يحركها الحدث. في المقال القادم سنناقش التسلسل الهرمي لطبقة الحدث. تطبيق ل باكتست استراتيجيات التداول الأساسية لسوق العملات الأجنبية، استنادا إلى البيانات التاريخية. يتم كتابة هذه التعليمات البرمجية ل بيثون 2.7، وغير متوافق مع بيثون 3. المتطلبات الأساسية: تكينتر لتشغيل البرنامج، قم بتحميل كافة الملفات، والحفاظ على بنية الدليل نفسه، وتشغيل الملف inputhandling. py من مترجم بايثون. إعدادات المعلمة هي كما يلي: تاريخ البدء: التواريخ التي ربط البيانات التاريخية التي سيتم اختبارها الإيداع الأولي: مبلغ من المال (أوسد) في حساب الوساطة لتبدأ الإطار الزمني: عرض كل شريط من التاريخ البيانات التي سيتم اختبارها هذا هو الإطار الزمني المستخدم لكل استراتيجية الرمز: دعم اليورو مقابل الدولار الأميركي (أوسدجبي)، الجنيه الإسترليني مقابل الدولار الأمريكي (أوسدجبي)، الدولار الأمريكي مقابل الفرنك السويسري (أوسد / جبيوسد)، و أوسدشف مع البيانات المضمنة موقف التداول: تقييد باكتست ليشمل فقط المراكز الطويلة، المراكز القصيرة، كريتيريوم: الاستراتيجية الرئيسية المستخدمة لمحاكاة الصفقات التاريخية (المتوسط المتحرك كروسوفر و ستوشاستيك المدرجة) الرافعة المالية (الهامش): الحد الأقصى لنسبة الرافعة المالية المسموح باللوط المفضل الحجم: حجم ثابت ثابت يتم تداوله عند فتح المركز. إذا كان الهامش الحر يقيد حجم اللوت ليكون أقل، سيتم تعديله أثناء الاختبار. سبرياد مودلينغ تيشنيك: متوسط فروقات الأسعار - بافتراض أن الفروقات تبقى ثابتة على مدار البيانات التاريخية تقنية إدارة التجارة: تبسل - تعيين ربح ثابت ووقف الخسارة عند نقطة من سعر الدخول السعر سي - تعيين وقف الخسارة كنسبة مئوية من السعر و تحديث كل شريط مرة واحدة يتم إدخال هذه المعلمات، سيقوم البرنامج بتشغيل باكتست بدائية باستخدام شريط عن طريق تحليل شريط لتحديد ما رصيد الحساب النهائي سيكون. ويمكن توسيع هذا البرنامج بإضافة المزيد من استراتيجيات التداول. وينبغي أن تنفذ نفس الواجهة مثل المتوسط المتحرك واستراتيجيات ستوكاستيك. لا يمكنك تنفيذ هذا الإجراء في الوقت الحالي. لقد سجلت الدخول باستخدام علامة تبويب أو نافذة أخرى. أعد التحميل لتحديث الجلسة. لقد سجلت الخروج في علامة تبويب أو نافذة أخرى. أعد التحميل لتحديث الجلسة.
Comments
Post a Comment