تشخیص سطح پشتیبانی و مقاومت در پایتون

  • 2022-08-5

الگوریتمی برای یافتن سطح پشتیبانی و مقاومت در پایتون

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

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

پشتیبانی و مقاومت چیست؟

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

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

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

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

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

سطح یا مناطق؟

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

نحوه شناسایی سطوح کلیدی

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

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

فراکتال ها

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

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

تشخیص خودکار در پایتون

بیایید یک مثال در پایتون با استفاده از داده های S& P 500 ببینیم. نوت بوک من را می توانید در GitHub در اینجا پیدا کنید: https://github. com/gianlucamalato/machinelearning/blob/master/Support_and_resistance. ipynb

بیایید ابتدا کتابخانه های yfinance و mpl_finance را نصب کنیم.

بیایید چند کتابخانه مفید وارد کنیم و محیط رسم را مقداردهی کنیم.

اکنون می توانیم داده های روزانه S& P 500 را دانلود کنیم.

بیایید دو تابع ایجاد نکنیم که فراکتال های 4 شمعی را شناسایی کنند.

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

اکنون می توانیم تابعی را تعریف کنیم که قیمت و سطوح کلیدی را با هم ترسیم کند.

در نهایت می توانیم نتیجه را ترسیم کنیم.

همانطور که می بینید، ما توانسته ایم سطوح اصلی رد را تشخیص دهیم، اما هنوز مقداری نویز وجود دارد. برخی از سطوح بالاتر از سایرین هستند، اما اساساً در یک سطح هستند.

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

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

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

در نهایت، ما می توانیم همه چیز را دوباره ترسیم کنیم.

اکنون سطوح واضح تر هستند، آنها با یکدیگر همپوشانی ندارند و ما به راحتی می توانیم ببینیم که گاهی اوقات قیمت بیش از یک بار بر روی هر سطح جهش می کند.

نتیجه گیری

خودکارسازی سطوح قیمت می‌تواند برای یک معامله‌گر کمی مفید باشد و می‌تواند بخشی از نویز بازار را حذف کند و نمودار را واضح‌تر کند. سطوح کلیدی را می‌توان برای استراتژی‌های بازگشت میانگین (یعنی خرید زمانی که قیمت از سطح حمایت فاصله می‌گیرد) یا برای استراتژی‌های شکست (یعنی خرید زمانی که قیمت یک سطح مقاومت را می‌شکند) استفاده کرد.

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

ثبت دیدگاه

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