بیاموزید که چگونه می توانید یک صفحه نمایش قدرتمند را بر اساس الگوی روند مارک مینروینی با پایتون بسازید.
سلب مسئولیت: مطالب موجود در این مقاله براساس کانال YouTube ریچارد Moglen برای اهداف صرفاً آموزشی ساخته شده است و نباید به عنوان مشاوره سرمایه گذاری حرفه ای در نظر گرفته شود. با اختیار خود سرمایه گذاری کنید.
Screeners سهام یک روش فوق العاده برای یافتن سهام مناسب برای استراتژی تجاری خاص شما است. با این حال ، هنگامی که من سعی کردم با استفاده از پایتون یک صفحه نمایش سهام را پیدا کنم ، به سختی می توانم کد خودکار و خودکار را پیدا کنم. بنابراین من این مقاله را ایجاد کردم تا به دیگران کمک کنم یک برنامه Python Screener Screener را بر اساس الگوی روند مارک مینروینی (8 اصل در انتخاب بهترین سهام) تهیه کنند. به خصوص با نوسانات در بازار فعلی ، امیدوارم که این کد در تلاش های تجاری شما به شما کمک کند.
قبل از ورود به کد ، می خواهم معیارهای غربالگری سهام را لمس کنم.
- قیمت فعلی امنیت باید بیشتر از میانگین حرکت ساده 150 و 200 روزه باشد.
- میانگین حرکت ساده 150 روزه باید بیشتر از میانگین حرکت ساده 200 روزه باشد.
- میانگین متحرک ساده 200 روزه باید حداقل 1 ماه رو به رشد باشد.
- میانگین حرکت ساده 50 روزه باید بیشتر از 150 میانگین متحرک ساده و 200 میانگین حرکت ساده باشد.
- قیمت فعلی باید بیشتر از میانگین حرکت ساده 50 روزه باشد.
- قیمت فعلی باید حداقل 30 ٪ بالاتر از 52 هفته پایین باشد.
- قیمت فعلی باید در 25 ٪ از 52 هفته بالا باشد.
- رتبه بندی IBD RS باید بیشتر از 70 باشد (بالاتر ، بهتر). رتبه RS معیار عملکرد قیمت سهام در سال گذشته در مقایسه با سایر سهام و بازار کلی است. برای کسب اطلاعات بیشتر این مقاله را بررسی کنید.
می توانید اطلاعات بیشتر در مورد این الگوی را در پست وبلاگ مارک مینروینی بخوانید.
اکنون که با معیارها آشنا هستید ، می توانیم وارد کد شویم. ابتدا وابستگی های زیر را وارد کنید. اگر یکی از ماژول های زیر را که روی دستگاه خود نصب شده اید ، ندارید ، برای بارگیری آنها از "PIP نصب (نام ماژول)" در ترمینال خود استفاده کنید.
اول ، ما باید وابستگی هایی را که در برنامه استفاده خواهیم کرد مانند yahoo_fin (برای به دست آوردن لیست تیک ها) و pandas_datareader. data (برای به دست آوردن داده های سهام تاریخی) وارد کنیم.
در مرحله بعد ، ما باید متغیرها را برای بقیه برنامه تنظیم کنیم. من در زیر بیان کردم که هر متغیر به آن اشاره دارد.
- Tickers: همه تیک های موجود در S& P 500
- index_name: نماد مالی S& P 500 یاهو
- start_date: تاریخ آغاز داده های تاریخی (دقیقاً یک سال پیش)
- end_date: تاریخ پایان داده های تاریخی (امروز)
- لیست صادرات: مقادیری که برای هر سهام جمع می کنیم
- Return_Multiples: لیستی برای دیدن نحوه عملکرد هر سهام نسبت به بازار (برای محاسبه رتبه RS استفاده خواهد شد)
اکنون ، ما می توانیم بازده تجمعی شاخص S& P 500 را طی یک سال گذشته محاسبه کنیم و آن مقدار را با بازده تجمعی برای هر سهام در S& P 500 در همین مدت مقایسه کنیم. متریک استحکام نسبی IBD اساساً چگونگی عملکرد سهام نسبت به بازار و سایر سهام را در یک دوره زمانی خاص محاسبه می کند. از آنجا که متریک به طور انحصاری در خدمات IBD استفاده می شود ، می توانیم IBD RS را با تقسیم بازده تجمعی هر سهام بر بازده تجمعی شاخص تخمین بزنیم و سپس برای هر سهام از 100 رتبه بندی صدک ایجاد کنیم. بازار بیشتر از MSFT در یک دوره زمانی مشخص ، Rs بالاتری خواهد داشت. در الگوی روند مارک مینروینی ، او به دنبال سهام با ارزش RS 70 یا بالاتر (30 ٪ برتر سهام در بازار) است.
از آنجا که در این برنامه ، متریک RS با مقدار درصد نسبت به سایر سهام در لیست داده شده محاسبه می شود ، بهتر است لیستی از مقدار بیشتری از سهام را داشته باشید تا ارزش RS دقیق تر شود. در این برنامه ، ما لیستی از~500 سهام در شاخص S& P 500 به طوری که اندازه نمونه کافی است.
برای سریعتر کردن این روند ، می توانیم به جای اینکه به طور مداوم درخواست هایی را به Finance Yahoo انجام دهیم (که می تواند باعث ایجاد خطا شود) داده های تاریخی را برای هر سهام در طول سال گذشته بارگیری کنیم. Time. Sleep (1) در انتهای حلقه FOR همچنین می تواند به مهار خطاهای احتمالی با هجوم درخواست ها کمک کند. سرانجام ، پس از دستکاری داده ها با مقدار ، ما یک DataFrame با 30 ٪ سهام برتر در لیست داده شده و همچنین مقادیر RS مربوط به آنها داریم.
بهجای محاسبه معیارهای هر یک از سهام، میتوانیم فقط 30 درصد سهام برتری را که شرط 8 الگوی روند Minervini را پاس میکنند (مقدار RS بزرگتر از 70) وارد کنیم. از اینجا می توانیم معیارهای مورد نیاز برای ایجاد شرایط را محاسبه کنیم. قیمت بسته فعلی با در نظر گرفتن قیمت بسته تعدیل شده برای روز آخر استفاده می شود. بالا و پایین های سال گذشته با یافتن مقادیر حداکثر و حداقل در DataFrame برای 260 روز معاملاتی گذشته (حدود یک سال) محاسبه می شود. میانگینهای متحرک با محاسبه میانگینهای چرخشی در مدت زمان مربوطه استفاده میشوند. بقیه کدها در واقع غربالگر را با اصولی که قبلا ذکر شد اجرا می کند. اگر سهمی از هر یک از شرایط عبور کند، میتوانیم آن را به فهرست صادراتی خود اضافه کنیم که از الگوی روند Minervini عبور کردهاند!
در نهایت، این کد یک DataFrame از تمام سهام هایی که شرایط لازم را ایجاد کرده اند چاپ می کند و برای راحتی شما سهام ها را در یک فایل اکسل دانلود می کند. اکنون شما می دانید که چگونه می توانید صفحه نمایش سهام مورد استفاده توسط یکی از بهترین معامله گران تمام دوران را ایجاد کنید!
GitHub Gist زیر حاوی تمام کدهای برنامه است. امیدوارم این الگوریتم در آینده برای شما مفید واقع شود. از خواندن این مطلب متشکریم!
اگر از این مقاله لذت بردید، به انجمن سرمایه گذاری رایگان من در Finary بپیوندید و برخی از مقالات Python for Finance من را در زیر بررسی کنید!