شناسایی خروج از ناحیه اشباع فروش با فیلترنویسی MACD

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

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

تعریف منطق ورود به فیلتر

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

تعریف رنج عددی برای نزدیک شدن به سطح صفر
تعریف رنج عددی برای نزدیک شدن به سطح صفر

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

چالش مهم: تشخیص جهت حرکت

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

نمایش خط صفر روی نمودار نماد وتعاون
نمایش خط صفر روی نمودار نماد وتعاون

برای حل این مشکل، باید یک شرط محکم‌تر بگذاریم: بالاترین مقدار MACD در ۲۰ روز گذشته باید کمتر از صفر بوده باشد.

این یعنی در ۲۰ روز گذشته، اندیکاتور هیچ‌گاه به بالای خط صفر نرسیده و همیشه در ناحیه منفی بوده است. حالا که به صفر نزدیک شده، احتمال بازگشت به بالا (خروج از اشباع فروش) بسیار زیاد است.

توضیح شرط ماکزیمم ۲۰ روزه برای فیلتر کردن
توضیح شرط ماکزیمم ۲۰ روزه برای فیلتر کردن

نحوه پیاده‌سازی در نرم‌افزار

برای نوشتن این شرط در فیلترنویسی، باید از تابع CommonMath استفاده کنیم تا ماکزیمم (بالاترین) مقدار MACD را در یک دوره مشخص (مثلاً ۲۰ روز) پیدا کنیم.

  • از تابع CommonMath برای گرفتن ماکزیمم استفاده می‌کنیم.
  • دوره زمانی را روی ۲۰ روز تنظیم می‌کنیم.
  • شرط نهایی این است: Max(MACD, 20) < 0 (بالاترین مقدار ۲۰ روزه کمتر از صفر باشد).

با ترکیب این دو شرط (نزدیکی به صفر و ماکزیمم ۲۰ روزه منفی)، ما دقیقاً نمادهایی را پیدا می‌کنیم که در حال خروج از ناحیه اشباع فروش هستند و احتمالاً حرکت صعودی را شروع می‌کنند.

اتصال اندیکاتور MACD به تابع CommonMath
اتصال اندیکاتور MACD به تابع CommonMath

نتیجه‌گیری و تعمیم به سایر اندیکاتورها

با اجرای این فیلتر، نمادهایی مانند «فازر» یا سایر نمادهایی که در نمودارشان MACD زیر صفر بوده و حالا به آن نزدیک شده‌اند، به ما نمایش داده می‌شوند. این منطق ساده اما قدرتمند، کلید اصلی برای شناسایی نقاط چرخش بازار است.

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