// ارزش معاملات بالا (بیشتر از 100 میلیون)
let highValue = Option.TI.TValue > 100000000;
// تاریخ سررسید نزدیک نباشد (بیشتر از 14 روز)
let notNearExpiry = Option.DaysUntilMaturity > 14;
// محاسبه و بررسی اختلاف بلک شولز (کمتر از 10 درصد)
let bg = CalcBG(Option);
let bsDiff = Math.abs(((Option.TI.LastPrice - bg.bs) / bg.bs) * 100);
let isAcceptableBS = bsDiff <= 15;
// وضعیت در سود
let isInTheMoney = Option.State === 'ITM';
// اهرم بالای 3
let highLeverage = CalcLeverage() >= 3;
// محاسبه ارزش ذاتی
let intrinsicValue = 0;
if (Option.Type === 'call') {
intrinsicValue = Math.max(0, UA.TI.LastPrice - Option.Strike);
} else {
intrinsicValue = Math.max(0, Option.Strike - UA.TI.LastPrice);
}
// محاسبه ارزش زمانی
let timeValue = Option.TI.LastPrice - intrinsicValue;
// شرطهای ارزش ذاتی و زمانی
let hasGoodValue = intrinsicValue > 0 &&
timeValue > (Option.TI.LastPrice * 0.2) &&
timeValue < (Option.TI.LastPrice * 0.8);
// نتیجه نهایی - همه شرطها باید true باشند
highValue &&
notNearExpiry &&
isAcceptableBS &&
isInTheMoney &&
highLeverage &&
hasGoodValue