الگوریتمی برای یافتن بهترین میانگین متحرک برای معاملات سهام

ساخت وبلاگ

یک الگوریتم ساده برای یافتن بهترین میانگین متحرک برای هر سهم یا ETF

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

میانگین متحرک چیست؟

در یک سری زمانی، میانگین متحرک دوره N در زمان معین t، مقدار میانگین N مقادیر قبل از t (شامل) است. برای هر لحظه به استثنای N اول تعریف شده است. در این مورد خاص، ما در مورد میانگین متحرک ساده (SMA) صحبت می کنیم زیرا هر نقطه از میانگین وزن یکسانی دارد. انواع میانگین های متحرک وجود دارد که هر نقطه را به روشی متفاوت وزن می کند و به جدیدترین داده ها وزن بیشتری می بخشد. این در مورد میانگین متحرک نمایی (EMA) یا میانگین متحرک وزنی خطی (LWMA) است.

در معاملات، تعداد مشاهدات سری زمانی قبلی که میانگین از آنها محاسبه می شود دوره نامیده می شود. بنابراین، یک SMA با دوره 20 نشان دهنده میانگین متحرک 20 دوره گذشته است.

همانطور که می بینید، SMA از سری زمانی پیروی می کند و حذف نویز از سیگنال، با حفظ اطلاعات مرتبط در مورد روند مفید است.

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

میانگین متحرک در معاملات سهام چگونه استفاده می شود؟

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

هر چه دوره SMA طولانی تر باشد، افق زمانی روندی که مشاهده می کند طولانی تر است.

همانطور که می بینید، میانگین های متحرک کوتاه برای گرفتن حرکات کوتاه مدت مفید هستند، در حالی که SMA دوره 200 قادر به تشخیص روند بلندمدت است.

به طور کلی، پر استفاده ترین دوره های SMA در معاملات عبارتند از:

  • 20 برای معاملات نوسانی
  • 50 برای معاملات میان مدت
  • 200 برای تجارت بلند مدت

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

چگونه می توانم دوره SMA را انتخاب کنم؟

برای یافتن بهترین دوره SMA ، ابتدا باید بدانیم که چه مدت می خواهیم سهام را در نمونه کارها خود نگه داریم. اگر معامله گران در حال نوسان باشیم ، ممکن است بخواهیم آن را برای 5-10 روز کاری نگه داریم. اگر ما معامله گر موقعیت هستیم ، شاید باید این آستانه را تا 40-60 روز افزایش دهیم. اگر ما معامله گران نمونه کارها هستیم و از میانگین های متحرک به عنوان یک فیلتر فنی در برنامه غربالگری سهام خود استفاده می کنیم ، شاید بتوانیم روی 200-300 روز تمرکز کنیم.

انتخاب دوره سرمایه گذاری یک انتخاب اختیاری از معامله گر است. پس از تعیین آن ، باید سعی کنیم یک دوره SMA مناسب را تعیین کنیم. ما 20 ، 50 و 200 دوره را دیده ایم ، اما آیا آنها همیشه خوب هستند؟خوب نه واقعاً

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

الگوریتم برای بهترین میانگین متحرک

الگوریتمی که من در اینجا پیشنهاد می کنم ، تلاش برای یافتن بهترین میانگین متحرک با توجه به دوره سرمایه گذاری که انتخاب می کنیم. بعد از انتخاب این دوره ، طول میانگین های متحرک مختلف را امتحان خواهیم کرد و یکی از مواردی را پیدا می کنیم که بازده مورد انتظار سرمایه گذاری ما را به حداکثر می رساند (یعنی اگر در 100 و بعد از دوره انتخاب شده قیمت به 105 افزایش یابد ، 5 ٪ بازده داریم).

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

در عمل ، ما موارد زیر را انجام خواهیم داد:

  • چند سال از داده های روزانه سهام ما (به عنوان مثال 10 سال)
  • این مجموعه داده را به مجموعه های آموزش و آزمایش تقسیم کنید
  • میانگین های مختلف متحرک را در مجموعه آموزش اعمال کنید و برای هر یک ، میانگین بازده را بعد از روزهای N محاسبه کنید که قیمت نزدیک بیش از حد متوسط باشد (ما برای این مثال موقعیت های کوتاه را در نظر نمی گیریم)
  • میانگین میانگین متحرک را انتخاب کنید که چنین بازده متوسط را به حداکثر برساند
  • برای محاسبه میانگین بازده در مجموعه آزمون از این میانگین متحرک استفاده کنید
  • تأیید کنید که میانگین بازده مجموعه آزمون از نظر آماری شبیه به میانگین بازده به دست آمده در مجموعه آموزش است

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

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

مثالی در پایتون

سرمایه گذاری کوتاه مدت

اول از همه ، ما باید کتابخانه yfinance را نصب کنیم. برای بارگیری داده های سهام بسیار مفید است.

سپس می توانیم برخی از بسته های مفید را وارد کنیم:

بیایید فرض کنیم که می خواهیم ETF جاسوسی را به مدت 2 روز در فهرست S& P 500 نگه داریم و می خواهیم 10 سال داده را تجزیه و تحلیل کنیم.

اکنون می توانیم داده های خود را بارگیری کنیم و پس از 2 روز بازده را محاسبه کنیم.

اکنون می توانیم بهینه سازی را برای جستجوی بهترین میانگین متحرک انجام دهیم. ما یک حلقه را انجام خواهیم داد که در بین میانگین حرکت 20 دوره و میانگین متحرک 500 دوره قرار دارد. برای هر دوره ما مجموعه داده های خود را در مجموعه های آموزش و آزمایش تقسیم می کنیم ، پس از آن فقط روزهایی که قیمت نزدیک بالاتر از SMA است و بازگشت به جلو را محاسبه می کنیم ، فقط به تبلیغ خواهیم رسید. سرانجام ، ما میانگین بازده رو به جلو در مجموعه های آموزش و آزمایش را محاسبه می کنیم ، و آنها را با استفاده از آزمون Welch مقایسه می کنیم.

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

اولین مورد ، که بهترین امتیاز را دارد ،:

همانطور که مشاهده می کنید ، مقدار p از 5 ٪ بالاتر است ، بنابراین می توانیم فرض کنیم که میانگین بازده در مجموعه آزمون با میانگین بازده در مجموعه آموزش قابل مقایسه است ، بنابراین ما بیش از حد دچار نشده ایم.

بیایید نمودار قیمت را با توجه به بهترین میانگین متحرک ما پیدا کنیم (که میانگین حرکت 479 دوره است).

واضح است که قیمت اغلب بالاتر از SMA است.

سرمایه گذاری بلند مدت

حال ، بیایید ببینیم چه اتفاقی می افتد اگر N_Forward = 40 را تنظیم کنیم (یعنی ما موقعیت خود را به مدت 40 روز باز نگه داریم).

بهترین میانگین متحرک این نتایج را تولید می کند:

همانطور که مشاهده می کنید ، مقدار p پایین تر از 5 ٪ است ، بنابراین می توانیم فرض کنیم که مرحله آموزش نوعی بیش از حد را معرفی کرده است ، بنابراین ما نمی توانیم از این SMA در دنیای واقعی استفاده کنیم. دلیل دیگر می تواند این باشد که نوسانات بیش از حد تغییر کرده است و بازار قبل از سرمایه گذاری ما در آن باید تثبیت شود.

سرانجام ، بیایید ببینیم که با یک ETF مبتنی بر طلا (Ticker: GLD) با سرمایه گذاری 40 روزه چه اتفاقی می افتد.

مقدار P بسیار زیاد است ، بنابراین هیچ چیز بیش از حد وجود ندارد.

بهترین دوره متوسط در حال حرکت 136 است ، همانطور که در نمودار زیر مشاهده می کنیم.

نتیجه گیری

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

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

نرم افزار مفید تریدر...
ما را در سایت نرم افزار مفید تریدر دنبال می کنید

برچسب : نویسنده : احمد شاملو بازدید : 50 تاريخ : چهارشنبه 23 فروردين 1402 ساعت: 11:51