یاد بگیر›تابلوخوانی و جریان پول›مقالهٔ ۶ از ۸

فیلترنویسی مقدماتی در دیده‌بان بورس

متوسط حدود ۷ دقیقه ·به‌روزرسانی ·انتشار
نکتهٔ کلیدی این مقاله
فیلتر ابزار کوچک‌کردن فهرست است، نه ابزار تصمیم‌گرفتن.

فیلتر در دیده‌بان بازار سایت مدیریت فناوری بورس تهران (TSETMC) یک عبارت منطقی است که برای هر نماد جداگانه اجرا می‌شود و یکی از دو جواب «درست» یا «نادرست» را می‌دهد. نمادهایی که جوابشان «درست» است در فهرست می‌مانند و بقیه حذف می‌شوند. همین و بس؛ فیلتر نه پیش‌بینی می‌کند، نه رتبه‌بندی، و نه سیگنال می‌دهد.

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

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

ساختار یک فیلتر چه شکلی است؟

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

  • متغیرها داخل پرانتز نوشته می‌شوند، مثل (pl) برای قیمت آخرین معامله.
  • عملگرهای مقایسه همان‌های همیشگی‌اند: بزرگ‌تر، کوچک‌تر، بزرگ‌تر یا مساوی و مانند آن.
  • چند شرط را با && به معنی «و» و با || به معنی «یا» به هم وصل می‌کنی.

خروجی نهایی باید یک عبارت درست یا نادرست باشد. اگر شرط‌ها را با پرانتز گروه‌بندی کنی، هم خطا کمتر می‌شود و هم بعداً می‌توانی بخوانی چه نوشته‌ای.

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

متغیرهای پرکاربرد کدام‌اند؟

برای تابلوخوانی، این‌ها بیشترین کاربرد را دارند:

متغیر معنی
(pl) قیمت آخرین معامله (ریال)
(pc) قیمت پایانی (ریال)
(py) قیمت پایانی روز قبل (ریال)
(pf) اولین قیمت روز
(pmax) و (pmin) بیشترین و کمترین قیمت روز
(plp) و (pcp) درصد تغییر آخرین معامله و قیمت پایانی
(tvol) حجم معاملات روز
(tval) ارزش معاملات روز (ریال)
(tno) تعداد معاملات
(bvol) حجم مبنا
(ct).Buy_I_Volume و (ct).Buy_CountI حجم خرید حقیقی و تعداد کدهای خریدار حقیقی
(ct).Sell_I_Volume و (ct).Sell_CountI حجم فروش حقیقی و تعداد کدهای فروشندهٔ حقیقی
(ct).Buy_N_Volume و (ct).Sell_N_Volume حجم خرید و فروش حقوقی
(pd1) و (qd1) قیمت و حجم بهترین سفارش خرید
(po1) و (qo1) قیمت و حجم بهترین سفارش فروش

اگر این نام‌ها آشنا به نظر می‌رسند، به این دلیل است که متریک‌های تابلوخوانی «بازار باشه» هم از همین میدان‌ها ساخته می‌شوند.

سه فیلتر پایهٔ تابلوخوانی چطور نوشته می‌شوند؟

۱. قدرت خریدار بالای ۱٫۵: سرانهٔ خرید حقیقی را با سرانهٔ فروش حقیقی مقایسه می‌کند. چون قیمت در هر دو طرف یکی است و از نسبت حذف می‌شود، لازم نیست در فرمول بیاید.

((ct).Buy_I_Volume / (ct).Buy_CountI) > 1.5 * ((ct).Sell_I_Volume / (ct).Sell_CountI)

۲. سرانهٔ خرید حقیقی بالای ۵۰ میلیون تومان: اینجا قیمت لازم است، و چون واحد ریال است، ۵۰ میلیون تومان می‌شود ۵۰۰ میلیون ریال.

((ct).Buy_I_Volume * (pc) / (ct).Buy_CountI) > 500000000

۳. کف نقدشوندگی: بدون این شرط، فیلترهای بالا پر از نمادهای کم‌معامله با سرانهٔ کاذب می‌شوند.

(ct).Buy_CountI >= 50 && (ct).Sell_CountI >= 20 && (tvol) > (bvol)

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

چرا خروجی فیلتر «سیگنال» نیست؟

سه دلیل:

  1. فیلتر فقط لحظهٔ حال را می‌بیند. شرط‌ها روی آمار همین لحظه اجرا می‌شوند و از روند چند روزهٔ نماد چیزی نمی‌دانند.
  2. فیلتر عمومی، مزیت ندارد. هر فیلتر پرطرفداری را هزاران نفر هم‌زمان اجرا می‌کنند و اثرش پیش از رسیدن به تو در قیمت نشسته است.
  3. فیلتر تفاوت واقعی و ساختگی را نمی‌فهمد. سرانهٔ ساخته‌شده با کد به کد هم شرط را پاس می‌کند.

پس بعد از فیلتر، نماد به نماد باز کن و تعداد کدها، روند چند روزهٔ جریان پول و وضعیت کلی نماد را ببین.

همین کار را بدون کدنویسی چطور انجام دهم؟

اسکرینر تابلوخوانی «بازار باشه» همین شرط‌ها را به‌شکل فیلتر ترکیبی آماده دارد و لازم نیست کد بنویسی: معیار را از فهرست انتخاب می‌کنی، «بالاتر از» یا «پایین‌تر از» را می‌گذاری و عدد را وارد می‌کنی. همهٔ شرط‌ها با «و» ترکیب می‌شوند و عددها تومانی‌اند (سرانه به میلیون تومان، ورود پول به میلیارد تومان)، پس ضرب در ۱۰ لازم نیست.

سه دکمهٔ آماده هم هست: «پول هوشمند ورودی» (ورود پول بالای ۱ میلیارد تومان و قدرت خریدار بالای ۱٫۲)، «قدرت خریدار بالا» (قدرت بالای ۱٫۵ و سرانهٔ خرید بالای ۵۰ میلیون تومان) و «سبز و پول‌دار» (تغییر روز مثبت و ورود پول بالای ۰٫۵ میلیارد تومان). یک کف نقدشوندگی ساده هم خودکار اعمال می‌شود: نمادی که نه ۱۰ خریدار حقیقی دارد و نه ۱۰ فروشندهٔ حقیقی، در نتیجه نمی‌آید. این کف از شرط سوم بالا ملایم‌تر است و اسکرینر معیاری برای تعداد کد ندارد؛ پس تعداد کدهای نمادهای نتیجه را خودت در تابلوی رسمی چک کن.

پرسش‌های پرتکرار

فیلتر روی داده‌های تاریخی هم کار می‌کند؟

به‌شکل محدود. متغیرهای تاریخی مثل ردیف‌های روزهای قبل در دسترس‌اند، ولی نوشتن شرط‌های چندروزه پیچیده و کند می‌شود. برای تحلیل چندروزه بهتر است سراغ بک‌تست بروی.

چرا خروجی فیلترم همیشه خالی است؟

معمول‌ترین دلیل، واحد است: عدد را تومانی نوشته‌ای در حالی که متغیر ریالی است. دلیل دوم، سخت‌گیری بیش از حد در ترکیب چند شرط با «و» است.

چند شرط در یک فیلتر خوب است؟

دو تا چهار شرط معنادار، به‌علاوهٔ یک کف نقدشوندگی. هر شرط اضافه، احتمال اینکه فقط به گذشته برازش داده باشی را بالا می‌برد.

آیا فیلتر بازار را به‌شکل زنده می‌خواند؟

بله، روی آمار همان لحظهٔ دیده‌بان اجرا می‌شود. برای همین خروجی‌اش در دقایق اول بازار بی‌ثبات است و در نیمهٔ دوم جلسه قابل اتکاتر.

خلاصه

  • فیلتر یک عبارت درست یا نادرست است که روی هر نماد جداگانه اجرا می‌شود.
  • متغیرها داخل پرانتز نوشته می‌شوند، قیمت‌ها ریالی‌اند و شرط‌ها با «و» و «یا» ترکیب می‌شوند.
  • سه فیلتر پایه: قدرت خریدار، سرانهٔ خرید حقیقی، و کف نقدشوندگی که بدون آن بقیه بی‌معنی‌اند.
  • خروجی فیلتر سیگنال نیست؛ فهرست کوتاهی برای بررسی دستی است.
  • اسکرینر سایت دو شرط اول را بدون کدنویسی اجرا می‌کند؛ کف نقدشوندگی‌اش ملایم است و تعداد کدها را باید خودت چک کنی.
قدم عملی: بدون کدنویسی غربال کن
همان شرط‌های تابلوخوانی، به‌شکل فیلتر ترکیبی آماده روی کل بازار بورس و فرابورس.
برو ←
این خروجی مدل آماری است، نه توصیهٔ سرمایه‌گذاری. بازده گذشته تضمین آینده نیست و تصمیم و مسئولیت نهایی با خود شماست. پیش از هر خرید، شرایط خودتان را بسنجید.