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است در خروجی نمایش داده میشوند