چگونه محدودیت زمانی در فیلترنویسی اعمال کنیم؟

گاهی اوقات پیش می‌آید که می‌خواهیم برای فیلتر خود محدودیت زمانی در نظر بگیریم. مثلاً می‌خواهیم فیلترمان در تایم پیش‌گشایش خروجی ندهد و فقط از ساعت ۹ به بعد فعال باشد، یا برعکس، بخواهیم فیلترمان فقط در انتهای بازار (مثلاً از ساعت ۱۲ به بعد) به ما سیگنال بدهد. خبر خوب این است که می‌توانیم با اعمال یک محدودیت زمانی هوشمندانه، فیلترهای خود را دقیق‌تر و کاربردی‌تر کنیم.

استفاده از بلاک «زمان لحظه»

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

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

قانون طلایی: تبدیل زمان به عدد اعشاری

نکته‌ی بسیار مهمی که باید بدانید این است که سیستم فیلتر، زمان را به صورت ساعت و دقیقه (مثلاً ۱۰:۳۰) نمی‌پذیرد. این سیستم فقط عدد اعشاری را قبول می‌کند. بیایید با چند مثال این موضوع را شفاف کنیم:

  • اگر می‌خواهید فیلتر شما از ساعت ۱۰ به بعد فعال باشد، شرط را می‌نویسید: ساعت کل > 10.
  • اما اگر بخواهید فیلتر از ساعت ۱۰:۳۰ به بعد فعال شود، نمی‌توانید بنویسید ۱۰:۳۰. باید بنویسید ۱۰.۵.
  • حالا اگر بخواهید فیلتر از ساعت ۱۰:۰۵ به بعد فعال شود، چه باید کرد؟ باید تعداد دقیقه (۵) را بر ۶۰ تقسیم کنید. پس ۵ دقیقه می‌شود ۰.۰۸. در نتیجه شرط شما می‌شود: ساعت کل > 10.08.
  • برای ساعت ۱۰:۱۵ (یک ربع)، چون ۱۵ تقسیم بر ۶۰ می‌شود ۰.۲۵، شرط شما خواهد بود: ساعت کل > 10.25.

مثال عملی: محدود کردن بازه زمانی

فرض کنید می‌خواهید فیلتر شما فقط در بازه‌ی زمانی بین ساعت ۱۰ تا ۱۱ به شما خروجی بدهد. برای این کار کافی است دو شرط را با هم ترکیب کنید:

نحوه نوشتن زمان به صورت اعشاری (۱۰.۵ برای ده و نیم)
نحوه نوشتن زمان به صورت اعشاری (۱۰.۵ برای ده و نیم)

ساعت کل > 10 و ساعت کل < 11

روش محاسبه اعشار دقیقه با تقسیم بر ۶۰
روش محاسبه اعشار دقیقه با تقسیم بر ۶۰

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

کاربرد این محدودیت کجاست؟

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

تنظیم بازه زمانی بین دو عدد (بزرگتر از ده و کوچکتر از یازده)
تنظیم بازه زمانی بین دو عدد (بزرگتر از ده و کوچکتر از یازده)

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