استراتژی تقویم - کد قابل تکرار

  • 2022-11-27

در پست قبلی وبلاگ خود، نتایج یک استراتژی تقویمی را ارائه کردم که به نظر می‌رسد در حالی که در بازار فقط در اواخر ماه، در روزهای اعلام کمیته FED و در روزهای قبل از NYSE است، بیشترین سود را در بازار سهام دارد. تعطیلات.

امروز می‌خواهم با انتشار کد آن تحقیق را به بحث باز کنم تا خواننده علاقه‌مند بتواند آزمایش‌ها و شبیه‌سازی‌ها را بازتولید یا سرهم کند و به نتیجه‌گیری مستقل برسد.

ستون فقرات چارچوب آزمایشی من بسته ای به نام "استراتژی" است که من به تازگی شروع به توسعه آن برای اهداف تحقیقاتی خود کرده ام. این به شدت از دو چارچوب دیگر الهام گرفته شده است: جعبه ابزار سرمایه‌گذار سیستماتیک Michael Kapler و quantstrat.

داده های بازار را در محیط جداگانه ای به نام بازار آماده کنید. تابع Prepare. market همچنین قیمت‌های همه فرصت‌های معاملاتی را در یک ماتریس xts در سراسر نمادها جمع‌آوری می‌کند و در فرکانس زمانی تعریف‌شده توسط استراتژی فشرده می‌شود. به عنوان مثال، در صورتی که مدل برای معامله SPX و AAPL در باز یا بسته شدن بازار تعریف شود، قیمت شیء market$ شامل ستون‌های SPX و AAPL و ردیف‌هایی با مهر زمانی باز و بسته خواهد بود.

داده های اندیکاتوری را تهیه کنید که بر اساس آن استراتژی سیگنال های معاملاتی تولید می کند. در این مورد، روزهای کاری تا تعطیلات بعدی NYSE، روزهای کاری تا جلسه بعدی FOMC، شاخصی که به ترتیب آخرین روز معاملاتی ماه در NYSE و روزهای کاری در NYSE را نشان می‌دهد.

بیایید اکنون قوانین را تعریف کنیم که استراتژی چه زمانی معامله می شود. هدف استراتژی از بسته quantstrat است. init. strategy تابع قانون پیش فرض را به استراتژی اضافه می کند. به عنوان مثال، استراتژی به نام "TFH" به دنبال تابع تعریف شده توسط کاربر به نام "rule. TFH" است. این دارای سه پارامتر است: چند روز کاری در ابتدا و در پایان ماه برای نگه داشتن بازار و طول پنجره حرکت. سپس به این سه پارامتر اجازه داده می‌شود تا در محدوده‌های تعیین‌شده توسط min و max شناور شوند و به صورت پله‌ای افزایش می‌یابند، به add. parameters مراجعه کنید.

هنگامی که استراتژی تعریف شد، می توانیم بک تست (تابع تست) را با مجموعه ای از پارامترها اجرا کنیم، به عنوان مثال. first. n. bds=3، last. n. bds=1 و mom=20 که با اجرای بهینه سازی در فضای پارامتر پیدا می شوند. توجه داشته باشید که بهینه سازی یک جستجوی غیر جامع با استفاده از الگوریتم تکامل دیفرانسیل از بسته DEoptim است. اندازه موقعیت به عنوان 100٪ از نمونه کارها تعیین می شود.

نتیجه بک‌آست یک شی پورتفولیو b است که شامل بردار موقعیت و بردار بازگشت است. اگر این استراتژی چند دارایی بود، اینها ماتریس های چند ستونی با شناسه نمادها به عنوان نام ستون ها بودند.

پورتفولیوهای تصادفی با تغییر موقعیت های استراتژی اصلی ایجاد می شوند. اینها به عنوان معیاری برای تخمین عملکردی هستند که صرفاً با شانس و قدرت پیش‌بینی صفر در یک بازار معین و با همان سوگیری موقعیت استراتژی ما امکان پذیر است. از 2000 منحنی حقوق صاحبان سهام که به طور تصادفی ایجاد شده است، برای هر روز، شاخص حقوق صاحبان سهام را در صدک 90، 95 و غیره ثبت می کنیم.

برای به دست آوردن حس میزان غرق شدن داده هایی که از مشخصات پارامتر حاصل می شود ، مقایسه نتیجه پشتی با استفاده از بهترین تخمین پارامتر (بهینه سازی شده) (که (3،1،20)) با نتایج شبیه سازی شده در یک پیاده روی مفید است ، مفید استمد به جلودر اجرای پیاده روی ، من بهترین مجموعه پارامتر را جستجو می کنم که بالاترین امتیاز عملکرد هدف انتخاب شده (به عنوان مثال بازده تنظیم شده ریسک) را طی 2 سال اخیر (دوره قطار) به دست آورد. سپس همان مقادیر پارامتر بلافاصله بعد از سال (دوره آزمون) اعمال می شود. منحنی عدالت متشکل از دوره های آزمون. عملکرد هدف من از این فرضیه P-Value است که به معنای بازگشت روزانه استراتژی در پنجره 2 ساله بیشتر از میانگین بازگشت نمونه کارها تصادفی در مدت مشابه نیست. عملکرد Compute. edge را در بسته مشاهده کنید.

شبیه سازی چندین ساعت در دستگاه من طول می کشد ، بنابراین من خطوطی را در اینجا که شبیه سازی را راه اندازی می کنند اظهار نظر کردم و نتایج پیاده روی را از طریق شیء داده ذخیره شده WF به جای آن بارگذاری کردم.

ما می توانیم از نظر بصری میزان استفاده از داده های مربوط به بهینه سازی پارامترها را بازرسی کنیم وقتی که خط تیره و آبی را نشان می دهیم که پشتی را با بهترین پارامترها نشان می دهد (3،0،20) و خط آبی روشن که منحنی سهام مشترک یک ساله از دوره های پیاده روی را نشان می دهد-رو به جلو. بیشتر این تفاوت ها در سالهای 1932 و 1933 ساخته شده است ، فقط توسط چهار معاملات دم چربی ، هر کدام بیش از 9 ٪ به دست می آورند.

یکی دیگر از مشاهدات که ارزش برجسته دارد این است که بیش از 30 سال داده برای استراتژی خارج از نمونه (یعنی پیاده روی به جلو) طول می کشد تا از بهترین نمونه کارها تصادفی بهتر عمل کند.

همچنین ، تا 40 سال از خرید منفعلانه خرید و نگه داشتن بازار طول کشید تا خوشبخت ترین مدیران میمون را پرتاب کند و معاملات تصادفی را محدود به 16 ٪ زمان در محدوده بازار (بالاترین خطوط خاکستری نازک).

سرانجام ، ما آمار عملکرد و ریسک علاقه را از بازده و معاملات منحنی سهام (معلول) به جلو محاسبه می کنیم ، که انتظارات کمتری از عملکرد آینده را در مقایسه با منحنی بهینه پشتی تشکیل می دهد. نسبت شارپ 0. 91 بهتر از خرید شارپ در حدود 0. 4 است ، زیرا این استراتژی به طرز چشمگیری کاهش بازار را کاهش می دهد (16. 77 ٪ در مقابل بیش از 80 ٪ برای بازار). ضریب سود حدود 2 است و نیازهای کلاسیک را که توسط بسیاری از معامله گران انتخاب شده است ، برآورده می کند. استراتژی نسبتاً نسبتاً بالایی از 64 ٪ دارد و در مورد معاملات بسیار دلپذیر است ، که فقط 16 ٪ از زمان را در بازار در بازار قرار می دهد.

توجه داشته باشید که فرکانس پایین تجارت و استفاده از ابزارهای بسیار کارآمد (به عنوان مثال آتی های SPY یا S&P 500 شاخص) در تجارت این استراتژی امکان انتظار هزینه های معامله بسیار کم و لغزش را فراهم می کند. تمام نتایج در این مطالعه هیچ هزینه ای و بدون لغزش را فرض نمی کند.

برچسب ها

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.