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

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

تخفیف ویژه 50٪ اشتراک حرفه‌ای!

با ابزارهای حرفه‌ای، ارتقای مهارتت رو شروع کن و بازدهی رو چند برابر کن!

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

فرمول نویسی موارد مربوط به بلک شولز یونانی ها و نوسان پذیری

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


سوال  چطور میشود پایین ترین نوسان ضمنی زنجیره قرارداد مثلاً یکی از زنجیره های خساپا رو  پیدا کرد و آن را در تابع بلک شولز گذاشت و خروجی پرمیوم گرفت.

توضیح 

می خواهیم کمترین مقدار iv رو در یک زنجیره   پیدا کنیم . پس نیاز هست روی زنجیره یک حلقه بزنیم و با مقایسه تمامی iv های قرارداد کمترین مقدار را پیدا کنیم . 

برای حلقه از while و برای دسترسی به زنجیره از تابع OptionSE استفاده خواهیم کرد . 

let minIV = 0;

let index = 0;

let str = '';

while (OptionSE()[index] != undefined) {


//قرارداد با اندیس index

current = OptionSE()[index] ;


var param = new Object();

param.Type = current.Type;

param.Strike = current.Strike;

param.Premium = ScalePrice(current.TI)

let bg = CalcBG(param);


//این رشته جهت تست و مشاهده iv هر قرارداد

str += "<p>{0}:{2} - {1}</p>".format(index, bg.iv, current.Strike);


//اولین قراردادی که iv داره رو به عنوان مرجع مقایسه انتخاب می کنیم و در minIV ذخیره میکنیم

if (minIV ==0  && bg.iv != 0)

  minIV  = bg.iv;

//مقایسه مقدارminIV با iv قرارداد و درصورت کوچکتر بودن iv ان را در minIV قرارمیدیم

else if ( bg.iv < minIV && bg.iv != 0)

  minIV  = bg.iv;

index++;

}

str += "<p>minIV: {0}</p>".format(minIV);

str;

تا اینجا مقدار iv هر کدام از قرادادها رو محاسبه کردیم و کمترین آن را در متغیر minIV ذخیره کردیم و برای درک بهتر ، در ستون نمایش میدهیم . 

حالا که کمترین iv رو داریم ان را به عنوان iv پارامتر در تابع محاسبه بلک شولز قرارداد فعلی قرار میدهیم  و بلک شولز بر اساس minIV را بدست می آوریم . 

var param = new Object();

param.Volatility = minIV;

let bs = CalcBG(param).bs;

str += "BlackSholes by min IV: {0}".format(bs);

str;


کد کامل بدون توضیح 

let minIV = 0;

let index = 0;

let str = '';

while (OptionSE()[index] != undefined) {

//قرارداد با اندیس index

current = OptionSE()[index] ;


var param = new Object();

param.Type = current.Type;

param.Strike = current.Strike;

param.Premium = ScalePrice(current.TI)

let bg = CalcBG(param);


if (minIV ==0  && bg.iv != 0)

  minIV  = bg.iv;


else if ( bg.iv < minIV && bg.iv != 0)

  minIV  = bg.iv;

index++;

}

var param = new Object();

param.Volatility = minIV;

 CalcBG(param).bs;

لطفا سوال یا نظر خود را در این قسمت مطرح فرمایید
وارد کردن شماره همراه و ایمیل اختیاری می باشد و فقط جهت اطلاع رسانی از دریافت پاسخ استفاده خواهد شد .

  • ابوالفضل احسانی جمعه، ۲۷ مرداد ۱۴۰۲ - ۱۹:۲۱

    باسلام و درود فراوان لطف می کنید در خصوص کاربرد این کد در بازار معامله توضیح بدید ، من کد رو اجرا کردم ولی کاربردی برای اون نتونسم پیداکنم. قرار داد های otm بشدت بالاتر از خروجی این ستون معامله میشن و قرار داد های itm تقریبا نزدیک خروجی این فرمول معامله میشن ، من نتونستم نتیجه معنی داری بگیرم.


    پشتیبانی.1 جمعه، ۲۷ مرداد ۱۴۰۲ - ۲۲:۳۱

    سلام. برخی از نوسانگیران  از نوسان ضمنی و بلک شولز  برای تشخیص گرانی یا ارزانی قراردادها استفاده می کنند. و این قطعه کد جهت اشنایی  با نحوه استفاده از حلقه و تابع در پیدا کردن کم ترین و یا بیشترین نوسان ضمنی  بین قراردادهای یک زنجیره قرارداد در بدست اوردن قیمت منصفانه قرار داده شده است 


×