Tuesday 2 January 2018

كمية التداول ، استراتيجيات في ص - الجزء 1 من 3


30 نوفمبر 2016، 12:34 م قبل بضعة أشهر قارئ يشير لي من هذه الطريقة الجديدة لربط R و إكسيل. أنا don8217t أعرف كم من الوقت كان هذا حولها، ولكن أنا لم تأتي عبر ذلك و I8217ve لم أر أي مدونة أو مقال حول هذا الموضوع. لذلك قررت أن أكتب وظيفة كأداة حقا يستحق كل هذا العناء وقبل أي شخص يسأل، I8217m لا علاقة للشركة بأي شكل من الأشكال. يقف بيرت لمجموعة أدوات إكسيل R الأساسية. it8217s مجانا (المرخصة تحت V2 غل) وقد تم تطويره من قبل هيكلة البيانات ليك. في وقت كتابة النسخة الحالية من بيرت هو 1.07. ويمكن الاطلاع على مزيد من المعلومات هنا. من منظور أكثر تقنية، تم تصميم بيرت لدعم تشغيل وظائف R من خلايا جداول البيانات إكسل. في مصطلحات إكسيل، فإنه 8217s لكتابة الدالات المعرفة من قبل المستخدم (أودف) في R. في هذه المشاركة I8217m لن تظهر لك كيفية تفاعل R و إكسيل عبر بيرت. هناك دروس جيدة جدا هنا. هنا وهنا. بدلا من ذلك أريد أن تظهر لك كيف اعتدت بيرت لبناء برج 8220control 8221 لتداول بلدي. يتم إنشاء إشارات التداول الخاصة بي باستخدام قائمة طويلة من الملفات R ولكن أنا بحاجة إلى مرونة إكسيل لعرض النتائج بسرعة وكفاءة. كما هو مبين أعلاه بيرت يمكن أن تفعل هذا بالنسبة لي ولكن أريد أيضا أن خياط التطبيق لاحتياجاتي. من خلال الجمع بين قوة شمل، فبا، R و بيرت يمكنني إنشاء تطبيق جيد حتى الآن قوية في شكل ملف إكسيل مع الحد الأدنى من التعليمات البرمجية فبا. في نهاية المطاف لدي ملف إكسيل واحد يجمع كل المهام اللازمة لإدارة محفظتي: تحديث قاعدة البيانات، توليد إشارة، تقديم الطلبات الخ 8230 يمكن تقسيم نهجي أسفل في 3 خطوات أدناه: استخدام شمل لبناء القوائم المحددة المستخدم والأزرار في إكسيل ملف. القوائم المذكورة أعلاه وأزرار هي أساسا يدعو إلى وظائف فبا. تلك الوظائف فبا هي التفاف حول وظائف R المعرفة باستخدام بيرت. مع هذا النهج يمكنني الحفاظ على تمييز واضح بين جوهر بلدي رمز الاحتفاظ بها في R، سكل وبيثون وكل ما يستخدم لعرض وتنسيق النتائج المحفوظة في إكسيل، فبا أمبير شمل. في الأقسام التالية أقدم الشرط الأساسي لتطوير مثل هذا النهج ودليل خطوة بخطوة يوضح كيف يمكن استخدام بيرت لمجرد تمرير البيانات من R إلى إكسيل مع الحد الأدنى من التعليمات البرمجية فبا. 1 8211 تحميل وتثبيت بيرت من هذا الرابط. بمجرد اكتمال التثبيت يجب أن يكون لديك قائمة الوظائف الإضافية الجديدة في إكسيل مع الأزرار كما هو موضح أدناه. هذه هي الطريقة التي تحققت بيرت في إكسيل. 2 8211 قم بتنزيل وتثبيت محرر واجهة المستخدم المخصص. يسمح محرر واجهة المستخدم المخصصة بإنشاء قوائم وأزرار محددة من قبل المستخدم في شريط إكسيل. يتوفر إجراء خطوة بخطوة هنا. دليل خطوة بخطوة 1 8211 R كود: وظيفة R أدناه هي قطعة بسيطة جدا من التعليمات البرمجية لأغراض التوضيح فقط. ويحسب ويعيد البقايا من الانحدار الخطي. هذا هو ما نريد استرداد في إكسيل. حفظ هذا في ملف يسمى myRCode. R (أي اسم آخر على ما يرام) في دليل من اختيارك. 2 8211 function. R في بيرت. من إكسيل حدد الوظائف الإضافية - gt الصفحة الرئيسية الدليل وفتح الملف يسمى functions. R. في هذا الملف قم بلصق التعليمة البرمجية التالية. تأكد من إدراج المسار الصحيح. هذا هو مجرد مصادر في بيرت ملف R قمت بإنشائه أعلاه. ثم حفظ وإغلاق الملف functions. R. إذا كنت تريد إجراء أي تغيير على ملف R التي تم إنشاؤها في الخطوة 1 سيكون لديك لإعادة تحميله باستخدام زر بيرت 8220Reload ستارتوب File8221 من القائمة الوظائف الإضافية في إكسيل 3 8211 في إكسيل: إنشاء وحفظ ملف يسمى myFile. xslm (أي اسم آخر على ما يرام). هذا هو ملف تمكين ماكرو الذي تقوم بحفظه في الدليل الذي تختاره. مرة واحدة يتم حفظ الملف إغلاقه. 4 8211 افتح الملف الذي تم إنشاؤه أعلاه في محرر واجهة المستخدم المخصصة: بعد فتح الملف، الصق الرمز أدناه. يجب أن يكون لديك شيء من هذا القبيل في محرر شمل: أساسا هذه القطعة من رمز شمل بإنشاء قائمة إضافية (رترادر)، مجموعة جديدة (مجموعتي) وزر تعريف المستخدم (زر جديد) في الشريط إكسيل. بمجرد الانتهاء من 8217re، افتح myFile. xslm في إكسيل وأغلق محرر واجهة المستخدم المخصص. يجب أن نرى شيئا من هذا القبيل. 5 8211 فتح محرر فبا. في myFile. xlsm إدراج وحدة نمطية جديدة. قم بلصق التعليمة البرمجية أدناه في الوحدة النمطية التي تم إنشاؤها حديثا. يؤدي ذلك إلى محو النتائج السابقة في ورقة العمل قبل التعامل مع نتائج جديدة. 6 8211 انقر فوق زر جديد. الآن ارجع إلى جدول البيانات وفي القائمة رترادر ​​انقر فوق الزر 8220New Button8221. يجب أن تشاهد شيئا مثل ما يظهر أدناه. الدليل أعلاه هو نسخة أساسية جدا من ما يمكن تحقيقه باستخدام بيرت لكنه يظهر لك كيفية الجمع بين قوة عدة أدوات محددة لبناء التطبيق المخصص الخاص بك. من وجهة نظري مصلحة هذا النهج هو القدرة على الغراء معا R و إكسيل الواضح ولكن أيضا لتشمل عن طريق شمل (والدفعة) قطعة من التعليمات البرمجية من بايثون، سكل وأكثر من ذلك. هذا هو بالضبط ما كنت بحاجة إليه. وأخيرا أود أن يكون من الغريب أن نعرف ما إذا كان أي شخص لديه أي خبرة مع بيرت 19 أغسطس 2016، 9:26 صباحا عند اختبار استراتيجيات التداول نهج مشترك هو تقسيم مجموعة البيانات الأولية في البيانات عينة: الجزء من البيانات المصممة لمعايرة النموذج والخروج من بيانات العينة: جزء من البيانات المستخدمة للتحقق من صحة المعايرة والتأكد من أن الأداء الذي تم إنشاؤه في العينة سوف تنعكس في العالم الحقيقي. وكقاعدة عامة يمكن استخدام حوالي 70 من البيانات الأولية للمعايرة (أي في العينة) و 30 للتحقق من صحة (أي من العينة). ثم تساعد مقارنة البيانات داخل وخارج العينة على تحديد ما إذا كان النموذج قويا بما فيه الكفاية. ويهدف هذا المنصب إلى المضي قدما خطوة أخرى ويوفر طريقة إحصائية لتقرير ما إذا كان خارج العينة البيانات يتماشى مع ما تم إنشاؤه في العينة. في الرسم البياني أدناه تمثل المنطقة الزرقاء خارج أداء العينة لأحد استراتيجياتي. الفحص البصري البسيط يكشف عن ملاءمة جيدة بين أداء العينة وخارجها ولكن درجة الثقة لدي في هذا في هذه المرحلة ليس كثيرا وهذا هو القضية. والمطلوب حقا هو مقياس للتشابه بين مجموعات البيانات داخل وخارج العينة. ومن الناحية الإحصائية، يمكن ترجمة ذلك على أنه احتمال أن تأتي أرقام أداء العينة وخارجها من نفس التوزيع. هناك اختبار إحصائي غير بارامتري الذي يفعل بالضبط هذا: اختبار كروسكال واليس. ويمكن العثور على تعريف جيد لهذا الاختبار على جمع R-توتور 8220A من عينات البيانات مستقلة إذا كانت تأتي من السكان غير ذات الصلة والعينات لا تؤثر على بعضها البعض. باستخدام اختبار كروسكال واليس. یمکننا أن نقرر ما إذا کانت توزیعات السکان متطابقة دون افتراض أنھم یتبعون التوزیع الطبیعي. 8221 الفائدة المضافة لھذا الاختبار لا تفترض توزیع طبیعي. وتوجد اختبارات أخرى من نفس الطبيعة يمكن أن تتلاءم مع هذا الإطار. اختبار مان-ويتني-ويلكوكسون أو اختبارات كولموغوروف-سميرنوف يناسب تماما الإطار يصف هنا ولكن هذا خارج نطاق هذه المقالة لمناقشة إيجابيات وسلبيات كل من هذه الاختبارات. ويمكن الاطلاع على وصف جيد جنبا إلى جنب مع الأمثلة R هنا. هنا 8217s الكود المستخدم لتوليد المخطط أعلاه والتحليل: في المثال أعلاه في فترة العينة أطول من خارج الفترة عينة لذلك أنا عشوائيا إنشاء 1000 مجموعات فرعية من البيانات في العينة كل واحد منهم لها نفس الطول كما خارج من بيانات العينة. ثم اختبرت كل عينة فرعية في مقابل عينة من البيانات وسجلت قيم p. هذه العملية لا تخلق قيمة P واحدة لاختبار كروسكال واليس ولكن التوزيع يجعل التحليل أكثر قوة. في هذا المثال يكون متوسط ​​قيم p أعلى بكثير من الصفر (0.478) مما يشير إلى أنه يجب قبول الفرضية الصفرية: فهناك أدلة قوية على أن البيانات داخل وخارج العينة تأتي من نفس التوزيع. كالمعتاد ما هو عرض في هذا المنصب هو مثال لعبة أن خدوش فقط على سطح المشكلة ويجب أن تكون مصممة لتلبية الاحتياجات الفردية. ومع ذلك أعتقد أنه يقترح إطارا إحصائيا للاهتمام والعقلاني لتقييم نتائج العينة. هذا المقال مستوحى من الورقتين التاليتين: فيجير ألكسندر، شميل سوان (2007)، آثار وظائف التحسين المختلفة على الخروج من عينة أداء استراتيجيات التداول المتطورة وراثيا، والتنبؤ مؤتمر الأسواق المالية فيجير ألكسندر، شميل سوان (2010)، و عملية التحسين لتحسين إنوت من عينة الاتساق، حالة سوق الأسهم، مؤتمر مورغان كازينوف الأسهم الكمية، لندن أكتوبر 2010 13 ديسمبر 2015، 2:03 بعد الظهر القيام البحوث الكمية ينطوي على الكثير من البيانات الطحن واحد يحتاج إلى بيانات نظيفة وموثوق بها إلى تحقيق ذلك. ما هو مطلوب حقا هو البيانات النظيفة التي يمكن الوصول إليها بسهولة (حتى من دون اتصال بالإنترنت). وكانت الطريقة الأكثر فعالية للقيام بذلك بالنسبة لي للحفاظ على مجموعة من ملفات كسف. من الواضح أن هذه العملية يمكن التعامل معها في نواح كثيرة ولكن وجدت العمل الإضافي فعالة جدا وبسيطة للحفاظ على الدليل حيث يمكنني تخزين وتحديث ملفات كسف. لدي ملف كسف واحد لكل أداة ويسمى كل ملف بعد الصك أنه يحتوي على. والسبب في أنني تفعل ذلك هو شقين: أولا، أنا don8217t تريد تحميل البيانات (السعر) من ياهو، جوجل الخ 8230 في كل مرة أريد أن اختبار فكرة جديدة ولكن الأهم من ذلك مرة واحدة حددت وتحديد المشكلة، وأنا don8217t تريد أن تضطر إلى تفعل ذلك مرة أخرى في المرة القادمة أحتاج نفس الصك. بسيطة لكنها فعالة جدا حتى الآن. يتم تلخيص العملية في الرسم البياني أدناه. في كل ما يلي، أفترض أن البيانات تأتي من ياهو. وسوف يكون رمز لتعديل البيانات من جوجل، كواندل الخ 8230 وبالإضافة إلى ذلك أقدم عملية تحديث بيانات الأسعار اليومية. سيكون الإعداد مختلفا عن بيانات التردد الأعلى والنوع الآخر من مجموعات البيانات (أي مختلف عن الأسعار). 1 8211 تحميل البيانات الأولية (listOfInstruments. R أمب HistoryData. R) الملف listOfInstruments. R هو ملف يحتوي فقط على قائمة بجميع الأدوات. إذا كان أداة isn8217t جزء من قائمتي (أي ملف كسف في مجلد البيانات) أو إذا كنت تفعل ذلك للمرة الأولى لديك لتحميل مجموعة البيانات التاريخية الأولية. المثال أدناه ينزل مجموعة من صناديق المؤشرات المتداولة يوميا من ياهو فينانس إلى يناير 2000 وتخزين البيانات في ملف كسف. 2 8211 تحديث البيانات الموجودة (updateData. R) يبدأ الرمز التالي من الملفات الموجودة في المجلد المخصص ويقوم بتحديث كل واحد منهم بعد الآخر. أنا عادة تشغيل هذه العملية كل يوم إلا عندما I8217m في عطلة. لإضافة أداة جديدة، ببساطة تشغيل الخطوة 1 أعلاه لهذا الصك وحده. 3 8211 إنشاء ملف دفعي (updateDailyPrices. bat) جزء مهم آخر من المهمة إنشاء ملف دفعي يقوم بأتمتة عملية التحديث أعلاه (I8217m مستخدم ويندوز). هذا يتجنب فتح رستوديو وتشغيل التعليمات البرمجية من هناك. يتم وضع التعليمات البرمجية أدناه على ملف. bat (المسار يجب أن يتم تعديله مع إعداد القارئ 8217s). لاحظ أنني أضفت ملف الإخراج (updateLog. txt) لتتبع التنفيذ. العملية المذكورة أعلاه بسيطة للغاية لأنها تصف فقط كيفية تحديث بيانات الأسعار اليومية. I8217ve تم استخدام هذا لفترة من الوقت، وأنها كانت تعمل بسلاسة جدا بالنسبة لي حتى الآن. لمزيد من البيانات المتقدمة أندور ترددات أعلى، يمكن للأشياء الحصول على أكثر صعوبة. كالمعتاد أي تعليقات نرحب مارس 23، 2015، 8:55 بيإم عندما يتعلق الأمر بإدارة محفظة الأسهم مقابل معيار المشكلة هي مختلفة جدا عن تحديد استراتيجية العودة المطلقة. في السابق يجب أن تعقد المزيد من الأسهم مما كانت عليه في وقت لاحق حيث لا يمكن الاحتفاظ بأي أسهم على الإطلاق إذا لم تكن هناك فرصة جيدة بما فيه الكفاية. والسبب في ذلك هو خطأ التتبع. ويعرف هذا على أنه الانحراف المعياري لعائد المحفظة مطروحا منه العائد المرجعي. وكلما قلت المخزونات مقابل مقياس مرجعي كلما زاد خطأ التتبع (مثل ارتفاع المخاطر). التحليل التالي هو مستوحى إلى حد كبير من كتاب 8220Active إدارة المحافظ 8221 من قبل غرينولد أمب كان. هذا هو الكتاب المقدس لأي شخص مهتم في تشغيل محفظة ضد المعيار. وأنا أشجع بقوة أي شخص لديه مصلحة في هذا الموضوع لقراءة الكتاب من البداية إلى النهاية. It8217s مكتوبة بشكل جيد للغاية ويضع أسس إدارة محفظة نشطة منهجية (ليس لدي أي انتماء إلى المحرر أو المؤلفين). 1 8211 تحليل عامل هنا we8217re تحاول ترتيب بأكبر قدر ممكن الأسهم في عالم الاستثمار على أساس العودة إلى الأمام. العديد من الناس جاءوا مع العديد من الأدوات و تم تطوير عدد لا يحصى من تلك الأدوات لتحقيق ذلك. في هذا المنصب، أركز على مقياسين بسيطين ومستخدمين على نطاق واسع: معامل المعلومات (إيك) وعائد الكميات (ريال قطري). 1.1 معامل المعلومات 8211 يجب أن يحدد المحلل الأفق للعوائد الآجلة وهو 8217s دالة لاستراتيجية دوران 8217s وتحلل ألفا (كان هذا موضوع بحث موسع). من الواضح أن المراآز يجب أن تكون على أعلى مستوى ممكن من حيث القيمة المطلقة. بالنسبة للقارئ الحريص، في كتاب غرينولد أمب كان الصيغة التي تربط نسبة المعلومات (إر) و إيك تعطى: مع اتساع عدد من الرهانات المستقلة (الحرف). وتعرف هذه الصيغة بالقانون الأساسي للإدارة الفعالة. المشكلة هي أنه في كثير من الأحيان، وتحديد اتساع بدقة ليست سهلة كما يبدو. 1.2 8211 كوانتيز ريتورن من أجل الحصول على تقدير أدق لعامل القدرة التنبؤية له 8217s اللازمة للانتقال خطوة أخرى، ثم تجميع الأسهم حسب كمية قيم العوامل ثم تحليل متوسط ​​العائد الآجل (أو أي مقياس ميل مركزي آخر) لكل من تلك quantiles. فائدة هذه الأداة هي واضحة. يمكن أن يكون لعامل إيك جيد ولكن قد تنحصر قدرته التنبؤية على عدد قليل من الأسهم. هذا ليس جيدا كما مدير محفظة سيكون لديك لاختيار الأسهم داخل الكون كله من أجل تلبية قيود خطأ التتبع. وتتميز عودة الكميات الجيدة بعلاقة رتيبة بين الكميات الفردية والعوائد الآجلة. جميع الأسهم في مؤشر SampP500 (في وقت كتابة هذا التقرير). من الواضح أن هناك تحيز سفينة البقاء على قيد الحياة: قائمة الأسهم في المؤشر قد تغيرت بشكل ملحوظ بين بداية ونهاية فترة العينة، ومع ذلك فإنه 8217s جيدة بما فيه الكفاية لأغراض التوضيح فقط. التعليمات البرمجية أدناه تحميل أسعار الأسهم الفردية في SampP500 بين يناير 2005 واليوم (يستغرق بعض الوقت) ويحول أسعار الخام في العودة على مدى الأشهر ال 12 الماضية والشهر الماضي. الأول هو عاملنا، وسيتم استخدام هذا الأخير كمقياس العودة إلى الأمام. وفيما يلي رمز لحساب معامل المعلومات وعودة الكميات. لاحظ أنني استخدمت الخماسي في هذا المثال ولكن يمكن استخدام أي طريقة تجميع أخرى (تيرسيلز، ديسيلز etc.8230). فإنه يعتمد حقا على حجم العينة، ما تريد التقاط والطقس تريد أن يكون لمحة عامة أو التركيز على ذيول التوزيع. ولتقدير العائدات في كل خمسية، استخدم الوسيط كمقدر للنزعة المركزية. هذا المقياس أقل حساسية بكثير من القيم المتطرفة من الوسط الحسابي. وأخيرا رمز لإنتاج الرسم البياني كوانتيز ريتورن. 3 8211 كيفية استغلال المعلومات أعلاه في الرسم البياني أعلاه Q1 هو أدنى 12 شهرا الماضية العودة و Q5 أعلى. هناك زيادة رتيبة تقريبا في العائد الكمي بين Q1 و Q5 مما يشير بوضوح إلى أن الأسهم التي تندرج في Q5 تفوق تلك التي تقع في الربع الأول بنحو 1 في الشهر. هذا مهم جدا وقوية لمثل هذا عامل بسيط (ليس حقا مفاجأة على الرغم 8230). لذلك هناك فرص أكبر للتغلب على المؤشر من خلال زيادة الوزن للأسهم المتساقطة في Q5 وتخفيض الوزن لتلك التي تقع في الربع الأول بالنسبة إلى المؤشر المعياري. إيك من 0.0206 قد لا يعني الكثير في حد ذاته لكنه 8217s يختلف اختلافا كبيرا عن 0 ويشير إلى قوة تنبؤية جيدة من الأشهر ال 12 الماضية يعود عموما. يمكن تقييم اختبارات الأهمية الرسمية ولكن هذا خارج نطاق هذه المقالة. 4 8211 القيود العملية الإطار السابق ممتاز لتقييم جودة الاستثمارات 8217s الجودة ولكن هناك عدد من القيود العملية التي يجب معالجتها لتنفيذ الحياة الحقيقية: إعادة التوازن. في الوصف أعلاه، يفترض 8217s أنه في نهاية كل شهر يتم إعادة توازن محفظة بالكامل. وهذا يعني أن جميع الأسهم التي تندرج في الربع الأول من هذا العام تعاني من نقص الوزن، وأن جميع الأسهم التي تندرج في Q5 هي زيادة في الوزن مقارنة بالمؤشر المعياري. هذا ليس دائما ممكنا لأسباب عملية: بعض الأسهم قد تكون مستبعدة من عالم الاستثمار، هناك قيود على الصناعة أو وزن القطاع، وهناك قيود على دوران الخ 8230 تكاليف المعاملات. هذا لم يؤخذ في الاعتبار في التحليل أعلاه وهذا هو فرملة خطيرة لتنفيذ الحياة الحقيقية. وعادة ما يتم تنفيذ اعتبارات دوران في الحياة الحقيقية في شكل عقوبة على جودة عامل. معامل النقل. هذا هو امتداد للقانون الأساسي للإدارة النشطة ويخفف من افتراض نموذج غرينولد 8217s أن المديرين لا تواجه أي قيود مما يمنعهم من ترجمة رؤى استثماراتهم مباشرة إلى الرهانات محفظة. وأخيرا، I8217m دهشتها ما يمكن تحقيقه في أقل من 80 سطر من التعليمات البرمجية مع R8230 كالمعتاد أي تعليقات ترحيب 14 مارس 2014، 1:07 م السؤال يجب أن يسأل دائما نفسه عند استخدام المؤشرات الفنية هو ما سيكون هدفا معايير لتحديد مؤشرات المؤشرات (على سبيل المثال لماذا استخدام مؤشر القوة النسبية 14 يوما بدلا من 15 أو 20 يوما). الخوارزميات الجينية (غا) هي أدوات مناسبة تماما للإجابة على هذا السؤال. في هذا المنصب I8217ll تظهر لك كيفية إعداد المشكلة في R. قبل أن أبدأ تذكير المعتاد: ما أقدم في هذا المنصب هو مجرد مثال لعبة وليس دعوة للاستثمار. انها ليست استراتيجية الانتهاء إما ولكن فكرة البحث التي تحتاج إلى مزيد من البحث، وضعت ومصممة خصيصا للاحتياجات الفردية. ما هي الخوارزميات الجينية وصف أفضل من غا I جاء عبر يأتي من سايبرناتيك تجارة كتاب موراي A. روجيرو. خوارزميات 8220Genetic اخترع من قبل جون هولاند في منتصف 1970 لحل المشاكل الأمثل الصعب. يستخدم هذا الأسلوب الانتقاء الطبيعي، والبقاء على قيد الحياة من fittest8221. تتبع العملية العامة الخطوات التالية: ترميز المشكلة إلى الكروموسومات باستخدام الترميز، قم بتطوير وظيفة اللياقة البدنية لاستخدامها في تقييم كل قيمة من الكروموسومات 8217s في حل مشكلة معينة تهيئة عدد من الكروموسومات تقييم كل كروموسوم في السكان إنشاء كروموسومات جديدة عن طريق التزاوج بين اثنين الكروموسومات. ويتم ذلك عن طريق كتم وإعادة ربط اثنين من الآباء والأمهات لتشكيل طفلين (يتم اختيار الآباء عشوائيا ولكن منحازة من قبل لياقتهم) تقييم الكروموسوم الجديد حذف عضو من السكان الذي هو أقل ملاءمة من الكروموسوم الجديد وإدراج الكروموسوم الجديد في السكان . إذا تم الوصول إلى معايير التوقف (الحد الأقصى لعدد الأجيال، ومعايير اللياقة البدنية جيدة بما فيه الكفاية 8230) ثم العودة أفضل كروموسوم بدلا من الذهاب إلى الخطوة 4 من وجهة نظر التداول غا مفيدة جدا لأنها جيدة في التعامل مع مشاكل غير الخطية للغاية. ومع ذلك فإنها تظهر بعض الميزات السيئة التي تستحق الذكر: أكثر المناسب: هذه هي المشكلة الرئيسية و it8217s وصولا الى المحلل لاقامة المشكلة بطريقة تقلل من هذا الخطر. وقت الحوسبة. إذا تم تعريف المشكلة 8217t بشكل صحيح، يمكن أن يكون طويلا للغاية للوصول إلى حل لائق والتعقيد يزيد أضعافا مضاعفة مع عدد من المتغيرات. وبالتالي ضرورة اختيار بعناية المعلمات. هناك العديد من حزم R التعامل مع غا، اخترت استخدام الأكثر شيوعا واحد: رجنود أسعار الإغلاق اليومي لمعظم صناديق الاستثمار المتداولة السائلة من ياهو المالية العودة إلى يناير 2000. في عينة الفترة من يناير 2000 إلى ديسمبر 2010. وخروج من تبدأ فترة العينة في يناير 2011. المنطق هو كما يلي: يتم تحسين وظيفة اللياقة البدنية على مدى فترة العينة للحصول على مجموعة من المعلمات المثلى للمؤشرات الفنية المحددة. ثم يتم تقييم أداء تلك المؤشرات في فترة خارج العينة. ولكن قبل القيام بذلك، يجب اختيار المؤشرات الفنية. سوق الأسهم يظهر اثنين من الخصائص الرئيسية التي هي مألوفة لأي شخص لديه بعض الخبرة التجارية. الزخم على المدى الطويل وعكس المدى القصير. ويمكن ترجمة هذه الميزات على أساس المؤشرات الفنية من خلال: تحريك المتوسطات عبر و رسي. ويمثل هذا مجموعة من 4 معلمات: فترات العودة إلى الوراء للمتوسطات المتحركة طويلة وقصيرة الأجل، فترة نظر إلى الوراء لمؤشر القوة النسبية ومؤشر القوة النسبية. مجموعات من المعلمات هي الكروموسومات. العنصر الرئيسي الآخر هو وظيفة اللياقة البدنية. قد نرغب في استخدام شيء مثل: الحد الأقصى للعائد أو نسبة شارب أو الحد الأدنى لمعدل السحب. في ما يلي، اخترت لتعظيم نسبة شارب. تنفيذ R هو مجموعة من 3 وظائف: فيتنيسفونتيون. يحدد وظيفة اللياقة البدنية (على سبيل المثال، نسبة شارب القصوى) لاستخدامها في ترادستاتيستيكش محرك غا. ملخص الإحصائيات التجارية للداخل والخروج من فترات العينة لأغراض المقارنة الجينود. محرك غا من حزمة رجنود وظيفة جنود معقدة نوعا ما ولكن I8217m لن شرح ما يعني كل معلمة كما أريد للحفاظ على هذا المنصب القصير (والوثائق جيدة حقا). في الجدول أدناه أعرض لكل صك المعلمات المثلى (مؤشر القوة النسبية فترة العودة إلى الوراء، عتبة مؤشر القوة النسبية، المتوسط ​​المتحرك على المدى القصير، والمتوسط ​​المتحرك على المدى الطويل) جنبا إلى جنب مع داخل وخارج إحصاءات التجارة العينة. قبل التعليق على النتائج المذكورة أعلاه، أريد أن أشرح بضع نقاط مهمة. لمطابقة المنطق المحدد أعلاه، ربطت المعلمات للتأكد من أن فترة النظر إلى الوراء للمتوسط ​​المتحرك على المدى الطويل تكون دائما أطول للمتوسط ​​المتحرك الأقصر. كما قيدت المحسن لاختيار الحلول فقط مع أكثر من 50 حرفا في فترة العينة (على سبيل المثال، دلالة إحصائية). وعموما فإن النتائج خارج العينة لا تزال مثيرة للإعجاب. عوائد منخفضة حتى لو كان عدد من الصفقات الصغيرة لجعل النتيجة كبيرة حقا. ومع ذلك هناك 8217s خسارة كبيرة من الكفاءة بين والخروج من فترة العينة لليابان (إوج) التي من المرجح جدا يعني أكثر من المناسب. تهدف هذه الوظيفة إلى إعطاء القارئ الأدوات اللازمة لاستخدام غا بشكل صحيح في إطار التداول الكمي. مرة أخرى، It8217s مجرد مثال الذي يحتاج إلى مزيد من الصقل. وهناك بعض التحسينات المحتملة لاستكشاف ما يلي: وظيفة اللياقة البدنية. وتعظيم نسبة شارب تبسيط جدا. ومن شأن وظيفة 8220smarter8221 بالتأكيد تحسين الخروج من نموذج نموذج إحصاءات التجارة. ونحن نحاول التقاط نمط واضح جدا. وهناك حاجة إلى مزيد من البحوث نمط العمق. الاقوي . هناك العديد من الطرق لتحسين طريقة إجراء التحسين. وهذا من شأنه أن يحسن من سرعة الحساب وعقلانية النتائج. تتوفر التعليمات البرمجية المستخدمة في هذا المنصب على مستودع جيست. كالمعتاد أي تعليقات ترحيب 28 فبراير 2014، 3:52 بعد الظهر هناك مجموعة هائلة من الأدب على حد سواء الأكاديمية والتجريبية حول توقعات السوق. في معظم الوقت أنه يمزج اثنين من ميزات السوق: حجم والتوجيه. في هذه المقالة أريد أن أركز على تحديد اتجاه السوق فقط. والهدف الذي أضعه بنفسي هو تحديد ظروف السوق عندما تكون الاحتمالات متحيزة بشكل كبير نحو سوق أعلى أو لأسفل. هذا المنصب يعطي مثالا على كيفية استخدام كارت (التصنيف والانحدار الأشجار) في هذا السياق. قبل أن أبدأ تذكير المعتاد: ما أقدمه في هذا المنصب هو مجرد مثال لعبة وليس دعوة للاستثمار. انها ليست استراتيجية الانتهاء إما ولكن فكرة البحث التي تحتاج إلى مزيد من البحث، وضعت ومصممة خصيصا للاحتياجات الفردية. 1 8211 ما هو كارت والسبب في استخدامه من الإحصاءات، كارت هي مجموعة من التقنيات للتصنيف والتنبؤ. وتهدف هذه التقنية إلى إنتاج قواعد تتنبأ بقيمة متغير النتيجة (الهدف) من القيم المعروفة للمتغيرات (التفسيرية). هناك العديد من التطبيقات المختلفة ولكنهم جميعا يتقاسمون خصائص عامة وهذا ما تهتم به. من ويكيبيديا، خوارزميات لبناء أشجار القرار عادة ما تعمل من أعلى إلى أسفل، عن طريق اختيار متغير في كل خطوة أن أفضل تقسيم مجموعة من العناصر. خوارزميات مختلفة تستخدم مقاييس مختلفة لقياس 8220best8221. ويقيس هذا عموما تجانس المتغير المستهدف داخل المجموعات الفرعية. يتم تطبيق هذه المقاييس على كل مجموعة فرعية مرشحة، ويتم تجميع القيم الناتجة (على سبيل المثال المتوسط) لتوفير مقياس لجودة الانقسام. منهجية كارت يعرض بعض الخصائص التي هي مناسبة جدا لتحليل السوق: غير حدودي. كارت يمكن التعامل مع أي نوع من التوزيعات الإحصائية غير الخطية. كارت يمكن التعامل مع مجموعة كبيرة من التبعية بين المتغيرات (على سبيل المثال لا تقتصر على العلاقات الخطية) قوية إلى القيم المتطرفة هناك العديد من حزم R التعامل مع التقسيم العودية، وأنا استخدم هنا ربرت لتقدير الأشجار و rpart. plot لأشجار الرسم. 2 8211 البيانات أمب تجربة تصميم أسعار أوهلك اليومية لمعظم صناديق الاستثمار المتداولة السائل من يناير 2000 إلى ديسمبر 2013 المستخرجة من جوجل المالية. في فترة العينة من يناير 2000 إلى ديسمبر 2010 بقية البيانات هي خارج فترة العينة. قبل تشغيل أي نوع من التحليل يجب إعداد مجموعة البيانات للمهمة. المتغير المستهدف هو العائد الآجل الأسبوعي لصندوق الاستثمار المتحد الذي تم تعريفه على أنه حالتين من نتائج العالم (صعودا أو هبوطا). إذا عادت إلى الأمام أسبوعيا غ 0 ثم السوق في الدولة أوب، أسفل حالة خلاف ذلك المتغيرات التفسيرية هي مجموعة من المؤشرات الفنية المستمدة من البيانات اليومية الأولية أوهلك. ويمثل كل مؤشر سلوك سوق موثقا جيدا. من أجل الحد من الضوضاء في البيانات ومحاولة تحديد علاقات قوية، ويعتبر كل متغير مستقل أن يكون لها نتيجة ثنائية. التقلب (VAR1). وعادة ما يرتبط التقلبات العالية بسوق هبوطي وتقلب منخفض مع ارتفاع السوق. ويعرف التقلب على أنه متوسط ​​المدى الحقيقي أتر 20 يوما (متوسط ​​المدى الحقيقي) إلى متوسطه المتحرك (ما). إذا الخام أتر غ ما ثم VAR1 1، وإلا VAR1 -1. الزخم على المدى القصير (VAR2). ويظهر سوق الأسهم سلوك الزخم على المدى القصير الذي تم التقاطه هنا بمتوسطات متحركة بسيطة مدتها 5 أيام. إذا كان السعر غ سما ثم VAR2 1 آخر VAR2 -1 الزخم على المدى الطويل (VAR3). سوق الأسهم يظهر سلوك الزخم على المدى الطويل التي تم التقاطها هنا من خلال 50 يوما المتوسطات المتحركة البسيطة (لما). إذا كان السعر غ لما ثم VAR3 1 آخر VAR3 -1 انعكاس على المدى القصير (VAR4). يتم التقاط هذا من قبل كترد الذي يقف على مقربة النسبية إلى المدى اليومي وتحسب على النحو التالي:. إذا كترد غ 0.5، ثم VAR4 1 آخر VAR4 -1 نظام الترابط الذاتي (VAR5). يميل سوق الأسهم إلى مرور فترات من أنظمة الترابط السلبي والإيجابي. إذا عادت الارتباط الذاتي على مدى الأيام الخمسة الماضية غ 0 ثم VAR5 1 آخر VAR5 -1 أضع أدناه مثال شجرة مع بعض التفسيرات في الشجرة أعلاه، المسار للوصول إلى العقدة 4 هو: VAR3 gt0 (المدى الطويل الزخم غ 0) و VAR4 غ 0 (كرتر غ 0). يشير المستطيل الأحمر إلى أن هذا هو ورقة دون (مثل عقدة الطرفية) مع احتمال 58 (1 8211 1). ويعني ذلك من حيث السوق أنه إذا كان الزخم على المدى الطويل صعودا و كترد هو غ 0.5 فإن احتمال العائد الإيجابي الأسبوع المقبل هو 42 استنادا إلى بيانات عينة العينة. 18 يشير إلى نسبة مجموعة البيانات التي تقع في العقدة الطرفية (مثل الورقة). هناك العديد من الطرق لاستخدام النهج أعلاه، اخترت لتقدير والجمع بين جميع الأشجار الممكنة. من البيانات في العينة، وجمع كل الأوراق من جميع الأشجار الممكنة وأنا جمعها في مصفوفة. هذا هو 8220rules matrix8221 إعطاء احتمال الاسبوع المقبل بيينغ أوب أو أسفل. أطبق القواعد الواردة في المصفوفة أعلاه على بيانات العينة (كانون الثاني / يناير 2011 8211 كانون الأول / ديسمبر 2013) وأقارن النتائج بالنتيجة الحقيقية. المشكلة مع هذا النهج هو أن نقطة واحدة (الأسبوع) يمكن أن تقع في عدة قواعد وحتى تنتمي إلى أوب و دون قواعد في وقت واحد. لذلك أطبق نظام التصويت. لأسبوع معين أختصر جميع القواعد التي تنطبق على هذا الأسبوع إعطاء 1 لقاعدة أوب و -1 لقاعدة أسفل. إذا كان المبلغ أكبر من 0 يتم تصنيف الأسبوع على أنه أوب، إذا كان المبلغ سلبيا أنه 8217s أسبوع لأسفل وإذا كان المبلغ يساوي 0 لن يكون هناك موقف اتخذت هذا الأسبوع (عودة 0) يتم تطبيق المنهجية المذكورة أعلاه إلى مجموعة من صناديق الاستثمار المتداولة السائلة جدا. أنا مؤامرة دون منحنى الأسهم من العينة جنبا إلى جنب مع استراتيجية شراء وعقد خلال نفس الفترة. النتائج الأولية تبدو مشجعة حتى لو كانت نوعية النتائج تختلف اختلافا كبيرا من قبل الصك. ومع ذلك هناك غرفة كبيرة للتحسين. أضع أدناه بعض الاتجاهات لمزيد من التحليل المسار الأمثل. الخوارزمية المستخدمة هنا لتحديد الأشجار هو الأمثل في كل الانقسام ولكن itn8217t ضمان الأمثل للمسار. ومن المؤكد أن إضافة مقياس لقياس مدى أمثل المسار سيؤدي إلى تحسين النتائج المذكورة أعلاه. متغيرات أخرى. لقد اخترت المتغيرات التفسيرية فقط على أساس الخبرة. ومن المرجح جدا أن هذا الخيار ليست جيدة ولا الأمثل. منهجية باكتست. اعتدت بسيطة داخل وخارج العينة المنهجية. في باكتست أكثر رسمية أود بدلا من ذلك استخدام نافذة المتداول أو توسيع داخل وخارج عينة الفترات الفرعية (على سبيل المثال المشي إلى الأمام تحليل) كالمعتاد، أي تعليقات ولكمزوفسفولتستينغ من استراتيجيات التداول حسابي، الجزء 1 تستمر هذه المقالة سلسلة من التداول الكمي ، والتي بدأت مع دليل 8217s المبتدئين وتحديد الاستراتيجية. كل من هذه أطول، المواد أكثر انخراطا كانت شعبية جدا لذلك I8217ll الاستمرار في هذا الوريد وتوفير التفاصيل حول موضوع باكتستينغ استراتيجية. الخوارزمية باكتستينغ يتطلب معرفة العديد من المجالات، بما في ذلك علم النفس، والرياضيات، والإحصاءات، وتطوير البرمجيات و ماركيتكسشانج المجهرية. أنا cann8217t نأمل أن تغطي كل تلك المواضيع في مقال واحد، لذلك I8217m الذهاب إلى تقسيمها إلى قطعتين أو ثلاث قطع أصغر. ما سوف نناقش في هذا القسم I8217ll تبدأ بتحديد باكتستينغ وبعد ذلك سوف تصف أساسيات كيفية القيام بها. ثم سأوضح على التحيزات التي تطرقنا إليها في دليل 8217s للمبتدئين للتجارة الكمية. بعد ذلك سوف أقدم مقارنة بين مختلف الخيارات المتاحة باكتستينغ البرمجيات. في مقالات لاحقة سوف ننظر في تفاصيل تنفيذ الاستراتيجيات التي غالبا ما تذكر بالكاد أو تجاهلها. وسوف ننظر أيضا في كيفية جعل عملية باكتستينغ أكثر واقعية من خلال تضمين الخصوصيات من التبادل التجاري. ثم سنناقش تكاليف المعاملات وكيفية تصميمها بشكل صحيح في إعداد باكتست. سوف ننتهي بمناقشة حول أداء باكتيستس لدينا وأخيرا تقديم مثال على استراتيجية مشتركة الكميات، والمعروفة باسم التجارة أزواج يعني عادت. Let8217s تبدأ من خلال مناقشة ما باكتستينغ هو ولماذا علينا أن ننفذها في التداول الخوارزمية لدينا. ما هو التداول باختصار خوارزمية تقف بعيدا عن أنواع أخرى من فئات الاستثمار لأننا يمكن أن توفر بشكل أكثر موثوقية التوقعات حول الأداء المستقبلي من الأداء في الماضي، نتيجة لتوافر البيانات وفيرة. وتعرف العملية التي يتم بها هذا الإجراء ب "الاختبار المسبق". بعبارات بسيطة، يتم تنفيذ باكتستينغ من خلال تعريض خوارزمية الاستراتيجية الخاصة بك إلى تيار من البيانات المالية التاريخية، الأمر الذي يؤدي إلى مجموعة من إشارات التداول. كل التجارة (والتي سوف نعني هنا أن تكون 8217round - رحلة 8217 من اثنين من الإشارات) سيكون لها الربح أو الخسارة المرتبطة بها. سوف تراكم هذا الربح على مدى استراتيجية باكتست الخاص بك يؤدي إلى إجمالي الربح والخسارة (المعروف أيضا باسم 8216PampL8217 أو 8216PnL8217). هذا هو جوهر الفكرة، على الرغم من بطبيعة الحال فإن 8220devil هو دائما في التفاصيل 8221 ما هي الأسباب الرئيسية ل باكتستينغ استراتيجية خوارزمية الترشيح 8211 إذا كنت أذكر من المادة على تحديد الاستراتيجية. كان هدفنا في مرحلة البحث الأولية هو وضع خطة استراتيجية ثم تصفية أي استراتيجية لم تستوف معايير معينة. تقدم باكتستينغ لنا آلية الترشيح أخرى، كما يمكننا القضاء على الاستراتيجيات التي لا تلبي احتياجات الأداء لدينا. Modelling 8211 Backtesting allows us to (safely) test new models of certain market phenomena, such as transaction costs, order routing, latency, liquidity or other market microstructure issues. Optimisation 8211 Although strategy optimisation is fraught with biases, backtesting allows us to increase the performance of a strategy by modifying the quantity or values of the parameters associated with that strategy and recalculating its performance. Verification 8211 Our strategies are often sourced externally, via our strategy pipeline . Backtesting a strategy ensures that it has not been incorrectly implemented. على الرغم من أننا سوف نادرا ما يكون الوصول إلى الإشارات الناتجة عن استراتيجيات خارجية، ونحن غالبا ما يكون الوصول إلى مقاييس الأداء مثل نسبة شارب وخصائص السحب. Thus we can compare them with our own implementation. باكتستينغ يوفر مجموعة من المزايا للتجارب حسابي. ومع ذلك، فإنه ليس من الممكن دائما لإعادة صياغة مباشرة استراتيجية. بشكل عام، مع زيادة وتيرة الاستراتيجية، يصبح من الصعب بشكل صحيح نموذج الآثار المجهرية للسوق والتبادلات. وهذا يؤدي إلى تراجع موثوق به، وبالتالي تقييم أكثر صرامة لاستراتيجية مختارة. This is a particular problem where the execution system is the key to the strategy performance, as with ultra-high frequency algorithms. Unfortunately, backtesting is fraught with biases of all types. We have touched upon some of these issues in previous articles, but we will now discuss them in depth. Biases Affecting Strategy Backtests There are many biases that can affect the performance of a backtested strategy. ولسوء الحظ، فإن هذه التحيزات تميل إلى تضخيم الأداء بدلا من الانتقاص منه. Thus you should always consider a backtest to be an idealised upper bound on the actual performance of the strategy. يكاد يكون من المستحيل القضاء على التحيزات من التداول الخوارزمية لذلك فمن مهمتنا لتقليلها على أفضل وجه ممكن من أجل اتخاذ قرارات مستنيرة حول استراتيجياتنا الخوارزمية. There are four major biases that I wish to discuss: Optimisation Bias, Look-Ahead Bias, Survivorship Bias and Psychological Tolerance Bias . Optimisation Bias This is probably the most insidious of all backtest biases. It involves adjusting or introducing additional trading parameters until the strategy performance on the backtest data set is very attractive. ومع ذلك، مرة واحدة تعيش أداء الاستراتيجية يمكن أن تكون مختلفة بشكل ملحوظ. Another name for this bias is 8220curve fitting8221 or 8220data-snooping bias8221. Optimisation bias is hard to eliminate as algorithmic strategies often involve many parameters. 8220Parameters8221 in this instance might be the entryexit criteria, look-back periods, averaging periods (i. e the moving average smoothing parameter) or volatility measurement frequency. يمكن التقليل من التحيز الأمثل عن طريق الحفاظ على عدد من المعلمات إلى الحد الأدنى وزيادة كمية نقاط البيانات في مجموعة التدريب. في الواقع، يجب على المرء أيضا أن يكون حذرا من الأخير حيث يمكن أن تكون نقاط التدريب القديمة تخضع لنظام سابق (مثل بيئة تنظيمية) وبالتالي قد لا تكون ذات صلة لاستراتيجيتك الحالية. One method to help mitigate this bias is to perform a sensitivity analysis . This means varying the parameters incrementally and plotting a 8220surface8221 of performance. الصوت، المنطق الأساسي لخيارات المعلمة ينبغي، مع جميع العوامل الأخرى النظر، تؤدي إلى سطح المعلمة أكثر سلاسة. إذا كان لديك سطح أداء ثابت جدا، فإنه غالبا ما يعني أن المعلمة لا تعكس الظواهر و هي قطعة أثرية من بيانات الاختبار. هناك أدبيات واسعة حول خوارزميات التحسين متعددة الأبعاد، وهو مجال نشط للغاية من البحوث. I won8217t dwell on it here, but keep it in the back of your mind when you find a strategy with a fantastic backtest Look-Ahead Bias Look-ahead bias is introduced into a backtesting system when future data is accidentally included at a point in the simulation where that data would not have actually been available. If we are running the backtest chronologically and we reach time point N . then look-ahead bias occurs if data is included for any point N k . where k gt 0 . يمكن أن ننظر إلى الأمام أخطاء التحيز تكون خفية بشكل لا يصدق. Here are three examples of how look-ahead bias can be introduced: Technical Bugs 8211 Arraysvectors in code often have iterators or index variables. Incorrect offsets of these indices can lead to a look-ahead bias by incorporating data at N k for non-zero k . Parameter Calculation 8211 Another common example of look-ahead bias occurs when calculating optimal strategy parameters, such as with linear regressions between two time series. إذا تم استخدام مجموعة البيانات كاملة (بما في ذلك البيانات المستقبلية) لحساب معاملات الانحدار، وبالتالي تطبيق بأثر رجعي على استراتيجية التداول لأغراض التحسين، ثم يتم تضمين البيانات المستقبلية وانحياز نظرة إلى الأمام موجود. MaximaMinima 8211 Certain trading strategies make use of extreme values in any time period, such as incorporating the high or low prices in OHLC data. ومع ذلك، وبما أن هذه القيم ماكسيمالمينيمال لا يمكن إلا أن تحسب في نهاية فترة زمنية، يتم عرض التحيز نظرة إلى الأمام إذا تم استخدام هذه القيم - during - الفترة الحالية. من الضروري دائما أن تتخلف قيم هايلو خلال فترة واحدة على الأقل في أي استراتيجية تداول تستخدمها. Survivorship Bias Survivorship bias is a particularly dangerous phenomenon and can lead to significantly inflated performance for certain strategy types. It occurs when strategies are tested on datasets that do not include the full universe of prior assets that may have been chosen at a particular point in time, but only consider those that have 8220survived8221 to the current time. As an example, consider testing a strategy on a random selection of equities before and after the 2001 market crash. Some technology stocks went bankrupt, while others managed to stay afloat and even prospered. If we had restricted this strategy only to stocks which made it through the market drawdown period, we would be introducing a survivorship bias because they have already demonstrated their success to us. In fact, this is just another specific case of look-ahead bias, as future information is being incorporated into past analysis. There are two main ways to mitigate survivorship bias in your strategy backtests: Survivorship Bias Free Datasets 8211 In the case of equity data it is possible to purchase datasets that include delisted entities, although they are not cheap and only tend to be utilised by institutional firms. على وجه الخصوص، بيانات ياهو المالية ليست التحيز البقاء على قيد الحياة مجانا، وهذا يستخدم عادة من قبل العديد من التجار ألغو التجزئة. ويمكن للمرء أيضا أن يتاجر في فئات الأصول التي لا تكون عرضة للتحيز على قيد الحياة، مثل بعض السلع الأساسية (ومشتقاتها في المستقبل). Use More Recent Data 8211 In the case of equities, utilising a more recent data set mitigates the possibility that the stock selection chosen is weighted to 8220survivors8221, simply as there is less likelihood of overall stock delisting in shorter time periods. يمكن للمرء أيضا البدء في بناء مجموعة البيانات الشخصية التحيز البقاء على قيد الحياة الشخصية من خلال جمع البيانات من النقطة الحالية فصاعدا. After 3-4 years, you will have a solid survivorship-bias free set of equities data with which to backtest further strategies. We will now consider certain psychological phenomena that can influence your trading performance. We will now consider certain psychological phenomena that can influence your trading performance. التحمل النفسي التحيز هذه الظاهرة الخاصة لا تناقش في كثير من الأحيان في سياق التداول الكمي. ومع ذلك، نوقشت على نطاق واسع فيما يتعلق بطرق التداول أكثر تقديرية. It has various names, but I8217ve decided to call it 8220psychological tolerance bias8221 because it captures the essence of the problem. عند إنشاء باكتيستس على مدى فترة 5 سنوات أو أكثر، فمن السهل أن ننظر إلى منحنى الأسهم تتجه صعودا، وحساب العائد السنوي المركب، نسبة شارب وحتى خصائص السحب ويكون راضيا عن النتائج. As an example, the strategy might possess a maximum relative drawdown of 25 and a maximum drawdown duration of 4 months. وهذا لن يكون غير نمطي لاستراتيجية الزخم. ومن السهل إقناع نفسه بأن من السهل تحمل مثل هذه الفترات من الخسائر لأن الصورة العامة وردية. However, in practice, it is far harder If historical drawdowns of 25 or more occur in the backtests, then in all likelihood you will see periods of similar drawdown in live trading. هذه الفترات من الانسحاب يصعب من الناحية النفسية تحملها. I have observed first hand what an extended drawdown can be like, in an institutional setting, and it is not pleasant 8211 even if the backtests suggest such periods will occur. The reason I have termed it a 8220bias8221 is that often a strategy which would otherwise be successful is stopped from trading during times of extended drawdown and thus will lead to significant underperformance compared to a backtest. وهكذا، على الرغم من أن الاستراتيجية هي خوارزمية في الطبيعة، يمكن أن العوامل النفسية لا تزال لها تأثير كبير على الربحية. الوجبات الجاهزة هي التأكد من أنه إذا رأيت سحب نسبة معينة ومدة معينة في باكتيستس، ثم يجب أن نتوقع أن تحدث في بيئات التداول الحية، وسوف تحتاج إلى المثابرة من أجل الوصول إلى الربحية مرة أخرى. Software Packages for Backtesting The software landscape for strategy backtesting is vast. Solutions range from fully-integrated institutional grade sophisticated software through to programming languages such as C, Python and R where nearly everything must be written from scratch (or suitable 8216plugins8217 obtained). As quant traders we are interested in the balance of being able to 8220own8221 our trading technology stack versus the speed and reliability of our development methodology. Here are the key considerations for software choice: Programming Skill 8211 The choice of environment will in a large part come down to your ability to program software. I would argue that being in control of the total stack will have a greater effect on your long term PampL than outsourcing as much as possible to vendor software. This is due to the downside risk of having external bugs or idiosyncrasies that you are unable to fix in vendor software, which would otherwise be easily remedied if you had more control over your 8220tech stack8221. تريد أيضا بيئة التي تحقق التوازن الصحيح بين الإنتاجية، وتوافر المكتبة وسرعة التنفيذ. أقوم بتوصیاتي الشخصیة أدناه. Execution CapabilityBroker Interaction 8211 Certain backtesting software, such as Tradestation, ties in directly with a brokerage. I am not a fan of this approach as reducing transaction costs are often a big component of getting a higher Sharpe ratio. If you8217re tied into a particular broker (and Tradestation 8220forces8221 you to do this), then you will have a harder time transitioning to new software (or a new broker) if the need arises. Interactive Brokers provide an API which is robust, albeit with a slightly obtuse interface. Customisation 8211 An environment like MATLAB or Python gives you a great deal of flexibility when creating algo strategies as they provide fantastic libraries for nearly any mathematical operation imaginable, but also allow extensive customisation where necessary. Strategy Complexity 8211 Certain software just isn8217t cut out for heavy number crunching or mathematical complexity. إكسيل هو واحد من هذه البرامج. While it is good for simpler strategies, it cannot really cope with numerous assets or more complicated algorithms, at speed. Bias Minimisation 8211 Does a particular piece of software or data lend itself more to trading biases You need to make sure that if you want to create all the functionality yourself, that you don8217t introduce bugs which can lead to biases. Speed of Development 8211 One shouldn8217t have to spend months and months implementing a backtest engine. Prototyping should only take a few weeks. تأكد من أن البرنامج الخاص بك لا تعوق التقدم المحرز الخاص بك إلى أي حد كبير، لمجرد الاستيلاء على بضع نقاط مئوية إضافية من سرعة التنفيذ. C is the 8220elephant in the room8221 here Speed of Execution 8211 If your strategy is completely dependent upon execution timeliness (as in HFTUHFT) then a language such as C or C will be necessary. However, you will be verging on Linux kernel optimisation and FPGA usage for these domains, which is outside the scope of this article Cost 8211 Many of the software environments that you can program algorithmic trading strategies with are completely free and open source. في الواقع، العديد من صناديق التحوط الاستفادة من البرمجيات مفتوحة المصدر لكامل مداخن التداول ألغو الخاص بك. وبالإضافة إلى ذلك، إكسيل و ماتلاب على حد سواء رخيصة نسبيا، وهناك حتى بدائل مجانية لكل منهما. Now that we have listed the criteria with which we need to choose our software infrastructure, I want to run through some of the more popular packages and how they compare: Note: I am only going to include software that is available to most retail practitioners and software developers, as this is the readership of the site. في حين تتوفر برامج أخرى مثل أدوات الصف أكثر المؤسسية، وأشعر هذه هي مكلفة للغاية لاستخدامها بشكل فعال في بيئة البيع بالتجزئة وأنا شخصيا ليس لديهم خبرة معهم. وصف . WYSIWYG (what-you-see-is-what-you-get) spreadsheet software. Extremely widespread in the financial industry. Data and algorithm are tightly coupled. Execution . Yes, Excel can be tied into most brokerages. Customisation . VBA macros allow more advanced functionality at the expense of hiding implementation. Strategy Complexity . More advanced statistical tools are harder to implement as are strategies with many hundreds of assets. Bias Minimisation . Look-ahead bias is easy to detect via cell-highlighting functionality (assuming no VBA). Development Speed . Quick to implement basic strategies. Execution Speed . Slow execution speed 8211 suitable only for lower-frequency strategies. Cost . Cheap or free (depending upon license). Alternatives . OpenOffice Description . Programming environment originally designed for computational mathematics, physics and engineering. Very well suited to vectorised operations and those involving numerical linear algebra. Provides a wide array of plugins for quant trading. In widespread use in quantitative hedge funds. Execution . No native execution capability, MATLAB requires a separate execution system. Customisation . Huge array of community plugins for nearly all areas of computational mathematics. Strategy Complexity . Many advanced statistical methods already available and well-tested. Bias Minimisation . Harder to detect look-ahead bias, requires extensive testing. Development Speed . Short scripts can create sophisticated backtests easily. Execution Speed . Assuming a vectorisedparallelised algorithm, MATLAB is highly optimised. Poor for traditional iterated loops. Cost . وصف . High-level language designed for speed of development. Wide array of libraries for nearly any programmatic task imaginable. الحصول على قبول أوسع في صندوق التحوط والمجتمع المصرفي الاستثماري. ليس تماما بأسرع سيسي لسرعة التنفيذ. Execution . Python plugins exist for larger brokers, such as Interactive Brokers. Hence backtest and execution system can all be part of the same 8220tech stack8221. Customisation . Python has a very healthy development community and is a mature language. NumPySciPy provide fast scientific computing and statistical analysis tools relevant for quant trading. Strategy Complexity: Many plugins exist for the main algorithms, but not quite as big a quant community as exists for MATLAB. Bias Minimisation . Same bias minimisation problems exist as for any high level language. Need to be extremely careful about testing. Development Speed . Pythons main advantage is development speed, with robust in built in testing capabilities. Execution Speed . Not quite as fast as C, but scientific computing components are optimised and Python can talk to native C code with certain plugins. Cost . FreeOpen Source Alternatives . Ruby. Erlang. Haskell Description . Environment designed for advanced statistical methods and time series analysis. Wide array of specific statistical, econometric and native graphing toolsets. Large developer community. Execution . R possesses plugins to some brokers, in particular Interactive Brokers. Thus an end-to-end system can written entirely in R. Customisation . R can be customised with any package, but its strengths lie in statisticaleconometric domains. Strategy Complexity . Mostly useful if performing econometric, statistical or machine-learning strategies due to available plugins. Bias Minimisation . Similar level of bias possibility for any high-level language such as Python or C. Thus testing must be carried out. Development Speed . R is rapid for writing strategies based on statistical methods. Execution Speed . R is slower than C, but remains relatively optimised for vectorised operations (as with MATLAB). Cost . FreeOpen Source Alternatives . SPSS. Stata Description . Mature, high-level language designed for speed of execution. مجموعة واسعة من التمويل الكمي والمكتبات العددية. من الصعب التصحيح وغالبا ما يستغرق وقتا أطول لتنفيذ من بيثون أو ماتلاب. شائعة للغاية في كل من شراء وبيع الجانب. Execution . Most brokerage APIs are written in C and Java. Thus many plugins exist. Customisation . CC allows direct access to underlying memory, hence ultra-high frequency strategies can be implemented. Strategy Complexity . C STL provides wide array of optimised algorithms. تقريبا أي خوارزمية رياضية متخصصة تمتلك تنفيذ سيسي مفتوح المصدر مجانا على شبكة الإنترنت. Bias Minimisation . Look-ahead bias can be tricky to eliminate, but no harder than other high-level language. أدوات التصحيح جيدة، ولكن يجب أن نكون حذرين عند التعامل مع الذاكرة الكامنة. Development Speed . C is quite verbose compared to Python or MATLAB for the same algorithmm. المزيد من خطوط من رمز (لوك) غالبا ما يؤدي إلى احتمال أكبر من البق. Execution Speed . CC has extremely fast execution speed and can be well optimised for specific computational architectures. This is the main reason to utilise it. Cost . Various compilers: LinuxGCC is free, MS Visual Studio has differing licenses. Alternatives . C. Java. Scala Different strategies will require different software packages. HFT and UHFT strategies will be written in CC (these days they are often carried out on GPUs and FPGAs ), whereas low-frequency directional equity strategies are easy to implement in TradeStation, due to the 8220all in one8221 nature of the softwarebrokerage. تفضيلي الشخصي هو بيثون لأنه يوفر درجة مناسبة من التخصيص، وسرعة التنمية، والقدرة على الاختبار وسرعة التنفيذ لاحتياجاتي والاستراتيجيات. If I need anything faster, I can 8220drop in8221 to C directly from my Python programs. إحدى الطرق التي يفضلها العديد من التجار الكميين هو نموذج استراتيجياتهم في بيثون ومن ثم تحويل أبطأ أقسام التنفيذ إلى C بطريقة تكرارية. Eventually the entire algo is written in C and can be 8220left alone to trade8221 In the next few articles on backtesting we will take a look at some particular issues surrounding the implementation of an algorithmic trading backtesting system, as well as how to incorporate the effects of trading exchanges. We will discuss strategy performance measurement and finally conclude with an example strategy. 8212 By Michael Halls-Moore from QuantStart About the Author Mike Halls-Moore Michael graduated with a MMath in Mathematics from the University of Warwick, gained a PhD from Imperial College London in Fluid Dynamics, and was working in a hedge fund as a quantitative trading developer for the last few years in Mayfair, London. He now spends time on research, development, backtesting and implementation of intraday algorithmic trading strategies. Time really flies it is hard to believe that it has been over a month since my last post. Work and life in general have consumed much of my time lately and left little time for research and blog posts. Anyway, on to the post This post will be the first in a series of to cover a momentum strategy using R. One of my favorite strategies is a momentum or relative strength strategy. Here are just a few of the reasons why I like momentum: Simple to implement Long only or longshort portfolios Many ways to define the strength or momentum measure It just works Also, a momentum strategy lends itself well to potential for diversification. The universe of instruments can be infinite, but the instruments traded are finite. Think about it this way Investor A looks at 10 instruments and invests 1000 in the top 5 instruments ranked by momentum. Investor B looks at 100 instruments and invests 1000 in the top 5 instruments ranked by momentum. Investor A is limiting his potential for diversification by only having a universe of 10 instruments. Investor B has a much larger universe of instruments and can in theory be more diversified. Theoretically speaking, you can trade an infinite number of instruments with a finite amount of trading capital using a momentum or relative strength strategy. Check out these links for further reading In this first post of the series on momentum, I will go over some of the basic setup and functions we will be using. The first step is to get data from yahoo. Note that the for loop converts the data to monthly and subsets the data so that the only column we keep is the adjusted close column. We now have four objects (XLY, XLP, XLE, XLF) that have the Adjusted Close price. The next step is to merge these four objects into a single object holding the Adjusted Close price. We can do this in a simple one-liner in R For the factor that will be ranked, I will use the 3 period rate of change (ROC). Here8217s another way to create the symbolsclose object. create new environment to store data symEnv lt - new. env() getSymbols assigns to new environment getSymbols(symbols, from0392000-01-01039, envsymEnv) function aggregates and returns Adjusted column f lt - function(x) sym lt - sub(quot..quot, quotquot, names(x)1) Ad(to. monthly(x, indexAt039lastof039,drop. timeTRUE, namesym)) use eapply to call f() on each symbol symbolsclose lt - do. call(merge, eapply(symEnv, f)) I have problems replicating this analysis. First of all, the to. monthly(x, indexAt8221lastof8221) does not get me the last day of the month, as I would expect, for example: gt x to. monthly(x, indexAt8221lastof8221) x. Open x. High x. Low x. Close x. Volume 2012-12-29 69.71 71.44 69.57 71.42 16384800 2013-01-29 72.95 78.59 72.00 77.35 195100300 2013-02-26 77.76 79.51 77.16 77.70 128912200 x. Adjusted 2012-12-29 71.42 2013-01-29 77.35 2013-02-26 77.70 If I run the first part of code and type head(XLE) I get the following: gt head(XLE) XLE. Adjusted 2000-01-29 22.67 2000-02-27 21.71 2000-03-29 24.33 2000-04-28 23.96 2000-05-29 26.78 2000-06-28 25.30 as you can see this is totally different from what is shown in the article above, the prices are different and the index is different (not the last day of the month). Can someone explain why this is like that Why is data different Why indexAt8221lastof8221 produces the above results What is the difference between 8220lastof8221 and 8220endof8221 Thank you Oh, 8220x8221 in the above is XLE.

No comments:

Post a Comment