جهت نوشتن فرمول و فیلتر به
صفحه دیده بان رفته سپس بر روی
ساخت ستون یا ساخت فیلتر کلیک کنید.
نام ستون یا فیلتر را مشخص، کد را در قسمت
ادیتور نوشته و در نهایت جهت مشاهده نتیجه بر روی
ذخیره کلیک کنید .
در این مقاله توضیحات مربوط به این استراتژی بیان شده است
جهت ایجاد ستون محاسباتی از قسمت دیده بان ، ساخت ستون وارد محیط فرمول نویسی می شویم . لازم به ذکر هست شما می توانید بر اساس دید، قدرت ریسک و سود مورد نظرتان این فرمول را تغییر دهید .
روند کلی به این صورت است که قرارداد که در آن فرمول اجرا می شود به عنوان پوزیشن فروش کال محسوب می شود .جهت دسترسی به زنجیره قراردادهای پوت از تابع OptionSE و حلقه while استفاده می شود
محاسبه حداکثر زیان یا ریسک
( قیمت سهم + پرمیوم خرید پوت ) - قیمت اعمال پوت - پرمیوم فروش کال
let lose = (UA.TI.LastPrice + OptionSE('', 'os')[index].TI.Sell_1_Price) - OptionSE('', 'os')[index].Strike - Option.TI.Buy_1_Price ;
حداکثر سود
قیمت اعمال قرارداد کال - قیمت اعمال قرارداد پوت - حداکثر ریسک
let profit = (Option.Strike - OptionSE('', 'os')[index].Strike ) - lose;
ایجاد ستون
let result = '';
let index = -1;
while (OptionSE('', 'os')[++index] != undefined){
let putOption = OptionSE('', 'os')[index];
if (putOption.TI.Sell_1_Volume == 0 || Option.TI.Buy_1_Price == 0)
continue;
let capital = (UA.TI.LastPrice + putOption.TI.Sell_1_Price) - Option.TI.Buy_1_Price;
let lose = (UA.TI.LastPrice + putOption.TI.Sell_1_Price) - putOption.Strike - Option.TI.Buy_1_Price ;
let loseP = (lose/capital) * 100;
let profit = (Option.Strike - putOption.Strike ) - lose;
let profitP = (profit/capital) * 100;
if (MP(profitP, Option.DaysUntilMaturity) >0 && Option.Strike > putOption.Strike && Option.Type == 'call'
){
let otmInfo = '';
if (Option.Strike > UA.TI.LastPrice)
otmInfo = Style('OTM', 'orange', '', 'قرارداد در زیان هست - سود در صورت در سود بودن قرارداد محقق می شود');
pos.Add('buy', UA.Namad);
pos.Add('sell', Option.Namad, 1, 'buy',false);
pos.Add('buy', OptionSE('', 'os')[index].Namad,1, 'sell');
result += "[" +ShowDetail(putOption.Namad) + ": " +
Style( MP(loseP ,Option.DaysUntilMaturity), 'red', '', 'حداکثر زیان ماهیانه در صورتی سهم کمتر از ' + CommaSeparator(putOption.Strike) + "شود")
+ " : " + Style(MP(profitP, Option.DaysUntilMaturity), 'green')
+ pos.Build('colar ' + Option.Namad) +otmInfo+ "] " ;
}
}
result;
let capital سرمایه درگیر را نمایش می دهد
MP تابع تبدیل سود کل به ماهانه است که جزییات را در بخش راهنمای فرمول نویسی بخش تابع های آپشن باز مشاهده نمایید.
از تابع style برای تغییر رنگ فونت و قراردادن تولتیپ برای متغیر مورد نظر استفاده شده است
تابع CommaSeparator اعداد را با جداکننده برای هر هزارگان نمایش می دهد
تابع pos.Add وpos.Build جهت نمایش ایکن رسم نمودار استفاده شده
ایجاد فیلتر
از قسمت دیده بان سایت بخش ساخت فیلتر کد مربوط را به همراه شروط مورد نیاز خود اضافه کنید
به عنوان مثال در کد زیر تمام شروطی که برای ستون قرار داده شده بود وجود دارد مثل شرط محاسبه فقط برای پوت هایی که اعمال کمتر از کال را دارند انجام شود زیرا استفاده از اعمال مشابه یا بیشتر تبدیل به استراتژی دیگری می شود و شکل پروفایل ریسک تغییر می کند
let result= false;
let index = -1;
let condition1 = var1 != '' ? var1 : 3;
while (OptionSE('', 'os')[++index] != undefined)
{
let putOption = OptionSE('', 'os')[index];
let capital= (UA.TI.LastPrice + putOption.TI.Sell_1_Price) - Option.TI.Buy_1_Price;
let lose = (UA.TI.LastPrice + putOption.TI.Sell_1_Price) - putOption.Strike - Option.TI.Buy_1_Price;
let loseP = (lose/capital) * 100;
let profit = (Option.Strike - putOption.Strike ) - lose;
let profitP = (profit/capital) * 100;
if(putOption.TI.Sell_1_Price > 0
&& Option.TI.Buy_1_Price >0
&& MP(profitP, Option.DaysUntilMaturity) > condition1
&& putOption.Strike< Option.Strike
Option.Type == 'call'
){
result = true;
break;
}
}
result;
با استفاده از متغیر condition1 می توانید بدون تغییر در کد و از بخش دیده بان سایت فیلد var1 بازدهی را تغییر دهید ., به عنوان مثال در این کد بازدهی های بالای 3درصد فیلتر می شوند و نمایش داده می شود چنانچه تمایل دادشته باشید قراردادهایی که سود ماهیانه بالای 10درصد فیلتر شوند کافی است از فیلد var1 در دیده بان استفاده کنید و عدد مورد نظر را وارد کنید مطابق تصویر زیر
در مقاله دسترسی و تغییر متغیر از بیرون کد به طور کامل نحوه استفاده از متغیر condition1 توضیح داده شده است