در دیدهبان آپشن میتوانید برای هر قرارداد ستون یا فیلتر بسازید که قیمت تئوری، IV و یونانیها را محاسبه کند — بدون خروج از جدول. همه این محاسبات از تابع calcBS() میآید.
تابع calcBS چه برمیگرداند؟
تابع calcBS() بر اساس مدل بلکشولز برای قرارداد جاری (یا قرارداد مشخص) محاسبه میکند. سه حالت دارد:
یک فراخوانی هفت عدد برمیگرداند — قیمت تئوری، IV محاسباتی و پنج یونانی — و چون همه از یک محاسبهاند، همیشه با هم سازگارند.سه شکل: سطر جاری، یک نماد مشخص، و یک سناریو. شکل سوم راهی دیگر برای انتخاب قرارداد نیست — همان محاسبه است روی عددهای شما.
تابع optionSE() قراردادهای همسررسید را برمیگرداند — برای مقایسه اعمالهای مجاور یا محاسبه روی قرارداد دیگر:
optionSE شما را به قراردادهای دیگر همان سررسید میرساند: اعمال بالاتر، طرف مقابل (کال ↔ پوت)، یا کل آرایه برای حلقه زدن.
optionSE() — آرایه همه قراردادهای همسررسید
optionSE(1) — اولین اعمال بالاتر از جاری
optionSE(0, 'os') — قرارداد طرف مقابل (call ↔ put) با همان اعمال
ستون: دلتا اعمال بالاتر
let next = optionSE(1);
if (!next) return '';
return roundNumber(calcBS(next.namad).delta, 2);
مثال پیشرفته: کمترین IV زنجیره
گاهی میخواهید کمترین IV بین قراردادهای یک سررسید را پیدا کنید و همان را برای محاسبه قیمت تئوری قرارداد جاری به کار ببرید — مثلاً وقتی فکر میکنید IV فعلی outlier است.
در مثال پیشرفته همان آبجکت دو بار به کار میرود: یکبار برای استخراج IV هر قرارداد از پرمیومش، و یکبار برای تحمیل کمترین IV به قرارداد جاری.
let list = optionSE();
let minIV = null;
for (let i = 0; i < list.length; i++) {
let o = list[i];
let iv = calcBS({ premium: o.ti.lastPrice, strike: o.strike, type: o.type }).iv;
if (!iv) continue;
if (minIV === null || iv < minIV) minIV = iv;
}
if (minIV === null) return '';
let bsWithMinIV = calcBS({ volatility: minIV }).bs;
return style(roundNumber(minIV * 100, 1) + '%', '#2563eb', '', 'min IV') +
' → BS ' + roundNumber(bsWithMinIV, 0);
در این کد روی آرایه optionSE() حلقه میزنیم، IV هر قرارداد را با پرمیوم همان قرارداد میگیریم، کمترین را نگه میداریم و در نهایت قیمت BS قرارداد جاری را با volatility: minIV محاسبه میکنیم.
سناریوسازی با overrides
با آبجکت overrides میتوانید پارامترهای BS را عوض کنید — بدون تغییر داده واقعی بازار:
آبجکت سناریو فقط محاسبهٔ همان ستون را عوض میکند و دادهٔ بازار دستنخورده میماند — هر پارامتری که ندهید، از بازار خوانده میشود.
کلید
کاربرد
volatility
IV فرضی (0 تا 1 یا درصد)
premium
پرمیوم فرضی — برای IV معکوس
uaPrice
قیمت پایه فرضی
days
روز تا سررسید فرضی
strike
اعمال فرضی
riskFree
نرخ بدون ریسک
ستون: قیمت BS با HV پایه (بهجای IV بازار)
if (!ua.hv) return '';
return roundNumber(calcBS({ volatility: ua.hv }).bs, 0);
مشاهده یونانیها و سایر یونانیها در نمودار استراتژی
علاوه بر ستون و فیلتر دیدهبان، در نمودار استراتژی میتوانید یونانیها را روی منحنی سود/زیان ببینید: موقعیتهای call/put را اضافه کنید، از بخش «یونانیها» روی نمودار استفاده کنید و حساسیت کل استراتژی به قیمت پایه و زمان را لحظهای بررسی کنید. جمع دلتای موقعیتها در پایین جدول نیز نمایش داده میشود.
برای دیدن حساسیت کل یک استراتژی چندپایه، موقعیتها را در نمودار استراتژی بسازید و از بخش یونانیها روی منحنی سود/زیان استفاده کنید.
فرمولها در کتابخانه شخصی ذخیره میشوند و میتوانید هر کدام را بهعنوان فیلتر یا ستون سفارشی به دیدهبان اضافه کنید.
calcBS قلب فرمولنویسی تحلیلی در دیدهبان است: یک تابع برای قیمت تئوری، IV و همه یونانیها. با ستون و فیلتر ساده شروع کنید؛ برای مقایسه اعمالها از optionSE و برای سناریو از overrides استفاده کنید.
اگر سوال یا ابهامی در رابطه با این مطلب دارید، همینجا بپرسید؛ کارشناسان ما پاسخ میدهند.
تجربه یا نکتهای دارید؟ نوشتنش به بقیهٔ کاربران هم کمک میکند.
پرسشها و نظرات کاربران
۱ پیام
ابوالفضل احسانی
27 مرداد 1402 - 22:51
باسلام و درود فراوان
لطف می کنید در خصوص کاربرد این کد در بازار معامله توضیح بدید ، من کد رو اجرا کردم ولی کاربردی برای اون نتونسم پیداکنم.
قرار داد های otm بشدت بالاتر از خروجی این ستون معامله میشن و قرار داد های itm تقریبا نزدیک خروجی این فرمول معامله میشن ، من نتونستم نتیجه معنی داری بگیرم.