بت - إجراء اختبار مرن لبيثون
ما هو بت؟ ¶
بت هو إطار باكتستينغ مرنة لبيثون تستخدم لاختبار استراتيجيات التداول الكمي. الاختبار الخلفي هو عملية اختبار استراتيجية على مجموعة بيانات معينة. هذا الإطار يسمح لك بسهولة إنشاء الاستراتيجيات التي تخلط وتطابق ألغوس مختلفة. ويهدف إلى تعزيز إنشاء كتل قابلة للاختبار بسهولة، وإعادة استخدامها ومرنة للمنطق استراتيجية لتسهيل التطور السريع لاستراتيجيات تجارية معقدة.
الهدف: لإنقاذ كوانتس من إعادة اختراع العجلة والسماح لهم التركيز على الجزء المهم من العمل - تطوير الاستراتيجية.
يتم ترميز بت في بيثون وينضم إلى نظام بيئي نابض بالحياة وغنية لتحليل البيانات. وتوجد مكتبات عديدة للتعلم الآلي ومعالجة الإشارات والإحصاءات، ويمكن الاستفادة منها لتجنب إعادة اختراع العجلة - وهو أمر يحدث في كثير من الأحيان عند استخدام لغات أخرى لا تملك نفس الثروة من الجودة العالية، المصدر.
بنيت بت فوق فوق فن - مكتبة وظيفة مالية لبيثون. تحقق من ذلك!
مثال سريع "
هنا هو طعم سريع من حزب العمال:
استراتيجية باكتستو بسيطة
دع & # 8217؛ s إنشاء استراتيجية بسيطة. سنقوم بإنشاء استراتيجية إعادة التوازن الشهرية، طويلة فقط حيث نضع أوزان متساوية على كل الأصول في عالمنا من الأصول.
أولا، سوف نقوم بتحميل بعض البيانات. بشكل افتراضي، bt. get (الاسم المستعار ffn. get) بتحميل الإغلاق المعدل من Yahoo! المالية. سنقوم بتحميل بعض البيانات ابتداء من 1 يناير 2018 لأغراض هذا العرض.
مرة واحدة لدينا بياناتنا، ونحن سوف تخلق استراتيجيتنا. كائن الاستراتيجية يحتوي على منطق الاستراتيجية من خلال الجمع بين مختلف ألغوس.
وأخيرا، سنقوم بإنشاء باكتست، وهو مزيج منطقي من استراتيجية مع مجموعة البيانات.
وبمجرد الانتهاء من ذلك، يمكننا تشغيل باكتست وتحليل النتائج.
الآن يمكننا تحليل نتائج باكتست لدينا. عنصر النتيجة عبارة عن ملف تعريف رقيقة حول ffn. GroupStats يضيف بعض أساليب المساعد.
تعديل إستراتيجية
الآن ماذا لو قمنا بإدارة هذه الإستراتيجية أسبوعيا واستخدمنا أيضا بعض أسلوب أسلوب التكافؤ في المخاطر باستخدام الأوزان التي تتناسب مع عكس كل تقلبات الأصول؟ حسنا، كل ما علينا القيام به هو سد العجز في بعض الطحالب المختلفة. انظر أدناه:
كما ترون، منطق الاستراتيجية من السهل أن نفهم والأهم من ذلك، من السهل تعديل. فكرة استخدام ألغوس بسيطة، قابلة للخلق لخلق استراتيجيات هي واحدة من اللبنات الأساسية من حزب العمال.
هيكل شجرة هيكل شجرة يسهل بناء وتكوين استراتيجيات التداول خوارزمية معقدة التي هي وحدات وإعادة استخدامها. وعلاوة على ذلك، كل عقدة شجرة لديها مؤشر الأسعار الخاصة بها التي يمكن استخدامها من قبل ألغوس لتحديد تخصيص عقدة & # 8217 s. خوارزمية مداخن ألغوس و ألغوستاكس هي سمة أساسية أخرى تسهل إنشاء منطقي وحدات وإعادة استخدامها للاستراتيجية. ونظرا لنمطها، فإن هذه الكتل المنطقية هي أيضا أسهل في الاختبار - وهي خطوة هامة في بناء حلول مالية قوية. الرسم البياني والإبلاغ بت أيضا يوفر العديد من وظائف الرسم البياني المفيدة التي تساعد على تصور النتائج باكتست. ونخطط أيضا لإضافة المزيد من المخططات والجداول وأشكال التقارير في المستقبل، مثل تقارير بدف التي يتم إنشاؤها تلقائيا. إحصاءات مفصلة وعلاوة على ذلك، بت يحسب مجموعة من الإحصائيات المتعلقة باكتست ويقدم وسيلة سريعة لمقارنة هذه الإحصاءات المختلفة عبر العديد من باكتيستس مختلفة عبر طرق العرض النتائج.
وستركز جهود التنمية في المستقبل على ما يلي:
السرعة نظرا للطبيعة المرنة للفرقة، يجب إجراء مقايضة بين قابلية الاستخدام والأداء. وستكون قابلية الاستخدام دائما الأولوية، ولكننا نرغب في تعزيز الأداء قدر الإمكان. ألغوس سنكون أيضا تطوير المزيد من الخوارزميات مع مرور الوقت. ونحن نشجع أيضا أي شخص للمساهمة ألغوس الخاصة بهم أيضا. التخطيط والإبلاغ هذا هو مجال آخر نود أن تحسين باستمرار على النحو الإبلاغ هو جانب مهم من هذه المهمة. كما يسهل التخطيط والإبلاغ إيجاد أخطاء في منطق الاستراتيجية.
جون V.
البيانات الكبيرة. الشركات الناشئة. تجارة.
البيانات الكبيرة. الشركات الناشئة. تجارة.
بناء نظام باكتستينغ في بايثون: أو كيف فقدت 3400 $ في ساعتين.
بناء نظام باكتست هو في الواقع من السهل جدا. من السهل المسمار يعني. على الرغم من أن هناك أطنان من المكتبات ممتازة هناك (وسوف نذهب من خلالهم في مرحلة ما)، وأنا دائما مثل القيام بذلك من تلقاء نفسها من أجل صقل ذلك.
من جميع أنظمة باكتستينغ رأيت، يمكننا أن نفترض أن هناك فئتين:
اليوم، سوف نتحدث عن لوبيرس.
و "فور-لوبيرس" هي نوعي المفضل من باكتسترس. هم تافهة لكتابة ومتعة فائقة للتوسع ولكن لديهم بعض التدفقات الحيوية و للأسف معظم باكتستيرس هناك "فور لوبيرس" (بس: أحتاج إلى العثور على اسم أفضل لهذا!).
كيف يعمل لوبيرس؟ باستخدام حلقة (كما كنت قد خمنت). إنه شيء من هذا القبيل:
حق بسيط جدا؟ هذه هي الطريقة التي يعمل نظام باكتستينغ واحد، الذي يدير استراتيجية الزخم:
فما هي المشكلة؟
من الصعب جدا على نطاق (أفقيا) يحتاج الكثير من العمل للحفاظ على application_strategy () العمل على باكتستينغ والإنتاج تحتاج إلى أن يكون كل شيء في نفس لغة البرمجة.
دعونا الغوص في هذه، واحدا تلو الآخر.
قابلية التوسع . كنت تجرب زوجين قبل أسابيع مع خوارزمية تسلق التل لتحسين واحد من استراتيجيات بلدي. لا يزال قيد التشغيل. بعد أسبوعين. وأنا بناء أنظمة اوبر قابلة للعيش. لماذا لا يزال قيد التشغيل؟ يمكنك استخدام المعالجات المتعددة، ديسكو، المنتج / المستهلك (باستخدام زيرومق) أو المواضيع فقط لتسريع هذا ولكن بعض المشاكل ليست "محرجة موازية" (نعم، هذا هو مصطلح الفعلي، وليس واحدا من بلدي الكلمات المكتوبة). كمية العمل على نطاق باكتستر مثل هذا (وخصوصا عندما تريد أن تفعل نفس التعلم الآلي على رأسه) ضخمة. يمكنك أن تفعل ذلك ولكن هذا هو الطريق الخطأ.
الإنتاج و باكتستينغ في مزامنة هذا. الأوقات لقد تم لعض من قبل هذا. أستطيع أن أذكر الحرف المفقودة حيث كنت "هم، لماذا دخلت هذه التجارة؟" أو بلدي القديم الوقت المفضل "لماذا توقفت عربة توقفت الآن؟".
وقت القصة: كان لدي فكرة من أجل تحسين استراتيجيتي، لتشغيل باكتستر لمعرفة ما سيحدث لو كنت يمكن أن تضع وقف زائدة بعد أن كانت التجارة مربحة من أجل ضمان الأرباح دائما. عملت باكتستينغ مثل سحر في زيادة بنسبة 13٪ من الأرباح والإنتاج فقدت كل تجارة واحدة. أنا أحسب بها بعد خسر بلدي ألغو 3400 $ في بضع ساعات (درس مكلفة للغاية).
الحفاظ على مزامنة application_strategy من الصعب جدا ويصبح شبه مستحيل عندما تريد أن تفعل ذلك بطريقة موزعة. وأنت لا تريد أن يكون لديك إصدارين من الاستراتيجية الخاصة بك التي هي "تقريبا" متطابقة. إلا إذا كان لديك $ 3400 لتجنيب.
استخدام لغات مختلفة أحب بيثون. و إرلانغ. و كلوجور. و J. و C. و R. و روبي (لا فعلا أكره روبي). أريد أن أكون قادرا على الاستفادة من قوة اللغات الأخرى في نظامي. أريد أن جرب الاستراتيجيات في R حيث توجد مكتبات جيدة جدا اختبار وهناك مجتمع ضخم وراء ذلك. أريد أن يكون إرلانغ لتوسيع نطاق التعليمات البرمجية و C إلى أزمة البيانات. إذا كنت تريد أن تكون ناجحة (ليس فقط في التداول)، تحتاج إلى أن تكون قادرة على استخدام جميع الموارد المتاحة دون التحيز. لقد تعلمت الكثير من الاشياء من شنقا مع المطورين R بشأن كيف يمكنك دلتا السندات التحوط وتصور لهم أو لماذا نسبة شارب يمكن أن يكون كذب. كل لغة لديها حشد مختلف وتريد العديد من الناس سكب الأفكار في النظام الخاص بك. إذا حاولت أن يكون application_strategy في لغة مختلفة ثم حظا سعيدا مع (2).
هل أنت مقتنع الآن؟ حسنا، أنا لا أحاول إقناع لكم كما ل لوبرز هو وسيلة رائعة لتشغيل الاختبارات الأولية الخاصة بك. هكذا بدأت ولكثير من الاستراتيجيات أنا لا ترسل لهم إلى خط الأنابيب. وهناك طريقة "أفضل" (حتى تتمكن من النوم ليلا) هو مولدات الحدث.
القادمة القادمة، وتقاسم ومناقشة بلدي أبسط (ولكن الأكثر نجاحا) باكتستر!
إذا كان لديك المزيد من ردود الفعل، بينغ لي في جونروميرو أو الاشتراك في النشرة الإخبارية.
قانوني خارجي. هذا هو برنامج تعليمي هندسي حول كيفية بناء منصة ألغوترادينغ للتجريب و فان. أي اقتراحات هنا ليست النصائح المالية. إذا كنت تفقد أي (أو كل) لك المال لأنك اتبعت أي نصائح التداول أو نشر هذا النظام في الإنتاج، لا يمكنك إلقاء اللوم على هذه بلوق عشوائي (و / أو لي). استمتع على مسؤوليتك الخاصة.
QuantStart.
الانضمام إلى كوانتكاديمي بوابة العضوية الخاصة التي تلبي احتياجات التجزئة المتزايد بسرعة المجتمع تاجر الكمي. سوف تجد مجموعة من ذوي الخبرة مثل التفكير من التجار الكميون على استعداد للرد على أسئلة التداول الكمي الأكثر إلحاحا.
تحقق من بلدي يبوك على التداول الكمي حيث أنا يعلمك كيفية بناء مربحة استراتيجيات التداول المنهجي مع أدوات بايثون، من الصفر.
نلقي نظرة على بلدي الكتاب الاليكتروني الجديد على استراتيجيات التداول المتقدمة باستخدام تحليل سلسلة زمنية، والتعلم الآلي والإحصاءات بايزي، مع بيثون و R.
من قبل مايكل هالز مور في 16 يناير، 2017.
الاختبار المسبق هو عملية البحث لتطبيق فكرة استراتيجية التداول على البيانات التاريخية من أجل التأكد من الأداء الماضي. على وجه الخصوص، لا يقدم باكتستر أي ضمان حول الأداء المستقبلي للاستراتيجية. غير أنها تشكل عنصرا أساسيا في عملية البحث في خطوط الأنابيب الاستراتيجية، مما يسمح باستخلاص الاستراتيجيات قبل وضعها في الإنتاج.
في هذه المقالة (وتلك التي تتبع ذلك) سيتم تحديد نظام باكتستينغ الأساسية وجوه المنحى المكتوبة في بايثون. هذا النظام المبكر سيكون في المقام الأول "المساعدات التعليمية"، وتستخدم لإثبات المكونات المختلفة لنظام باكتستينغ. ونحن نتقدم من خلال المواد، سيتم إضافة وظائف أكثر تطورا.
باكتستينغ نظرة عامة.
ومن الصعب للغاية عملية تصميم نظام قوي للتدقيق المسبق. محاكاة فعالة لجميع المكونات التي تؤثر على أداء نظام التداول حسابي هو تحديا. سوء دقة البيانات، عدم وضوح ترتيب النظام في وسيط، الكمون النظام وعدد لا يحصى من عوامل أخرى تتآمر لتغيير الأداء "الحقيقي" لاستراتيجية مقابل الأداء باكتستد.
عند تطوير نظام باكتستينغ فإنه من المغري أن تريد باستمرار "إعادة كتابته من الصفر" كما تم العثور على المزيد من العوامل لتكون حاسمة في تقييم الأداء. لم يتم الانتهاء من أي نظام باكتستينغ من أي وقت مضى، ويجب أن يتم الحكم في مرحلة أثناء التنمية أن العوامل الكافية التي تم التقاطها من قبل النظام.
مع هذه المخاوف في الاعتبار باكتستر المقدمة هنا سوف تكون بسيطة إلى حد ما. بينما نستكشف المزيد من القضايا (تحسين المحفظة، وإدارة المخاطر، ومعالجة تكاليف المعاملات) فإن باكتستر تصبح أكثر قوة.
أنواع أنظمة باكتستينغ.
هناك عموما نوعان من نظام باكتستينغ التي ستكون ذات فائدة. الأول هو القائم على البحوث، وتستخدم في المقام الأول في المراحل المبكرة، حيث سيتم اختبار العديد من الاستراتيجيات من أجل اختيار تلك لتقييم أكثر خطورة. وغالبا ما تكتب هذه النظم باكتستينغ البحوث في بيثون، R أو ماتلاب كما سرعة التنمية هو أكثر أهمية من سرعة التنفيذ في هذه المرحلة.
النوع الثاني من نظام باكتستينغ القائم على الحدث. وهذا هو، فإنه ينفذ عملية باكتستينغ في حلقة التنفيذ مماثلة (إن لم تكن متطابقة) إلى نظام تنفيذ التداول نفسه. وسوف نموذج واقعي بيانات السوق وعملية تنفيذ النظام من أجل توفير تقييم أكثر صرامة للاستراتيجية.
وغالبا ما تكون هذه النظم الأخيرة مكتوبة بلغة عالية الأداء مثل C ++ أو جافا، حيث سرعة التنفيذ أمر ضروري. وبالنسبة لاستراتيجيات التردد المنخفض (وإن كان لا يزال خلال اليوم)، فإن بيثون أكثر من كافية لاستخدامها في هذا السياق.
أوبجيكت-أورينتد، باكتستر، إلى داخل، بيثون.
وسيجري الآن مناقشة تصميم وتنفيذ بيئة مرجعية قائمة على البحوث تستند إلى البحوث. وقد تم اختيار التوجه الكائن كنموذج تصميم البرمجيات للأسباب التالية:
يمكن تحديد الواجهات البينية لكل مكون مقدما، في حين يمكن تعديل البينات الداخلية لكل مكون (أو استبداله) مع تقدم المشروع من خلال تحديد الواجهات المسبقة من الممكن إجراء اختبار فعال لكيفية تصرف كل مكون (عن طريق اختبار الوحدة) عند تمديد يمكن بناء مكونات جديدة أو بناء على مكونات أخرى، إما عن طريق الميراث أو التركيب.
في هذه المرحلة تم تصميم باكتستر لسهولة التنفيذ ودرجة معقولة من المرونة، على حساب دقة السوق الحقيقية. على وجه الخصوص، فإن هذا باكتستر تكون قادرة على التعامل مع استراتيجيات تعمل على صك واحد فقط. في وقت لاحق سيتم تعديل باكتستر للتعامل مع مجموعات من الصكوك. ل باكتستر الأولي، المكونات التالية مطلوبة:
استراتيجية - فئة استراتيجية يتلقى الباندا داتاسفرام من الحانات، أي قائمة من المفتوحة-- عالية-- منخفضة-- إغلاق حجم (أوهلكف) نقاط البيانات على تردد معين. وستصدر الاستراتيجية قائمة بالإشارات تتألف من طابع زمني وعنصر من مجموعة $ \ $ تشير إلى إشارة طويلة أو ثابتة أو قصيرة على التوالي. المحفظة - معظم أعمال المراجعة المسبقة ستحدث في فئة الحافظة. وسوف تتلقى مجموعة من اإلشارات) كما هو موضح أعاله (وتخلق سلسلة من المواقف، تخصص مقابل عنصر نقدي. وظيفة كائن محفظة هو إنتاج منحنى الأسهم، وتشمل تكاليف المعاملات الأساسية وتتبع الصفقات. الأداء - كائن الأداء يأخذ محفظة وتنتج مجموعة من الإحصاءات حول أدائها. على وجه الخصوص فإنه سيتم إنتاج خصائص المخاطر / العائد (شارب، سورتينو ونسب المعلومات)، ومقاييس التجارة / الربح ومعلومات السحب.
ما المفقود؟
كما يمكن أن يرى هذا باكتستر لا يتضمن أي إشارة إلى إدارة المحافظ / المخاطر، والتعامل مع التنفيذ (أي لا أوامر الحد) كما أنها لن توفر نمذجة متطورة من تكاليف المعاملات. هذا ليس مشكلة كبيرة في هذه المرحلة. انها تسمح لنا لكسب الألفة مع عملية إنشاء باكتستر كائن المنحى ومكتبات بانداس / نومبي. في الوقت الذي سيتم تحسينه.
التنفيذ.
سنشرع الآن في عرض الخطوط العريضة للتطبيقات لكل كائن.
ويجب أن يكون هدف الاستراتيجية عاميا جدا في هذه المرحلة، حيث أنه سيعالج استراتيجيات التنبؤ، والانعكاس المتوسط، والزخم، والتقلب. الاستراتيجيات التي يتم النظر فيها هنا ستكون دائما سلسلة زمنية تستند، أي "مدفوعة السعر". أحد المتطلبات المبكرة لهذا باكتستر هو أن فئات استراتيجية مشتقة سوف تقبل قائمة من الحانات (أوهلف) كمدخلات، بدلا من القراد (أسعار التداول حسب التجارة) أو بيانات الطلب الكتاب. وبالتالي فإن أفضل دقة ينظر فيها هنا سيكون 1 ثانية أشرطة.
وستقوم فئة الاستراتيجية دائما بإصدار توصيات إشارة. وھذا یعني أنھا ستقدم مشورة للمحفظة بمعنی أنھا تسیر طویلة / قصیرة أو تحتفظ بموقف. هذه المرونة سوف تسمح لنا لخلق استراتيجية متعددة "المستشارين" التي توفر مجموعة من الإشارات، والتي فئة المحفظة أكثر تقدما يمكن أن تقبل من أجل تحديد المواقف الفعلية التي يتم إدخالها.
سيتم تطبيق واجهة الطبقات باستخدام منهجية فئة أساسية مجردة. فئة قاعدة مجردة هو كائن لا يمكن أن تكون مثبتة وبالتالي يمكن إنشاء الطبقات المشتقة فقط. يتم إعطاء رمز بيثون أدناه في ملف يسمى backtest. py. تتطلب فئة الاستراتيجية أن أي فئة فرعية تنفذ طريقة output_signals.
من أجل منع الطبقة الاستراتيجية من أن مثبتة مباشرة (لأنه هو مجردة!) فمن الضروري استخدام أبسميتا و أبستراكتميثود الكائنات من وحدة أبك. وضعنا خاصية من الطبقة، ودعا __metaclass__ أن يكون مساويا أبكميتا ومن ثم تزيين أسلوب generator_signals مع الديكور أبستراكتميثود.
في حين أن واجهة أعلاه هي واضحة وسوف تصبح أكثر تعقيدا عندما تكون هذه الفئة موروثة لكل نوع معين من الاستراتيجية. في نهاية المطاف الهدف من فئة الاستراتيجية في هذا الإعداد هو تقديم قائمة طويلة / قصيرة / عقد إشارات لكل أداة ليتم إرسالها إلى محفظة.
فئة المحفظة هي حيث تقع غالبية منطق التداول. وبالنسبة لهذا البحث، فإن المحفظة مسؤولة عن تحديد حجم المراكز وتحليل المخاطر وإدارة تكاليف المعاملات ومعالجة التنفيذ (أي أوامر السوق المفتوحة، والأوامر السوقية). وفي مرحلة لاحقة، سيتم تقسيم هذه المهام إلى عناصر منفصلة. في الوقت الحالي سيتم نقلها إلى فئة واحدة.
هذه الفئة يجعل استخدام الباندا وافرة ويوفر مثالا رائعا من حيث المكتبة يمكن أن توفر قدرا كبيرا من الوقت، لا سيما فيما يتعلق "نمطي" البيانات المتشابكة. كما جانبا، خدعة الرئيسية مع الباندا و نومبي هو تجنب التكرار على أي مجموعة بيانات باستخدام ل d في. بناء الجملة. وذلك لأن نومبي (الذي يكمن وراء الباندا) يحسن حلقات بواسطة عمليات فيكتوريسد. وهكذا سوف ترى القليل (إن وجدت!) التكرارات مباشرة عند استخدام الباندا.
الهدف من فئة المحفظة هو في نهاية المطاف إنتاج سلسلة من الصفقات ومنحنى الأسهم، والتي سيتم تحليلها من قبل فئة الأداء. ولتحقيق ذلك يجب تقديم قائمة بالتوصيات التجارية من كائن الاستراتيجية. في وقت لاحق، وهذا سيكون مجموعة من كائنات استراتيجية.
وستحتاج فئة المحفظة إلى معرفة كيف سيتم نشر رأس المال لمجموعة معينة من إشارات التداول وكيفية التعامل مع تكاليف المعاملات وأي أشكال من الطلبات سيتم استخدامها. ويعمل كائن الاستراتيجية على قضبان البيانات، وبالتالي يجب وضع افتراضات فيما يتعلق بالأسعار التي تحققت عند تنفيذ أمر ما. منذ ارتفاع / انخفاض سعر أي شريط غير معروف مسبقا فمن الممكن فقط لاستخدام أسعار مفتوحة وقريبة للتداول. وفي الواقع، من المستحيل ضمان أن يتم ملء أمر بأحد هذه الأسعار المحددة عند استخدام نظام السوق، لذلك سيكون في أحسن الأحوال تقريب.
بالإضافة إلى الافتراضات حول الأوامر التي يتم ملؤها، فإن هذا باكتستر تجاهل جميع مفاهيم الهامش / وساطة القيود، وسوف نفترض أنه من الممكن أن تذهب طويلة وقصيرة في أي صك بحرية دون أي قيود السيولة. ومن الواضح أن هذا افتراض غير واقعي جدا، ولكنه أمر يمكن تخفيفه فيما بعد.
تستمر القائمة التالية backtest. py:
وفي هذه المرحلة، أدخلت الطبقات الأساسية للقاعدة الاستراتيجية والاستراتيجية. ونحن الآن في وضع يسمح لنا بتوليد بعض التطبيقات المستمدة من هذه الفئات من أجل إنتاج "استراتيجية لعبة".
وسوف نبدأ من خلال إنشاء فئة فرعية من استراتيجية تسمى راندومفوريكاستستراتيجي، والمهمة الوحيدة التي هي لإنتاج عشوائيا اشارات طويلة / قصيرة! في حين أن هذا هو واضح استراتيجية التداول لا معنى له، وسوف تخدم احتياجاتنا من خلال إظهار الإطار المنحى باكتستينغ المنحى. وهكذا سنبدأ ملف جديد يسمى random_forecast. py، مع قائمة لالمنبه عشوائي على النحو التالي:
والآن بعد أن أصبح لدينا نظام "ملموس" للتنبؤ، يجب علينا أن نضع حدا للمحفظة. هذا الكائن سوف تشمل غالبية رمز باكتستينغ. وهي مصممة لإنشاء اثنين من داتافرامس منفصلة، وأولها هو إطار المواقف، وتستخدم لتخزين كمية من كل أداة عقد في أي شريط معين. أما المحفظة الثانية فتتضمن في الواقع سعر السوق لجميع الحيازات لكل شريط، فضلا عن رصيد النقدية، بافتراض وجود رأس مال أولي. وهذا يوفر في نهاية المطاف منحنى رأس المال الذي يمكن من خلاله تقييم أداء الاستراتيجية.
كائن المحفظة، في حين مرنة للغاية في واجهة، يتطلب خيارات محددة عندما يتعلق كيفية التعامل مع تكاليف المعاملات، أوامر السوق الخ في هذا المثال الأساسي لقد رأيت أنه سيكون من الممكن أن تذهب طويلة / قصيرة أداة بسهولة دون قيود أو الهامش، شراء أو بيع مباشرة في سعر فتح شريط، صفقة تكاليف المعاملات (تشمل الانزلاق، رسوم وتأثير السوق) وحددت كمية الأسهم مباشرة لشراء لكل التجارة.
هنا هو استمرار قائمة random_forecast. py:
هذا يعطينا كل ما نحتاج إليه لتوليد منحنى رأس المال على أساس هذا النظام. الخطوة الأخيرة هي ربط كل ذلك مع وظيفة __main__:
إخراج البرنامج هو كما يلي. سوف تختلف الخاص بك من الناتج أدناه اعتمادا على النطاق الزمني الذي حدد والبذور العشوائية المستخدمة:
في هذه الحالة فقدت الاستراتيجية المال، وهو أمر لا يثير الدهشة نظرا للطبيعة العشوائية للمتنبأ! الخطوات التالية هي إنشاء كائن الأداء الذي يقبل مثيل محفظة ويوفر قائمة مقاييس الأداء التي يستند إليها قرار لتصفية الاستراتيجية أو لا.
يمكننا أيضا تحسين كائن محفظة أن يكون التعامل أكثر واقعية من تكاليف المعاملات (مثل اللجان وسطاء التفاعلية والانزلاق). وبإمكاننا أيضا أن ندرج بشكل مباشر محرك التنبؤ في كائن استراتيجية، وهو ما سيؤدي (على أمل) إلى نتائج أفضل. في المقالات التالية سوف نستكشف هذه المفاهيم بشكل أكثر عمقا.
مجرد بدء مع التداول الكمي؟
3 أسباب الاشتراك في قائمة البريد الإلكتروني كوانتستارت:
1. دروس التداول الكمي.
سوف تحصل على إمكانية الوصول الفوري إلى دورة مجانية 10-البريد الإلكتروني معبأة مع تلميحات ونصائح لمساعدتك على البدء في التداول الكمي!
2. جميع أحدث المحتوى.
كل أسبوع سوف نرسل لك التفاف جميع الأنشطة على كوانتستارت لذلك عليك أن لا يفوتون وظيفة مرة أخرى.
ريال مدريد، وقابلة للتنفيذ نصائح التداول الكمي مع أي هراء.
QuantStart.
الانضمام إلى كوانتكاديمي بوابة العضوية الخاصة التي تلبي احتياجات التجزئة المتزايد بسرعة المجتمع تاجر الكمي. سوف تجد مجموعة من ذوي الخبرة مثل التفكير من التجار الكميون على استعداد للرد على أسئلة التداول الكمي الأكثر إلحاحا.
تحقق من بلدي يبوك على التداول الكمي حيث أنا يعلمك كيفية بناء مربحة استراتيجيات التداول المنهجي مع أدوات بايثون، من الصفر.
نلقي نظرة على بلدي الكتاب الاليكتروني الجديد على استراتيجيات التداول المتقدمة باستخدام تحليل سلسلة زمنية، والتعلم الآلي والإحصاءات بايزي، مع بيثون و R.
بواسطة فرانك سميتانا في 18 يوليو، 2017.
في هذه المقالة فرانك سميتانا، واحدة من المساهمين الضيوف كوانتستارت الخبراء يصف بيثون مفتوحة المصدر المناظر الطبيعية البرمجيات باكتستينغ، ويقدم المشورة بشأن الإطار باكتستينغ مناسبة لاحتياجات المشروع الخاص بك.
ويمكن القول باأن االختبار املرجعي هو اأهم جزء من عملية اإنتاج اسرتاتيجية التداول املنتظمة) ستس (، ويجلس بني تطوير االسرتاتيجية ونشرها) تداول حي (. وإذا كانت هناك خلل في الاستراتيجية، فمن المرجح أن يفضي ذلك إلى تقويض هذا الأمر، مما يحول دون نشر استراتيجية خاسرة.
ويتداخل عدد من القدرات ذات الصلة مع الاختبارات الخلفية، بما في ذلك المحاكاة التجارية والتداول المباشر. يستخدم باكتستينغ البيانات التاريخية لتحديد أداء ستس. المحاكاة التجارية تأخذ باكتستينغ خطوة أبعد من خلال تصور تحريك الصفقات والأداء السعر على أساس كل شريط على حدة. التداول المحاكي / المباشر يوزع ستس اختبار في الوقت الحقيقي: إشارات إشارات، أوامر توليد أوامر التوجيه للسماسرة، ثم الحفاظ على المراكز كما أوامر تنفيذها.
وتتجاوز معظم الأطر ما وراء الاختبار لتشمل بعض القدرات التجارية الحية. هذا هو مريح إذا كنت ترغب في نشر من إطار باكتستينغ الخاص بك، والذي يعمل أيضا مع وسيط المفضل ومصادر البيانات الخاصة بك. كوانتوبيان / زيبلين خطوة أبعد من ذلك، وتوفير التنمية المتكاملة، باكتستينغ، وحل النشر.
ويخدم مجتمع بايثون بشكل جيد، مع توافر ستة أطر مرجعية مفتوحة المصدر على الأقل. ومع ذلك، فهي في مراحل مختلفة من التطوير والتوثيق. إذا كنت تتمتع العمل على بناء فريق إطار باكتستينغ مفتوحة المصدر، وتحقق من ريبوس جيثب بهم.
قبل تقييم أطر باكتستينغ، فإنه يستحق تحديد متطلبات ستس الخاص بك.
ما فئة (فئات) الأصول التي تتاجر بها؟ في حين أن معظم الأطر تدعم بيانات الأسهم الأمريكية عبر ياهوفينانس، إذا كانت الاستراتيجية تتضمن المشتقات، صناديق الاستثمار المتداولة، أو الأوراق المالية إم، يجب أن تكون البيانات قابلة للاستيراد أو توفيرها من قبل الإطار. تغطيات فئة الأصول تتجاوز البيانات. يمكن التعامل مع الإطار الآجلة محدودة الأجل والخيارات وتوليد رول-أوفر الصفقات تلقائيا؟ ماذا عن الأسواق غير السائلة، ومدى واقعية فرضية يجب أن يتم عند تنفيذ أوامر كبيرة؟
ما تردد البيانات والتفاصيل هو ستس الخاص بك بنيت على؟ نظام التداول الذي يتطلب كل علامة أو محاولة / طلب لديها مجموعة مختلفة جدا من القضايا إدارة البيانات من 5 دقائق أو الفاصل الزمني كل ساعة. وقد استثمرت صناديق التحوط ومحال بيع األوراق المالية هفت بشكل كبير في بناء أطر متينة وقابلة للتطوير من أجل التعامل مع حجم البيانات وتواترها. بعض المنصات توفر مجموعة غنية وعميقة من البيانات لمختلف فئات الأصول مثل S & P الأسهم، في دقة دقيقة واحدة.
ما نوع (أنواع) الطلب التي تتطلبها ستس؟ كحد أدنى، يجب أن يكون الحد، توقف و أوكو بدعم من الإطار.
مستوى الدعم & أمب؛ الوثائق المطلوبة. أما أطر املراحل املبكرة فلديها وثائق ضئيلة، وقلة منها لديها دعم غري مجالس املجتمع املحيل.
مكونات إطار المراجعة الخلفية.
البيانات واستحواذ ستس: مكونات اقتناء تستهلك ستس ملف النصي / تعريف وتوفير البيانات المطلوبة للاختبار. إذا تطلب اإلطار أن يتم إعادة ترميز أي جهاز ستس قبل االختبار الخلفي، يجب أن يدعم اإلطار الوظائف المعلبة للمؤشرات الفنية األكثر شعبية لتسريع اختبار ستس. ويحدد المستخدمون المدة الزمنية التي تستغرقها الفترة التاريخية لإجراء اختبارات باكتست استنادا إلى ما يوفره الإطار، أو ما يمكنهم استيراده.
اختبار الأداء ينطبق المنطق ستس إلى نافذة البيانات التاريخية المطلوبة ويحسب مجموعة واسعة من المخاطر & أمبير؛ مقاييس الأداء، بما في ذلك نسب السحب الأقصى، شارب وسورتينو. وتدعم معظم الأطر عددا لا بأس به من قدرات التصور، بما في ذلك منحنيات الإنصاف والإحصاءات المقطوعة.
يميل التحسين إلى طلب حصة الأسد من موارد الحوسبة في عملية ستس. إذا كانت ستس تتطلب التحسين، ثم التركيز على الإطار الذي يدعم قابلة للتوزيع / المعالجة الموازية.
في سياق الاستراتيجيات التي تم تطويرها باستخدام المؤشرات الفنية، يحاول مطوري النظام العثور على أفضل مجموعة من المعلمات لكل مؤشر. وبكل بساطة، قد تجد التحسينات أن متوسط كروس أوفر المتحرك لمدة 6 و 10 أيام قد تراكم المزيد من الأرباح على بيانات الاختبار التاريخية مقارنة بأي مجموعة أخرى من الفترات الزمنية بين 1 و 20. وبالفعل مع هذا المثال التافهة، يجب أن تحتوي مجموعات المعلمة 20 * 20 = 400 على يتم حساب & أمب؛ المرتبة.
وفي سياق المحفظة، يسعى التحسين إلى إيجاد الترجيح األمثل لكل أصول في المحفظة، بما في ذلك األدوات القصيرة والقائمة على االستدانة. وعلى أساس دوري، تتم إعادة توازن المحفظة، مما يؤدي إلى شراء وبيع مقتنيات الحافظة على النحو المطلوب لمواءمة األوزان المثلى.
يعد تحديد حجم الموضع استخداما إضافيا للتحسين، مما يساعد مطوري النظام على محاكاة وتحليل تأثير الرافعة المالية وضبط الموضع الديناميكي على أداء ستس وأداء المحفظة.
ستة أطر باكتستينغ لبيثون.
يبدو أن القدرات القياسية للمنصات مفتوحة المصدر بيثون باكتستينغ تشمل ما يلي:
الحدث مدفوعة جدا مرنة، وعدم التقيد الترخيص جمع لائق من المؤشرات الفنية المحددة مسبقا معيار الأداء حساب متري / التصور / قدرات الإبلاغ.
PyAlgoTrade.
بيالغوتريد هو الإطار، موثقة بالكامل باكتستينغ الإطار جنبا إلى جنب مع قدرات الورق والعيش التداول. يتضمن دعم البيانات Yahoo! المالية، جوجل المالية، نينجاترادر وأي نوع من كسف القائم على سلسلة زمنية مثل كواندل. وتشمل أنواع الدعم المدعومة السوق، الحد، وقف و ستوبليميت.
بيالغوتريد يدعم التداول بيتكوين عبر بيتستامب، في الوقت الحقيقي التعامل مع الحدث تويتر.
بت - باكتستينغ فور بيثون.
بت "تهدف إلى تعزيز إنشاء كتل قابلة للاختبار بسهولة، وإعادة استخدامها ومرنة للمنطق استراتيجية لتسهيل التطور السريع لاستراتيجيات تجارية معقدة".
ويتناسب هذا اإلطار بشكل خاص مع اختبار نظام اإلحصاءات العامة القائم على المحفظة، مع تحديد األصول ألغراض ترجيح األصول وإعادة توازن المحفظة. تعديل استراتيجية لتشغيل عبر ترددات زمنية مختلفة أو أوزان الأصول البديلة ينطوي على قرص الحد الأدنى من القرص. بنيت بت فوق فوق فن - مكتبة وظيفة مالية لبيثون.
Backtrader.
هذا البرنامج هو موثق بشكل استثنائي بشكل جيد، مع بلوق المرافق ومجتمع نشط على الانترنت لنشر الأسئلة وطلبات الميزة. باكترادر يدعم عددا من تنسيقات البيانات، بما في ذلك ملفات كسف، بانداس داتافرامس، الحريق التكرار وتغذية البيانات في الوقت الحقيقي من ثلاثة وسطاء. يمكن الوصول إلى خلاصات البيانات هذه في وقت واحد، ويمكن أن تمثل حتى الأطر الزمنية المختلفة. السماسرة المدعومة تشمل أواندا لتداول العملات الأجنبية وتداول فئة متعددة الأصول عبر وسطاء التفاعلية والرسوم البيانية البصرية.
pysystemtrade.
المطور بيسيستمتريد روب كارفر لديه وظيفة كبيرة مناقشة لماذا وضع لإنشاء إطار آخر بايثون باكتستينغ والحجج ضد وضد تطوير الإطار. ويناقش إطار باكتستينغ ل بيسيستمتريد في كتاب روب، "التداول المنهجي".
يسرد بيسيستمتريد عددا من قدرات خارطة الطريق، بما في ذلك اختبار الخلفية كامل المواصفات التي تشمل تقنيات التحسين والمعايرة، وتجارة الآجلة مؤتمتة بالكامل مع وسطاء التفاعلية. المساهمين مفتوحة المصدر هي موضع ترحيب.
زيبلين هو محاكاة التداول الخوارزمية مع الورق وقدرات التداول الحية. يمكن الوصول إليها عبر واجهة إبيثون نوتيبوك المستندة إلى المستعرض، زيبلين يوفر وسيلة سهلة لاستخدام بديل لأدوات سطر الأوامر. بدعم و تطويرها من قبل كوانتوبيان، زيبلين يمكن استخدامها كإطار باكتستينغ مستقل أو كجزء من كوانتوبيان / زيبلين ستس كاملة التنمية والاختبار ونشر البيئة. يوفر زيبلين 10 عاما من دقة دقيقة بيانات الأسهم الأمريكية التاريخية وعدد من الخيارات استيراد البيانات.
كسترادر هو إطار باكتستينغ مع قدرات التداول الحية. كوانتستارت مؤسس مايكل قاعات - مور أطلقت كسترادر بهدف بناء منصة قوية وقابلة للتطوير بما فيه الكفاية لخدمة احتياجات صناديق التحوط الكمي المؤسسية وكذلك تجار التجزئة التجزئة. كسترادر يدعم حاليا أوهلكف "شريط" بيانات القرار على جداول زمنية مختلفة، ولكن لا تسمح للبيانات القراد لاستخدامها.
كل من باكتستينغ والتجارة الحية هي تماما يحركها الحدث، وتبسيط الانتقال من الاستراتيجيات من البحوث إلى الاختبار وأخيرا يعيش التداول. غالبا ما تكون الاستراتيجية الأساسية / رمز المحفظة متطابقة عبر كل من عمليات النشر.
الفائدة الرئيسية من كسترادر هو في نمطية، مما يسمح التخصيص واسعة من التعليمات البرمجية لأولئك الذين لديهم مخاطر محددة أو إدارة محفظة المتطلبات.
احتضان باكتست.
إن الطبيعة البشرية هي التركيز على مكافأة تطوير (ستس مربحة) ستس، ثم التسرع في نشر حساب ممول (لأننا نأمل)، من دون إنفاق ما يكفي من الوقت والموارد إعادة النظر في استراتيجية شاملة تماما. ولكن باكتستينغ ليس مجرد حارس بوابة لمنعنا من نشر استراتيجيات معيبة وفقدان رأس المال التجاري، فإنه يوفر أيضا عددا من التشخيص التي يمكن أن تبلغ عملية تطوير ستس. على سبيل المثال، اختبار ستس متطابقة على إطارين زمنيين مختلفين، وفهم السحب الأقصى للاستراتيجية في سياق ارتباطات الأصول، وإنشاء حافظات أكثر ذكاء عن طريق إعادة تقييم مخصصات الأصول عبر مناطق جغرافية متعددة.
في الوظائف المستقبلية، سنقوم بتغطية الأطر الخلفية لبيئات غير بيثون، واستخدام تقنيات أخذ العينات المختلفة مثل بوتسترابينغ و جاككنيف ل باكتستينغ نماذج التداول التنبؤية.
مجرد بدء مع التداول الكمي؟
3 أسباب الاشتراك في قائمة البريد الإلكتروني كوانتستارت:
1. دروس التداول الكمي.
سوف تحصل على إمكانية الوصول الفوري إلى دورة مجانية 10-البريد الإلكتروني معبأة مع تلميحات ونصائح لمساعدتك على البدء في التداول الكمي!
2. جميع أحدث المحتوى.
كل أسبوع سوف نرسل لك التفاف جميع الأنشطة على كوانتستارت لذلك عليك أن لا يفوتون وظيفة مرة أخرى.
ريال مدريد، وقابلة للتنفيذ نصائح التداول الكمي مع أي هراء.
No comments:
Post a Comment