روند معاملات با باندهای بولینگر

ساخت وبلاگ

تعیین روند قیمت سهام هنگام طراحی یک سیستم معاملاتی فنی بسیار قدرتمند است. اگر بتوانیم تعیین کنیم که یک روند معکوس می شود، یعنی به بالا یا پایین می رسد، می توانیم نقاط خرید یا فروش خوبی را برای اوراق بهادار خود تعیین کنیم. در بیشتر تحلیل های فنی، معمولاً یک اندیکاتور واحد برای توسعه یک سیستم معاملاتی کافی نیست و پیش بینی های حرکت واقعی قیمت به چندین شاخص مختلف بستگی دارد که به طور همزمان فعال می شوند. باندهای بولینگر یک ابزار تحلیل روند جالب است که باندهایی را در اطراف قیمت سهام تشکیل می دهد تا تعیین کند که قیمت سهام چه زمانی در شرف تغییر جهت است. در این پست، یک استراتژی معاملاتی مبتنی بر باندهای بولینگر را توضیح می دهم، استراتژی را در پایتون پیاده سازی می کنم، آن را روی سهام S& P 500 بک تست می کنم و نتایج را تحلیل می کنم.

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

باندهای بولینگر

باندهای بولینگر خطوط میانگین متحرک هستند که در بالا و پایین یک میانگین متحرک معین رسم شده اند. برخلاف سایر اندیکاتورهای روند، باندها بر اساس درصد معینی بالا یا پایین تر از یک خط میانگین متحرک ساخته نمی شوند. در عوض، باندهای بولینگر به عنوان انحراف استاندارد بالاتر از خط میانگین متحرک رسم می شوند. به طور معمول، یک "باند میانی" با گرفتن میانگین متحرک دوره n از قیمت های بسته شدن یک سهم تعیین می شود. سپس "باند بالایی" را می توان با افزودن دو انحراف استاندارد به باند میانی ترسیم کرد و به طور مشابه، "باند پایین" با کم کردن دو انحراف استاندارد از باند میانی ترسیم می شود. شاخص های معاملاتی (عمدتاً معکوس ها) زمانی شکل می گیرند که قیمت بسته شدن سهام با توجه به این خطوط حرکت می کند، به عنوان مثال. زیر باند پایینی می افتد یا بالای باند بالایی حرکت می کند.

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

اگرچه استراتژی های معاملاتی زیادی وجود دارد، مانند موارد ذکر شده در iForex، این پست از یک استراتژی معاملاتی ساده با مفروضات زیر استفاده می کند:

  1. هیچ کوتاه فروشی وجود ندارد، یعنی فقط می توانیم سهامی را که مالک آن هستیم بفروشیم
  2. فرض بر این است که در روزی که یک رویداد اتفاق می افتد، تصمیم را در زمان واقعی می گیریم. به این معنا که اگر قیمت سهام یکی از قوانین ما را تحریک کند، معامله ای اجرا می شود، ما برای اوج های بالاتر یا پایین تر حدس و گمان نمی کنیم.
  3. بسیاری از سهام را می توان قبل از فروش خریداری کرد (الگوریتم یک سهم را "خرید" می کند اما نتایج را در هر عدد ضرب می کند تا اندازه لات را تغییر دهد).
  4. هنگام فروش، ما تمام سهام خریداری شده قبلی را می فروشیم.

با توجه به این مفروضات، استراتژی معاملاتی به این صورت است: هر زمان که قیمت پایانی ابتدا به زیر باند پایین رسید، سهام را بخرید و هر زمان که قیمت پایانی بالاتر از باند بالا رفت، تمام سهام تحت مالکیت فعلی (در صورت وجود) را بفروشید.

این استراتژی معاملاتی در پایتون اجرا می شود و بر روی سهام S& P 500 در بازه های زمانی 10 ساله، 5 ساله و 1 ساله انجام می شود. متأسفانه، دوره زمانی 1 ساله ممکن است به دلیل "سقوط کووید" در سال 2020 گمراه کننده باشد، اما با این وجود از آن استفاده خواهیم کرد.

پیاده سازی

اجرای این استراتژی در پایتون بسیار ساده است به شرط اینکه کتابخانه Pandas و ابزار بازیابی قیمت سهام Yahoo Finance من که در پست قبلی در مورد آن نوشتم (این ابزار از طریق پیپ قابل نصب است) بسیار ساده است. اول، ما باید تمام وابستگی ها را برای واکشی، پردازش، و تجزیه و تحلیل (نقشه برداری) داده ها لحاظ کنیم:

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

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

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

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

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

پشتی

برای آزمایش استراتژی ، از لیستی از تیک های موجود در S& P 500 برای اعمال این تکنیک برای هر سهام موجود در فهرست استفاده می شود (نام پرونده در کد: sp500tickers. csv). این کار برای دوره های 1- ، 5- و 10 ساله همانطور که در بالا ذکر شد انجام می شود. نتایج (سود/ضرر) در بخش نتایج زیر مورد بحث قرار گرفته است. کدی که این کار را بر روی همه تیکرها اجرا می کند نیز در زیر مشاهده می شود. نمودارهایی که در بالا ایجاد شده اند و معاملاتی که اجرا می شوند برای هر تیک تولید می شوند. آنها همچنین را می توان در مخزن GitHub برای این پروژه به همراه کد منبع یافت.

نتایج

Using the results.dat files generated by each of the three runs for the three time periods, the results of the backtesting can be analyzed. For starters, it would be interesting to know what percentage of the S&P 500 tickers were profitable when trading this strategy. To determine this, the number of profitable entries in the dataset (profit column>0) با تعداد کل ردیف ها تقسیم می شود:

انجام این کار برای هر سه دوره زمانی نشان می دهد که این استراتژی 98. 98 ٪ از زمان در یک سال سودآور است ، 84. 71 ٪ از زمان در 5 سال و 90. 54 ٪ از زمان در 10 سال. این نتایج 0 تیک سود را فیلتر می کند ، زیرا این موارد احتمالاً در جایی که هیچ معامله ای وجود ندارد و یا داده های موجود در امور مالی یاهو در دسترس نبودند.

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

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

برچسب : نویسنده : احمد قانع پور بازدید : 31 تاريخ : جمعه 10 شهريور 1402 ساعت: :