یک فرمول خوب معمولاً چند بار در روز نیاز به دستکاری دارد — حداقل حجم، آستانهٔ دلتا، روشن و خاموش کردن کارمزد. اگر برای هر تغییر باید کد را باز کنید، همان فرمول عملاً بلااستفاده میشود.
راهحل این است که ثابتهای فرمول را طوری بنویسید که آپشنباز خودش برایشان رابط گرافیکی بسازد: جعبهٔ عدد، تیک، فهرست کشویی. این مقاله چهار خانوادهٔ این ثابتها را میگوید — تنظیمات، فیلترها، گزینههای نمایش و مرتبسازی — و قواعد نامگذاری هرکدام را.
1. تنظیمات (Settings)
هر خانواده از ثابتها قاعدهٔ نامگذاری خودش را دارد؛ این یکی مخصوص ثابتهایی است که یک محاسبه را روشن یا خاموش میکنند.
قوانین تعریف تنظیمات در رابط کاربری
- پیشوند
SETTING_الزامی است - نام متغیر باید با حروف بزرگ باشد
- مقدار متغیر فقط
boolean(true/false) - توضیحات به صورت کامنت کنار متغیر
مثالهای کاربردی
// ❌ نادرست - در UI نمایش داده نمیشوند const useYTM = false; const ShowPricePoints = true; // ✅ درست - در UI نمایش داده میشوند const SETTING_YTM = false; // محاسبه بازده سالانه const SETTING_PRICE_POINTS = true; // نمایش نقاط قیمتی
2. فیلترها (Filters)
قوانین تعریف فیلترها
- پیشوند
FILTER_الزامی است - نام متغیر باید با حروف بزرگ باشد
- مقدار متغیر میتواند
booleanیاnumberباشد - توضیحات به صورت کامنت کنار متغیر
مثالهای کاربردی
// ❌ نادرست - در UI نمایش داده نمیشوند const minReturn = 10; const showInResults = true; // ✅ درست - در UI نمایش داده میشوند const FILTER_MIN_RETURN = 10; // حداقل سود const FILTER_SHOW = true; // فیلتر در نمایش خروجی const FILTER_PRICE_ZONE = 2; // محدوده قیمتی [0 = همه] [1 = زیر اعمال اول]
3. گزینههای نمایش (Show Options)
قوانین تعریف گزینههای نمایش
- پیشوند
SHOW_الزامی است - نام متغیر باید با حروف بزرگ باشد
- مقدار متغیر فقط
boolean(true/false) - توضیحات به صورت کامنت کنار متغیر
مثالهای کاربردی
// ❌ نادرست - در UI نمایش داده نمیشوند const showPnL = true; const DisplayProbability = false; // ✅ درست - در UI نمایش داده میشوند const SHOW_PNL_INFO = true; // نمایش اطلاعات سود و زیان const SHOW_PROBABILITY = true; // نمایش احتمال موفقیت const SHOW_PRICE_POINTS = true; // نمایش نقاط قیمتی
4. مرتبسازی نتایج (Sorting)
برای استفاده از سیستم مرتبسازی، دو متغیر اصلی زیر باید تعریف شوند:
1. فیلد مرتبسازی (SORT_BY)
const SORT_BY = 'profit'; // [سود ماهیانه:profit] [نسبت سود به ضرر:risk_reward] [ضرر:loss] [موقعیت فعلی:current] [احتمال موفقیت:probability]
2. جهت مرتبسازی (SORT_DIR)
const SORT_DIR = 'desc'; // [صعودی:asc] [نزولی:desc]
asc: مرتبسازی صعودی (از کوچک به بزرگ)desc: مرتبسازی نزولی (از بزرگ به کوچک)
5. نمایش خروجی
output ایجاد کنید که شامل تمام بخشهای تعریف شده در SHOW_ و خروجی هایی که وابستگی به تنظیمات ندارند باشد.
5.1. ساختار پایه خروجی
// تعریف آبجکت خروجی
const output = {
base: showDetail(writeOption.namad, namadNo(writeOption.namad))
};
// اضافه کردن محاسبات به آبجکت
output["SHOW_PNL_INFO"] = "محاسبات سود و زیان";
output["SHOW_CAP_COVERATE"] = "اطلاعات پوشش سرمایه";
output["SHOW_CAPITAL_INFO"] = "اطلاعات سرمایه";
5.2. ترتیب نمایش خروجی
displayOrder برای کنترل ترتیب نمایش اطلاعات استفاده میشود و به صورت خودکار مقداردهی میشود.
const displayOrder = [ 'SHOW_PNL_INFO', 'SHOW_CAP_COVERATE', 'SHOW_CAPITAL_INFO', // ... سایر موارد ];
5.3. ساخت خروجی نهایی
- ایجاد آرایه خروجی با مقدار پایه
- اضافه کردن سایر مقادیر بر اساس ترتیب نمایش
- اضافه کردن آیتم به لیست نتایج
// ساخت خروجی نهایی
const finalOutput = [output.base];
displayOrder.forEach(key => {
if (eval(key) === true) {
finalOutput.push(output[key]);
}
});
// اضافه کردن به لیست نتایج
items.push({
probability,
output: finalOutput.join('')
});
5.4. نمایش نتایج نهایی
// نمایش خروجی با در نظر گرفتن فیلترها
if (FILTER_RESULT === true) {
isFilterMatched;
} else {
sortAndFormatResults(items, SORT_BY, SORT_DIR, false);
}
تابع sortAndFormatResults
پارامترها
| پارامتر | نوع | توضیحات | پیشفرض |
|---|---|---|---|
items |
آرایه | آرایهای از آیتمها که هر کدام شامل output و مقدار مرتبسازی هستند |
- |
sortBy |
رشته | فیلدی که مرتبسازی بر اساس آن انجام میشود | - |
sortDir |
رشته | جهت مرتبسازی ('asc' یا 'desc') |
- |
displayInline |
boolean | نمایش افقی یا عمودی نتایج | false |
نکات مهم:
- تمام کلیدهای استفاده شده در
outputباید در بخش "گزینههای نمایش" تعریف شده باشند - مقادیر
displayOrderبه صورت خودکار مدیریت میشوند - فقط مواردی که
SHOW_آنهاtrueاست در خروجی نمایش داده میشوند
مقالات مرتبط
چطور در دیدهبان آپشنباز ستون محاسباتی بسازید: از دکمه فرمولنویسی تا نوع ستون، return، افزودن به جدول، و چند مثال عملی (اسپرد، ارزش ذاتی، فاصله تا اعمال، دلتا).
راهنمای دیدهبان اختیار معامله — فیلتر، ستون سفارشی، فرمولنویسی و اتصال به نمودار استراتژی.
فهرست کامل استراتژیهای اختیار معامله در دیدهبان آپشنباز — کاوردکال، اسپرد، استرادل، باکس و … — همراه با راهنمای تصویری افزودن ستون، تنظیم فیلترها و باز کردن نمودار سود و زیان.
راهنمای کامل استراتژی آماده کاوردکال در دیدهبان آپشنباز: ساختار، مثال عددی، پوشش سرمایه، انتخاب قیمت اعمال و توضیح تکتک تنظیمات، فیلترها و مرتبسازی.
آموزش گامبهگام طراحی تنظیمات ویژوال: آیکن تنظیمات، کنترلهای عدد، تیک، لیست کشویی، چندانتخابی، مرتبسازی و ترتیب چیدمان ستونها.
آموزش ساخت پرتفوی اختصاصی، تعریف فیلدهای شخصی (تعداد، قیمت خرید/فروش، یادداشت) و دسترسی پویا به آنها در فرمولها و ستونهای دیدهبان.
آموزش گامبهگام ساخت و اجرای اسکنر هوشمند برای شناسایی بهترین قراردادهای اختیار معامله بر اساس ارزش معاملات، بلکشولز، اهرم و وضعیت در سود.
دستیار هوش مصنوعی آپشنباز کجاست، چطور کنار ادیتور فرمولنویسی باز میشود، چه فرقی با هوش مصنوعی بیرونی دارد و چه کاری از آن برنمیآید — با پنج قاعدهٔ پرسیدن و چکلیست پرامپت.
دیدگاهها و پرسشها
اگر سوال یا ابهامی در رابطه با این مطلب دارید، همینجا بپرسید؛ کارشناسان ما پاسخ میدهند.
تجربه یا نکتهای دارید؟ نوشتنش به بقیهٔ کاربران هم کمک میکند.
پرسشها و نظرات کاربران
هنوز پرسشی ثبت نشده — شما اولین نفر باشید!
سوال یا نظرتان را در فرم بالا بنویسید؛ پاسخی که میگیرید برای کاربران بعدی هم میماند.