استراتيجية التداول هم


استراتيجية التداول هم
الحصول على فيا أب ستور قراءة هذه المشاركة في التطبيق لدينا!
استراتيجية التداول الأمثل في عالم لعبة بسيطة نموذج ماركوف المخفية مع غاوس.
أريد حل مشكلة التحسين التالية: ما هي استراتيجية التداول العام الأمثل (بمعنى أعلى نسبة شارب) على سلسلة زمنية والتي هي نتيجة لنموذج ماركوف مخفي مع دولتين واثنين من غاوس مع مصفوفة انتقال معروفة والمعلمات المعروفة ومتوسط ​​التباين؟
وينبغي أن تستند استراتيجية التداول بشكل مثالي فقط إلى مؤشرات تقنية يمكن ملاحظتها بسهولة مثل الزخم الجوهري أو السماوي والتقلب. شعور بلدي الأمعاء هو أن فترة الاسترداد الأمثل لحساب هذه يجب أن تعتمد على مصفوفة الانتقال.
أنا ممتن (كالمعتاد) للأفكار والأدب، رمز (من الناحية المثالية R :-) وما شابه ذلك.
ولا أفهم كيف تكون المؤشرات الفنية ذات صلة بالموضوع. ويمكن توليد احتمالات الدولة مباشرة من العوائد إذا كان النموذج معروفا. ليست هناك حاجة للتخمين في قواعد التداول الاستدلالية على أساس المؤشرات الفنية.
اسمح $ r_t $ بالعودة في الوقت $ t $. النموذج الخاص بك.
وبعبارة أخرى، فإن الدولة هي ماركوف والعائدات طبيعية مع متوسط ​​معروف، التباين في أي من الدولتين. لنفترض أننا نقف في الوقت $ t $. نحتاج أولا إلى تحديد $ P \،. r_0 \> = p_t $. استخدام خوارزمية إلى الوراء إلى الأمام الملقب البرمجة الديناميكية وتنفيذها في معظم حزم هم.
الآن $$ E \ = p_t \ mu_0 + (1-p_t) \ mu_1 $$ و $$ فار \ = p_t \ sigma_0 ^ 2 + (1-p_t) \ sigma_1 ^ 2. $$
الآن نحن بحاجة إلى اختيار موقفنا $ س $ لتعظيم شارب.
وهذا يعادل (حتى عامل التحجيم) لمشكلة التباين المتوسط.
$$ \ min_x \ \>، $$ حيث $ \ سيغما $ هو مصفوفة قطرية مع $ فار \ t = 0،1. T $ على قطري و $ \ بار = E \ $. والدليل على هذه الحقيقة هو التناقض. لنفترض أن هناك $ x $ مع شارب أعلى ليس هو الحل لمشكلة التباين المتوسط، $ x ^ * $. يمكننا أن نقسم $ x $ من خلال ثابت $ $ ألفا $ بحيث لدينا $ \ ألفا \ بار 'س = \ بار' س ^ * $. في الوقت نفسه، ونحن نعلم أن $$ \ ألفا \ سرت & لوت؛ \ سرت $$ لأن $ x ^ * $ ليس شارب-أوبتيمال. تربيع كلا الجانبين يعطي.
حقيقة أن $ \ ألفا س $ لديه نفس المتوسط ​​والتباين أقل بدقة يتناقض مع افتراض أن $ x ^ * $ هو الحل. وهكذا نستنتج أن متوسط ​​حل التباين هو دائما شارب الأمثل. لاحظ أنه في المشاكل العامة (على سبيل المثال مع القيود) هذا التكافؤ لا يحمل بالضرورة. الآن الحل لمشكلة التباين المتوسط ​​(تأخذ مشتق وتعيين إلى الصفر) هو مجرد $ \ فراك \ سيغما ^ \ بار $. ومع ذلك، في الوقت $ t $ نحن لا داعي للقلق حول أي شيء آخر من $ x_t $. فمن الممكن لحساب $ x $ للأوقات المستقبلية التي هي الأمثل فيما يتعلق بالتوقعات الحالية، ولكن من الناحية العملية فمن الأفضل لإعادة تشغيل خوارزمية إلى الأمام إلى الوراء بعد أن نلاحظ العودة القادمة ومن ثم إعادة حساب $ X_ $. الحل الأمثل لذلك هو الرهان تناسبيا إلى $ \ فراك>> $. هذا له تفسير بديهي كما $$ \ فراك>> = \ فراك> >> \ فراك >> $$ بحيث $$ x_t \ سرت> = \ فراك> >>، $$ أي اتخاذ المخاطر نسبة إلى المتوقع شارب في كل زمن.
إذا كان لديك تكاليف المعاملة ثم تحتاج إلى النظر في الوسائل والتباينات في المستقبل، الأمر الذي يجعل المشكلة أكثر صعوبة، ولكن قابلة للتنفيذ.

QuantStart.
الانضمام إلى كوانتكاديمي بوابة العضوية الخاصة التي تلبي احتياجات التجزئة المتزايد بسرعة المجتمع تاجر الكمي. سوف تجد مجموعة من ذوي الخبرة مثل التفكير من التجار الكميون على استعداد للرد على أسئلة التداول الكمي الأكثر إلحاحا.
تحقق من بلدي يبوك على التداول الكمي حيث أنا يعلمك كيفية بناء مربحة استراتيجيات التداول المنهجي مع أدوات بايثون، من الصفر.
نلقي نظرة على بلدي الكتاب الاليكتروني الجديد على استراتيجيات التداول المتقدمة باستخدام تحليل سلسلة زمنية، والتعلم الآلي والإحصاءات بايزي، مع بيثون و R.
من قبل مايكل هالز مور في 21 فبراير، 2017.
في المقالة السابقة عن نماذج ماركوف المخفية تم عرض كيف يمكن تطبيق تطبيقها على الفهرس يعود البيانات كآلية لاكتشاف "أنظمة السوق الكامنة". تم تحليل عوائد S & أمب؛ P500 باستخدام R بيئة البرمجة الإحصائية. وقد لوحظ أنه تم الكشف عن فترات من التقلبات المختلفة، وذلك باستخدام كل من دولتين وثلاث دول النماذج.
في هذه المقالة سيتم استخدام نموذج ماركوف المخفية ضمن إطار كسترادر ​​كمرشح لنظام إدارة المخاطر في السوق. وسوف يتم رفض الصفقات عندما يتم التنبؤ بأنظمة تقلب أعلى. والأمل هو أن يؤدي ذلك إلى القضاء على الصفقات غير المربحة وربما إزالة التقلب من الاستراتيجية، وبالتالي زيادة نسبة شارب لها.
من أجل تحقيق هذا بعض التعديلات كود صغير ل كسترادر ​​كانت ضرورية، والتي تم الآن جعل العيش على صفحة جيثب.
وسيتم إقران تراكب نظام السوق باستراتيجية مبسطة قصيرة الأجل للاتجاه، تستند إلى قواعد كروس أوفر متوسطة. والاستراتيجية نفسها غير مهمة نسبيا لأغراض هذه المادة، حيث أن أغلبية المناقشة ستركز على تنفيذ منطق إدارة المخاطر.
كسترادر ​​هو مكتوب في بيثون، في حين نفذ التنفيذ السابق لنموذج ماركوف المخفية في R. وبالتالي لأغراض هذه المادة فمن الضروري الاستفادة من مكتبة بايثون التي تنفذ بالفعل نموذج ماركوف المخفية. همليرن هي مكتبة من هذا القبيل، وسوف تستخدم هنا.
كشف النظام مع نماذج ماركوف المخفية.
إذا كنت غير مألوف مع نماذج ماركوف المخفية و / أو لا يدركون كيف يمكن استخدامها كأداة لإدارة المخاطر، فمن الجدير إلقاء نظرة على المقالات التالية في هذه السلسلة:
الأول يناقش الأساس الرياضي والإحصائي وراء النموذج في حين أن المادة الثانية تستخدم حزمة debmixS4 R لتناسب H هم إلى S & أمب؛ P500 العوائد.
نماذج ماركوف المخفية هي نوع من نموذج ستوشاستيك للفضاء. فهم يفترضون وجود حالت "مخفية" أو "كامنة" لا يمكن ملاحظتها مباشرة. هذه الحالات المخفية لها تأثير على القيم التي يمكن ملاحظتها، والمعروفة باسم الملاحظات. أحد أهداف النموذج هو التأكد من الحالة الراهنة من مجموعة الملاحظات المعروفة.
في التداول الكمي تترجم هذه المشكلة إلى وجود أنظمة سوق "مخفية" أو "كامنة"، مثل تغيير البيئات التنظيمية، أو فترات من التقلبات الزائدة. الملاحظات في هذه الحالة هي العائدات من مجموعة معينة من بيانات السوق المالية. وتتأثر العائدات بشكل غير مباشر بنظم السوق الخفية. تركيب نموذج ماركوف مخفي لبيانات العودة يسمح التنبؤ دول النظام الجديد، والتي يمكن استخدامها لإدارة المخاطر آلية تصفية التداول.
إستراتيجية التداول.
استراتيجية التداول لهذه المقالة بسيطة للغاية وتستخدم لأنها يمكن أن تكون مفهومة جيدا. والمسألة الهامة هي جانب إدارة المخاطر الذي سيولى اهتماما أكبر بكثير.
وتتمثل الاستراتيجية التالية على المدى القصير في المتوسط ​​الكلاسيكي المتوسط ​​المتحرك. القواعد بسيطة:
في كل شريط حساب المتوسطات المتحركة البسيطة لمدة 10 أيام و 30 يوما (سما) إذا تجاوز المتوسط ​​المتحرك ل 10 أيام المتوسط ​​المتحرك للسهم لمدة 30 يوما، ولا يتم استثمار الإستراتيجية، ثم انتقل لفترة طويلة إذا تجاوز المتوسط ​​المتحرك سما لمدة 30 يوما 10- يوم سما واستراتيجية يتم استثمارها، ثم إغلاق الموقف.
هذه ليست استراتيجية فعالة بشكل خاص مع هذه المعايير، وخاصة على أسعار مؤشر S & أمب؛ P500. ولن يحقق ذلك الكثير في مقابل شراء وشراء صندوق الاستثمار المتقاعد (سبي إتف) لنفس الفترة.
ومع ذلك، عندما يقترن ذلك بمرشح تجاري لإدارة المخاطر يصبح أكثر فعالية نظرا لإمكانية القضاء على الصفقات التي تحدث في فترات متقلبة للغاية، حيث يمكن لهذه الاستراتيجيات التي تتبع الاتجاه أن تفقد المال.
يعمل مرشح إدارة المخاطر هنا من خلال تدريب نموذج ماركوف المخفية على بيانات S & أمب؛ P500 من 29 يناير 1993 (أقرب البيانات المتاحة ل سبي على ياهو المالية) حتى 31 ديسمبر 2004. ثم يتم تسلسل هذا النموذج (عن طريق بيثون مخلل ) واستخدامها مع فئة فرعية كسترادر ​​ريسماناجر.
يقوم مدير المخاطر بالتحقق من كل تجارة يتم إرسالها، سواء كانت الحالة الحالية تقلبا منخفضا أو نظام تقلب عالي. وإذا كان التقلب منخفضا، فإن أي صفقات طويلة يتم السماح بها من خلال وتنفيذها. إذا كان التذبذب مرتفعا يتم إغلاق أية صفقات مفتوحة عند استلام إشارة الإغلاق، في حين يتم إلغاء أي صفقات طويلة محتملة جديدة قبل السماح لها بالمرور.
وهذا له الأثر المرغوب فيه المحتمل للقضاء على الصفقات التالية للاتجاه في فترات ذات حجم مرتفع حيث من المرجح أن تفقد المال بسبب التحديد غير الصحيح "للاتجاه".
يتم تنفيذ باكتست من هذه الاستراتيجية من 1 يناير 2005 إلى 31 ديسمبر 2018، دون إعادة تدريب نموذج ماركوف المخفية على طول الطريق. ويعني ذلك على وجه الخصوص أن وزارة الصحة العامة تستخدم العينة خارج العينة وليس على بيانات التدريب داخل العينة.
من أجل تنفيذ هذه الاستراتيجية من الضروري أن يكون بيانات التسعير أوهلكف اليومية لسجل إتف سبي للفترة المشمولة بتدريب هم و باكتست:
سوف تحتاج هذه البيانات إلى وضعها في الدليل المحدد بواسطة ملف إعدادات كسترادر ​​إذا كنت ترغب في تكرار النتائج.
بيثون التنفيذ.
إرجاع الحساب مع كسترادر.
من أجل تنفيذ تنبؤات النظام باستخدام نموذج ماركوف المخفية فمن الضروري لحساب وتخزين عوائد سعر إغلاق تعديل سبي. حتى الآن فقط تم تخزين الأسعار. الموقع الطبيعي لتخزين العوائد في الفئة الفرعية برايسهاندلر. ومع ذلك، كسترادر ​​لم يدعم سابقا هذا السلوك وهكذا تمت إضافته كميزة.
كان تعديل بسيط نسبيا ينطوي على اثنين من التغييرات الطفيفة. الأول هو إضافة علم منطقية Calc_adj_returns إلى إنيتياليساتيون من الفئة. إذا تم تعيين هذا إلى ترو ثم سيتم حساب العوائد المعدلة وتخزينها، وإلا فإنها لن تكون. من أجل تقليل التأثير على رمز عميل آخر يتم تعيين الافتراضي إلى خطأ.
التغيير الثاني يتجاوز الأسلوب "الظاهري" _store_event وجدت في فئة أبستراسباربريسيهاندلر مع ما يلي في الفئة الفرعية ياهودايليسفباربريسيهاندلر.
يتحقق الشفرة إذا كان cal_adj_returns يساوي ترو. فإنه يخزن أسعار الإغلاق المعدلة السابقة والحالية، وتعديلها مع بريسيبارسر، ويحسب عوائد النسبة المئوية ومن ثم إضافتها إلى قائمة adj_close_returns. وتسمى هذه القائمة في وقت لاحق من قبل ريجيممريسكاناجر من أجل التنبؤ حالة النظام الحالي:
هذا التعديل هو بالفعل في أحدث إصدار من كسترادر، والتي (كما هو الحال دائما) يمكن العثور عليها في صفحة جيثب.
تنفيذ كشف النظام.
وسيتجه الاهتمام الآن نحو تنفيذ مرشاح النظام واستراتيجية الاتجاهات القصيرة الأجل التي ستستخدم لتنفيذ الاختبار الخلفي.
وهناك أربعة ملفات منفصلة مطلوبة لتنفيذ هذه الاستراتيجية. يتم تقديم القوائم الكاملة لكل منها في نهاية المقالة. وهذا سوف يسمح تكرار مباشرة من النتائج لأولئك الذين يرغبون في تنفيذ طريقة مماثلة.
يتضمن الملف الأول تركيب نموذج ماركوف المخفية غاوس لفترة كبيرة من S & أمب؛ P500 العوائد. ويحتوي الملف الثاني على منطق تنفيذ الاتجاه القصير الأجل. الملف الثالث يوفر تصفية النظام من الصفقات من خلال كائن مدير المخاطر. الملف النهائي يربط كل هذه الوحدات معا في باكتست.
تدريب نموذج ماركوف المخفية.
قبل إنشاء مرشح كشف النظام من الضروري لتناسب نموذج ماركوف مخفي لمجموعة من البيانات العوائد. لهذا ستستخدم مكتبة بيثون همليرن. و أبي بسيطة للغاية، مما يجعلها واضحة لتناسب وتخزين نموذج لاستخدامها لاحقا.
وتتمثل المهمة الأولى في استيراد المكتبات اللازمة. المخلل ضروري لتسلسلي النموذج لاستخدامها في إدارة المخاطر الكشف عن النظام. يتم استخدام التحذيرات لقمع تحذيرات الإهمال المفرط التي تم إنشاؤها بواسطة سكيكيت تعلم، من خلال المكالمات أبي من همليرن. يتم استيراد غوسيانهم من همليرن تشكيل أساس النموذج. يتم استيراد ماتلوتليب وسيبورن لرسم في الدول مخبأة في العينة، اللازمة ل "فحص التعقل" على سلوك نماذج:
تفتح الدالة query_prices_df ملف كسف لبيانات سبي التي تم تنزيلها من ياهو فينانس في إطار بيانات بانداس. ثم تحسب النسبة المئوية لعائدات أسعار الإغلاق المعدلة وتقطع تاريخ الانتهاء إلى فترة التدريب النهائية المطلوبة. حساب عوائد النسبة المئوية يقدم قيم نان في داتافريم، والتي يتم إسقاطها في مكانها:
الدالة التالية، plot_in_sample_hidden_states، ليست ضرورية تماما لأغراض التدريب. تم تعديله من ملف تعليمي همليرن وجدت في الوثائق.
رمز يأخذ النموذج جنبا إلى جنب مع داتافريم الأسعار ويخلق سوبلوت، مؤامرة واحدة لكل حالة مخفية التي تم إنشاؤها بواسطة النموذج. ويعرض كل مخطط فرعي سعر الإغلاق المعدل الذي تحجبه تلك الحالة / النظام الخفي. هذا مفيد لمعرفة ما إذا كان هم تنتج حالات "عاقل":
وفيما يلي مخرجات هذه الوظيفة المحددة:
ويمكن ملاحظة أن الكشف عن النظام يلتقط إلى حد كبير فترات "التوجهات" والفترات شديدة التقلب. على وجه الخصوص غالبية 2008 يحدث في الدولة المخفية # 1.
ويرتبط هذا البرنامج النصي معا في وظيفة __main__. أولا، يتم تجاهل جميع التحذيرات. بالمعنى الدقيق للكلمة هذه ليست أفضل الممارسات، ولكن في هذه الحالة هناك العديد من تحذيرات الإهمال التي تم إنشاؤها بواسطة سكيكيت تعلم أن تحجب الناتج المطلوب من البرنامج النصي.
بعد ذلك يتم فتح ملف كسف ويتم إنشاء متغير ريتس باستخدام الأمر np. column_stack. وذلك لأن هملارن يتطلب مصفوفة من الكائنات سلسلة، على الرغم من حقيقة أن هذا هو نموذج أحادي المتغير (أنه يعمل فقط على عائدات أنفسهم). باستخدام نومبي بهذه الطريقة يضعه في الشكل الصحيح.
الكائن غوسيانهم يتطلب مواصفات عدد الحالات من خلال المعلمة n_components. وتستخدم دولتان في هذه المقالة، ولكن يمكن أيضا اختبار ثلاثة بسهولة. يتم استخدام مصفوفة التباين الكامل، بدلا من إصدار قطري. ويعطى عدد التكرارات المستخدمة في خوارزمية التوقع - التعظيم بواسطة المعلمة n_iter.
تم تركيب النموذج والنتيجة من الخوارزمية الإخراج. يتم رسم الولايات الخفية التي تخفي أسعار الإغلاق المعدلة. وأخيرا يتم اختلاط النموذج (مسلسل) إلى pickle_path، وعلى استعداد لاستخدامها في إدارة المخاطر الكشف عن النظام في وقت لاحق في هذه المادة:
الاتجاه قصير الأجل بعد الاستراتيجية.
المرحلة التالية في هذه العملية هو خلق فئة الاستراتيجية التي تغلف على المدى القصير اتجاه الاتجاه التالية التي سيتم في نهاية المطاف يتم تصفيتها من قبل وحدة ريسماناجر.
كما هو الحال مع جميع الاستراتيجيات التي وضعت داخل كسترادر ​​فمن الضروري لاستيراد بعض فئات محددة، بما في ذلك بريسيبارسر، سيغناليفنت و أبستراكتستراتيغي الطبقة الأساسية. وهذا يشبه العديد من الاستراتيجيات الأخرى التي نفذت على الموقع، وبالتالي فإن سبب هذه الواردات لن يتم التأكيد:
الفئة الفرعية موفينغافيراجكروسستراتيجي هي في الواقع واحدة من الأمثلة الموجودة ضمن دليل أمثلة كسترادر. ومع ذلك فقد تم تكرارها هنا لاستكمالها. وتستخدم الاستراتيجية اثنين من طوابير مزدوجة العضوية، وجدت في وحدة ديك، لتوفير النوافذ المتداول على بيانات التسعير. هذا هو لحساب المتوسطات الطويلة البسيطة والقصيرة البسيطة التي تشكل منطق الاتجاه التالي على المدى القصير:
كل كسترادر ​​أبستراكتستراتيغي تستخدم فئات فرعية - dived طريقة account_signals لتوليد الكائنات سيغناليفنت. الأسلوب هنا يتحقق أولا ما إذا كان الحدث هو شريط أوهلكف. على سبيل المثال، يمكن أن يكون سينتيمنتيفنت (كما هو الحال في استراتيجيات أخرى) وبالتالي مطلوب الاختيار. يتم إلحاق الأسعار بالديك بالطريقة الصحيحة، وبالتالي توفير النوافذ المتداول التي يمكن أن تؤدي إلى سما.
إذا كان هناك ما يكفي من الحانات لتنفيذ المتوسطات المتحركة ثم يتم حساب كلاهما. وبمجرد توافر هذه القيم يتم تنفيذ قواعد التداول المذكورة أعلاه. إذا تجاوزت النافذة القصيرة سما الإطار الطويل سما، ولم تستثمر الإستراتيجية بالفعل، فإنها تولد موقعا طويلا من أسهم قاعدة الأساس. إذا تجاوزت نافذة سما الطويلة الإطار القصير سما يتم إغلاق الموقف إذا استثمرت بالفعل:
مدير إدارة اكتشاف النظام.
كائن أبستراكتريسكاناجراجر فرعية هو الاستخدام الرئيسي الأول لإدارة المخاطر تطبيقها بشكل منفصل لاستراتيجية على الموقع حتى الآن. وكما هو مبين أعلاه، فإن الهدف من هذا الكائن هو تصفية الصفقات القصيرة الأجل التي تتبع الاتجاه عند وجود نظام تقلب مرتفع غير مرغوب فيه.
جميع الفئات الفرعية ريسماناجر تتطلب الوصول إلى أوردريفنت حيث لديهم القدرة على القضاء أو تعديل أو إنشاء أوامر اعتمادا على قيود المخاطر للمحفظة:
يتطلب ريجيممريسكاناجر ببساطة الوصول إلى ملف نموذج هم ديسيرياليسد. كما أنها تتبع ما إذا كانت الاستراتيجية "مستثمرة" أم لا، حيث أن هدف الاستراتيجية نفسه لن يكون لديه معرفة بما إذا كانت إشاراتها قد نفذت بالفعل:
يستخدم أسلوب مساعد، setting_regime، الكائن price_handler والحدث size_order للحصول على القائمة الكاملة لعوائد الإغلاق المعدلة المحسوبة بواسطة كسترادر ​​(راجع التعليمات البرمجية في القسم السابق للحصول على التفاصيل). ثم يستخدم طريقة التنبؤ للكائن غوسيانهم لإنتاج مجموعة من الدول النظام المتوقع. فإنه يأخذ أحدث قيمة ومن ثم يستخدم هذا ك "حالة خفية" الحالية، أو النظام:
أسلوب refine_orders ضروري على كافة الفئات الفرعية أبستراكتريسكماناجر - derived. في هذه الحالة يستدعي طريقة تحديد الأسلوب للعثور على دولة النظام. ثم يقوم بإنشاء كائن أوردريفنت الصحيح، ولكن بشكل حاسم في هذه المرحلة لا يعود عليه حتى الآن:
والنصف الأخير من هذه الطريقة هو المكان الذي يستند إليه منطق إدارة المخاطر في كشف النظام. وهو يتألف من فدرة مشروطة تقوم أولا بالتحقق من هوية النظام التي تم تحديدها.
إذا كانت حالة التقلب منخفضة # 0 فإنه يتحقق لمعرفة ما إذا كان الأمر هو "بوت" أو "سلد" العمل. إذا كان هو "بوت" (طويلة) النظام ثم ببساطة إرجاع أوردريفنت وتتبع حقيقة أن لديها الآن موقف طويل مفتوح. إذا كان "سلد" (إغلاق) العمل ثم يغلق الموقف إذا كان أحد مفتوح، وإلا فإنه يلغي النظام.
ولكن إذا كان من المتوقع أن يكون النظام حالة التقلبات العالية # 1 فإنه يتحقق أيضا من أي عمل قد حدث. أنها لا تسمح أي مواقف طويلة في هذه الدولة. فإنه يسمح فقط موقف وثيق أن يحدث إذا كان قد تم فتح موقف طويل في وقت سابق، وإلا فإنه يلغي ذلك.
هذا له تأثير عدم إنشاء موقف طويل جديد عندما يكون في النظام رقم 1. ومع ذلك، يمكن إغلاق موقف طويل مفتوح سابقا في النظام رقم 1.
قد يكون هناك نهج بديل هو إغلاق فورا أي موقف طويل مفتوح عند دخول النظام رقم 1، على الرغم من أن هذا يترك كممارسة للقارئ!
هذا يختتم رمز ريجيممريسكاناجر. كل ما تبقى هو لربط النصوص الثلاثة المذكورة أعلاه / وحدات معا من خلال كائن باكتست. يمكن العثور على التعليمات البرمجية الكاملة لهذا البرنامج النصي، كما هو الحال مع بقية الوحدات النمطية، في نهاية هذه المقالة.
في system_hmm_backtest. py يتم استيراد كل من إكسامبلريسكاناجر و ريجيممرسكاناجر. ويتيح ذلك "التحول" المباشر لمديري المخاطر عبر الاختبارات الخلفية لمعرفة كيفية تغيير النتائج:
في وظيفة تشغيل المهمة الأولى هي تحديد مم نموذج مخلل المسار، اللازمة ل ديسيرياليساتيون من النموذج. بعد ذلك يتم تحديد معالج السعر. من الضروري أن يتم تعيين العلم calc_adj_returns إلى ترو، الذي يحدد معالج الأسعار حتى لحساب وتخزين مصفوفة العائدات.
في هذه المرحلة يتم إنشاء موفينغايفيغركستراتيغي مع نافذة قصيرة من 10 أيام، نافذة طويلة من 30 يوما وكمية أساسية من أسهم سبي من 10،000.
وأخيرا هو hmm_model هو ديسيرياليسد من خلال المخلل ويتم إنشاء risk_manager. بقية السيناريو هي مشابهة للغاية ل باكتيستس الأخرى التي أجريت على الموقع، وبالتالي فإن التعليمات البرمجية الكاملة لن يكون موجزا إلا في نهاية المقال.
فمن مباشرة "الخروج" مديري المخاطر من خلال التعليق على خط ريجيممريسكاناجر، واستبدالها بالخط إكسامبلريسكاناجر ثم إعادة توجيه باكتست:
لتشغيل باكتست من الضروري فتح المحطة الطرفية واكتب ما يلي:
الإخراج المقتطع كما يلي:
نتائج الاستراتيجية.
مصاريف التحويلات.
وتعرض نتائج الاستراتيجية المعروضة هنا صافية من تكاليف المعاملات. يتم محاكاة التكاليف باستخدام إنتيراكتيف بروكرز الأسهم الأمريكية أسعار ثابتة للأسهم في أمريكا الشمالية. وهي تمثل بشكل معقول ما يمكن تحقيقه في استراتيجية تداول حقيقية.
لا يوجد فلتر كشف النظام.
اضغط على الصورة لعرض أكبر.
تم تصميم الاستراتيجية الأساسية لالتقاط الاتجاهات قصيرة الأجل في إتف سبي. وهو يضع نسبة شارب 0.37، مما يعني أنها تأخذ على قدر كبير من التقلبات من أجل توليد عائدات. في الواقع المعيار لديه نسبة شارب متطابقة تقريبا. إن الحد األقصى للتخفيض اليومي أكبر قليال من المؤشر المعياري، ولكنه ينتج زيادة طفيفة بمعدل سنوي مركب بلغ 6.41٪ مقارنة مع 5.62٪.
وفي جوهرها، تقوم الاستراتيجية بمؤشر الشراء والشراء. وهذا أمر متوقع نظرا لطريقة تصرفه. وهو مرشح متأخرة، وعلى الرغم من جعل 41 الصفقات، لا تجنب بالضرورة التحركات الهبوطية الكبيرة. والسؤال الرئيسي هو ما إذا كان مرشح النظام سيحسن الاستراتيجية أم لا.
هم نظام الكشف تصفية.
اضغط على الصورة لعرض أكبر.
لاحظ أن هذا التطبيق من مرشح النظام هو خارج العينة. وهذا هو، لم تستخدم بيانات العودة المستخدمة في باكتست في تدريب نموذج ماركوف المخفية.
وتنتج استراتيجية تصفية النظام نتائج مختلفة نوعا ما. والأهم من ذلك أنه يقلل من الحد الأقصى للاستراتيجية اليومية إلى ما يقرب من 24٪ مقارنة مع تلك التي تنتجها المعيار البالغ حوالي 56٪. هذا هو انخفاض كبير في "خطر". ومع ذلك فإن نسبة شارب لا تزداد بشكل كبير جدا عند 0.48 لأن الاستراتيجية لا تزال تحمل الكثير من التقلبات المرتبطة بها للحصول على تلك العوائد.
لم يشهد معدل النمو السنوي المركب تحسنا كبيرا بنسبة 6.88٪ مقارنة مع 6.41٪ من الإستراتيجية السابقة ولكن تم تخفيض مخاطره إلى حد ما.
ولعل المسألة الأكثر دهاء هي أن عدد الصفقات قد انخفض من 41 إلى 31. في حين أن الصفقات القضاء كانت التحركات الهبوطية الكبيرة (وبالتالي مفيدة) وهذا يعني أن الاستراتيجية يجعل أقل "الرهانات المتوقعة بشكل إيجابي"، وكذلك أقل الصلاحية الإحصائية.
وبالإضافة إلى ذلك، لم تتداول الاستراتيجية على الإطلاق من أوائل عام 2008 إلى منتصف عام 2009. وهكذا ظلت الاستراتيجية فعالة في السحب من العلامة المائية العالية السابقة خلال هذه الفترة. الفائدة الرئيسية، بطبيعة الحال، هو أنها لم تفقد المال عندما العديد من الآخرين سيكون!
ومن المرجح أن يؤدي تنفيذ إنتاج هذه الاستراتيجية إلى إعادة تدريب نموذج ماركوف المخفف بشكل دوري لأن احتمال الانتقال المتوقع للدولة من المستبعد جدا أن يكون ثابتا. في جوهرها، يمكن أن هم فقط التنبؤ التحولات الدولة على أساس توزيعات العائدات السابقة التي شهدتها. إذا كانت التغييرات في التوزيع (أي بسبب بعض البيئة التنظيمية الجديدة) فإن النموذج سيحتاج إلى إعادة تدريب لتقدير سلوكه. والمعدل الذي يتعين فيه تنفيذ ذلك هو بالطبع موضوع البحوث المستقبلية المحتملة!
مجرد بدء مع التداول الكمي؟
3 أسباب الاشتراك في قائمة البريد الإلكتروني كوانتستارت:
1. دروس التداول الكمي.
سوف تحصل على إمكانية الوصول الفوري إلى دورة مجانية 10-البريد الإلكتروني معبأة مع تلميحات ونصائح لمساعدتك على البدء في التداول الكمي!
2. جميع أحدث المحتوى.
كل أسبوع سوف نرسل لك التفاف جميع الأنشطة على كوانتستارت لذلك عليك أن لا يفوتون وظيفة مرة أخرى.
ريال مدريد، وقابلة للتنفيذ نصائح التداول الكمي مع أي هراء.

استخدام آلة التعلم لتحسين الاستراتيجية الخاصة بك.
في هذه المقالة، ونحن سوف تغطي ضبط حجم الموقف الخاص بك باستخدام خوارزمية الغابات عشوائي وتحويل الاستراتيجية الخاصة بك على الخروج باستخدام نموذج ماركوف المخفية. يمكنك نسخ ولصق رمز R لمحاولة ذلك بنفسك على الاستراتيجيات الخاصة بك. تفترض هذه المقالة لديك بالفعل استراتيجية. يمكنك تنزيل مجموعة البيانات التاريخية من استراتيجيتي هنا. إذا كنت تبحث عن استراتيجية جديدة، يمكنك بناء بسرعة واحدة في تر أي دي ونسخ الصفقات من جدول التجارة على لوحة القيادة إلى كسف. تأكد فقط من استخدام نفس تنسيق كسف أعلاه.
تحسين التحجيم الموقف.
موقف التحجيم هو جانب مهم، غالبا ما يتم تجاهلها من التداول. ينظر العديد من المتداولين إلى تحديد حجم الموقف كوسيلة لتقليل المخاطر الهبوطية دون رؤيتها كأداة لزيادة الأداء. في حين أنه من المهم عدم المخاطرة بكثير من الحساب الكلي الخاص بك على كل صفقة (عادة حوالي 2٪)، وهناك طرق أفضل بكثير من مجرد استخدام الكثير الثابتة، أو نسبة ثابتة، وحجم الموقف لكل التجارة.
واحد من القطار المنطقي من الفكر سيكون للدخول في موقف أكبر عندما تجارتك لديه احتمال أكبر للنجاح وموقف أصغر عندما كنت أقل تأكيدا حول التجارة. باستخدام غابة عشوائية، خوارزمية التعلم الآلي شعبية، يمكننا تقدير احتمال النجاح لكل التجارة وحجم وفقا لذلك (أبدا المخاطرة أكثر من 2٪ في التجارة بالطبع).
ذهبت إلى مزيد من التفاصيل حول استخدام غابة عشوائية لبناء استراتيجية بولينجر باند القائم على غبب / أوسد ويمكننا استخدام نهج مماثل لمساعدتنا في تحديد الحجم الأمثل للموقف.
نظرا لمجموعة البيانات الخاصة بي من الصفقات التاريخية (يمكنك تحميله هنا للعب حولها مع نفسك)، أولا نصنف كل التجارة إلى ثلاث فئات على أساس عودتها:
الصفقات الرابحة عوائد & غ؛ = 10 نقطة من الناحية المثالية نحن نريد أن ندخل في صفقات أكبر لهذه الصفقات الصفقات المحايدة العوائد & لوت؛ 10 نقطة وعوائد & غ؛ = -10 نقطة يمكننا استخدام هذا كموقفنا الافتراضي الموقف فقدان الصفقات عوائد & لوت؛ -10 نقطة نحن نريد أن ندخل في مواقف أصغر لهذه الصفقات.
بعد ذلك علينا أن نقرر ما هي المعلومات التي نريد استخدامها لاتخاذ قرارنا، والمعروف باسم المدخلات لهذا النموذج. هذا هو المجال الذي يجب أن تستخدم تجربتك مع الاستراتيجية الخاصة بك لاتخاذ قرار. هناك خياران مختلفان:
ظروف السوق الحالية المدخلات: التقلب أو الاتجاه أو السوق الجانبية، وما إلى ذلك. هذا مناسب إذا كانت استراتيجيتكم تميل إلى الأداء الجيد في بعض ظروف السوق. الأداء الأخير المدخلات: عوائد آخر الصفقات "n" إذا لاحظت أن استراتيجيتك تمر عبر فترات عندما فإنه يؤدي بشكل جيد والفترات عندما يكون أقل من اللازم، وهذا هو على الارجح الطريقة التي تريد أن تذهب. العوامل الخارجية المدخلات: إعلانات الأخبار الرئيسية، والعطل، الاثنين / الجمعة، وما إلى ذلك في حين أن بعض التجار سوف تجنب التداول حول هذه "العوامل الخارجية"، واختبار لمعرفة ما إذا كان هذا له ما يبرره هو عادة فكرة جيدة.
دعونا نحاول استخدام عائدات آخر 3 الصفقات لتحديد حجم الموقف من التجارة القادمة لدينا (يمكنك تحميل رمز R هنا). وسوف نضاعف حجم موقفنا إذا كان النموذج يتوقع أن التجارة المقبلة ستكون "التجارة الرابحة" (التي تعرف بأنها عائد أكثر من 10 نقاط) وخفضها إلى النصف إذا كانت تتوقع "خسارة التجارة" (عودة أقل من -10 والنقاط) والحفاظ على حجم الموقف الافتراضي لجميع "الصفقات المحايدة" (عوائد أقل من 10 نقطة ولكن أكبر من -10 نقطة). نقوم بتدريب النموذج على الثلثين الأولين من مجموعة البيانات (الصفقات التاريخية لدينا) ومن ثم اختباره في الثلث الأخير من الصفقات، لدينا اختبار خارج العينة:
نجاح باهر تمكنا من الحصول على زيادة بنسبة 20٪ في إجمالي العائد وزيادة عائدنا في التجارة من 2.8 نقطة إلى أكثر من 3.3 نقطة فقط باستخدام هذا النموذج الأساسي إلى حد ما. ليس سيئا على الإطلاق!
تشغيل / إيقاف الاستراتيجية الخاصة بك.
معرفة متى تبدأ وتوقف التداول يمكن أن يعني الفرق بين النجاح والفشل. ومع ذلك، تحديد متى "إيقاف" استراتيجية الخاص بك هو مهمة غير تافهة. مرة أخرى يمكننا استخدام خوارزمية التعلم الآلي شعبية، والمعروفة باسم نموذج ماركوف المخفية (هم)، لتحديد أنظمة السوق حيث استراتيجيتنا أقل من الأداء ويجب علينا أن نوقف التداول. (تحقق من منصبي على استخدام هم لتحديد ظروف السوق).
علينا أولا أن نقرر ما نريد استخدامه لتحديد "الأنظمة" المختلفة لأداء استراتيجيتنا. ونحن نسأل أنفسنا "ما هي العوامل التي ستخبرنا بأننا يجب أن نوقف تداول استراتيجيتنا؟"
دعونا نحاول استخدام حسابين على أساس متوسط ​​متحرك بسيط لمدة 10 (سما) لمنحنى أسهمنا. سوف ننظر إلى كل من معدل التغيير على مدى 5 فترات والمسافة بين الرصيد الحالي من منحنى الأسهم وخط سما. يجب أن يخبرنا معدل التغير (روك) إذا كان منحنى رأس المال لدينا في اتجاه هبوطي عام وأن المسافة بين الخطوط ينبغي أن تعطي لنا مقياسا أكثر حساسية لكيفية أداء الاستراتيجية.
الآن، استنادا إلى هذه المدخلات اثنين، ونحن سوف لنا نموذج 2-هم الدولة لاتخاذ قرار عندما ينبغي لنا "إيقاف" استراتيجيتنا (يمكنك تحميل رمز R هنا):
سننظر بعد ذلك في أداء الإستراتیجیة إذا توقفنا عن التداول عندما یقوم نموذج هم بتصنیف الإستراتیجیة في "النظام 2" (تأکد من أن تقوم بتحویل تصنیف هم إلی نقطة بیانات واحدة بحیث لا تستخدم سوى البیانات التي تکون متاحة فعلیا ):
مرة أخرى، ونحن نرى زيادة كبيرة في الأداء! وكنا قادرين على تحقيق زيادة بنسبة 13٪ على الرغم من انخفاض عدد الصفقات من 1259 إلى 726، أي ما يقرب من ضعف عائدنا من التجارة من 2.1 نقطة إلى 4.2 نقطة، وزيادة دقة لدينا من 60٪ إلى 67٪!
الجمع بين النماذج لدينا.
وأخيرا، دعونا نرى ما يحدث عندما نجمع بين نموذج التحجيم موقف الغابات عشوائي مع نموذج التحول نظام هم على مجموعة البيانات خارج العينة:
من خلال ضبط حجم موقفنا على أساس نموذج الغابات عشوائي ووقف التداول عندما كانت الظروف غير مواتية كنا قادرين على زيادة كبيرة في أداء استراتيجيتنا. وكان العائد النهائي أعلى بنسبة 44٪ على الرغم من وجود 133 صفقة أقل، مما أدى إلى عائدنا لكل تداول قفز من 2.7 نقطة إلى 5.7 نقطة ودقة زيادة من 64٪ إلى 70٪.
خوارزميات التعلم الآلي والتقنيات يمكن أن يكون سلاحا قويا في ترسانة الخاص بك عندما تبحث لتحسين أداء الاستراتيجية الخاصة بك.
في إينوفانس، ونحن نستخدم خوارزميات التعلم الآلي كوسيلة للكشف عن أنماط في المؤشرات التي تستخدمها للتجارة ولكن كما رأينا هنا، وهذا هو مجرد وسيلة واحدة للاستفادة من هذه الخوارزميات القوية لجعل لكم تاجر ناجح.

جيكو كوانت - التداول الكمي.
التداول الكمي، التحكيم الإحصائي، تعلم الآلة والخيارات الثنائية.
آخر الملاحة.
نماذج ماركوف المخفية & # 8211؛ الاتجاه التالي & # 8211؛ الجزء 4 من 4.
تحديث: كان هناك نظرة إلى الأمام علة في التعليمات البرمجية عند حساب أوتوسامبليلونغريتورنز و أوتوسامبلشورتريتورنز، وقد تم تصحيح هذا وخفض للأسف نسبة شارب من 3.08 إلى 0.857. هذا هو السبب في أنني دائما نشر التعليمات البرمجية لتوفير شفافية أكبر من غيرها من المواقع.
الجزء 3 من هذه السلسلة أظهرت كيفية تدريب هم على نموذج لعبة، وسوف تركز هذه الوظيفة على كيفية فعلا الذهاب نحو نمذجة بيانات الحياة الحقيقية. وسيتم وضع استراتيجية الاتجاه التالي لتداول S & أمب؛ P 500.
في معظم مشاكل التعلم التعلم الجهاز تحتاج إلى مجموعة من البيانات التدريبية التي لديها تسميات الطبقة. في حين أن لدينا بيانات السوق نحن دون & # 8217؛ ر تسميات فئة، المهمة الأولى هي لذلك لتوليد تسميات فئة لبيانات التدريب.
نحن نرید وضع استراتیجیة التوجیھ التالیة، نحتاج إلی اختیار أجزاء من السلسلة الزمنیة ل S & أمب؛ P 500 وقم بتسمیتھا إما في اتجاه صعودي أو نزولي (یمکن أیضا أن لا یکون لدیھا علامة اتجاه). من الناحية النظرية يمكنك القيام بذلك باليد، ولكن هذا لن يكون من الممكن القيام به على الكون كله من الأسهم. بدلا من ذلك يمكننا كتابة برنامج لتصنيف البيانات تلقائيا بالنسبة لنا، وكيف تصنيف البيانات كما هو الحال في الاتجاه يعتمد على تعريفك للاتجاه.
تظهر التصنيفات في الرسم البياني أدناه، كما أن السعر مع اللون الأخضر أسفله يعني أنه تم وضع علامة على إشارة طويلة، أي سعر باللون الأحمر أعلاه يعني أنه يحتوي على العلامة القصيرة.
في التعليمات البرمجية المقدمة تحقق لمعرفة ما إذا كان السعر الحالي هو أدنى سعر للفترات ال 10 المقبلة (متغير ندايلوكفورواردلوهيغ)، إذا كان ثم يذهب طويلا، إذا كان المتغير هو أعلى على مدى 10 فترات التالية ثم إغلاق طويلة. هل عكس للسراويل. انها الخام قليلا وأتصور أن هناك طرق أفضل بكثير لتصنيف الاتجاهات، قد يكون من المفيد وضع قيود تقلب على الاتجاهات (ينبغي أن نأمل تصفية من خلال وتحسين نسبة شارب).
بالإضافة إلى وضع العلامات على البيانات مجموعة من المتجهات & # 8220؛ الميزات & # 8221؛ يجب أن تتولد، يجب أن تحتوي على الميزات المتغيرات التي تكون مفيدة للكشف عن الاتجاهات. ناقلات الميزة التي استخدمتها لديها نسب مفتوحة لإغلاق السعر، مفتوحة لارتفاع الأسعار، مفتوحة لانخفاض الأسعار وجميع المجموعات الوسيطة. في كثير من الأحيان من المستحسن أن نمذجة ديناميات هذه المتغيرات ووضع التغيير فترة واحدة في هذه المتغيرات داخل ناقلات الميزة.
وتظهر الصورة أعلاه احتمال أن يكون كل نظام من أسواق السوق قد تلقى تدريبا على مجموعة البيانات نفسها. It is reassuring to see that the Long Regime became very unlikely during the crash of 2008.
واحدة من خصائص ممتازة من هم هو أنها تسمح النمذجة من الحالات التي لها مدة مختلفة ولكن هي من نفس الفئة. For example a trend might last for 10 days, and another trend might last for 35 days, we can pass both of these examples into the HMM and it will try and model the duration difference using the internal state transition probabilities.
13 أفكار حول & لدكو؛ Hidden Markov Models – الاتجاه التالي & # 8211؛ Part 4 of 4 ”
Thank you for sharing the code.
Unfortunately RHmm is deprecated. Perhaps it would be a good idea to adjust the code for depmixS4: cran. r-project/web/packages/depmixS4.
In general this package is even more powerful.
There is a bug in this code – I put random data in and still gave me out of sample sharpe ratio 2.5.
The lag is the wrong way.
Thank you, I have updated the article. My sharpe ratio has evaporated 🙁
This is why I hate R, it’s slow, not object orientated and most of all it’s too easy to introduce look forward bias!
Which is why I look forward to seeing this code converted to python. 🙂
Seriously, I’d love to see your machine-learning work as examples in python. And likely many other folks would too.
All the best and thanks for sharing,
What are you missing in R that is present in other languages that would prevent look ahead bias?
(It is object-oriented by the way, key words are generic functions, S3- and S4-objects)
I’d recommend breaking up the code a little bit more and adding in a bit more explanation per chunk of code. The horizontal scrolling also makes the code very difficult to read. I believe style guidelines recommend fewer than 80 characters per line.
Also, when using xts data, lag is a positive number, though I believe if not, it goes the other way.
Gekko – RHmm doesn’t seem to work anymore – any suggestion for a suitable replacement? Novice quant here so appreciate your advice….awesome blog btw!
Thank you for sharing the code. I think I finally got the ideia of HMM.
how did you specify the initial conditions?
Thanks for share the code, without it I probably won’t figure out how to use HMM.
Thank you for sharing the code. I have question: why do you fit two models with three states? To my mind that trains two models to find three latent states within either a long or short trend but does not tell you if the features are bullish or bearish. The LLH just gives you a measure on how well the three states fit the test features in one model or the other.

International Journal of Statistics and Probability.
Journal Metrics.
Google-based Impact Factor (2018): 1.95.
h-index (February 2017): 9.
i10-index (February 2017): 9.
h5-index (February 2017): 8.
h5-median(February 2017): 13.
Commodity Future Money Flows Trading Strategies Based on HMM.
This paper aims to establish a quantitative trading strategy of commodity futures based on market money flows. Firstly, we use Accumulation/Distribution index to respectively construct the CMF index which represents the ratio of total capital flows to total volume, and the CHO index which represents the exponential moving average of the cumulative capital flows. In view of the different flows of money between buyers and sellers, the establishment of the transaction net volume index VTL is used to describe respectively the flow of money between buyers and sellers. On this basis, the HMM model is introduced, and the above three kinds of indexes are combined to choose the time, at which we execute the stop-loss operation and risk control. Finally, all performance index values of the strategy are as follows: the rate of initial capital return is 193.77%, the annual rate of return is 99.86%, the maximum retracement rate is 15.73%, the Sharpe rate is 2.05 and the price earnings ratio is 4.01.
International Journal of Statistics and Probability ISSN 1927-7032(Print) ISSN 1927-7040(Online)
Copyright © Canadian Center of Science and Education.

Comments

Popular Posts