آموزش طراحی فیلتر «جمع شدن صف فروش» در آسان بورس

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

شرایط اصلی فیلتر: گذشته و حال

این فیلتر از دو شرط اساسی تشکیل شده است که باید همزمان بررسی شوند:

تعریف سه شرط اصلی صف فروش (حجم تقاضا، حجم عرضه، قیمت)
تعریف سه شرط اصلی صف فروش (حجم تقاضا، حجم عرضه، قیمت)
  1. شرط اول: نماد در چند دقیقه پیش (مثلاً ۳ دقیقه قبل) صف فروش بوده است.
  2. شرط دوم: در لحظهٔ فعلی، نماد دیگر صف فروش نیست.

ما باید هر دو شرط را به صورت جداگانه طراحی کنیم و سپس آن‌ها را با هم ترکیب کنیم.

مرحله اول: تشخیص صف فروش در گذشته

برای اینکه بفهمیم نماد چند دقیقه پیش صف فروش بوده یا نه، ابتدا باید تعریف دقیق صف فروش را بدانیم. یک نماد در صف فروش است اگر:

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

اگر این سه شرط را با هم AND کنیم، شرط صف فروش بودن را داریم. اما مشکل اینجاست: ما به داده‌های «چند دقیقه پیش» نیاز داریم، در حالی که داده‌های معمولی فقط وضعیت لحظه‌ای را نشان می‌دهند. برای حل این مشکل، باید از بلاک لیست استفاده کنیم.

نقش کلیدی بلاک لیست

بلاک لیست یک ابزار قدرتمند در اندیکاتورنویسی است که داده‌ها را در بازه‌های زمانی مشخص ذخیره و لیست می‌کند. این بلاک ورودی عددی می‌گیرد و داده‌ها را در فواصل زمانی (مثلاً هر ۳ دقیقه) بررسی و ذخیره می‌کند. با استفاده از این بلاک، می‌توانیم وضعیت صف فروش را در ۳ دقیقه قبل ذخیره کرده و سپس بررسی کنیم که آیا در آن بازه زمانی، نماد در صف فروش بوده است یا خیر.

نحوه استفاده از بلاک لیست برای ذخیره داده‌های زمانی
نحوه استفاده از بلاک لیست برای ذخیره داده‌های زمانی

مرحله دوم: تبدیل منطق به عدد (بلاک انتخاب شرطی)

چالش اصلی اینجاست: خروجی شرط صف فروش (ترکیب سه شرط بالا) یک مقدار منطقی (True/False) است، اما بلاک لیست فقط ورودی عددی می‌پذیرد. برای حل این مشکل، باید از بلاک انتخاب شرطی استفاده کنیم.

کارکرد بلاک انتخاب شرطی بسیار ساده است: اگر شرط صف فروش برقرار باشد، عدد ۱ را خروجی می‌دهد و اگر برقرار نباشد، عدد ۰ را. حالا که خروجی ما عددی است، می‌توانیم آن را به بلاک لیست وصل کنیم تا وضعیت ۳ دقیقه قبل را ثبت کند.

تبدیل خروجی منطقی به عدد با استفاده از بلاک انتخاب شرطی
تبدیل خروجی منطقی به عدد با استفاده از بلاک انتخاب شرطی

مرحله سوم: بررسی وضعیت لحظه‌ای (جمع شدن صف)

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

اتصال خروجی عددی به بلاک لیست برای بررسی سه دقیقه پیش
اتصال خروجی عددی به بلاک لیست برای بررسی سه دقیقه پیش

در اینجا نیز می‌توانیم از منطق عددی استفاده کنیم: اگر صف فروش نباشد، عدد ۱ بدهد. در نهایت، اگر عدد مربوط به ۳ دقیقه قبل (که باید ۱ باشد) با عدد مربوط به لحظهٔ حال (که باید ۱ باشد) برابر باشند، یعنی نماد مورد نظر در ۳ دقیقه قبل صف فروش بوده و الان دیگر نیست؛ یعنی صف فروش جمع شده است.

نحوه اجرای فیلتر: فیلتر زنده یا نوتیفیکیشن؟

یک نکتهٔ بسیار مهم در مورد این فیلتر وجود دارد: به دلیل ماهیت لحظه‌ای بودن، این فیلتر در حالت عادی و با دکمهٔ «اجرا» قابل استفاده نیست. چرا؟ چون ممکن است در لحظه‌ای که دکمه را می‌زنید، هیچ نمادی این شرایط را نداشته باشد.

شرط نهایی: مقایسه وضعیت سه دقیقه پیش با لحظهٔ فعلی
شرط نهایی: مقایسه وضعیت سه دقیقه پیش با لحظهٔ فعلی

برای استفاده عملی از این فیلتر، دو راه وجود دارد:

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

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

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