پرش به محتوای اصلی

فیلتر هوشمند قراردادهای اختیار معامله

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

نویسنده: آپشن باز، تاریخ انتشار: ، آخرین به‌روزرسانی: ، 12 دقیقه مطالعه
اشتراک‌گذاری:

انتخاب یک قرارداد اختیار معامله (آپشن) مناسب — Call یا Put — از بین صدها نماد فعال در بازار، نیازمند ارزیابی همزمان چندین متغیر حیاتی مانند نقدشوندگی، اهرم معاملاتی، قیمت‌گذاری منصفانه و حاشیه امنیت است. محاسبات دستی این فاکتورها غیرممکن است. در این راهنما، یک فیلتر هوشمند تعاملی و چندبعدی را طراحی و اجرا می‌کنیم که تمام شروط بهینه را به صورت خودکار پایش کرده و به شما امکان تنظیم ویژوال آستانه‌ها را می‌دهد.

چگونه در دیده‌بان آپشن‌باز اجرا می‌شود؟

برای پیاده‌سازی این اسکنر پیشرفته و دریافت خروجی لحظه‌ای، مراحل سادهٔ زیر را انجام دهید:

  1. میزکار را باز کنید و یک باکس دیده‌بان اضافه کنید (راهنمای میزکار)؛
  2. در بالای جدول روی دکمهٔ فرمول نویسی کلیک کنید؛
  3. دکمهٔ «فرمول جدید» را بزنید و در «نوع فرمول» گزینهٔ «فیلتر» را انتخاب کنید تا فقط قراردادهای واجد شرایط در جدول بمانند — یا «ستون» اگر می‌خواهید همهٔ ردیف‌ها بمانند و جلوی هر کدام true یا false ببینید؛
  4. کد بخش فرمول کامل و بهینه اسکنر را کپی کنید، در ویرایشگر بچسبانید و در کادر «نام» اسمی مثل «اسکنر بهینه» بنویسید؛
  5. ذخیره کنید: در میزکار دکمهٔ «ذخیره و اتصال به 1 باکس» است (همان باکسی که از آن آمده‌اید از قبل انتخاب شده) و در دیده‌بان مستقل «ذخیره و افزودن به دیده‌بان».

بعد از ذخیره، آیکون تنظیمات () ظاهر می‌شود — برای ستون در سرستون، و برای فیلتر کنار نام فرمول در پنل «فیلتر» نوار بالای جدول — تا آستانه‌ها را بدون دست زدن به کد عوض کنید.

پارامترهای بهینه‌ساز فیلتر هوشمند

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

شش شرط، پشت سر هم ردیف فقط وقتی می‌ماند که از همهٔ آن‌ها رد شود نقدشوندگی زمان قیمت منصفانه وضعیت اهرم ارزش زمانی && هر شرط، حق وتوی کامل دارد یک «نه» کافی است تا ردیف حذف شود — بقیه دیگر اهمیتی ندارند پس جدول خالی، خرابیِ فیلتر نیست یعنی امروز قراردادی نیست که هر شش شرط را با هم داشته باشد
شش شرط با && به هم وصل‌اند و هرکدام حق وتو دارد — پس جدولِ خالی خرابی نیست، یعنی امروز چیزی هر شش شرط را با هم ندارد.
چرا نقدشوندگی اول می‌آید option.ti.tValue >= FILTER_MIN_VOLUME ارزش معاملات بالا فاصلهٔ خرید و فروش کم و خروج در هر لحظه ممکن ارزش معاملات پایین ممکن است وارد شوید اما نتوانید خارج شوید بقیهٔ شروط دربارهٔ خوب بودنِ قرارداد حرف می‌زنند این یکی دربارهٔ اینکه اصلاً بشود معامله‌اش کرد
بقیهٔ شروط می‌گویند قرارداد خوب است؛ این یکی می‌گوید اصلاً می‌شود معامله‌اش کرد — ورودِ بدون خروج، سود نیست.
کف روزهای باقی‌مانده ردشده FILTER_MIN_DAYS روز تا سررسید ارزش زمانی افت ارزش زمانی در روزهای پایانی تندترین شیب را دارد پس این شرط، فرصت حرکتِ سهم پایه را تضمین می‌کند نه اینکه قرارداد را بهتر کند
کف روز تا سررسید، قرارداد را بهتر نمی‌کند — فرصت حرکت سهم پایه را تضمین می‌کند، چون شیب افت ارزش زمانی در روزهای پایانی تندترین است.
اهرم؛ چرا اصلاً قرارداد و نه خود سهم leverage() >= FILTER_MIN_LEVERAGE حرکت سهم پایه حرکت قرارداد اهرم دوطرفه است و در همین فیلتر جبرانی ندارد شروط دیگر کیفیت را می‌سنجند؛ هیچ‌کدام اندازهٔ موقعیت را تعیین نمی‌کند
اهرم دوطرفه است و هیچ‌یک از شروط این فیلتر اندازهٔ موقعیت را تعیین نمی‌کند — کیفیت را می‌سنجند، نه ریسک شما را.
  • نقدشوندگی و ارزش معاملات: حذف نمادهایی که ارزش معاملاتی پایینی دارند و ریسک عدم نقدشوندگی یا فاصله زیاد قیمت خرید و فروش (Bid-Ask Spread) در آن‌ها بالا است.
  • فاصله تا سررسید (زمان): دوری از افت ارزش زمانی شدید (تتا) در روزهای پایانی قرارداد.
  • قیمت‌گذاری منصفانه (بلک‌شولز): اطمینان از اینکه قیمت معاملاتی تفاوت فاحشی با ارزش تئوریک مدل بلک‌شولز تاریخی ندارد.
  • وضعیت مالی (In the Money): تمرکز روی قراردادهای درون سود که ارزش ذاتی دارند و احتمال بی‌ارزش شدنشان در سررسید از قراردادهای خارج از سود کمتر است.
  • اهرم معاملاتی: قرارداد با اهرم بالاتر به حرکت سهم پایه تندتر واکنش می‌دهد — در سود و در زیان به یک اندازه. این شرط فقط قراردادهای کم‌واکنش را کنار می‌گذارد و اندازهٔ موقعیت را تعیین نمی‌کند.

شخصی‌سازی آسان با پنل ویژوال (⚙️)

با تعریف متغیرهای کنترلی با پیشوند FILTER_ در ابتدای فرمول، سیستم به صورت خودکار پنل کنترل تعاملی به شما ارائه می‌دهد. دکمهٔ چرخ‌دنده سرستون را کلیک کنید تا متغیرهای زیر را به راحتی تغییر دهید:

یک ثابت که کل شرط را خاموش می‌کند FILTER_STATE === 'ALL' || option.state === FILTER_STATE 'ALL' سمت چپ درست می‌شود و وضعیت اصلاً بررسی نمی‌شود 'ITM' فقط قراردادهای در سود که ارزش ذاتی دارند حذف کردنِ یک شرط، به پاک کردن کد نیاز ندارد یک مقدار در پنل ⚙️ آن را از مدار خارج می‌کند و هر وقت خواستید، برمی‌گردانید
مقدار ALL سمت چپِ «یا» را درست می‌کند و شرط وضعیت اصلاً بررسی نمی‌شود — حذف یک شرط به پاک کردن کد نیاز ندارد.
سفت کردن دو پیچ با هم نقدشوندگی اهرم هر دو قراردادهای پرمعامله معمولاً همان‌هایی نیستند که اهرم بالا دارند پس یکی‌یکی سفت کنید و بعد از هر تغییر، تعداد ردیف‌ها را ببینید
اشتراک دو شرطِ سخت‌گیرانه، خیلی کوچک‌تر از تصور است — یکی‌یکی سفت کنید و بعد از هر تغییر تعداد ردیف‌ها را ببینید.
  • حداقل ارزش معاملات (FILTER_MIN_VOLUME): مشخص کردن کف نقدشوندگی (مثلاً 100 میلیون ریال).
  • حداقل روز تا سررسید (FILTER_MIN_DAYS): تضمین فرصت کافی برای حرکت سهم (مثلاً حداقل 14 روز).
  • حداکثر انحراف بلک‌شولز (FILTER_MAX_BS_DIFF): جلوگیری از خرید بسیار گران‌تر از ارزش تئوریک (مثلاً حداکثر 15٪ انحراف).
  • حداقل اهرم مطلوب (FILTER_MIN_LEVERAGE): کنترل قدرت جهش قرارداد (مثلاً اهرم بزرگتر از 3).
  • وضعیت مالی (FILTER_STATE): پیش‌فرض ITM است و گزینهٔ «همه» شرط وضعیت را کنار می‌گذارد. ولی شرط ششم، باند ارزش زمانی، خودش ارزش ذاتی مثبت می‌خواهد؛ پس با «همه» هم فقط قراردادهای در سود می‌مانند و با OTM جدول خالی می‌شود. برای اسکن قراردادهای خارج از سود، hasReasonableTimeValue را از خط return آخر کد بردارید.

فرمول کامل و بهینه اسکنر

این کد را کپی کرده و در ادیتور فرمول‌نویسی پلتفرم وارد کنید. توضیحات فارسی نحوه عملکرد هر بخش را نشان می‌دهد:

قدر مطلق، شرط را دوطرفه می‌کند Math.abs(bsDiff) <= FILTER_MAX_BS_DIFF 0 گران‌تر از تئوری ارزان‌تر از تئوری پذیرفته یعنی خیلی ارزان هم رد می‌شود، نه فقط خیلی گران چون این فیلتر دنبال قیمت‌گذاری منصفانه است، نه دنبال معاملهٔ ارزان اگر دنبال انحرافِ بزرگ می‌گردید، این همان شرطی است که باید عوض شود
قدر مطلق شرط را دوطرفه می‌کند: خیلی ارزان هم رد می‌شود — این فیلتر دنبال قیمت‌گذاری منصفانه است، نه دنبال معاملهٔ ارزان.
قیمت قرارداد از دو تکه ساخته شده قیمت معاملهٔ قرارداد ارزش ذاتی اگر همین حالا تمام شود ارزش زمانی باقی‌ماندهٔ قیمت timeValue = lastPrice - intrinsicValue ارزش زمانی محاسبه نمی‌شود؛ چیزی است که از قیمت باقی می‌ماند
ارزش زمانی مستقیم محاسبه نمی‌شود — باقی‌ماندهٔ قیمت پس از کسر ارزش ذاتی است، و ارزش ذاتی یعنی «اگر همین حالا تمام شود».
سهم ارزش زمانی از قیمت — هر دو سر بریده می‌شود پذیرفته 10% 90% 0 100% زیر کفِ باند تقریباً همه‌اش ارزش ذاتی است و مثل خودِ سهم رفتار می‌کند بالای سقفِ باند تقریباً همه‌اش ارزش زمانی است و با گذشت زمان آب می‌رود شرطِ ارزش ذاتیِ مثبت هم کنارش هست، پس قرارداد باید در سود باشد
این باند هر دو سر را می‌برد: قراردادی که تقریباً همه‌اش ارزش ذاتی است مثل خود سهم رفتار می‌کند، و قراردادی که تقریباً همه‌اش ارزش زمانی است با گذشت زمان آب می‌رود.
// --- تنظیمات ویژوال قابل تغییر در پنل ⚙️ --- const FILTER_MIN_VOLUME = 100000000; // حداقل ارزش معاملات (ریال) const FILTER_MIN_DAYS = 14; // حداقل روز تا سررسید const FILTER_MAX_BS_DIFF = 15; // حداکثر انحراف از قیمت بلک‌شولز (درصد) const FILTER_MIN_LEVERAGE = 3; // حداقل اهرم معاملاتی const FILTER_STATE = 'ITM'; // وضعیت مالی [ALL=همه][ITM][OTM][ATM] // 1. بررسی نقدشوندگی و ارزش معاملات جاری let isLiquid = option.ti.tValue >= FILTER_MIN_VOLUME; // 2. بررسی فاصله تا سررسید جهت جلوگیری از بی ارزش شدن سریع let hasEnoughTime = option.daysUntilMaturity >= FILTER_MIN_DAYS; // 3. محاسبه ارزش تئوریک بلک‌شولز و سنجش انحراف قیمت بازار let bsData = calcBS(option); let bsPrice = bsData ? bsData.bs : 0; let isFairlyPriced = false; if (bsPrice > 0 && option.ti.lastPrice > 0) { let bsDiff = Math.abs(((option.ti.lastPrice - bsPrice) / bsPrice) * 100); isFairlyPriced = bsDiff <= FILTER_MAX_BS_DIFF; } // 4. پایش وضعیت مالی قرارداد let matchesState = FILTER_STATE === 'ALL' || option.state === FILTER_STATE; // 5. پایش اهرم معاملاتی واقعی let hasGoodLeverage = leverage() >= FILTER_MIN_LEVERAGE; // 6. محاسبه و تفکیک ارزش ذاتی و ارزش زمانی جهت کیفیت‌سنجی قیمت let intrinsicValue = 0; if (option.type === 'call') { intrinsicValue = Math.max(0, ua.ti.lastPrice - option.strike); } else { intrinsicValue = Math.max(0, option.strike - ua.ti.lastPrice); } let timeValue = option.ti.lastPrice - intrinsicValue; // بررسی تناسب ارزش زمانی (جلوگیری از پرداخت پرمیوم کاذب برای ارزش زمانی مطلق) let hasReasonableTimeValue = intrinsicValue > 0 && timeValue > (option.ti.lastPrice * 0.1) && timeValue < (option.ti.lastPrice * 0.9); // خروجی نهایی: تجمیع شروط برای فیلتر هوشمند return isLiquid && hasEnoughTime && isFairlyPriced && matchesState && hasGoodLeverage && hasReasonableTimeValue;

این را روی بازار امتحان کنید

مقالات مرتبط

فیلتر نویسی اختیار معامله در دیده بان سایت بورس TSETMC

آموزش نحوه ساخت فیلتر آپشن برای دیده بان سایت بورس اوراق بهادار تهران همراه با ساخت قالب شخصی و مقایسه با دیده بان حرفه ای سایت آپشن باز

فرمول نویسی با هوش مصنوعی | پرامپت آماده ChatGPT و Claude

پرامپت آمادهٔ کپی با مرجع کامل فیلدها، توابع و قوانین فرمول‌نویسی دیده‌بان آپشن‌باز — آن را به ChatGPT یا Claude یا Cursor بدهید تا ستون و فیلتر دلخواهتان را بنویسد. به‌همراه نمونهٔ درخواست دقیق و نسخهٔ متنی همیشه‌به‌روز.

مدیریت خروجی و فیلتر فرمول | راهنمای تنظیمات ویژوال دیده بان

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

راهنمای دیده بان اختیار معامله

راهنمای جامع دیده‌بان آپشن‌باز: جدول زنده قراردادها، فیلتر سریع روی سرستون (سربه‌سر، IV و …)، پنل فیلتر، فرمول‌نویسی، آلارم و اتصال به نمودار استراتژی.

استراتژی های اختیار معامله در دیده بان آپشن باز

فهرست کامل استراتژی‌های اختیار معامله در دیده‌بان آپشن‌باز — کاوردکال، اسپرد، استرادل، باکس و … — همراه با راهنمای تصویری افزودن ستون، تنظیم فیلترها و باز کردن نمودار سود و زیان.

مدل بلک شولز و قیمت تئوری قرارداد اختیار معامله

مدل بلک‌شولز در آپشن — قیمت تئوری، IV ضمنی، یونانی‌ها و استفاده در دیده‌بان و جزئیات قرارداد.

اهرم در اختیار معامله چیست؟ فرمول محاسبه اهرم آپشن با مثال

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

ایجاد فیلدهای شخصی و دسترسی به آنها در فرمول نویسی

آموزش ساخت پرتفوی اختصاصی، تعریف فیلدهای شخصی (تعداد، قیمت خرید/فروش، یادداشت) و دسترسی پویا به آن‌ها در فرمول‌ها و ستون‌های دیده‌بان.

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

آموزش کاربردی پیاده‌سازی اسکنر انحراف قیمت بازار از قیمت بلک‌شولز به همراه فیلتر حاشیه امنیت اعمال سهم با پنل تعاملی ویژوال (⚙️).

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

مجموعه فرمول‌های فیلترنویسی اختیار معامله در دیده‌بان آپشن باز: فیلتر بر اساس نقدشوندگی، یونانی‌ها، قیمت‌گذاری بلک-شولز و استراتژی‌های معاملاتی در بورس.

راهنمای دستیار هوش مصنوعی آپشن باز | فرمول نویسی دیده بان

دستیار هوش مصنوعی آپشن‌باز کجاست، چطور کنار ادیتور فرمول‌نویسی باز می‌شود، چه فرقی با هوش مصنوعی بیرونی دارد و چه کاری از آن برنمی‌آید — با پنج قاعدهٔ پرسیدن و چک‌لیست پرامپت.

آموزش فرمول نویسی اختیار معامله | متغیر، شرط، حلقه و تابع

دستورات پایه‌ای که برای نوشتن ستون و فیلتر در دیده‌بان اختیار معامله لازم دارید، با مثال اجراشده: متغیر و ثابت، عملگرها، if و else، شرط کوتاه، آرایه و حلقه، تابع، و کار با متن و عدد. زبان فرمول‌نویسی آپشن‌باز جاوااسکریپت است و همین چند دستور بیشتر کارها را پوشش می‌دهد.

دیدگاه‌ها و پرسش‌ها

اگر سوال یا ابهامی در رابطه با این مطلب دارید، همین‌جا بپرسید؛ کارشناسان ما پاسخ می‌دهند.

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

پرسش‌ها و نظرات کاربران

2 پیام
علی امیدنژاد
21 آذر 1403 - 00:20
این فیلتر کجا باید پیاده سازی کرد ؟
تیم آپشن بازپاسخ
25 آذر 1403 - 08:09
این فیلتر اختیار معامله داخل دیده‌بان ساخته می‌شود: 1. در میزکار یک باکس «دیده‌بان» اضافه کنید (یا به دیده‌بان آپشن بروید) و در نوار بالای جدول «فرمول نویسی» را بزنید. 2. «فرمول جدید» را بزنید و در «نوع فرمول» گزینهٔ «فیلتر» را انتخاب کنید. 3. کد بخش «فرمول کامل و بهینه اسکنر» را در ویرایشگر بچسبانید، در کادر «نام» اسمی بنویسید و ذخیره کنید؛ در میزکار دکمه «ذخیره و اتصال به 1 باکس» است و در دیده‌بان مستقل «ذخیره و افزودن به دیده‌بان». از این به بعد فقط قراردادهایی در جدول می‌مانند که هر شش شرط را دارند. آستانه‌ها را از آیکون «تنظیمات فرمول» کنار نام همین فیلتر در پنل «فیلتر» عوض کنید، بدون اینکه به کد دست بزنید.