جهت نوشتن فرمول و فیلتر به
صفحه دیده بان رفته سپس بر روی
ساخت ستون یا ساخت فیلتر کلیک کنید.
نام ستون یا فیلتر را مشخص، کد را در قسمت
ادیتور نوشته و در نهایت جهت مشاهده نتیجه بر روی
ذخیره کلیک کنید .
برای شرح و ایجاد فرمول در این مقاله از موارد زیر استفاده خواهد شد .
ایجاد پرتفوی شخصی - محاسبه سود و زیان لحظه ای - ایجاد یادداشت
خواسته: می خواهیم بصورت ساده سود خرید یا فروش یک قرارداد رو محاسبه و یادداشتی که برای آن نوشته ایم را بصورت tooltip ببینیم یه به آنها در کدهای خود دسترسی داشته باشیم
در این مثال قرارداد"ضهرم1226" را به مبلغ 8000 خریده ایم و قراداد "ضهرم1218" را 1500 فروخته این و می خواهیم بصورت لحظه ای سود و زیاد خود را در هر قرارداد مشاهده کنیم.
شرح : تابعی به نام portfo در قسمت تابع عمومی (ساخت ستون / تابع عمومی) تعریف میکنیم . به این دلیل از تابع عمومی استفاده میکنیم که بتوانیم در همه قسمت ها از این تابع استفاده کنیم.
- آبجکتی به نام x را تعریف میکنیم
- در case مورد نظر(در اینجا مساوی نام قرارداد) آن را مقدار دهی می کنیم
- آبجکت را به عنوان خروجی تابع برمیگردانیم
توضیح کارکرد switch case : از طریق دستور switch نام نماد را چک می کنیم و در case برابر با نام نماد x را مقداردهی می کنیم در این مثال قیمت، تعداد، ... (هر تعداد فیلد نیاز داشته باشیم می توانیم به آبجکت x اضافه و مقدار دهی کنیم) و در آخر آن را بر می گردانیم (return)
دستور switch یه حالت پیش فرض یا default هم داره که زمانی فراخوانی میشه که شرط هیچ یک از case ها صحیح نباشه . در این حالت مقدار دیفالت که در مثال ما "" (خالی) هست برگردانده میشه (یعنی نماد جزو پرتوفوی ما نیست)
function portfo(){
var x = new Object();
switch(Option.Namad){
case"ضهرم1226": x.sale=true; x.count=10; x.price=8000; x.note='شرح خرید1226'; return x; break;
case"ضهرم1218": x.sale = false; x.count=5;x.price=16000; x.note='شرح فروش 1218' ; return x;break;
default: return "";break;
}}
استفاده از تابع
حال می خواهیم از تابع و اطلاعاتی که برگردانده میشه در کد استفاده کنیم . تابع 2 نوع خروجی داره
- آبجکت x : درصورتی که سطر متناظر یا Option.Namad در case باشه
- "" یا خالی : Option.Namad جزو case های تابع نیست
مثال ساده : یک ستون به نام پوزیشن ایجاد کنید و کد زیر را در قسمت فرمول بنویسید
let x = portfo();
let test= '';
if (x != ''){
if(x.sale) test += 'خرید ';
else test +='فروش ';
test += ' تعداد: ' + x.count;
test += ' قیمت: ' + x.price;
}
test;
و در قسمت tooltip :
portfo().note
حال در جدول دیده بان در قسمت ستون پوزیشن روبروی قراداد ضهرم1226 و ضهرم1226 اطلاعات خرید را مشاهده خواهید کرد .
مثال محاسباتی : محاسبه سود و زیان
ستونی به نام سود/زیان ایجاد کنید و کد زیر را در قسمت فرمول بنویسید
let x = portfo();
let profit = '';
if (x != ''){
if(x.sale)
profit = ((Option.TI.LastPrice - x.price) * x.count) * Option.Size;
else profit = ((x.price - Option.TI.LastPrice) * x.count )* Option.Size;
}
profit;
توضیحات
- به این دلیل از تابع عمومی استفاده میکنیم که بتوانیم در همه قسمت ها از آن استفاده کنیم
- از این کد ها می توان در فیلتر هم استفاده کرد فقط برای سادگی ما اینجا مثال ستون را آوردیم