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

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

نویسنده: آپشن بازتاریخ انتشار: 1405/02/01آخرین به‌روزرسانی: 1405/05/3019 دقیقه مطالعه
اشتراک‌گذاری:

برای ساخت فیلتر، به دیده‌بان آپشن بروید (راهنمای دیده‌بان)، یا از طریق میزکار باکس دیده‌بان اضافه کنید؛ سپس روی دکمهٔ فیلتر کلیک کنید، یک نام مناسب بگذارید، کد را در ادیتور بنویسید و خروجی نهایی را با دستور return یا به صورت یک شرط منطقی برگردانید، سپس آن را ذخیره کنید.

مراجع کمکی: راهنمای جامع فرمول‌نویسی · نمونه کدهای ستون محاسباتی · راهنمای تنظیمات ویژوال (⚙️)

فیلترهای زیر آمادهٔ کپی‌اند، ولی برای تغییر دادنشان باید ساختار کد را بشناسید — زبان فرمول‌نویسی نشان می‌دهد یک فیلتر با چه دستورهایی به بله یا خیر می‌رسد. اگر اصلاً نمی‌خواهید کد بزنید، فیلترهای آمادهٔ دیده‌بان همین کارها را با یک کلیک انجام می‌دهند.

یک فیلتر دیده‌بان همواره باید در خط نهایی خود مقدار منطقی true (جهت نمایش ردیف) یا false (جهت پنهان کردن ردیف) را برگرداند.

1. فیلتر نقدشوندگی و دفتر سفارش (Order Book)

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

فیلتر و ستون، یک ویرایشگر دارند و دو قرارداد فیلتر خط آخر باید منطقی باشد return true درست یعنی ردیف بماند ستون خط آخر یک مقدار است return 12.5 همان در سلول می‌نشیند اگر فیلتری عدد برگرداند، رفتارش قابل پیش‌بینی نیست پس همیشه مقایسه را تا آخر ببرید تا خروجی درست یا نادرست شود نادرست یعنی ردیف پنهان شود — نه اینکه خالی نشان داده شود
فیلتر در خط آخر باید درست یا نادرست برگرداند و ستون یک مقدار — همان ویرایشگر، دو قرارداد متفاوت.
چرا فیلتر نقدشوندگی یک شرط نیست؟ option.ti.volume > 0 امروز معامله شده option.ti.buy1Price > 0 الان خریدار دارد option.ti.sell1Price > 0 الان فروشنده دارد askBidSpread() فاصلهٔ دو سرخط منطقی است حجم مالِ گذشته است، دفتر سفارش مالِ همین لحظه نمادی می‌تواند صبح معامله شده باشد و حالا هیچ سفارشی نداشته باشد و اگر فاصلهٔ خرید و فروش زیاد باشد، ورود و خروج هزینه دارد حتی وقتی هر دو طرف سفارش دارند
حجم مالِ گذشته است و دفتر سفارش مالِ همین لحظه — نمادی می‌تواند صبح معامله شده باشد و حالا هیچ سفارشی نداشته باشد. برای همین چهار شرط لازم است.

این فیلتر نمادهایی را پیدا می‌کند که فعال هستند، حداقل یک سفارش در سرخط تقاضا و عرضه دارند و فاصلهٔ خرید و فروش (Bid-Ask Spread) در آن‌ها منطقی و کمتر از 25٪ است. جزئیات بیشتر را در مقاله سنجش نقدشوندگی بخوانید:

return option.ti.volume > 0 && option.ti.buy1Price > 0 && option.ti.sell1Price > 0 && askBidSpread() <= 25;

فیلتر نمادهای صف فروش بدون معامله:

return option.ti.volume === 0 && option.ti.sell1Count > 0;

فیلتر نمادهایی که صف خرید دارایی پایه آن‌ها سنگین‌تر از سقف قیمت روزانه است:

return ua.ti.sell1Price > ua.ti.dailyPriceHigh;

2. فیلتر وضعیت مالی (ITM / ATM) و نوع قرارداد

برای آشنایی با تعاریف وضعیت‌های مالی، مقاله وضعیت مالی قراردادها را مطالعه فرمایید.

وضعیت مالی، یک فیلد آماده است option.state 'ITM' | 'ATM' | 'OTM' رشته است، نه عدد لازم نیست خودتان قیمت اعمال را با قیمت پایه مقایسه کنید موتور این کار را کرده و «بی‌تفاوت» را با همان بازهٔ رسمی سایت حساب می‌کند با نوع قرارداد جمع کنید option.type === 'call' یا با روز تا سررسید daysUntilMaturity <= 14 صفر روز تا سررسید مقدار معتبری است — پس کف بازه را هم بگذارید
option.state یک رشتهٔ آماده است؛ لازم نیست خودتان قیمت اعمال را با قیمت پایه بسنجید. «بی‌تفاوت» با همان بازهٔ رسمی سایت حساب می‌شود.

فیلتر قراردادهای اختیار خرید درون سود (ITM Call):

return option.type === 'call' && option.state === 'ITM';

فیلتر قراردادهای اختیار فروش بی‌تفاوتی نزدیک به سررسید (سررسید کمتر از 14 روز):

return option.type === 'put' && option.state === 'ATM' && option.daysUntilMaturity <= 14 && option.daysUntilMaturity >= 1;

3. فیلتر اهرم معاملاتی و ارزش ذاتی

مراجع علمی: اهرم اختیار معامله · ارزش ذاتی و زمانی

دو تابع آماده، دو معنی متفاوت leverage() قیمت پایه تقسیم بر قیمت اختیار یعنی هر ریالِ پرمیوم روی چند ریال از سهم سوار است intrinsic() ارزش ذاتی همین لحظه اگر همین حالا اعمال شود چقدر در جیب می‌ماند اگر قیمت عرضه از ارزش ذاتی کمتر باشد، شبیه فرصت به نظر می‌رسد ولی معمولاً نشانهٔ نبودِ عمق است — پس شرط حجم سرخط عرضه را کنارش بگذارید اهرم بالا هم به‌تنهایی خوب نیست: همان ضریب، زیان را هم بزرگ می‌کند و در قراردادهای دور از پول معمولاً از همه بالاتر است
قیمت عرضهٔ کمتر از ارزش ذاتی شبیه فرصت است ولی معمولاً نشانهٔ نبودِ عمق — شرط حجم سرخط عرضه را کنارش بگذارید.

فیلتر قراردادهای با اهرم بزرگتر یا مساوی 2:

return leverage() >= 2;

یک نکته که وقت زیادی می‌گیرد اگر ندانیدش: leverage() اهرم ساده است، ولی ستون «اهرم» در دیده‌بان اهرم مؤثر را نشان می‌دهد؛ یعنی همان عدد ضرب در قدرمطلق دلتا. پس اگر خروجی این فیلتر را با ستون مقایسه کنید دو عدد متفاوت می‌بینید. برای اینکه فیلتر دقیقاً همان چیزی را بسنجد که در ستون می‌بینید، از effectiveLeverage() استفاده کنید:

return effectiveLeverage() >= 3;

فیلتر قراردادهای درون سود (ITM) با اهرم بسیار بالا (بزرگتر از 4):

return option.state === 'ITM' && leverage() >= 4;

فیلتر قراردادهایی که ارزان‌تر از ارزش ذاتی تئوریک خود در بازار عرضه شده‌اند (فرصت خرید عالی):

return option.ti.sell1Volume > 0 && intrinsic() > 0 && option.ti.sell1Price < intrinsic();

4. فیلتر بلک‌شولز و نوسان‌پذیری (Volatility)

مراجع علمی: مدل قیمت‌گذاری بلک‌شولز · تلاطم ضمنی (IV) و تاریخی (HV)

فاصله تا قیمت تئوری، یک درصد است 0 دقیقاً روی قیمت تئوری −10 +10 خیلی ارزان‌تر خیلی گران‌تر calcRateChange(calcBS().bs, option.ti.sell1Price) ترتیب دو ورودی مهم است — جابه‌جا شود، علامتِ درصد وارونه می‌شود اول قیمت تئوری، بعد قیمت بازار
انحراف قیمت بازار از قیمت تئوری یک درصد است و بازهٔ ±10 آن را دور صفر نگه می‌دارد. ترتیب دو ورودی مهم است — جابه‌جا شود، علامت وارونه می‌شود.
دو عدد نوسان، دو مقیاس متفاوت option.iv کسر است، نه درصد 0.5 = 50% مالِ خودِ قرارداد ua.ivPercentile عددی بین صفر تا صد 30 = 30 مالِ نماد پایه اگر این دو را با یک مقیاس بسنجید، فیلتر بی‌صدا خالی برمی‌گردد چون شرط هیچ‌وقت برقرار نمی‌شود، نه اینکه خطا بدهد و صدک می‌تواند خالی باشد — بدون تاریخچهٔ کافی مقدار ندارد پس پیش از مقایسه، نبودنش را جدا بررسی کنید
option.iv کسر است (0.5 یعنی 50٪) و ua.ivPercentile عددی بین 0 تا 100 — قاطی کردنشان فیلتر را بی‌صدا خالی می‌کند، و صدک می‌تواند اصلاً مقدار نداشته باشد.

فیلتر قراردادهایی که انحراف قیمت عرضه سرخط بازار آن‌ها با قیمت تئوریک بلک‌شولز کمتر از 10٪ است:

let diff = calcRateChange(calcBS().bs, option.ti.sell1Price); return diff >= -10 && diff <= 10;

فیلتر قراردادهایی با تلاطم ضمنی بالا (بزرگتر از 50٪) و سررسید بیش از 3 روز:

return option.iv > 0.5 && option.daysUntilMaturity > 3;

فیلتر قراردادهایی که رتبه نوسان ضمنی سهم پایه آن‌ها پایین و کمتر از 30٪ است:

return ua.ivPercentile != null && ua.ivPercentile <= 30;

5. فیلتر موقعیت باز (Open Interest) و زنجیره

مراجع علمی: موقعیت باز (OI) · سقف موقعیت باز بورس

سه فیلد، سه سؤال متفاوت option.openInterest چند قرارداد باز است — یک عدد تجمعی option.openInterestPC نسبت به دیروز چقدر تغییر کرده — درصد option.chainOpen اصلاً می‌شود موقعیت تازه گرفت یا نه فیلد سوم تنها فیلدی است که می‌گوید معامله ممکن نیست دو تای اول عمق را می‌سنجند، این یکی درِ بسته را نشان می‌دهد وارونه‌اش زنجیره‌های قفل‌شده را پیدا می‌کند — برای کنار گذاشتنشان
دو فیلد اول عمق را می‌سنجند؛ chainOpen تنها فیلدی است که می‌گوید اصلاً نمی‌شود وارد شد — و وارونه‌اش زنجیره‌های قفل‌شده را پیدا می‌کند.

فیلتر قراردادهای با موقعیت باز بزرگتر از 500 و رشد روزانه موقعیت باز بیش از 5٪:

return option.openInterest > 500 && option.openInterestPC > 5;

فیلتر قراردادهایی که زنجیره معاملاتی آن‌ها مسدود یا محدود شده است:

return !option.chainOpen;

6. فیلتر استراتژی کال اسپرد صعودی (Bull Call Spread) با تنظیمات ویژوال (⚙️)

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

فیلتری که بدون باز کردن کد تنظیم می‌شود const FILTER_MIN_MONTHLY = 2; // حداقل سود ماهانه const FILTER_MIN_STRIKE_DIST = 10; // حداقل فاصلهٔ اعمال هر دو در پنل تنظیمات، جعبهٔ عدد می‌شوند while (optionSE(++index) !== undefined) یعنی نردبان را پله‌پله بالا برو تا تمام شود همین حلقه است که یک فیلترِ تک‌قراردادی را به جست‌وجوی جفت تبدیل می‌کند و شرط پایانش نبودنِ قرارداد بعدی است، نه یک عدد ثابت
ثابت‌های FILTER_ در پنل تنظیمات جعبهٔ عدد می‌شوند، و حلقهٔ optionSE فیلتر تک‌قراردادی را به جست‌وجوی جفت تبدیل می‌کند.
// --- تنظیمات ویژوال قابل تغییر در پنل ⚙️ --- const FILTER_MIN_MONTHLY = 2; // حداقل سود ماهانه مورد انتظار (درصد) const FILTER_MIN_STRIKE_DIST = 10; // حداقل فاصله اعمال بالاتر از سهم (درصد) let index = 0; while (optionSE(++index) !== undefined) { let upper = optionSE(index); if (!upper || upper.ti.buy1Volume === 0 || option.ti.buy1Volume === 0) continue; // محاسبه هزینه اولیه پیاده‌سازی اسپرد let debit = (option.ti.sell1Price - upper.ti.buy1Price) * option.size; // محاسبه حداکثر سود در سررسید let profit = ((upper.strike - option.strike) * option.size) - debit; // محاسبه سود سالانه شده یا ماهانه let yCapital = monthlyProfit((profit / debit) * 100, option.daysUntilMaturity); // فاصله قیمت اعمال بالاتر تا آخرین قیمت سهم پایه let disStrike = calcRateChange(ua.ti.lastPrice, upper.strike); // اعمال فیلتر بر اساس پارامترهای ویژوال تنظیم شده if (disStrike > FILTER_MIN_STRIKE_DIST && disStrike > 0 && yCapital > FILTER_MIN_MONTHLY && option.ti.sell1Price > 0 && upper.ti.buy1Price > 0 && option.type === 'call') { return true; } } return false;

7. فیلتر فروش خالی و نکول از تحویل (Short Call and Default) با تنظیمات ویژوال (⚙️)

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

مبنای محاسبه قیمت امروز نیست، قیمت پایانی فرضی روز سررسید در بدترین حالت است، و دامنهٔ مجاز را از تابلوی خودِ نماد می‌خواند و مرکب اعمال می‌کند.

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

مقالات مرتبط

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

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

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

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

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

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

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

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

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

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

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

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

استراتژی اسپرد صعودی با اختیار خرید Bull Call Spread

کال اسپرد صعودی (Bull Call Spread): ساختار موقعیت، سه عدد کلیدی، مثال عددی، انتخاب دو قیمت اعمال، و اینکه وجه تضمین کِی لازم می‌شود و کِی نه.

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

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

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

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

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

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

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

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

دستور العمل ایجاد ستون و فیلتر با رابط گرافیکی

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

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

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

نکول در قرارداد اختیار معامله چیست

نکول در آپشن چیست؟ فقط فروشنده می‌تواند نکول کند، تفاوت کال و پوت، وجه تضمین، تسویه نقدی و جریمه 1٪ با مثال عددی — راهنمای معامله‌گر.

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

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

تجربه یا نکته‌ای دارید؟ نوشتنش به بقیهٔ کاربران هم کمک می‌کند.

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

۱۹ پیام
وی تو بوکس
06 خرداد 1405 - 06:14
عالی
معراج
20 اردیبهشت 1405 - 03:52
عالی
معراج
19 اردیبهشت 1405 - 23:47
عالی
علی
10 بهمن 1404 - 15:37
عالی
مازیار
14 آذر 1404 - 16:02
ممنونم
جابپاسخ
29 فروردین 1405 - 06:25
عالی
محمد
13 آذر 1404 - 22:59
عالی
وحید
13 آبان 1404 - 02:31
عالی
علی
20 مهر 1404 - 15:47
عالی 👍
کامرانپاسخ
24 مهر 1404 - 15:53
خوبه
پینمیپاسخ
06 خرداد 1405 - 14:59
مدبوبپ
سحل
16 شهریور 1404 - 03:25
عالیییست
اره عالیپاسخ
02 مهر 1404 - 21:03
عالی
عالیپاسخ
02 مهر 1404 - 21:08
🫶
حدیث
21 مرداد 1404 - 03:00
عالی
خیلی خوبپاسخ
23 مرداد 1404 - 23:54
خیلی خیلی خوب دمتون گرم
تیناپاسخ
03 شهریور 1404 - 01:17
عالی
حیدر حیدریپاسخ
18 شهریور 1404 - 05:37
leverage(ua.ti.Lastprice, calcBS().delta, basePrice(option)) &gt;=2
UA.TI.Sell_1_Price > UA.TI.daily_price_highپاسخ
09 اسفند 1404 - 02:48
ua.ti.sell1Price &gt; ua.ti.dailyPriceHigh