به سه شکل می توان از این تابع استفاده کرد
1: CalcBG(namad);
توضیح : نام قرارداد به عنوان پارامتر ورودی دریافت می شود . درصورتی که نام مشخص نشود قرارداد جاری به عنوان ورودی در نظر گرفته می شود
مثال نام قرارداد مشخص نشده
let bg = CalcBG();
let delta = bg.delta; //دلتا
let bs = bg.bs; //بلک شولز
مثال نام قرارداد مشخص شده
let bg = CalcBG('ضخود9015')
let vega = bg.vega; //وگا
let bs = bg.bs; //بلک شولز
مثال داینامیک استفاده در حلقه و ...
let bg = CalcBG(OptionSE()[index].Namad);
let iv =bg.iv; //نوسان ضمنی
let bs = bg.bs; //بلک شولز
2: CalcBG(namad, param);
توضیح : نام قرارداد به عنوان پارامتر اول (در صورتی که مشخص نشود قرارداد جاری بصورت پیش فرض مشخص می شود);آبجکت مقادیری که می خواهیم در محاسبه بلک شولز استفاده شود به عنوان پارامتر دوم
هر کدام از پارامتر ها مقدار دهی نشوند مقدار پیش فرض قرارداد فعلی در نظر گرفته می شود. پارامتر مقادیر محاسباتی بلک شولز می بایست از نوع آبجکت باشد . مشخص کردن یک یا همه مقادیر اختیاری هست
محاسبه بلک شولز نماد ضهرم با نرخ بهره و روزمانده متفاوت
CalcBG('ضهرم4004', {RiskFree:50, Days:10});
3: CalcBG(param);
توضیح : نوع ورودی آبجکت می باشد که شامل تمامی پارامتر های محاسبه بلک شولز می باشد . در این حالت که شبیه نوع دوم هست (نام قرارداد مشخص نمی شود)تمامی مقادر محاسبات را مشخص می کنیم که شبیه ماشین حساب بلک شولز عمل می کند
let bg= CalcBG( {Type:'call', RiskFree:30, Days:30, Strike:105, Volatility:30,Premium:40, UA_Price:100})
مشابه مثال بالا با تعریف param و فراخوانی تابع
let param = {Type:'call', RiskFree:30, Days:30, Strike:105, Volatility:30,Premium:40, UA_Price:100};
let bg= CalcBG( param)
خروجی تابع را می توان به شکل زیر استفاده کرد:
let bg= CalcBG();
bg.bs; //بلک شولز
bg.delta; //دلتا
bg.gamma; //گاما
bg.vega; //وگا
bg.theta; // تتا
bg.rho; //رو
bg.iv; //نوسان ضمنی
توضیح مقداردهی پارمترهای بلک شولز جهت محاسبه بصورت دلخواه
var param = {p1:val, p2:val, ..};
var bg = CalcBG(param);
پارامتر |
توضیح |
پیش فرض |
مقدار دهی و مثال |
Type
|
نوع قرارداد
|
قرارداد فعلی
|
var param = {Type:'call'};
var param = {Type:'put'};
|
UA_Price
|
قیمت نماد پایه
|
آخرین قیمت نماد پایه
|
var param = {UA_Price:100};
|
Days
|
روزهای باقی مانده
|
قرارداد فعلی
|
var param = {Days:10};
|
RiskFree
|
نرخ بهره
|
25
|
var param = {RiskFree:30, UA_Price = 2000};
|
Strike
|
قیمت اعمال
|
قرارداد فعلی
|
var param = {Strike:450};
|
Volatility
|
نوسان پذیری
|
تلاطم تاریخی نماد پایه
|
var param = {Volatility:50};
|
Premium
|
پریمیوم جهت محاسبه IV
|
0
|
var param = {Premium:50};
|
مثال
مقدار بلک شولز در صورتی که نماد پایه در بالاترین مقدار خود معامله شود
var param = {UA_Price: UA.TI.daily_price_high};
CalcBG(param).bs;
نوسان ضمنی و دلتا بر اساس قیمت عرضه و نرخ بهره 30
var param = {RiskFree:30, Premium:Option.TI.Sell_1_Price};
CalcBG(param).delta;
CalcBG(param).iv;
فیلتر قراداد هایی که iv ضمنی بالای 50 (با قیمت خرید) و دلتاشون هم بین 50 تا 60
var param = {Premium:Option.TI.Buy_1_Price};
//در صورتی که بخوایم قیمت پریمیوم رو بر مبنای محاسبه انتخابی ما مقدار دهی کنه
//var param = {Premium:ScalePrice(Option.TI)};
var bg = CalcBG(param);
(bg.delta >=.4 && bg.delta <=.6) && (bg.iv >=.5)