جهت اشنایی با محاسبات ضروری استراتژی اسپرد این مقاله را مطالعه کنید
جهت نوشتن فرمول و فیلتر به
صفحه دیده بان رفته سپس بر روی
ساخت ستون یا ساخت فیلتر کلیک کنید.
نام ستون یا فیلتر را مشخص، کد را در قسمت
ادیتور نوشته و در نهایت جهت مشاهده نتیجه بر روی
ذخیره کلیک کنید .
در ابتدا کلیه متغیر ها ی لازم جهت محاسبات را تعریف میکنیم اما در این استراتژی احتیاج به دسترسی به کلیه قراردادهای زنجیره داریم که از تابع OptionSE استفاده میکنیم. جهت اشنایی با این تابع و موارد کاربرد ان مقاله تابع قراردادهای هم گروه مطالعه شود
روند کلی به این صورت است که قرارداد اول به عنوان پوزیشن خرید محسوب می شود و از OptonSE برای دسترسی به اطلاعات قراردادهای بعد یا قبل استفاده می شود که پوزیشن های فروش را نمایش می دهد
محاسبه سرمایه درگیر در صورت وثیقه قراردادن موقعیت با اعمال کمتر
اختلاف پرمیوم خرید از فروش × اندازه قرارداد
let debit = (Option.TI.Sell_1_Price - OptionSE(index).TI.Buy_1_Price) * Option.Size;
محاسبه سرمایه درگیر در صورت بلوکه شدن وجه تضمین
وجه تضمین + ( پرمیوم خرید × اندازه قرارداد)
let capital = OptionSE(index).Required_Margin + (Option.TI.Sell_1_Price * Option.Size);
محاسبه حداکثر سود
((اختلاف قیمت دو اعمال) × اندازه قرارداد) _ سرمایه درگیر
let profit = ((OptionSE(index).Strike - Option.Strike) *Option.Size) - debit;
محاسبه بازدهی کل با توجه به سرمایه گیر و وثیقه قرار دادن پوزیشن خرید
let result = '';
let index = 0;
while ( OptionSE(++index) != undefined ){
let debit = (Option.TI.Sell_1_Price - OptionSE(index).TI.Buy_1_Price) * Option.Size;
let profit = ((OptionSE(index).Strike - Option.Strike) *Option.Size) - debit;
let yCapital = ((profit / debit) * 100).toFixed(1);
if (Option.TI.Sell_1_Price >0 && OptionSE(index).TI.Buy_1_Price >0)
result += ShowDetail(OptionSE(index).Namad) + ': ' + yCapital + ' / ';
}
result;
نحوه کاربرد تابع ShowDetail را از راهنمای فرمول نویسی بخش تابع های آپشن باز ببنید
در قسمتif (Option.TI.Sell_1_Price >0 && OptionSE(index).TI.Buy_1_Price >0) دو شرط برای وجود تقاضا و عرضه گذاشته شده است در صورت نیاز شروط دیگر خود را در این بخش اضافه کنید
مثال
ایجاد ستون برای مشاهده بازدهی ماهانه بالای 10 درصد در حالی که هر دو پوزیشن در سود یا بی تفاوت باشند(در صورت وثیقه قراردادن پوزیشن خرید)
لازم است متغیر محاسبه تعداد ماه مانده تا سر رسید تعریف و به فرمول اضافه شود
let result = '';
let index = 0;
while ( OptionSE(++index) != undefined ){
let debit = (Option.TI.Sell_1_Price - OptionSE(index).TI.Buy_1_Price) * Option.Size ;
let profit = ((OptionSE(index).Strike - Option.Strike) * Option.Size) - debit;
let month = 1;
if (Option.DaysUntilMaturity > 30)
month = (Option.DaysUntilMaturity / 30);
let yCapital = ((profit / debit) * 100).toFixed(1);
let rate = (yCapital / month).toFixed(1);
if (rate >=10 && Option.TI.Sell_1_Price >0 && OptionSE(index).TI.Buy_1_Price >0 && (Option.State== "ITM" || Option.State== 'ATM') && (OptionSE(index).State== "ITM" || OptionSE(index).State== 'ATM'))
result += ShowDetail(OptionSE(index).Namad) + ': ' + rate + ' / ';
}
result;
نمایش نمودار استراتژی
جهت دسترسی سریع به نمودار استراتژی (بدون نیاز به وارد کردن دستی اعداد و قراردادها) می توان ایکن رسم نمودار را در خروجی ستون به همراه سایر خروجی ها قرار داد.
برای این منظور از تابع رسم نمودار استفاده می شود . جزییات این تابع در راهنمای فرمول نویسی بخش تابع های اپشن باز قرار داده شده همچنین در این مقاله توضیحاتی ارائه شده است
رسم نمودار استراتژی اسپرد صعودی در حالت بلوکه شدن وجه تضمین
نحوه استفاده از تابع نمودار در فرمول اسپرد با رنگ دیگری مشخص شده است
let result = '';
let index = 0;
var month = 1;
if (Option.DaysUntilMaturity > 30)
month = (Option.DaysUntilMaturity / 30);
month = month.toFixed(1);
while ( OptionSE(++index) != undefined ){
let debit = (Option.TI.Sell_1_Price - OptionSE(index).TI.Buy_1_Price) * Option.Size;
let capital = OptionSE(index).Required_Margin + (Option.TI.Sell_1_Price* Option.Size);
let profit = ((OptionSE(index).Strike - Option.Strike) *Option.Size) - debit;
let yCapital = (((profit / capital) * 100)/month).toFixed(1);
if (yCapital >=5 && Option.TI.Sell_1_Price >0 && OptionSE(index).TI.Buy_1_Price >0){
pos.Add('buy', Option.Namad,1, 'sell');
pos.Add('sell', OptionSE(index).Namad, 1, 'buy');
let startegy = pos.Build('اسپرد ' + NamadNo(Option.Namad) + ' - ' + NamadNo(OptionSE(index).Namad));
result += '[ ' + ShowDetail(OptionSE(index).Namad, '#') + ': ' + yCapital +startegy+'] ' ;
}}
result;
ایجاد فیلتر
فیلتر قراردادهایی که بازدهی ماهانه بالای 10 درصد دارند
let result = false;
let index = 0;
while ( OptionSE(++index) != undefined ){
let debit = (Option.TI.Sell_1_Price - OptionSE(index).TI.Buy_1_Price) * Option.Size ;
let profit = ((OptionSE(index).Strike - Option.Strike) * Option.Size) - debit;
let month = 1;
if (Option.DaysUntilMaturity > 30)
month = (Option.DaysUntilMaturity / 30);
let yCapital = ((profit / debit) * 100).toFixed(1);
let rate = (yCapital / month).toFixed(1);
if (rate>10 && Option.TI.Sell_1_Price >0 && OptionSE(index).TI.Buy_1_Price >0){
result = true;
break;
}
}
result;
در ستون و فیلتر اماده فرمول های مربوط به ایجاد ستون و ایجاد فیلتر استراتژی اسپرد در دو حالت وثیقه قرار دادن قرارداد و بلوکه شدن وجه تضمین در دسترس می باشد اموزش های موجود در صورت تمایل به تغییر و شخصی سازی فرمول ها کمک کننده می باشند