وقتی در کد فرمول یا استراتژی خود پارامترهای ویژوال تعریف میکنید، کنار نام ستون یا فیلتر شما در جدول دیدهبان آیکن ⚙️ تنظیمات (مدیریت خروجی و فیلتر) ظاهر میشود. این قابلیت به کاربران اجازه میدهد بدون نیاز به ویرایش کد جاوااسکریپت، مقادیر عددی، تیکها، لیستهای انتخابی و نحوهٔ مرتبسازی را بهصورت کاملاً تعاملی و ویژوال تغییر دهند.
توضیح مختصر و ایدهٔ اصلی
موتور فرمولنویسی دیدهبان از روی ثابتهای تعریفشده با حروف بزرگ و کامنتهای جلوی آنها تشخیص میدهد که چه کنترلی در پنجرهٔ تنظیمات ظاهر شود. با تغییر مقادیر در پنجرهٔ ویژوال، مقدار آن ثابتها مستقیماً درون کد ذخیره شدهٔ شما بهروزرسانی میشود.
۱) شروع سریع با یک مثال ساده: حداقل حجم معاملات
برای آشنایی سریع، فرمول زیر را در دیدهبان به عنوان ستون ذخیره کنید و سپس روی آیکن ⚙️ ستون کلیک کنید:
این مثال چطور کار میکند؟
- طراحی کنترل عددی: متغیر
const FILTER_MIN_VOLUME = 100;در تب فیلترها یک جعبه ورودی عدد با برچسب «حداقل حجم» ایجاد میکند. با تغییر عدد در پنجره، مقدار این متغیر در لحظه تغییر کرده و محاسبات جدول بهروز میشود. - سوئیچ نتایج (FILTER_RESULT): این متغیر یک سوئیچ سیستمی است. وقتی کاربر در پنجره تنظیمات سوئیچ فیلتر را روشن کند، مقدار
FILTER_RESULTبهtrueتبدیل شده و فرمول به عنوان فیلتر ردیفهای جدول عمل میکند (قراردادهای با حجم کمتر از حداقل مشخص شده را حذف میکند). - سوئیچ نمایش سلول (FILTER_SHOW): وقتی فیلتر غیرفعال است اما میخواهید ردیفهایی که شرط را ندارند خانه ستونشان خالی بماند، با ترکیب این سوئیچ میتوانید نمایش سلول را کنترل کنید.
۱) چطور آیکن تنظیمات در سرستون ظاهر شود؟
سیستم زمانی متوجه نیاز به تنظیمات ویژوال میشود که حداقل یکی از متغیرهای خود را با حروف بزرگ و زیرخط تعریف کرده و یک کامنت فارسی در جلوی آن نوشته باشید. پیشوندهای مجاز عبارتند از:
FILTER_...→ کنترل را در بخش فیلترها قرار میدهد.SHOW_...→ کنترل را در بخش نمایش و چیدمان قرار میدهد.SETTING_...→ کنترل را در بخش محاسبات و تنظیمات قرار میدهد.
۲) ورودی عددی (Number Input)
اگر مقدار اولیه متغیر یک عدد باشد، یک کنترل ورودی عددی ساخته میشود. همچنین اگر مقدار اولیه خالی باشد ('') اما در نام متغیر کلماتی نظیر MIN، MAX، DISTANCE، PERCENT، FEE یا STRIKE وجود داشته باشد، سیستم بهطور هوشمند آن را ورودی عددی در نظر میگیرد.
۳) تیک روشن/خاموش (Checkbox)
اگر مقدار اولیه یک متغیر برابر با true یا false باشد (و گزینهای درون براکت در کامنت نباشد)، یک دکمهٔ تیک روشن/خاموش برای آن ساخته میشود.
۴) سوئیچهای ویژه فیلتر (System Switches)
دو متغیر با نامهای دقیق زیر، به جای تیک معمولی، به شکل سوئیچ زیبا و اختصاصی فیلتر نمایش داده میشوند:
FILTER_RESULT— سوئیچ فیلتر اصلی. روشن کردن این سوئیچ در پنجره تنظیمات، فرمول شما را مستقیماً به لیست فیلترهای فعال کل جدول اضافه میکند تا ردیفهای نامعتبر را حذف کند.FILTER_SHOW— سوئیچ نمایش خروجی. این سوئیچ نشان میدهد که آیا ستون خروجی برای ردیفهایی که در شرط فیلتر صدق نکردهاند همچنان مقدار نمایش دهد یا خیر.
۵) لیست کشویی تکانتخابی (Dropdown Select)
برای ایجاد منوی کشویی، گزینههای انتخابی را داخل براکت [] در بخش کامنت خط بنویسید. به دو روش میتوانید گزینهها را تعریف کنید:
- فقط مقدار: مقدار انتخاب شده با خود متن گزینه یکی خواهد بود.
- رابطه مقدار=برچسب: مقدار ذخیره شده در کد با برچسب فارسی نمایش داده شده در منو متفاوت خواهد بود (روش پیشنهادی برای طراحی زیبا).
۶) گزینه خالی یا پیشفرض در لیست (Empty/Default Option)
اگر بخواهید گزینهای به عنوان «بدون فیلتر» یا «همه» داشته باشید که مقدار خالی '' یا صفر را به کد بفرستد، کافی است یک براکت خالی [] در لیست گزینهها قرار دهید. سیستم آن را با برچسب خط تیره «-» نمایش میدهد.
۷) لیست چندانتخابی (Multi-Select)
اگر میخواهید کاربر بتواند همزمان چند گزینه را تیک بزند، کلمه کلیدی multi را در کامنت بنویسید. مقدار ذخیره شده در کد به صورت یک رشته متنی خواهد بود که گزینهها با ویرگول انگلیسی از هم جدا شدهاند (مثلاً '1,3'). در منطق فرمول باید این رشته را تفکیک کنید:
۸) جعبه متن آزاد (Free Text Input)
اگر مقدار متغیر رشتهای باشد اما هیچ گزینهای درون براکت [] در کامنت تعریف نشده باشد، یک کادر ورود متن ساده برای کاربر ایجاد میشود (مثلاً برای ورود دستی یک نماد یا یک مقدار دلخواه).
۹) توضیحات راهنمای شناور (Tooltip)
اگر مایلید در پنجره تنظیمات تعاملی، توضیح کوچکی برای هر پارامتر نشان داده شود تا کاربر کاربرد آن را بداند، از کلمه کلیدی title=... در کامنت استفاده کنید. با نگه داشتن ماوس روی برچسب، این راهنما ظاهر میشود.
۱۰) لینک راهنمای اختصاصی بالای پنجره (Guide Link)
اگر فرمول شما پیچیده است و تمایل دارید یک لینک راهنمای جامع (مثلاً یکی از مقالات دانشنامه آپشنباز) را به آن متصل کنید، عبارت //link=آدرس_لینک را در خط اول یا دوم کد فرمول بنویسید. دکمهٔ «راهنما» در بالای پنجره ویژوال ظاهر خواهد شد.
۱۱) مرتبسازی پیشرفته (SORT_BY / SORT_DIR)
برای فرمولهای پیشرفته یا استراتژیهایی که چندین خروجی را در یک خانهٔ جدول مرتب و چاپ میکنند (با استفاده از تابع سیستمی sortAndFormatResults)، میتوانید متغیرهای زیر را بنویسید تا مرتبسازی در پنجره تعاملی قابل تنظیم باشد:
SORT_BY— مشخص میکند کدام ویژگی عددی مبنای مرتبسازی ردیفها قرار گیرد (گزینهها را در براکت بنویسید).SORT_DIR— جهت مرتبسازی را تعیین میکند:ascصعودی یاdescنزولی.
۱۲) چیدمان، تیک نمایش و ترتیب کشیدنی (Display Order)
اگر فرمول شما بخشهای مختلفی را در خروجی نشان میدهد (مثلاً حجم، تلاطم ضمنی IV، ارزش ذاتی و غیره)، میتوانید برای هر بخش یک تیک نمایش با پیشوند SHOW_... بگذارید. با اضافه کردن آرایهٔ displayOrder به کد، کاربران میتوانند در تب «نمایش و چیدمان» ترتیب ستونها را با کشیدن و رها کردن (Drag & Drop) جابهجا کنند!
۱۳) مثال جامع و کاربردی ترکیبی
در نهایت، نمونه زیر یک فرمول کامل و واقعی است که تمامی مفاهیم بالا را به صورت یکجا پیادهسازی کرده است. میتوانید آن را مستقیماً کپی و استفاده کنید:
جمعبندی: طراحی تنظیمات ویژوال در دیدهبان بسیار ساده است. کافیست متغیرهای خود را با نامهای بزرگ مانند FILTER_، SHOW_ یا SETTING_ معرفی کرده و در کامنت خط آنها، برچسب فارسی، براکتهای انتخاب [مقدار=برچسب] و کلمات کلیدی نظیر multi یا title= را بکار ببرید تا زیباترین و کارآمدترین ابزار کنترلی را در اختیار داشته باشید.
مطالب مرتبط: دیدهبان آپشن · راهنمای فرمولنویسی · استراتژیهای آماده دیدهبان