بررسی میانگین های متحرک برای ایجاد روند زیر استراتژی های پایتون

ساخت وبلاگ

آیا میانگین های متحرک می توانند عملکرد نمونه کارها را در معیار بهبود بخشند؟

"خرید کم ، فروش بالا" یک هدف مشترک است که همه در امور مالی می خواهند به آن دست یابند. با این حال این دشوارتر از آن است که به نظر می رسد ، زیرا ما نمی دانیم قسمت بالا یا پایین کجا خواهد بود. ما فقط می دانیم که الان کجا هستیم و کجا بوده ایم. بسیاری از سرمایه گذاران که برای رسیدن به یک نقطه ورود خوب ، در حال نشستن و منتظر رکود بعدی هستند ، از بازگشت خارق العاده در بازار گاو نر منتهی می شوند ، و کسانی که در شاخص ها نشسته اند ، مزایای بازار گاو نر را دریافت می کنند بلکه واقعیت سخت را نیز دریافت می کننداز بازار خرس

پیروی از روند ساده تر از پیش بینی بالا و پایین است. بنابراین در این مقاله ، ما برخی از روش های اساسی روند ردیابی بازار را پوشش خواهیم داد و سعی می کنیم در بازارهای گاو نر و بازارهای خرس به بازده جامد برسیم.

میانگین متحرک ساده

میانگین متحرک ساده (SMA) یک عملکرد صاف کننده است که میانگین مشاهدات گذشته را محاسبه می کند. این یک شاخص فنی رایج است که برای نشان دادن وارونگی قیمت استفاده می شود.

اگر ما 1000 روز داده های قیمت گذاری روزانه داشته باشیم ، میانگین حرکت 100 روزه با میانگین 100 روز اول محاسبه می شود و متعاقباً به طور متوسط 100 روز در یک زمان با تغییر دامنه یک روز در یک زمان محاسبه می شود.

استراتژی های مبتنی بر میانگین حرکت ساده با استفاده از رابطه بین قیمت دارایی و میانگین متحرک به عنوان راهی برای گرفتن روند می چرخد. ما از نقطه ای استفاده خواهیم کرد که قیمت و MA از آن عبور کنید تا موقعیت خود را تعیین کنیم.

وارد کردن داده ها

ما می توانیم داده ها را از یک وب سایت مانند Yahoo Finance بارگیری کنیم و آن را بر روی یک DataFrame بارگیری کنیم ، یا از API استفاده کنیم تا مستقیماً از یک سرور خارجی بر روی حافظه پایتون بخواند.

Quandl یک بانک اطلاعاتی آنلاین برای داده های مالی با یک حساب رایگان و حق بیمه است. تعداد درخواست های غیر کاربر محدود است ، در حالی که کاربران می توانند هر 10 ثانیه 300 تماس دریافت کنند. بیش از اندازه کافی برای استفاده اساسی.

ما از سهام مورد علاقه خود در مورد اپل استفاده می کنیم و داده های قیمت را از دوره 2009 تا 2018 بارگیری می کنیم.

یکی دیگر از انتخاب های محبوب Pandas_Datareader است که این بار است که این بار مورد استفاده قرار می گیرد.

تهیه داده ها

پس از وارد کردن داده ها ، اجازه دهید نگاهی به DataFrame بیندازیم تا بررسی کنیم که همه چیز صحیح به نظر می رسد

در حال حاضر ، فقط تنظیم شده را نزدیک نگه دارید ، اما حجم آن می تواند جالب باشد که به تجزیه و تحلیل بیشتر نگاه کنید. ردیف اول را حذف کنید زیرا ما به طور تصادفی شامل سال نو 2008 بودیم.

برای محاسبه میانگین متحرک از عملکرد نورد Pandas استفاده کنید و نتیجه را به عنوان یک ستون جدید به DataFrame اضافه کنید.

99 مقادیر میانگین متحرک اول به عنوان نان نشان می دهد. این امر به این دلیل است که ما برای محاسبه MA به 100 مشاهدات قیمت اول نیاز داشتیم.

ترسیم قیمت و میانگین حرکت

MA 100 روزه راهی برای مشاهده روند قیمت با صاف کردن قیمت است. از آنجا که این یک شاخص عقب مانده است ، به ما می گوید که در گذشته چه اتفاقی افتاده است ، و اگرچه جالب است که نگاهی به آن داشته باشید ، ممکن است به عنوان یک استراتژی خوب در خود استفاده نشود. بیایید نتیجه را کشف کنیم و ببینیم.

استراتژی و اجرای

ما از دو استراتژی مختلف استفاده خواهیم کرد

  1. خرید وقتی قیمت بیش از میانگین متحرک باشد ، وقتی قیمت پایین تر از میانگین متحرک کاهش می یابد ، فروش کوتاه.
  2. به عنوان یک جایگزین می توانیم موقعیت کوتاه را با موقعیت نقدی جایگزین کنیم و این استراتژی را فقط طولانی کنیم.

ما می توانیم استراتژی 2 را با نگه داشتن اوراق بهادار کم خطر مانند اوراق قرضه به جای پول نقد و فقط با افزایش اندک نوسانات ، بهبود بخشیم ، اما برای سادگی ، پول نقد امروز پادشاه است.

ما امیدواریم که وقتی دارایی به سمت بالا می رود ، سوار شود و بازده های مشابهی کسب کند. هنگامی که روند به سمت پایین دارد ، فروش و انتظار را انتخاب کنید ، یا فروش کوتاه را برای بهره مندی از پاییز انتخاب کنید.

با یک استراتژی ساده مانند این ممکن است چندین مشکل وجود داشته باشد. اگر این روند به خودی خود آشکار نشود ، اما مثبت کاذب ارائه می دهد ، استراتژی ما می تواند در نهایت خرید یا فروش در جهت اشتباه و از دست دادن پول به پایان برسد. بسیاری از متقاطع در مدت زمان کوتاه می توانند هزینه های معامله را افزایش دهند. یک راه حل برای این کار می تواند حداقل فاصله بین قیمت و میانگین متحرک قبل از تجارت باشد که بعداً می توان آن را بیشتر مورد بررسی قرار داد.

بیایید یک ستون جدید ایجاد کنیم که شامل استراتژی 1 "طولانی" یا "کوتاه" است.

ستون جدیدی از بازده قیمت ایجاد کنید و آن را به DataFrame اضافه کنید

در روز اول ، ارزش هر استراتژی را برابر با قیمت اپل تعیین کنید ، بنابراین می توان مقایسه کرد که چگونه ارزش حرکت استراتژی ها با قیمت اپل مقایسه می شود. قیمت را با میانگین متحرک مقایسه کنید و موقعیتی را "طولانی" یا "کوتاه" تنظیم کنید. بازده روز اول با استفاده از درصد تغییر از روز 0 تعیین می شود. ما هنوز نمی توانیم موقعیتی را قرار دهیم زیرا فقط روزانه نزدیک داریم و باید تا فردا صبر کنیم.

در روز 2 ما بر اساس موقعیت از روز 1 طولانی یا کوتاه می رویم ، زیرا ما از روز 1 به 2 هیچ مقدار را اضافه یا حذف نکردیم ، این استراتژی ها همان ارزش روز 1 را دارند.

در روز 3 بازده را ضرب می کنیم ، یا قیمت سیب را از روز 2 به 3 تغییر می دهیم که بازگشت در ردیف NR است. 3 ، توسط هر استراتژی.

ویرایش: به خاطر داشته باشید که استراتژی Longhold استراتژی 2 است که در حال نگه داشتن پول نقد است. نام بهتر Longcash خواهد بود.

اکنون استراتژی ها را با 100 روز SMA ترسیم کنید

در 10 سال گذشته اپل رشد بسیار سالم را تجربه می کند. از آنجا که SMA عقب مانده است ، شلوارک به ما آسیب می رساند. یک حرکت جزئی که باعث ایجاد یک صلیب SMA می شود به سرعت به افزایش شدید تبدیل می شود بدون اینکه نمودار SMA به اندازه کافی سریع جلب شود و با افزایش قیمت دارایی ، ما را کوتاه می کند. همانطور که مشاهده می شود ، استراتژی طولانی/کوتاه توسط روند قیمت خرد می شود ، در حالی که استراتژی طولانی/نگهدارنده در وسط باقی می ماند.

در سال 2012/2013 استراتژی کوتاه کردن کار می کند ، و در هنگام سقوط قیمت اپل ، ارزش را افزایش می دهد. قیمت صاف است و روند آن را به راحتی نشان می دهد. در سال 2015/2016 استراتژی به خوبی کار نمی کند. روند قیمت خود را نشان نمی دهد و نوسانات بالایی را نشان می دهد.

میانگین متحرک نمایی

به جای SMA ، عملکرد وزنه برداری مناسب تر رأی بالاتری را به مشاهدات اخیر تر می دهد. یک نسخه محبوب از این ، میانگین متحرک نمایی (EMA) است که از وزنه برداری به صورت نمایی استفاده می کند. از آنجا که مشاهدات قدیمی گفته های بسیار کمی است ، ما ممکن است از کل مجموعه داده ها به عنوان یک دوره برگشت برای محاسبه EMA استفاده کنیم.

فرمول توسط

EMA را با همان استراتژی هایی که قبلاً اجرا کنید ، پیاده سازی کنید. به سادگی قیمت را با EMA به جای SMA مقایسه کنید.

حداقل برای اپل ، EMA عملکرد بهتری از SMA دارد. این ممکن است به این دلیل باشد که سریعتر به تغییرات ناگهانی در قیمت دارایی واکنش نشان می دهد. هنوز هم بیش از حد به سادگی دارایی را نگه نمی دارد.

به جای استفاده از یک میانگین متحرک واحد ، می توانیم رابطه بین دو میانگین متحرک را با دوره های زمانی مختلف مقایسه کنیم. این به عنوان واگرایی همگرایی متوسط در حال حرکت یا MACD شناخته می شود.

فرضیه خرید یا فروش دارایی بسته به روند ضبط شده توسط نشانگر MACD است. هنگامی که MA کوتاه مدت از بلند مدت فراتر می رود ، طولانی می شویم و وقتی MA بلند مدت از کوتاه مدت فراتر می رود ، کوتاه می رویم. در این تجزیه و تحلیل من از EMA 21 روزه و EMA 126 روزه استفاده کرده ام که یک و شش ماه از روز معاملات را نشان می دهد. از آنجا که پشتی ها در یک افق طولانی مدت اجرا می شوند ، من سعی می کنم از استفاده از دوره های خیلی کوتاه نگاه خودداری کنم. برای نوشتن کد ، EMA 26 و 126 روزه را محاسبه کنید و به جای مقایسه قیمت با MA ، آنها را مقایسه کنید.

به طور مشابه با EMA ، ما نتایج را ترسیم می کنیم و به نتایج نگاه می کنیم

این نسخه خاص از MACD در این داده ها عملکرد خوبی ندارد. ما به زودی به همه استراتژی های موجود در مجموعه های مختلف داده ها و بازه های زمانی نیز خواهیم پرداخت و می بینیم که چگونه آنها در موقعیت های مختلف دارند.

ترکیب همه چیز

برای تعمیم از تجزیه و تحلیل فوق ، من از توابع استفاده کرده ام تا انتخاب داده های مورد نظر برای تجزیه و تحلیل آسان تر شود و چه مدلهایی را می خواهیم بگنجانیم.

من همچنین یک اسکریپت آمار خلاصه را درج کرده ام تا ببینم چگونه هر یک از استراتژی ها از نظر حداکثر کاهش ، شارپ ، نوسانات و بازگشت سالانه ، VAR و غیره انجام می شود.

اکنون یک تابع اصلی بنویسید که از توابع فوق استفاده می کند ، و همچنین تابعی که نتیجه را ترسیم می کند.

بیایید استراتژی اصلی عملکرد () و عملکرد نقشه plot_strategy () و همچنین نمایش جدول آمار خلاصه را اجرا کنیم. ما تغییرات 3 میلی آمپر و هر دو بلند/کوتاه و طولانی/نگه داشتن را برای همه محاسبه و ترسیم می کنیم.

2 مورد گاو نر

  • اپل از سال 2009 تا 2018 ، همانطور که قبلاً انجام شد
  • S& P 500 در همان دوره

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

3 مورد خرس

  • S& P 500 از سال 2006 تا 2010 ، "بحران مالی جهانی"
  • کامپوزیت NASDAQ از سال 1998 تا 2001 ، "حباب فناوری"
  • Nikkei 225 در دهه 1990 ، "دهه گمشده"

جای تعجب نیست که کوتاه شدن در طی یک بازار خرس نتایج خوبی را به وجود می آورد ، اما ما موقعیت ها را در حالی که قبل از بالا است ، شروع کردیم ، که به این نتیجه آسیب نمی رساند که در طول صعود خیلی بد باشد. با این حال ، در سقوط ، موقعیت های کوتاه به طور گسترده ای سود می برند. یکی از این استراتژی ها این است که ما نمی توانیم افت ناگهانی قیمت را تشخیص دهیم. در "جمعه سیاه" 1987 ، میانگین صنعتی داو جونز با 22. 6 ٪ و S& P 500 با بیش از 18 ٪ سقوط کرد. این استراتژی ها نمی توانند ما را در برابر چنین سقوط ها محافظت کنند و باید در رابطه با سایر روش ها اجرا شوند.

2 دارایی جانبی

  • جنرال موتورز از سال 2014 تا 2019
  • مایکروسافت از سال 2002 تا 2017

جانب هرگز یک روند را نشان نمی دهد ، هنگامی که MA تاخیر به قیمت می رسد ، خیلی دیر شده است. این روند خیلی کوتاه است ، که نشان می دهد MA کوتاه تر می تواند انتخاب بهتری باشد. نکته قابل توجه این است که EMA بازده بالاتری در تمام نمودار آخر و نوسانات مشابه یا پایین دارد. این نسخه از MACD نتایج خیلی خوبی نمی دهد ، اگرچه رایج ترین نسخه از 12 روز برای EMA سریع استفاده می کند و 26 روز برای کند است.

نتیجه گیری و کار بیشتر

میانگین استراتژی متقاطع در حال حرکت برای روند زیر یک رویکرد ساده شناخته شده برای ردیابی روند است که در دوره آزمایش شده و با داده های استفاده شده ، در بازار خرس نسبت به بازار گاو نر بهتر عمل می کند. اگرچه بازارهای بی ثبات و راکد می توانند کیفیت آن را به خطر بیاندازند.

ما چندین فرض را مطرح کرده ایم. هیچ هزینه لغزش یا معامله وجود ندارد. ما فقط روزانه از تعدیل شده استفاده می کنیم و فقط می توانیم در آن زمان معامله انجام دهیم. ما سود سهام یا محدودیت های کوتاه را در نظر نمی گیریم.

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

برای تجزیه و تحلیل بیشتر ، مقایسه انواع کلاسهای دارایی با رفتار متضاد ، به عنوان مثال ، نوسانات بالا در مقابل نوسانات کم جالب خواهد بود. جالب است که هر روز از طریق مجموعه دارایی ها استفاده کنید ، با نگاهی به درصد فاصله بین قیمت و MA برای دیدن اینکه آیا تجارت با مسافت بیشتر می تواند تعداد مثبت کاذب را کاهش دهد و روند محکم تری را بهتر کند.

همچنین انجام پشتی سختگیرانه تر با استفاده از یک رویکرد اعتبار سنجی متقابل سری زمانی مفید خواهد بود. ثبات در مدل بسیار مهم است. اگر چند پارامتر را تغییر دهیم و نتایج به شدت تغییر می کند ، باید مدل را ببندیم و دوباره شروع کنیم. یک پشتی هیچ چیزی را اثبات نمی کند ، اما استفاده از اعتبارسنجی متقابل و تعصب نگاه محدود می تواند اعتماد به نفس ما را بهبود بخشد.

سلب مسئولیت: اگر اشتباهاتی پیدا کردید ، لطفاً به من اطلاع دهید. همچنین ، توجه داشته باشید که این فقط اکتشاف برخی از روشها در مورد برخی از داده های تاریخی است. عملکرد گذشته نتایج آینده را تضمین نمی کند.

بروزرسانی (19/02/2020): این یک نسخه بازنویسی است. من خطای محاسبه را از نسخه اول اصلاح کرده ام.

مخزن GitHub:

با تشکر از خواندن!

توجه داشته باشید از ویرایشگران Data Science: در حالی که ما به نویسندگان مستقل اجازه می دهیم مقالات را مطابق با قوانین و دستورالعمل های خود منتشر کنند ، ما سهم هر نویسنده را تأیید نمی کنیم. شما نباید بدون اینکه به دنبال مشاوره حرفه ای باشید ، به آثار نویسنده اعتماد کنید. برای جزئیات بیشتر به شرایط خواننده ما مراجعه کنید.

آموزش مقدماتی فارکس...
ما را در سایت آموزش مقدماتی فارکس دنبال می کنید

برچسب : نویسنده : علیرام نورایی بازدید : <-PostHit-> تاريخ : پنجشنبه 11 خرداد 1402 ساعت: 19:53