وضعیت بازار
ارزش معاملات سهام
ارزش معاملات اختیار
حجم معاملات اختیار
اطلاعات قیمت
✨ دوره آفلاین آموزش اختیارمعامله و فرمول نویسی
بیش از ۱۵ ساعت آموزش

مفاهیم پایه و کاربردی آپشن - استراتژی‌های سودآور برای مبتدیان و حرفه‌ای‌ها - آموزش گام به گام اختیار معامله - فرمول‌نویسی - فیلترنویسی - دسترسی نامحدود - پشتیبانی

بیشترین ارزش معاملات اختیار معامله
روزانه
هفتگی
ماهیانه
روزانه
هفتگی
ماهیانه
نزدیکترین سررسید دوره های معاملاتی
نماد روز تا سررسید
برترین دارایی های پایه
روزانه
هفتگی
ماهیانه
دریافت و فعال سازی آنلاین کد بورسی و اختیار معامله
ما را در شبکه های اجتماعی دنبال کنید

کد ستون و فیلتر استراتژی پوت اسپرد نزولی Bear put spread

آموزش تخصصی فرمول‌نویسی و فیلتر موقعیت‌های بهینه برای استراتژی Bear put Spread در آپشن باز. با تکنیک‌های هوشمند، بهترین فرصت‌ها را شناسایی و سود خود را حداکثر کنید
جهت نوشتن فرمول و فیلتر   به صفحه دیده بان رفته سپس بر روی ساخت ستون یا ساخت فیلتر کلیک کنید. نام ستون یا فیلتر را مشخص، کد را در قسمت ادیتور نوشته و در نهایت جهت مشاهده نتیجه بر روی ذخیره کلیک کنید .

این فرمول  حداکثر سود و زیان  قرارداد ( به همراه جزییات دیگر ) با قراردادهای زنجیره و با قیمت اعمال  کمتر  از خودش را نشان می دهد 

محاسبه سود برای حالتی است که کارگزاری قرارداد  خریداری شده به عنوان وثیقه قرار می دهد و وجه تضمین بلوکه نمی شود

در این فرمول فقط قراردادها با سود ماهیانه بیشتر از 5 یا (var1) درصد نمایش داده شده اند که می توانید آن را از طریق فیلد متغییر در دیده بان سایت تغییر دهید .

قراردادهای  موجود در ستون (نماد) قراردادهایی هستند که خریداری می شوند و قراردادهای موجود در ستون ایجاد شده (اسپرد نزولی) قراردادهایی هستند که باید فروخته شوند

امکان مرتب سازی بر اساس درصد سود ماهانه و  نمایش جزییات به صورت انتخابی  وجود دارد

پارامترهای مورد بررسی

  • حداکثر سود
  • حداکثر زیان
  • درصد فاصله قیمت سهم از اعمال قرارداد کال فروخته شده(اعمال اول)
  • درصد فاصله قیمت سهم از اعمال قرارداد کال خریداری شده(اعمال دوم)
  • درصد فاصله قیمت سهم از سر به سری
  • موقعیت کنونی (نمایانگر  درصد سود یا زیان در صورتی که با قیمت های روی تابلو به اعمال برسد)

پوت اسپرد نزولی

کد ستون
//با اعمال هادر خروجی 1 و عدم نمایش  عدد 0
let pointShow = 1;

let result = '';
let index = 0;
//جهت فیلتر کردن خروجی
let condition1  = _var1 != '' ? _var1 : 5;
let condition2  = _var2 != "" ? _var2 : "";
let size = Option.Size;

let positions = new Array();
while ( OptionSE(--index) != undefined ){
//اگر حجم خریدار قرارداد صفر بود رد بشه 
if (OptionSE(index).TI.Buy_1_Volume == 0 || Option.TI.Sell_1_Volume == 0 )
continue;
let position = new Object();

//سرمایه درگیر
position.debit = ( Option.TI.Sell_1_Price - OptionSE(index).TI.Buy_1_Price) * Option.Size;
//حداکثر زیان 
let loss = position.debit;
position.mLoss = MP(((loss /position.debit)*100), Option.DaysUntilMaturity);

//حداکثرسود
let profit = (( Option.Strike - OptionSE(index).Strike ) - ( Option.TI.Sell_1_Price - OptionSE(index).TI.Buy_1_Price))* Option.Size;
position.mProfit = MP(((profit /position.debit)*100), Option.DaysUntilMaturity);

// سربه سری
position.BE = Option.Strike - ( Option.TI.Sell_1_Price - OptionSE(index).TI.Buy_1_Price);

//درصد اختلاف ها
position.disBE = CalcRateChange(UA.TI.LastPrice, position.BE);
position.strike = OptionSE(index).Strike;
position.disStrike = CalcRateChange(UA.TI.LastPrice, position.strike);
position.strike2 = CalcRateChange(UA.TI.LastPrice, Option.Strike);
position.strike1 = CalcRateChange(UA.TI.LastPrice, position.strike);

position.namad = OptionSE(index).Namad;
position.namadNo = NamadNo(OptionSE(index).Namad);
position.maxLoss = loss/size;
position.maxProfit = profit/size;

let current = ((position.BE - UA.TI.LastPrice) / position.debit) * Option.Size;
position.current = MP(current * 100, Option.DaysUntilMaturity);

if ( _var2 == 1 ){
position.point1 = Option.Strike;
position.point2 = UA.TI.LastPrice * 100;
}
else if ( _var2 == 2 )
{
position.point1 = position.BE;
position.point2 = Option.Strike;
}
else if ( _var2 == 3 )
{ 
position.point1 = OptionSE(index).Strike;
position.point2 = position.BE;
}
else if ( _var2 == 4 ){
position.point1 = 0;
position.point2 = OptionSE(index).Strike;
position.current = position.mProfit;
}
else condition2 = ''

if (position.mProfit >= condition1 && Option.Type == 'put'
//شرط نقطه قیمت نماد پایه
&& (condition2 == "" || (UA.TI.LastPrice>= position.point1 && UA.TI.LastPrice< position.point2)))
positions.push(position);
//end of position object
}
positions = SortObject(positions, "maxProfit");
positions = positions.reverse();

positions.forEach(function(position, posIndex) {

let bgP2, bgP3, bgP4;
//قیمت سهم کمتر اعمال کال فروخته شده باشه
if (UA.TI.LastPrice<=position.strike)
bgP2 = "#ADFF2F";

// قیمت سهم کمتر از سر به سری باشد
else if(UA.TI.LastPrice<=position.BE){
bgP3 = '#B0E0E6';
}
//قیمت سهم بین سربه سری و اعمال کال خریداری شده
else if(UA.TI.LastPrice>=position.BE && UA.TI.LastPrice<Option.Strike)
bgP3 = "#FFC0CB";

// قیمت سهم بیشتر از اعمال کال خریداری شده
else if (UA.TI.LastPrice>=Option.Strike)
{bgP4 = "red";
position.current = -100;
}

pos.Add('buy', Option.Namad, 1, 'sell');
pos.Add('sell', position.namad, 1, 'buy', false);
result += ShowDetail(position.namad, position.namadNo);
result += "[" + Style(position.maxProfit + " (" + position.mProfit + "%)", 'black', '', 'بیشترین سود', true) + "~" + 
Style(position.current + '%', position.current >= 0 ? 'green' : 'brown', '', 'موقعیت کنونی') + 
"~" + Style(position.maxLoss + " (" + position.mLoss + "%)", 'red', '', 'بیشترین ضرر') + "]";

if (pointShow)
result += " P%[" +
Style(position.strike1, '', bgP2, 'اعمال اول-قیمت%') + '' +
Style(position.disBE, '', bgP3, 'سر به سری-قیمت%') + '' +
Style(position.strike2, '', bgP4, 'اعمال دوم-قیمت%') + "]";

result += pos.Build('اسپرد ' + Option.Namad);

//بیشترین بازدهی در اول خروجی جهت سورت
if (posIndex == 0)
result = '{0} '.format(position.mProfit) + result;

});
result;

این فیلتر قرادادهایی که سود ماهانه بالای 5 درصد دارند را نمایش می دهد.(می توانید این عدد  از طریق فیلد var1  در دیده بان تغییر دهید)

محاسبه سود برای حالتی است که کارگزاری قرارداد  خریداری شده به عنوان وثیقه قرار می دهد و وجه تضمین بلوکه نمی شود

امکان فیلتر قراردادها بر اساس محدوده قیمتی سهم نسبت به اعمال ها و سر به سری  با استفاده از فیلد متغییر و تغییر عدد برای  var2 در دیده بان وجود دارد

با قرار دادن  عدد 1 برای var2  قرارداد هایی را مشاهده می کنید که قیمت سهم  کمتر از اعمال دوم ( قرارداد کال خریده شده) هستند

با قرار دادن  عدد 2 برایvar2  قرارداد هایی را مشاهده می کنید که قیمت سهم  بین اعمال دوم و سربه سری  هستند

با قرار دادن  عدد 3 برای var2  قرارداد هایی را مشاهده می کنید که قیمت سهم  ببین سر به سری و اعمال اول (قرارداد کال فروخته شده) هستند

با قرار دادن  عدد 4 برایvar2  قرارداد هایی را مشاهده می کنید که قیمت سهم  بیشتر از اعمال اول هستند

فیلتر

کد فیلتر
let result = false; 
let index = 0; 
let condition1  =  _var1 != '' ?  _var1 : 5;
let condition2  =  _var2 != "" ?  _var2 : "";

while ( OptionSE(--index) != undefined ){ 
if (OptionSE(index).TI.Buy_1_Volume == 0 || Option.TI.Sell_1_Volume == 0  )
continue;


//سرمایه درگیر
let block = ( Option.TI.Sell_1_Price - OptionSE(index).TI.Buy_1_Price) * Option.Size;
//حداکثرسود
let profit = (( Option.Strike - OptionSE(index).Strike ) - ( Option.TI.Sell_1_Price - OptionSE(index).TI.Buy_1_Price))* Option.Size;
let mProfit = MP(((profit /block)*100)  , Option.DaysUntilMaturity);
// سربه سری
let BE =  Option.Strike - ( Option.TI.Sell_1_Price - OptionSE(index).TI.Buy_1_Price);

let point1, point2;
if ( _var2 == 1 ){
point1= Option.Strike
point2 = UA.TI.LastPrice * 100 ;
}
else if (  _var2 == 2 )
{
point1 = BE;
point2 = Option.Strike;
}
else if (  _var2 == 3 )
{ point1 = OptionSE(index).Strike;
point2 = BE;
}
else if ( _var2 == 4 ){
point1= 0;
point2 = OptionSE(index).Strike; 
}
else condition2 = ''


if (mProfit > condition1 &&
(condition2  == "" || (UA.TI.LastPrice>= point1 && UA.TI.LastPrice< point2))
&&  Option.Type == 'put'){ 
result = true;
break;
}
}  
result;
لطفا سوال یا نظر خود را در این قسمت مطرح فرمایید
وارد کردن شماره همراه و ایمیل اختیاری می باشد و فقط جهت اطلاع رسانی از دریافت پاسخ استفاده خواهد شد .

×