جهت نوشتن فرمول و فیلتر به
صفحه دیده بان رفته سپس بر روی
ساخت ستون یا ساخت فیلتر کلیک کنید.
نام ستون یا فیلتر را مشخص، کد را در قسمت
ادیتور نوشته و در نهایت جهت مشاهده نتیجه بر روی
ذخیره کلیک کنید .
این تابع کلیه قراردادها با سررسید و نماد پایه یکسان را برمی گرداند همچنین از طریق این تابع می توان به قراردادهای با اعمال بالاتر و پایین تر زنجیره دسترسی پیدا کرد(Option Same Expiration)
در این مقاله ما بخشی که کلیه قراردادها را برمی گرداند توضیح خواهیم داد .
شاید این سوال براتون بوجود بیاد که این تابع کدوم یکی زجیره از قراردادها رو بر می گردونه ؟ یا از کجا می فهمه ما چه زنجیره ای رو می خوایم
فرض کنید در جدول دیده بان 10 تا خروجی دارید که یکی از آنها قرارداد ضستا1211 می باشد . دارایی پایه این قراداد شستا و سررسید آن 1402/12/9 می باشد . وقتی تابع OptionSE روی این سطر اجرا میشه کلیه قرادادهایی که دارایی آنها شستا و تاریخ سررسیدشان 1402/12/9 می باشد رو بر می گرداند (اختیار خرید و فروش) . در حقیقت این تابع و موارد روی هر سطر با مقادیر همان سطر اجرا می شود
استفاده از حلقه : به این دلیل از حلقه استفاده می کنیم که از قبل تعداد قرارداها رو نمی دانیم و می خواهیم با یک حلقه به کل زنجیره دسترسی پیدا
مثال از while: نمایش کلیه قراردادهای هم گروه
let result = '';
index = 0;
while (OptionSE()[index] != undefined) {
//شرط در صورت نیاز
result += ShowDetail(OptionSE()[index].Namad )
index++;
}
result;
..
- index همان اندیس یا ایندکس در حلقه می باشد که مقدار آن از 0 شروع و تا اندازه قرارداد منهای 1 قرارداد می تواند باشد . برای مثال اگر زنجیره 10 تا قرارداد داشته باشه اندیس از 0 تا 9 می باشد و از طریق این اندیس ها می تونیم به قرارداد دسترسی داشته باشیم .
- دستور OptionSE()[index] != undefined برای این استفاده که در حلقه while ما تعداد حلقه رو مشخص نمی کنم ولی شرطی برای اجرا حلقه میزاریم که در اینجا تهی یا بی مقدار نبودن OptionSE()[index] هست .
- index در ابتدار صفر هست و در درون حلقه یکی به مقدار آن اضافه می شود(++index) تا کل زنجیره پیمایش بشه
- جنس OptionSE()[index] از نوع Option هست یعنی هر ویژگی که Option داره مثل Option.TI.LastPrice یا Option.Type رو دارا می باشه . در کد بالا به اسم نماد OptionSE()[index].Namad دسترسی داریم
به زبان ساده کد بالا می گه اگر قرارداد با اندیس index مقدار داشت برو داخل while و کدها رو اجرا کن و یکی به مقدار index اضافه کن و اگر مقدار نداشت یعنی کل زنجیره پیمایش شده و دستورات بعد از حلقه اجرا خواهند شد .
مثال for : نمایش کلیه قراردادهای هم گروه
let result = '';
for(index = 0; index < OptionSE().length ; index++)
{ //if ..
result += ShowDetail(OptionSE()[index].Namad )
}
result;
- تفاوت for با while در این هست که در ابتدای مقدار اولیه و انتهای حلقه مشخص هست
- کد بالا با اندیس صفر شروع میشه و تا زمانی که اندیس کوچکتر از اندازه تعداد زنجیره باشه ادامه پیدا میکنه
- در هر پیمایش یکی به مقدار index اضافه میشه و مقدار ShowDetail به result اضافه میشه
- جنس OptionSE()[index] از نوع Option هست یعنی هر ویژگی که Option داره مثل Option.TI.LastPrice یا Option.Type رو دارا می باشه . در کد بالا به اسم نماد OptionSE()[index].Namad دسترسی داریم
معنی کد +=
x += y
is equivalent to x = x + y
مثال : پیدا کردن و دسترسی به اطلاعات قراردادی که
ATM هست
همه قراردادهای هم گروه رو از طریق OptionSE بر می گردانیم و با حلقه آنها رو پیمایش می کنیم و شرط ATM بودن رو تست می کنیم و و در صورت وجود اندیس آن قرارداد رو بر می گردانیم
var index = 0;
var atmIndex = undefined;
while (OptionSE()[index] != undefined) {
if (OptionSE()[index].State == "ATM") atmIndex = index;
index++;
} if (atmIndex != undefined)
ShowDetail(OptionSE()[atmIndex].Namad);
else 'زنجیره قرارداد atm ندارد';
- اگر شرط ATM برقرار باشه اندیس آن را در atmIndex ذخیره می کنیم و بعد از پایان حلقه نام آن را نشان می دهیم در غیر این صورت پیام زنجیره قرارداد ATM ندارد نمایش داده میشه
- جنس OptionSE()[atmIndex] از نوع Option هست یعنی هر ویژگی که Option داره مثل Option.TI.LastPrice یا Option.Type رو دارا می باشه .