آپشن باز
آپشن باز

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

پیام‌رسانخرید اشتراک
کانال آپشن‌باز|گروه آپشن‌بازان

ابزارها

  • میزکار آپشن
  • دیده‌بان آپشن
  • زنجیره قراردادها
  • ماشین حساب بلک‌شولز
  • نقشه بازار سهام

آموزش و ارتباط

  • دانشنامه
  • راهنمای سایت
  • راهنمای فرمول‌نویسی
  • پیام‌رسان
  • خرید اشتراک
  • سؤالات متداول
  • پشتیبانی و تیکت

درباره آپشن‌باز

  • درباره ما
  • تماس با ما
  • قوانین و مقررات
  • سلب مسئولیت

© 2026 آپشن باز — تمامی حقوق محفوظ است.

قوانینسلب مسئولیتسؤالات متداولتماس با ماپشتیبانی
دیده‌بانزنجیرهمیزکار
مستندات توسعه‌دهندگان

راهنمای کامل فرمول‌نویسی

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

جستجوهای رایج:

فهرست مطالب

اول ستون و فیلتر را بشناسیم

ستون محاسباتی چیست؟
ستون محاسباتی یک ستون سفارشی در جدول دیده‌بان است. فرمول روی هر قرارداد اجرا می‌شود و خروجی آن در همان ستون نمایش داده می‌شود؛ مثلاً سر به سر، اهرم، دلتا، سود اسپرد یا خروجی رنگی.
فیلتر چیست؟
فیلتر شرطی است که برای هر سطر مقدار true یا false برمی‌گرداند. فقط قراردادهایی که نتیجه شرط آن‌ها true است در جدول باقی می‌مانند.

در هر دو حالت، کد شما با جاوااسکریپت نوشته می‌شود، روی هر سطر جداگانه اجرا می‌شود و به اطلاعات قرارداد (option) و نماد پایه (ua) دسترسی دارد. توضیح کامل ستون و فیلتر در بخش‌های بعدی آمده است.

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

منابع تکمیلی آموزش

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

حساسیت حروف در کد

نام فیلدها و توابع به کوچک/بزرگ بودن حروف حساس هستند. برای مثال option.ti.lastPrice درست است ولی option.ti.lastprice خطا می‌دهد.

ساختار فرمول و قوانین return

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

فرمول تک‌خطی — بدون نیاز به return

اگر کل فرمول در یک خط باشد، موتور به‌صورت خودکار return (expr); را اضافه می‌کند.

تک‌خطی — بدون return — کار می‌کند

JavaScript
option.ti.lastPrice * option.size

با return صریح هم کار می‌کند

JavaScript
return option.ti.lastPrice * option.size;

فیلتر تک‌خطی

JavaScript
option.state == 'ITM' && leverage() >= 4
فرمول چندخطی — return اجباری است

هر وقت فرمول بیش از یک خط دارد (متغیر، شرط، حلقه)، باید حداقل یک return داشته باشد، وگرنه در ستون ⚠ return ندارد نمایش می‌دهد.

✓ چندخطی با return

JavaScript
let profit = option.ti.buy1Price / ua.ti.lastPrice * 100;
return roundNumber(ytmProfit(profit, option.daysUntilMaturity), 1) + '%';

✗ چندخطی بدون return — خطا نمایش داده می‌شود

JavaScript
let profit = option.ti.buy1Price / ua.ti.lastPrice * 100;
roundNumber(ytmProfit(profit, option.daysUntilMaturity), 1);

فرمول فیلتر چندخطی هم باید return true/false; داشته باشد، وگرنه همه سطرها حذف می‌شوند (مقدار undefined = false).

چندین return در شرط‌ها

می‌توانید در هر شاخه if یک return بگذارید. اولین return که اجرا شود خروجی ستون را مشخص می‌کند.

چند return در شاخه‌های if

JavaScript
if (!option.ti.volume) return '';
if (option.type == 'call')
  return style('C', '#3b82f6');
return style('P', '#f97316');

در ویرایشگر فرمول، با Ctrl + Space لیست کامل فیلدها و توابع را ببینید. همچنین وقتی بعد از option. یا ua. تایپ می‌کنید، پیشنهادهای خودکار نمایش داده می‌شوند.

ستون محاسباتی

ستون محاسباتی یک ستون سفارشی است که در جدول دیده‌بان اضافه می‌شود. خروجی می‌تواند عدد، متن یا HTML باشد. مقدار برگشتی در ستون نمایش داده می‌شود.

عدد یا متن ساده

JavaScript
option.strike

فرمول محاسباتی

JavaScript
roundNumber(calcBS().delta, 2)

HTML رنگی

JavaScript
style(option.state, option.state=='ITM'?'green':'red')
خروجی HTML — style()

برای رنگ‌بندی، tooltip یا ترکیب چند مقدار در یک ستون از تابع style() استفاده کنید. می‌توانید چند style() را با + به هم وصل کنید.

ترکیب دو بخش در یک ستون

JavaScript
style(option.state, option.state=='ITM'?'green':'red') + ' | ' + style(roundNumber(intrinsic(),0), '#888')

رنگ شرطی با colorCondition

JavaScript
let d = calcBS().delta;
return colorCondition(d, 0.3, 'red', 0.5, 'green', 'color', false);
ستون چندخطی با منطق

از متغیر، شرط و حلقه استفاده کنید. فقط حتماً return داشته باشد.

بازده سالانه کاورکال با بررسی مقادیر

JavaScript
let premium = option.ti.buy1Price;
let base    = ua.ti.lastPrice;
if (!premium || !base) return '';
let pct = (premium / base) * 100;
return roundNumber(ytmProfit(pct, option.daysUntilMaturity), 1) + '%';

اسپرد + حداکثر سود کال اسپرد

JavaScript
let next = optionSE(1);
if (!next) return '';
let debit     = option.ti.sell1Price - next.ti.buy1Price;
let maxProfit = (next.strike - option.strike) - debit;
return style(commaSeparator(debit), 'orange', '', 'هزینه') +
       ' | ' +
       style(commaSeparator(maxProfit), 'green', '', 'حداکثر سود');

نکته: مقدار خالی

اگر فرمول return ''; یا return null; برگرداند، خروجی خالی نمایش داده می‌شود — مناسب برای پنهان‌کردن مقدار وقتی داده معتبر وجود ندارد.

فیلتر

فیلتر یک کد است که برای هر سطر true یا false برمی‌گرداند. سطرهایی که false باشند از جدول حذف می‌شوند.

فیلتر تک‌خطی — بدون return

یک عبارت شرطی که مستقیماً true/false برمی‌گرداند. نیازی به return نیست.

قراردادهای ITM با اهرم بالای ۴

JavaScript
option.state == "ITM" && leverage() >= 4

حجم معاملات امروز بالای صفر

JavaScript
option.ti.volume > 0

پایه‌های خودرو و خساپا

JavaScript
ua.namad == 'خودرو' || ua.namad == 'خساپا'
فیلتر چندخطی — return اجباری

وقتی شرط پیچیده‌تری نیاز دارید (محاسبه میانی، null‌چک)، باید با return true یا return false تمام شود.

فیلتر: احتمال سود بالای ۶۰٪

JavaScript
let iv = calcBS().iv;
if (!iv) return false;
return probOfProfit(breakeven(), ua.ti.lastPrice, iv, option.daysUntilMaturity) >= 60;

فیلتر: IV بالاتر از HV (اختیار گران نسبت به تاریخی)

JavaScript
let iv = calcBS().iv;
let hv = ua.hv;
if (!iv || !hv) return false;
return iv > hv;
حالت دوگانه: ستون + فیلتر همزمان

با تعریف const FILTER_RESULT = false; در فرمول، یک کد می‌تواند هم مقدار ستون را نمایش دهد هم به‌عنوان فیلتر عمل کند.

ثابتکاربردمقدار در اجرا
FILTER_RESULTمشخص می‌کند فرمول در حالت نمایش ستون اجرا شده یا در حالت فیلتر. مقدار نهایی را worker تعیین می‌کند.ستون: false، فیلتر: true
FILTER_SHOWکنترل نمایش مقدار ستون، بدون غیرفعال‌کردن فیلتر.true یعنی نمایش مقدار؛ false یعنی خروجی خالی

ستون + فیلتر: اهرم بالای ۳

JavaScript
const FILTER_RESULT = false;
const FILTER_SHOW   = true;

let lev = leverage();

if (FILTER_RESULT) return lev >= 3;

return style(roundNumber(lev, 1), lev >= 3 ? 'green' : '#888', '', 'اهرم');

فعال/غیرفعال‌کردن این فیلتر از پنل فیلترها در toolbar انجام می‌شود — بدون نیاز به ویرایش کد.

آبجکت‌های اصلی

هر فرمول به دو آبجکت اصلی دسترسی دارد که اطلاعات سطر جاری را در خود دارند.

تفاوت اصلی: آبجکت option مربوط به خود قرارداد اختیار (مثلاً ضخود) است، اما ua مربوط به سهم پایه آن (مثلاً خودرو) می‌باشد. برای قیمت‌های لحظه‌ای هر دو، همیشه از پسوند .ti استفاده کنید.

option

قرارداد اختیار سطر جاری

اطلاعات همان قراردادی که در این سطر دیده‌بان نمایش داده می‌شود.

فیلدتوضیح
option.strikeقیمت اعمال
option.typeنوع قرارداد: call یا put
option.daysUntilMaturityروز تا سررسید
option.stateوضعیت ITM، ATM یا OTM — تا ±۱٪ فاصله تا اعمال ATM حساب می‌شود؛ اگر قیمت پایه در دسترس نباشد null است
option.ti.*قیمت، حجم و دفتر سفارش قرارداد

مثال: آخرین قیمت قرارداد

option.ti.lastPrice
ua

نماد پایه سطر جاری

دارایی پایه‌ای که قرارداد اختیار روی آن نوشته شده است.

فیلدتوضیح
ua.namadنماد پایه، مثل خودرو
ua.hvنوسان‌پذیری تاریخی
ua.ivRankIV Rank — رتبه نوسان ضمنی نسبت به یک سال گذشته (۰–۱۰۰)
ua.ivPercentileIV Percentile — درصد روزهایی که WIV کمتر از امروز بوده (۰–۱۰۰)
ua.isEtfآیا دارایی پایه صندوق است؟
ua.ti.*قیمت، حجم و دفتر سفارش نماد پایه

مثال: آخرین قیمت نماد پایه

ua.ti.lastPrice
دسترسی مستقیم

فیلدهای آبجکت سطر جاری را مستقیماً بخوانید — سریع‌ترین روش.

فیلتر: ارزش معاملات پایه بالای ۵۰ میلیارد ریال

JavaScript
ua.ti.tValue > 50000000000

ستون: اندازه قرارداد × استرایک

JavaScript
option.strike * option.size
دسترسی غیرمستقیم

قرارداد یا پایه دیگر، هم‌سررسید، زنجیره — با توابع جستجو.

قیمت قرارداد دیگر

JavaScript
getOptionByNamad('ضهرم8004').ti.lastPrice

نماد قرارداد هم‌سررسید

JavaScript
optionSE(0, 'os').namad

فیلدهای option

مشخصات خود قرارداد اختیار — نماد، استرایک، نوع call/put، سررسید، وضعیت ITM/ATM/OTM، موقعیت باز، IV، blackSholesHV (قیمت نظری BS با HV پایه) و مارجین. دسترسی با option.fieldName. قیمت و حجم روز در option.ti است (بخش بعدی).

فیلدنوعتوضیح و جزئیات
option.namad
string
نماد اختیارکد نماد اختیار معامله (مثال: ضبهمن۱۴۰۳)
option.name
string
نام اختیارنام کامل نماد اختیار
option.code
string
کد اختیارکد داخلی نماد اختیار
option.strike
number
قیمت اعمالStrike price — قیمت اعمال اختیار
option.type
string
نوع: call | put"call" برای خرید, "put" برای فروش
option.sarresid
string
سررسیدتاریخ سررسید اختیار به فرمت رشته
option.daysUntilMaturity
number
روز تا سررسیدتعداد روز کالندری تا سررسید
option.dayTradesUntilMaturity
number
روز معاملاتی تا سررسیدتعداد روز معاملاتی تا سررسید
option.size
number
اندازه قراردادتعداد سهم در هر قرارداد اختیار
option.state
string
وضعیت: ITM | ATM | OTMوضعیت اختیار: در سود / در سر به سر / خارج از سود
option.openInterest
number
موقعیت بازتعداد کل موقعیت‌های باز در بازار
option.openInterestPC
number
تغییر موقعیت باز (%)درصد تغییر موقعیت باز نسبت به روز قبل
option.volumeAvg
number
میانگین حجممیانگین حجم معاملات روزانه اختیار
option.iv
number
نوسان پذیری ضمنیImplied Volatility — نوسان‌پذیری ضمنی (0 تا 1)
option.blackSholesHV
number
قیمت BS با HVقیمت نظری بلک‌شولز از پیش‌محاسبه‌شده با ua.hv و نرخ بهره تنظیمات — معادل calcBS({ volatility: ua.hv }).bs
option.wivSe
number
WIV (وزنی سررسید)نوسان‌پذیری ضمنی وزنی بر اساس سررسید
option.wiv
number
WIVWeighted Implied Volatility
option.requiredMargin
number
مارجین مورد نیازمارجین مورد نیاز برای فروش این اختیار
option.minimumMargin
number
حداقل مارجینحداقل مارجین قابل قبول
option.uaSymbolNamad
string
نماد دارایی پایهنماد سهم پایه مرتبط با این اختیار
option.chainOpen
boolean
وضعیت باز بودن زنجیرهtrue فقط وقتی وضعیت زنجیره کاملا باز باشد (نه سقف‌خورده/بسته/در انتظار بازگشایی)
option.chainFill
number
درصد پرشدن سقف زنجیرهدرصد پرشدن سقف OI زنجیره (می‌تواند بیشتر از ۱۰۰ باشد)
option.fee
number
کارمزد خرید/فروشنرخ کارمزد خرید و فروش قرارداد اختیار
option.buyExerciseFee
number
کارمزد اعمال خریدنرخ کارمزد اعمال خرید
option.writeExerciseFee
number
کارمزد اعمال فروشنرخ کارمزد اعمال فروش (صندوق: 0.0005، سهام: 0.0055)

ستون محاسباتی

کارت شناسایی قرارداد

نماد، نوع call/put، قیمت اعمال، روزهای باقی‌مانده تا سررسید و وضعیت ITM/ATM/OTM — پرکاربردترین فیلدهای option در یک خروجی ترکیبی.

JavaScript
let typeLabel = option.type == 'call' ? 'کال' : 'پوت';
let stateColor =
  option.state == 'ITM' ? '#16a34a' :
  option.state == 'ATM' ? '#2563eb' : '#6b7280';
return style(option.namad, '#1d4ed8', '', option.name) +
       ' | ' +
       style(typeLabel, option.type == 'call' ? '#16a34a' : '#dc2626', '', 'نوع') +
       ' | ' +
       style(commaSeparator(option.strike), '', '', 'اعمال') +
       ' | ' +
       style(option.daysUntilMaturity + ' روز', '#6b7280', '', 'تا سررسید') +
       ' | ' +
       style(option.state, stateColor, '', 'وضعیت');

IV قرارداد و HV مرتبط

iv نوسان ضمنی همین قرارداد است؛ ua.hv نوسان تاریخی پایه؛ blackSholesHV قیمت نظری BS با همان HV — مقایسه IV با HV یا قیمت بازار با blackSholesHV برای ارزان/گران بودن.

JavaScript
if (!option.iv) return '';
let ivPct = roundNumber(option.iv * 100, 1);
let hvPct = ua.hv ? roundNumber(ua.hv * 100, 1) : '—';
let bsHv = option.blackSholesHV ? commaSeparator(option.blackSholesHV) : '—';
return style('IV ' + ivPct + '%', option.iv > 0.5 ? '#dc2626' : '#16a34a', '', 'ضمنی') +
       ' | ' +
       style('HV ' + hvPct + '%', '#6b7280', '', 'تاریخی پایه') +
       ' | ' +
       style('BS(HV) ' + bsHv, '#6b7280', '', 'قیمت نظری با HV');

قیمت نظری BS با HV (blackSholesHV)

option.blackSholesHV قیمت بلک‌شولز قرارداد با نوسان تاریخی پایه (ua.hv) است — از قبل محاسبه شده و نیازی به calcBS ندارد. برای مقایسه پرمیوم بازار با قیمت منصفانه تاریخی پرکاربرد است.

JavaScript
if (!option.blackSholesHV) return '';
let ratio = roundNumber(option.ti.lastPrice / option.blackSholesHV, 2);
let color = ratio < 1 ? '#16a34a' : ratio > 1 ? '#dc2626' : '#6b7280';
return '(' + style(ratio, color, '', 'نسبت به BS') + ')' +
       style(commaSeparator(option.blackSholesHV), '', '', 'قیمت نظری BS(HV)');

موقعیت باز و تغییر روزانه

openInterest تعداد کل موقعیت‌های باز را نشان می‌دهد؛ openInterestPC درصد تغییر نسبت به دیروز — برای پیدا کردن قراردادهای «داغ».

JavaScript
if (!option.openInterest) return '';
let oiChg = option.openInterestPC;
let chgColor = oiChg > 5 ? '#16a34a' : oiChg < -5 ? '#dc2626' : '#6b7280';
return style(rnwc(option.openInterest), '', '', 'موقعیت باز') +
       ' | ' +
       style(roundNumber(oiChg, 1) + '%', chgColor, '', 'تغییر OI');

مارجین فروش (وجه تضمین)

requiredMargin و minimumMargin برای فروشنده اختیار — معمولاً در استراتژی‌های فروش call/put یا اسپرد نمایش داده می‌شود.

JavaScript
if (!option.requiredMargin) return '';
return style(
  'مارجین ' + rnwc(option.requiredMargin),
  '#ea580c',
  '',
  'حداقل: ' + rnwc(option.minimumMargin)
);

فاصله استرایک از پایه (درصد)

اختلاف ریالی و درصد فاصله option.strike با آخرین قیمت دارایی پایه را کنار هم نمایش می‌دهد.

JavaScript
if (!ua.ti.lastPrice || !option.strike) return '';
let difference = option.strike - ua.ti.lastPrice;
let pct = calcRateChange(ua.ti.lastPrice, option.strike, 1);
return style(commaSeparator(difference), '', '', 'اختلاف قیمت') +
       ' | ' +
       style(pct + '%', '', '', 'فاصله اعمال از آخرین ' + ua.namad);

وضعیت زنجیره و درصد پرشدن سقف

دو فیلد ساده برای سقف زنجیره: chainOpen وضعیت باز/غیرباز و chainFill درصد پرشدن سقف (می‌تواند بیشتر از ۱۰۰ باشد).

JavaScript
let status = option.chainOpen ? 'باز' : 'بسته/محدود';
let color = option.chainOpen ? '#16a34a' : '#dc2626';
return style(status, color, '', 'وضعیت زنجیره') +
       ' | ' +
       style(roundNumber(option.chainFill, 0) + '%', '#ea580c', '', 'درصد پرشدن سقف');

فیلتر

ارزان‌تر از BS(HV)

قراردادهایی که آخرین پرمیومشان از قیمت نظری بلک‌شولز با HV پایه کمتر است (نسبت زیر ۱).

JavaScript
option.blackSholesHV > 0 && option.ti.lastPrice > 0 && option.ti.lastPrice < option.blackSholesHV

کال‌های در سود (ITM)

فیلتر ساده روی نوع و وضعیت قرارداد — بدون نیاز به ti.

JavaScript
option.type == "call" && option.state == "ITM"

سررسید ۷ تا ۴۵ روز

daysUntilMaturity بازه زمانی را مشخص می‌کند؛ معمولاً با شرط حجم (ti) ترکیب می‌شود تا قراردادهای مرده حذف شوند.

JavaScript
return option.daysUntilMaturity >= 7
  && option.daysUntilMaturity <= 45
  && option.ti.volume > 0;

افزایش موقعیت باز

قراردادی که OI معنادار دارد و امروز رشد قابل‌توجه موقعیت باز داشته (بیش از ۵٪).

JavaScript
option.openInterest > 500 && option.openInterestPC > 5

فقط زنجیره‌های غیرباز

اگر زنجیره سقف‌خورده، بسته یا در انتظار بازگشایی باشد chainOpen برابر false می‌شود.

JavaScript
!option.chainOpen

زنجیره‌های نزدیک سقف

قراردادهایی که درصد پرشدن سقف زنجیره آن‌ها از یک حد مشخص بیشتر است (مثلا ۸۵٪).

JavaScript
option.chainFill >= 85

ریسک سقف: بسته یا بسیار پر

ترکیب وضعیت و درصد: یا زنجیره غیرباز باشد یا درصد پرشدن خیلی بالا باشد.

JavaScript
!option.chainOpen || option.chainFill >= 95

IV ضمنی بالا

iv به‌صورت عدد اعشاری (۰ تا ۱) است؛ ۰.۵ یعنی ۵۰٪. برای پیدا کردن پریمیوم‌های پرنوسان.

JavaScript
option.iv > 0.5 && option.daysUntilMaturity > 3

پوت نزدیک سررسید در ATM

ترکیب type، state و روزهای باقی‌مانده — مثلاً برای استراتژی‌های کوتاه‌مدت روی پوت.

JavaScript
return option.type == "put"
  && option.state == "ATM"
  && option.daysUntilMaturity <= 14
  && option.daysUntilMaturity >= 1;

بدون معامله اما عرضه در صف

فیلد option.ti برای صف؛ خود option برای شناسایی قراردادهایی که امروز معامله نشده‌اند ولی سفارش فروش دارند.

JavaScript
option.ti.volume == 0 && option.ti.sell1Count > 0

فیلدهای ua (نماد پایه)

فیلدهای نماد پایه — دسترسی با ua.fieldName.

فیلدنوعتوضیح و جزئیات
ua.namad
string
نماد دارایی پایهکد نماد سهم پایه (مثال: وبهمن)
ua.name
string
نام دارایی پایهنام کامل سهم پایه
ua.code
string
کد دارایی پایهکد داخلی سهم پایه
ua.hv
number
نوسان تاریخی (HV)Historical Volatility — نوسان‌پذیری تاریخی سهم پایه (0 تا 1)
ua.ivRank
number
IV Rank (رتبه IV)رتبه نوسان‌پذیری ضمنی نسبت به یک سال گذشته — ua.ivRank، مقیاس ۰ تا ۱۰۰؛ null اگر تاریخچه کافی نباشد
ua.ivPercentile
number
IV Percentile (درصد IV)درصد روزهایی که WIV کمتر از مقدار فعلی بوده — ua.ivPercentile، مقیاس ۰ تا ۱۰۰؛ null اگر تاریخچه کافی نباشد
ua.isEtf
boolean
آیا صندوق استtrue اگر دارایی پایه صندوق (ETF) باشد، در غیر این صورت false
ua.volumeAvg
number
میانگین حجم پایهمیانگین حجم معاملات روزانه سهم پایه
ua.buyFee
number
کارمزد خرید پایهنرخ کارمزد خرید دارایی پایه بر اساس بازار و نوع
ua.sellFee
number
کارمزد فروش پایهنرخ کارمزد فروش دارایی پایه بر اساس بازار و نوع

برای قیمت و حجم روز، از ua.ti استفاده کنید؛ فیلدهای hv، ivRank، ivPercentile و isEtf مستقیماً روی آبجکت پایه هستند.

ستون محاسباتی

خلاصه پایه: نماد، قیمت، HV

ترکیب فیلدهای ua و ua.ti در یک خروجی HTML: نماد پایه، آخرین قیمت معامله و نوسان تاریخی (HV) با رنگ شرطی.

JavaScript
if (!ua.ti.lastPrice) return '';
let hvPct = roundNumber(ua.hv * 100, 1);
return style(ua.namad, '#2563eb', '', 'نماد پایه') +
       ' | ' +
       style(commaSeparator(ua.ti.lastPrice), '', '', 'آخرین') +
       ' | ' +
       style(hvPct + '%', ua.hv >= 0.4 ? '#dc2626' : '#16a34a', '', 'HV');

IV Rank / IV Percentile پایه

فیلدهای ua.ivRank و ua.ivPercentile فقط روی نماد پایه تعریف شده‌اند؛ برای دیدن «ارزان/گران بودن» نوسان پایه نسبت به یک سال گذشته. اگر null باشد تاریخچه کافی نیست.

JavaScript
if (ua.ivRank == null) return '';
return style(
  'IVR ' + roundNumber(ua.ivRank, 0),
  ua.ivRank >= 70 ? '#dc2626' : ua.ivRank <= 30 ? '#16a34a' : '#6b7280',
  '',
  'IV Rank: ' + roundNumber(ua.ivRank, 0) + ' | IV Percentile: ' + roundNumber(ua.ivPercentile, 0)
);

پریمیوم نسبت به آخرین پایه

مقایسه قیمت اختیار (ti قرارداد) با آخرین قیمت پایه (ua.ti) — پایه‌ای برای کاورکال و بازده نسبی.

JavaScript
let premium = option.ti.lastPrice;
let base    = ua.ti.lastPrice;
if (!premium || !base) return '';
let pct = roundNumber((premium / base) * 100, 2);
return style(pct + '%', '#ea580c', '', 'پریمیوم ÷ پایه');

فیلتر

پایه با IV Rank بالا

فیلتر روی ua.ivRank — مثلاً نمادهایی که نوسان ضمنی‌شان نسبت به یک سال گذشته در رتبه بالاست (≥ ۵۰).

JavaScript
return ua.ivRank != null && ua.ivRank >= 50;

پایه با IV Percentile پایین

فیلتر روی ua.ivPercentile — مثلاً نمادهایی که WIV امروز پایین‌تر از اکثر روزهای سال گذشته است.

JavaScript
return ua.ivPercentile != null && ua.ivPercentile <= 30;

فقط پایه‌های صندوق (ETF)

فیلتر ساده روی ua.isEtf — مثلاً برای زنجیره‌های صندوقی.

JavaScript
ua.isEtf

پایه پرحجم و فعال امروز

ترکیب حجم و ارزش معاملات پایه (ua.ti) با میانگین حجم تاریخی (ua.volumeAvg).

JavaScript
return ua.ti.volume > 0
  && ua.ti.tValue > 50000000000
  && ua.volumeAvg > 0
  && ua.ti.volume >= ua.volumeAvg * 0.4;

پایه پرنوسان با قیمت در دامنه روز

HV بالا + آخرین قیمت پایه داخل دامنه مجاز روز — مناسب استراتژی‌های وابسته به نوسان.

JavaScript
return ua.hv >= 0.3
  && ua.ti.lastPrice >= ua.ti.dailyPriceLow
  && ua.ti.lastPrice <= ua.ti.dailyPriceHigh
  && ua.ti.volume > 0;

فیلدهای ti (اطلاعات معاملاتی)

مشترک بین option.ti و ua.ti — قیمت، حجم، دفتر سفارش (۵ سطح) و آمار حقیقی/حقوقی.

فیلدنوعتوضیح و جزئیات
option.ti.lastPrice
number
آخرین قیمتآخرین قیمت معامله‌شده
option.ti.lastPC
number
تغییر آخرین قیمت (%)درصد تغییر آخرین قیمت نسبت به دیروز
option.ti.endPrice
number
قیمت پایانیقیمت پایانی (تعدیل‌شده)
option.ti.endPC
number
تغییر قیمت پایانی (%)درصد تغییر قیمت پایانی
option.ti.volume
number
حجمحجم معاملات امروز
option.ti.tValue
number
ارزش معاملاتارزش ریالی کل معاملات امروز
option.ti.lastDayPrice
number
قیمت پایانی روز قبلقیمت پایانی روز معاملاتی قبل — مبنای محاسبه درصد تغییر
option.ti.lastDayLastPrice
number
آخرین قیمت روز قبلآخرین قیمت معامله‌شده در روز معاملاتی قبل
option.ti.lastDayVolume
number
حجم روز قبلحجم معاملات روز معاملاتی قبل
option.ti.lastDayTValue
number
ارزش معاملات روز قبلارزش ریالی معاملات روز معاملاتی قبل
option.ti.transactions
number
تعداد معاملاتتعداد دفعات معامله امروز
option.ti.lastTransaction
string
زمان آخرین معاملهزمان آخرین معامله؛ وقتی معامله‌ای نبوده null است
option.ti.min
number
کمترین قیمتکمترین قیمت معامله‌شده امروز
option.ti.max
number
بیشترین قیمتبیشترین قیمت معامله‌شده امروز
option.ti.dailyPriceLow
number
حد پایین دامنه نوسانپایین‌ترین حد مجاز قیمت روزانه
option.ti.dailyPriceHigh
number
حد بالای دامنه نوسانبالاترین حد مجاز قیمت روزانه
option.ti.buy1Price
number
قیمت خرید ۱بهترین قیمت خرید (ردیف اول تقاضا)
option.ti.buy2Price
number
قیمت خرید ۲دومین قیمت خرید
option.ti.buy3Price
number
قیمت خرید ۳سومین قیمت خرید
option.ti.buy4Price
number
قیمت خرید ۴چهارمین قیمت خرید
option.ti.buy5Price
number
قیمت خرید ۵پنجمین قیمت خرید
option.ti.buy1Volume
number
حجم خرید ۱حجم بهترین سفارش خرید
option.ti.buy2Volume
number
حجم خرید ۲حجم دومین سفارش خرید
option.ti.buy3Volume
number
حجم خرید ۳حجم سومین سفارش خرید
option.ti.buy4Volume
number
حجم خرید ۴حجم چهارمین سفارش خرید
option.ti.buy5Volume
number
حجم خرید ۵حجم پنجمین سفارش خرید
option.ti.buy1Count
number
تعداد سفارش خرید ۱تعداد سفارش‌های تجمیع‌شده در بهترین ردیف تقاضا
option.ti.buy2Count
number
تعداد سفارش خرید ۲تعداد سفارش‌های دومین ردیف تقاضا
option.ti.buy3Count
number
تعداد سفارش خرید ۳تعداد سفارش‌های سومین ردیف تقاضا
option.ti.buy4Count
number
تعداد سفارش خرید ۴تعداد سفارش‌های چهارمین ردیف تقاضا
option.ti.buy5Count
number
تعداد سفارش خرید ۵تعداد سفارش‌های پنجمین ردیف تقاضا
option.ti.sell1Price
number
قیمت فروش ۱بهترین قیمت فروش (ردیف اول عرضه)
option.ti.sell2Price
number
قیمت فروش ۲دومین قیمت فروش
option.ti.sell3Price
number
قیمت فروش ۳سومین قیمت فروش
option.ti.sell4Price
number
قیمت فروش ۴چهارمین قیمت فروش
option.ti.sell5Price
number
قیمت فروش ۵پنجمین قیمت فروش
option.ti.sell1Volume
number
حجم فروش ۱حجم بهترین سفارش فروش
option.ti.sell2Volume
number
حجم فروش ۲حجم دومین سفارش فروش
option.ti.sell3Volume
number
حجم فروش ۳حجم سومین سفارش فروش
option.ti.sell4Volume
number
حجم فروش ۴حجم چهارمین سفارش فروش
option.ti.sell5Volume
number
حجم فروش ۵حجم پنجمین سفارش فروش
option.ti.sell1Count
number
تعداد سفارش فروش ۱تعداد سفارش‌های تجمیع‌شده در بهترین ردیف عرضه
option.ti.sell2Count
number
تعداد سفارش فروش ۲تعداد سفارش‌های دومین ردیف عرضه
option.ti.sell3Count
number
تعداد سفارش فروش ۳تعداد سفارش‌های سومین ردیف عرضه
option.ti.sell4Count
number
تعداد سفارش فروش ۴تعداد سفارش‌های چهارمین ردیف عرضه
option.ti.sell5Count
number
تعداد سفارش فروش ۵تعداد سفارش‌های پنجمین ردیف عرضه
option.ti.realBuyCount
number
تعداد خریدار حقیقیتعداد معاملات خرید حقیقی امروز
option.ti.coBuyCount
number
تعداد خریدار حقوقیتعداد معاملات خرید حقوقی امروز
option.ti.realSellCount
number
تعداد فروشنده حقیقیتعداد معاملات فروش حقیقی امروز
option.ti.coSellCount
number
تعداد فروشنده حقوقیتعداد معاملات فروش حقوقی امروز
option.ti.realBuyVolume
number
حجم خرید حقیقیحجم خرید حقیقی‌ها امروز
option.ti.coBuyVolume
number
حجم خرید حقوقیحجم خرید حقوقی‌ها امروز
option.ti.realSellVolume
number
حجم فروش حقیقیحجم فروش حقیقی‌ها امروز
option.ti.coSellVolume
number
حجم فروش حقوقیحجم فروش حقوقی‌ها امروز

همان فیلدها برای ua.ti هم معتبر است — مثلاً مقایسه تغییر درصدی اختیار و پایه با option.ti.lastPC و ua.ti.lastPC.

ستون محاسباتی

سرخط تقاضا و عرضه + اسپرد

سه فیلد ti پرکاربرد در دفتر سفارش: buy1Price، sell1Price و اسپرد محاسباتی با askBidSpread.

JavaScript
if (!option.ti.buy1Price || !option.ti.sell1Price) return '';
return style(commaSeparator(option.ti.buy1Price), '#16a34a', '', 'تقاضا') +
       ' | ' +
       style(commaSeparator(option.ti.sell1Price), '#dc2626', '', 'عرضه') +
       ' | ' +
       style(askBidSpread() + '%', askBidSpread() > 25 ? '#ea580c' : '#6b7280', '', 'اسپرد');

فشار حقیقی و حقوقی

حجم خالص خرید/فروش حقیقی و حقوقی را کنار هم ببینید — برای تشخیص ورود پول حقیقی یا حقوقی.

JavaScript
if (!option.ti.volume) return '';
let netReal = option.ti.realBuyVolume - option.ti.realSellVolume;
let netCo   = option.ti.coBuyVolume - option.ti.coSellVolume;
return style('حقیقی ' + rnwc(netReal), netReal > 0 ? '#16a34a' : '#dc2626', '', 'خالص حجم حقیقی') +
       ' | ' +
       style('حقوقی ' + rnwc(netCo), netCo > 0 ? '#2563eb' : '#ea580c', '', 'خالص حجم حقوقی');

تغییر درصدی اختیار و پایه

lastPC روی option.ti و ua.ti — مقایسه جهت حرکت قرارداد و نماد پایه در یک ستون.

JavaScript
if (option.ti.lastPC == null || ua.ti.lastPC == null) return '';
return style(
  roundNumber(option.ti.lastPC, 1) + '%',
  option.ti.lastPC >= 0 ? '#16a34a' : '#dc2626',
  '',
  'تغییر اختیار'
) + ' | ' + style(
  roundNumber(ua.ti.lastPC, 1) + '%',
  ua.ti.lastPC >= 0 ? '#16a34a' : '#dc2626',
  '',
  'تغییر پایه'
);

درصد دامنه نوسان (سقف / کف)

با `lastDayPrice` (قیمت پایانی دیروز) و `dailyPriceHigh` / `dailyPriceLow` (حد مجاز بورس) درصد رشد و افت مجاز روز را مستقیم از فیلدها محاسبه می‌کند. فقط روی `ua.ti` معتبر است؛ روی `option.ti` این فیلدها حد مطلق ابزار را نگه می‌دارند نه دامنه نوسان. برای همین کار `uaDailyRange()` هم هست که این بررسی را خودش انجام می‌دهد.

JavaScript
const base = ua.ti.lastDayPrice;
const low = ua.ti.dailyPriceLow;
const high = ua.ti.dailyPriceHigh;
if (!base || !low || !high) return '';
const down = roundNumber(((base - low) / base) * 100, 1);
const up = roundNumber(((high - base) / base) * 100, 1);
return style(`+${up}%`, '#16a34a') + ' / ' + style(`-${down}%`, '#dc2626');

عمق ۳ سطح اول دفتر

جمع حجم buy1–3 و sell1–3 برای نسبت تقاضا به عرضه در عمق نزدیک.

JavaScript
let bid = option.ti.buy1Volume + option.ti.buy2Volume + option.ti.buy3Volume;
let ask = option.ti.sell1Volume + option.ti.sell2Volume + option.ti.sell3Volume;
if (!bid && !ask) return '';
let ratio = roundNumber(bid / (ask || 1), 2);
return style('تقاضا/عرضه ' + ratio, ratio > 1.2 ? '#16a34a' : ratio < 0.8 ? '#dc2626' : '#6b7280', '', 'حجم ۳ سطح اول');

فیلتر

قرارداد نقدشونده

حجم معاملات، وجود سرخط و اسپرد معقول — الگوی رایج قبل از هر استراتژی معاملاتی.

JavaScript
return option.ti.volume > 0
  && option.ti.buy1Price > 0
  && option.ti.sell1Price > 0
  && askBidSpread() <= 25;

فشار خرید حقیقی

حجم خرید حقیقی از فروش حقیقی جلوتر است و در سرخط تقاضا سفارش فعال وجود دارد.

JavaScript
return option.ti.volume > 0
  && option.ti.realBuyVolume > option.ti.realSellVolume * 1.5
  && option.ti.buy1Count > 0;

اختیار و پایه هم‌جهت مثبت

هر دو ti (قرارداد و پایه) امروز مثبت‌اند و ارزش معاملات اختیار از حداقل برابر است.

JavaScript
return option.ti.lastPC > 0
  && ua.ti.lastPC > 0
  && option.ti.tValue > 1000000000;

جهش نقدشوندگی نسبت به روز قبل

وقتی حجم/ارزش معاملات امروز نسبت به روز معاملاتی قبل رشد معنادار داشته باشد، نمادهای فعال‌تر جدا می‌شوند.

JavaScript
return option.ti.lastDayVolume != null
  && option.ti.lastDayTValue != null
  && option.ti.lastDayVolume > 0
  && option.ti.lastDayTValue > 0
  && option.ti.volume >= option.ti.lastDayVolume * 1.5
  && option.ti.tValue >= option.ti.lastDayTValue * 1.5;

فیلدهای «ستون محاسباتی» استراتژی

سه آبجکت اول این فهرست فقط در ستون‌های محاسباتیِ جدول موقعیت‌های استراتژی در دسترس‌اند. در دیده‌بان position و strategy برابر null هستند و positions آرایهٔ خالی است. بقیهٔ فیلدها و توابع (option، ua و توابع کمکی) در هر دو جا یکسان کار می‌کنند و فهرست کاملشان بالاتر در همین صفحه آمده است.

positionسطر جاری جدول موقعیت‌ها
position.namadنماد همین سطر
position.typeنوع سطر: 'call' | 'put' | 'ua'
position.buyاگر موقعیت خرید باشد true و اگر فروش باشد false
position.sideهمان buy به شکل 'buy' | 'sell'
position.countتعداد قرارداد این سطر
position.priceقیمت ورود (پرمیوم) هر واحد
position.strikeقیمت اعمال (برای نماد پایه صفر)
position.daysUntilMaturityروز تقویمی مانده تا سررسید همین لگ
position.tradeDaysUntilMaturityروز معاملاتی مانده تا سررسید؛ اگر زنجیره در دسترس نباشد null
position.ivنوسان ضمنی همین سطر بر حسب درصد (مثلاً 32.5)
position.deltaدلتای این لگ (نماد پایه: 1)
position.marginمبلغ وجه تضمین این سطر
position.blockاگر تیک وجه تضمین (بلوکه) روشن باشد true
position.activeاگر سطر در محاسبات نمودار فعال باشد true
position.offsetPriceقیمت زندهٔ ستون آفست
position.netPriceخالص همین سطر (ستون «خالص»)
position.offsetPLسود/زیان آفست این سطر: (آفست − قیمت ورود) × تعداد × اندازه
position.sizeاندازهٔ قرارداد این لگ
position.idشناسهٔ داخلی سطر
strategyاطلاعات کل استراتژی (برای همهٔ سطرها یکسان)
strategy.nameنام استراتژی
strategy.uaNamadنماد پایهٔ استراتژی
strategy.uaPriceقیمت نماد پایه در سازنده
strategy.sizeاندازهٔ قرارداد
strategy.interestRateنرخ بهرهٔ بدون ریسک (درصد)
strategy.tradingFeeوضعیت تیک «کارمزد معامله»
strategy.exerciseFeeحالت کارمزد اعمال: 'none' | 'all' | 'itm-only'
strategy.maxDaysUntilMaturityبیشترین روز مانده تا سررسید بین لگ‌های فعال
strategy.positionCountتعداد سطرهای فعال
strategy.netTotalخالص کل استراتژی (فوتر جدول)
strategy.offsetTotalآفست ریالی کل استراتژی
strategy.offsetPercentدرصد آفست کل؛ اگر قابل محاسبه نباشد null
positionsآرایهٔ همهٔ سطرها با همان فیلدهای position — برای فرمول‌های تجمیعی؛ اعضای این آرایه فقط فیلدهای سازنده را دارند و ti ندارند، پس برای قیمت زندهٔ یک سطر دیگر از getOptionByNamad(p.namad) یا getUaByNamad(p.namad) استفاده کنید.
positions.lengthتعداد کل سطرها (شامل سطرهای غیرفعال)
positions.filter(p => p.active)فقط سطرهای فعال
positions.reduce((s, p) => s + p.delta * p.count, 0)نمونه: مجموع دلتای وزنی استراتژی

توابع جستجو و زنجیره

برای دسترسی به قراردادها یا پایه‌هایی که در سطر جاری نیستند، از این توابع استفاده کنید.

توابع آماده فرمول‌نویسی

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

دسته توابع

محاسبات اصلی قرارداد اختیار

11 تابع

ارزش ذاتی/زمانی، سر به سر، اهرم، وضعیت ITM/ATM/OTM، احتمال سود و قیمت مرجع

دسته توابع

تبدیل بازده زمانی

2 تابع

تبدیل سود دوره‌ای به بازده ماهانه و بازده موثر سالانه

دسته توابع

قالب‌بندی و نمایش عدد

8 تابع

گرد کردن، جداکننده هزارگان، خلاصه K/M/B و تبدیل عدد به حروف فارسی

دسته توابع

خروجی ستون

7 تابع

رنگ‌بندی HTML، لینک جزئیات، نمودار قیمت و چیدمان چند خروجی در یک ستون

نمودار سود/زیان و ساخت استراتژی

آبجکت pos برای ساخت استراتژی و نمایش نمودار سود و زیان در ستون دیده‌بان است. جریان کار: ابتدا با pos.add پاها را تعریف کنید، سپس با pos.build دکمه نمودار را در خروجی ستون بسازید. با کلیک روی دکمه، پنل استراتژی باز می‌شود و همان پاها روی نمودار سود/زیان بارگذاری می‌شوند.

خلاصه سه متد

  • pos.add(...) — افزودن پای خرید/فروش
  • pos.build(...) — نهایی‌سازی و ساخت دکمه نمودار (خروجی HTML)
  • pos.clear() — پاک کردن لیست پاها بدون ساخت نمودار

تابع عمومی و Scope فرمول‌ها

آیتم‌هایی که با نوع «تابع» ذخیره می‌شوند، مثل ستون و فیلتر ذخیره می‌شوند اما در جدول نمایش داده نمی‌شوند. موتور فرمول آن‌ها را قبل از اجرای همه ستون‌ها و فیلترها داخل scope همان worker تزریق می‌کند؛ بنابراین می‌توانید محاسبات تکراری را یک‌بار تعریف کنید و در چند فرمول استفاده کنید.

ساختار تابع عمومی

تابع عمومی باید با function تعریف شود و خودش مقدار را با return برگرداند.

تعریف تابع

JavaScript
function myFunction(a, b) {
  return a * b;
}

استفاده در ستون یا فیلتر

JavaScript
myFunction(4, 3)
مثال: یک محاسبه، دو کاربرد

یک تابع برای اختلاف قیمت تئوری و قیمت عرضه تعریف کنید، سپس همان تابع را هم در ستون و هم در فیلتر استفاده کنید — محاسبه یک‌جا می‌ماند و با تغییر آن، هر دو فرمول به‌روز می‌شوند.

نوع: تابع

JavaScript
function bsDiff() {
  return calcRateChange(calcBS().bs, option.ti.sell1Price, 1);
}

نوع: ستون

JavaScript
style(bsDiff() + '%', Math.abs(bsDiff()) <= 10 ? 'green' : 'red')

نوع: فیلتر

JavaScript
bsDiff() >= -10 && bsDiff() <= 10

بلک‌شولز و یونانی‌ها — calcBS

تابع calcBS قیمت تئوری بلک‌شولز و یونانی‌های قرارداد را محاسبه می‌کند. خروجی شامل bs, delta, gamma, vega, theta, rho و iv است. بدون آرگومان برای قرارداد جاری اجرا می‌شود، با نام قرارداد روی همان قرارداد محاسبه می‌کند، و برای سناریوهای دلخواه آبجکت overrides می‌گیرد. فیلد option.blackSholesHV همان bs با HV پایه است که از قبل روی قرارداد ست شده — برای نسبت پرمیوم به قیمت نظری سریع‌تر از صدا زدن calcBS است.

نکته کاربردی: برای دلتا یا IV از calcBS().delta و calcBS().iv استفاده کنید. برای قیمت نظری با HV پایه می‌توانید مستقیم option.blackSholesHV را بخوانید (معادل calcBS({ volatility: ua.hv }).bs).

راهنمای استفاده (Syntax)
Syntaxتوضیحمثال کوتاه
calcBS()محاسبه بلک‌شولز برای قرارداد جاری همان ردیف جدول.calcBS().delta
calcBS(namad)محاسبه برای یک قرارداد مشخص؛ نام قرارداد می‌تواند ثابت یا خروجی توابعی مثل optionSE باشد.calcBS(next.namad).iv
calcBS(overrides)محاسبه با مقادیر دلخواه و تغییر یک یا چند پارامتر. پارامترهای مشخص‌نشده از قرارداد جاری گرفته می‌شوند.calcBS({ days: 10 }).bs
option.blackSholesHVقیمت BS از پیش‌محاسبه‌شده با HV پایه — بدون فراخوانی calcBS.option.ti.lastPrice / option.blackSholesHV

خروجی تابع

خروجی همیشه یک آبجکت است و می‌توانید فیلدهای آن را مستقیم بخوانید:

bs, delta, gamma, vega, theta, rho, iv

پارامترهای overrides

نام فیلدهای overrides با camelCase نوشته می‌شوند:

type, uaPrice, strike, days, riskFree, volatility, premium

ساختار کامل آبجکت overrides

JavaScript
let bg = calcBS({
  type: 'call',        // 'call' یا 'put'
  uaPrice: 100,        // قیمت دارایی پایه
  strike: 105,         // قیمت اعمال
  days: 30,            // روز تا سررسید
  riskFree: 0.3,       // نرخ بدون ریسک: 0.3 یعنی ۳۰٪
  volatility: 0.3,     // نوسان‌پذیری: 0.3 یعنی ۳۰٪
  premium: 40          // قیمت اختیار برای محاسبه IV
});
return bg.bs;
حالت‌های اصلی: قرارداد جاری یا نام قرارداد

قرارداد جاری — خروجی: متن شامل BS | Delta | IV

تابع را بدون ورودی صدا بزنید؛ خروجی را در متغیر bg بگیرید و فیلدهای bs، delta و iv را نمایش دهید.

JavaScript
let bg = calcBS();
return 'BS: ' + bg.bs +
       ' | Delta: ' + bg.delta +
       ' | IV: ' + bg.iv;

قرارداد مشخص با نام — خروجی: متن Vega | Theta

نام قرارداد را به calcBS بدهید تا محاسبه روی آن انجام شود، نه روی سطر جاری.

JavaScript
let bg = calcBS('ضخود9015');
return 'Vega: ' + bg.vega + ' | Theta: ' + bg.theta;

داینامیک با optionSE — خروجی: متن IV | BS یا null

قرارداد استرایک بالاتر را با optionSE پیدا کنید، سپس calcBS روی نام آن.

JavaScript
let next = optionSE(1);
if (!next) return null;
let bg = calcBS(next.namad);
return 'IV: ' + bg.iv + ' | BS: ' + bg.bs;
محاسبه با مقادیر دلخواه: calcBS(overrides)

با قیمت پایه فرضی — خروجی: عدد bs

فقط uaPrice را override کنید؛ بقیه پارامترها از قرارداد جاری.

JavaScript
let bg = calcBS({ uaPrice: ua.ti.dailyPriceHigh });
return bg.bs;

فیلتر دلتا و IV — خروجی: true/false

premium را از سرخط خرید بگیرید و در فیلتر شرط بگذارید.

JavaScript
let bg = calcBS({ premium: option.ti.buy1Price });
return bg.delta >= 0.4 && bg.delta <= 0.6 && bg.iv >= 0.5;

ماشین حساب کامل — خروجی: عدد bs

همه پارامترها را خودتان می‌دهید — برای سناریو و تست فرضی.

JavaScript
let bg = calcBS({
  type: 'call',
  uaPrice: 100,
  strike: 105,
  days: 30,
  riskFree: 0.3,
  volatility: 0.3,
  premium: 40
});
return bg.bs;

جاوااسکریپت پرکاربرد

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

متغیر — let

از let برای ذخیره مقادیر میانی استفاده کنید.

JavaScript
let debit = option.ti.sell1Price - optionSE(1).ti.buy1Price;
return commaSeparator(debit);

شرط — if / else if / else

برای منطق چندشاخه‌ای.

JavaScript
let iv = calcBS().iv;
if      (iv > 0.8) return style('خیلی بالا', 'red');
else if (iv > 0.5) return style('بالا',      'orange');
else if (iv > 0.3) return style('متوسط',     'blue');
else               return style('کم',        '#888');

شرط کوتاه (Ternary) — ? :

برای انتخاب بین دو مقدار — مناسب برای فرمول تک‌خطی.

JavaScript
option.type == 'call' ? style('Call', 'blue') : style('Put', 'orange')

رشته قالب‌بندی‌شده (Template Literal)

از backtick و ${'{expr}'} برای ترکیب متن ثابت با مقدار محاسباتی استفاده کنید.

JavaScript
`اسپرد: ${askBidSpread()}% | اهرم: ${roundNumber(leverage(),1)}x`

null‌چک — بررسی با if

بسیاری از فیلدها می‌توانند null یا 0 باشند؛ قبل از محاسبه بررسی کنید.

JavaScript
if (!option.ti.lastPrice) return '';
return option.ti.lastPrice * option.size;

null‌چک — ?? (nullish coalescing)

JavaScript
(option.iv ?? 0) * 100 + '%'
توابع ریاضی استاندارد — Math
تابعتوضیح و مثال خروجی
Math.abs(x)قدر مطلق (مثبت کردن عدد) ← Math.abs(-5) برابر 5
Math.round(x)گرد کردن به نزدیک‌ترین عدد صحیح ← Math.round(4.7) برابر 5
Math.floor(x)گرد کردن به پایین ← Math.floor(4.9) برابر 4
Math.ceil(x)گرد کردن به بالا ← Math.ceil(4.1) برابر 5
Math.max(a, b, ...)پیدا کردن بزرگ‌ترین عدد بین ورودی‌ها
Math.min(a, b, ...)پیدا کردن کوچک‌ترین عدد بین ورودی‌ها
Math.pow(x, y)توان (x به توان y) ← Math.pow(2, 3) برابر 8
Math.sqrt(x)جذر (ریشه دوم) ← Math.sqrt(16) برابر 4

متد اعشار — toFixed

تعداد رقم اعشار را تنظیم می‌کند — خروجی رشته است.

JavaScript
let n = 3.14159;
return n.toFixed(2);  // '3.14'

شرط چندشاخه — switch

وقتی بر اساس یک مقدار ثابت چند خروجی مختلف دارید، خواناتر از ifهای پشت‌سرهم است.

JavaScript
switch (option.state) {
  case 'ITM':
    return style('در سود', 'green');
  case 'ATM':
    return style('سر به سر', 'orange');
  default:
    return style('خارج از سود', 'red');
}

عملگرهای مقایسه‌ای و منطقی

در فیلتر، فقط سطرهایی که حاصل عبارت true است نمایش داده می‌شوند. در ستون می‌توانند در شرط‌ها استفاده شوند.

عملگرمعنیمثال
==مساوی

مقایسه مقدار دو عبارت (نه type)

option.namad == 'ضخود2018'
!=نامساوی

نابرابری مقدار

ua.namad != 'خودرو'
>بزرگ‌تر

مقایسه عددی

option.openInterest > 0
>=بزرگ‌تر یا مساوی

حداقل مقدار

leverage() >= 4
<کوچک‌تر

کمتر از مقدار

option.daysUntilMaturity < 30
<=کوچک‌تر یا مساوی

حداکثر مقدار

option.daysUntilMaturity <= 7
&&و منطقی

هر دو شرط باید برقرار باشند

ua.namad == 'خساپا' && option.strike < 2000
||یا منطقی

حداقل یک شرط برقرار باشد

ua.namad == 'خساپا' || ua.namad == 'خودرو'
!نفی منطقی

برعکس‌کردن شرط

!option.ti.volume

نکته مهم: == vs ===

از == (دو مساوی) برای مقایسه مقدار استفاده کنید. از === (سه مساوی) وقتی type هم مهم است. در اکثر موارد == کافی است.

مثال‌های کامل و کاربردی

فرمول‌های آماده‌ای که می‌توانید مستقیماً استفاده کنید یا بر اساس آن‌ها فرمول خودتان را بسازید.

درصد سر به سرستونساده

درصد فاصله قیمت سر به سر از قیمت پایه.

JavaScript
calcRateChange(ua.ti.lastPrice, breakeven()) + '%'
درصد دامنه نوسان پایهستونساده

درصد مجاز رشد و افت روزانه نماد پایه نسبت به قیمت پایانی دیروز — سقفش صف خرید و کفش صف فروش می‌سازد. `uaDailyRange()` مبنا (`base`)، کف و سقف مجاز (`low` / `high`) و همان‌ها به درصد (`downPct` / `upPct`) را با هم برمی‌گرداند و اگر دامنه‌ای منتشر نشده باشد `null` می‌دهد؛ برای همین اول باید بررسی شود. خروجی: درصد سقف (+) سبز و درصد کف (−) قرمز.

JavaScript
const r = uaDailyRange();
if (!r) return '';
return style(`+${r.upPct}%`, '#16a34a') + ' / ' + style(`-${r.downPct}%`, '#dc2626');
قیمت اعمال تا سررسید در دسترس است؟فیلترمتوسط

با `uaPriceRange()` بررسی می‌کند نماد پایه اصلاً فرصت دارد تا سررسید به قیمت اعمال برسد یا نه: `high` قیمتی است که با صف خرید پشت سر هم و `low` قیمتی که با صف فروش پشت سر هم قابل دسترس است. بدون آرگومان، روزهای معاملاتی مانده تا سررسید همان قرارداد را می‌گیرد (دامنه نوسان در هر روز معاملاتی یک بار اعمال می‌شود، نه در هر روز تقویمی). قراردادهایی که پایه‌شان حتی در بهترین حالت به استرایک نمی‌رسد کنار گذاشته می‌شوند.

JavaScript
const r = uaPriceRange();
if (!r) return false;
return option.type == 'call'
  ? option.strike <= r.high
  : option.strike >= r.low;
ارزش ذاتی رنگیستونساده

ارزش ذاتی: سبز اگر ITM، خاکستری اگر OTM.

JavaScript
style(roundNumber(intrinsic(), 0), intrinsic() > 0 ? 'green' : '#999')
دلتا رنگیستونساده

دلتا با رنگ‌بندی بر اساس مقدار.

JavaScript
let d = calcBS().delta;
return style(d, d > 0.5 ? '#16a34a' : d > 0.3 ? '#ea580c' : '#dc2626', '', 'delta');
سود سالانه کاورکالستونمتوسط

بازده سالانه فروش call بدون پوشش (کاورکال).

JavaScript
let premium = option.ti.buy1Price;
let base    = ua.ti.lastPrice;
if (!premium || !base) return '';
let pct = (premium / base) * 100;
return roundNumber(ytmProfit(pct, option.daysUntilMaturity), 1) + '%';
اسپرد صعودی (Bull Call)ستونمتوسط

هزینه خرید اسپرد صعودی: خرید call جاری + فروش call یک استرایک بالاتر.

JavaScript
let nextCall = optionSE(1);
if (!nextCall) return '';
let debit   = option.ti.sell1Price - nextCall.ti.buy1Price;
let maxProfit = (nextCall.strike - option.strike) - debit;
return style(commaSeparator(debit), 'orange', '', 'هزینه') + ' | ' +
       style(commaSeparator(maxProfit), 'green', '', 'حداکثر سود');
اختلاف IV و HVستونمتوسط

اختلاف نوسان‌پذیری ضمنی (IV) و تاریخی (HV) به درصد.

JavaScript
let iv = calcBS().iv;
let hv = ua.hv;
if (!iv || !hv) return '';
let diff = roundNumber((iv - hv) * 100, 1);
return style(diff + '%', diff > 0 ? 'red' : 'green', '', 'IV − HV');
نسبت پرمیوم به BS(HV)ستونساده

مقایسه آخرین پرمیوم قرارداد با option.blackSholesHV — زیر ۱ یعنی ارزان‌تر از قیمت نظری با HV پایه.

JavaScript
if (!option.blackSholesHV || !option.ti.lastPrice) return '';
let ratio = roundNumber(option.ti.lastPrice / option.blackSholesHV, 2);
return '(' + ratio + ')' + commaSeparator(option.blackSholesHV);
لینک قرارداد طرف مقابلستونساده

برای هر call، لینک put هم‌استرایک نمایش دهد.

JavaScript
let opp = optionSE(0, 'os');
return opp ? showDetail(opp.namad, 'put') : '';
فیلتر نقدشوندهفیلترساده

قراردادهایی که حجم دارند و اسپرد معقول دارند.

JavaScript
option.ti.volume > 0 && askBidSpread() <= 30
فیلتر ITM + اهرمفیلترساده

قراردادهای ITM با اهرم بالای ۴.

JavaScript
option.state == "ITM" && leverage() >= 4
فیلتر سررسید نزدیکفیلترساده

قراردادهای ۷ تا ۳۰ روزه با حجم.

JavaScript
option.daysUntilMaturity >= 7 && option.daysUntilMaturity <= 30 && option.ti.volume > 0
فیلتر احتمال سود بالافیلترمتوسط

احتمال سود بالای ۶۰٪ بر اساس IV.

JavaScript
let iv = calcBS().iv;
if (!iv) return false;
return probOfProfit(breakeven(), ua.ti.lastPrice, iv, option.daysUntilMaturity) >= 60;

نمونه‌های کاربردی بیشتر

این بخش چند نمونه آماده برای ستون، فیلتر، تابع و استراتژی دارد. در فرمول‌های چندخطی از return استفاده کنید و برای داده‌های اختیاری null-check بگذارید.

راهنمای فرمول‌نویسی آپشن باز
رفتن به دیده‌بان

دیدگاه‌ها و پرسش‌های فرمول‌نویسی

ثبت پرسش/نظر شما

پرسش‌ها و نظرات کاربران

۱۰۶ پیام
محمدصادق جعفری
19 تیر 1405 - 17:42
سلام ممنون از شما ،ببینید من با یک مثال خدمتتون عرض میکنم من فملی را با قیمت 20520میخرم و هم زمان ضملی5028(اعمال14000ریال)با قیمت 7109و ضملی5035(اعمال26000ریال)با قیمت 341ریال میفروشم و سوداین معامله تا سررسید7.12% هست و در همین لحظه فاصله قیمت سهم تاسربه سر با اعمال بیشتر(یعنی ضملی5035)29% و تا سربه سر با اعمال پائین تر(یعنی ضملی5028)37%فاصله داره . من حالا میخام یه فرمول کلی بنویسم که برای هر سهم پایه که آپشن داره در هر سر رسید اون دوتا کالی که با فروشش بیشترین سود(مثلا بالای7%) را میده و قیمت فعلی سهم تا سربه سر بالا 30% و تا سربه سر پائین40% فاصله را داره برام پیدا کنه (اگر امکان ارسال تصویر بود براتون میفرستادم ولی توضیح گویاست به نظرم)
پشتیبانیپاسخ
21 تیر 1405 - 13:04
فرمول ترکیبی ستون+فیلتر (نوع: ستون، فیلتر با FILTER_RESULT):
const SETTING_UA_PRICE='last';
const FILTER_MIN_RETURN=7;
const FILTER_MAX_UPPER_DIST=30;
const FILTER_MAX_LOWER_DIST=40;
const FILTER_SHOW=false;
const FILTER_RESULT=false;
const SORT_BY='returnPct';
const SORT_DIR='desc';
let items=[], isFilterMatched=false;
if(option.type!=='call'){if(FILTER_RESULT)return false;return '';}
let sp=SETTING_UA_PRICE==='ask'?ua.ti.sell1Price:SETTING_UA_PRICE==='end'?ua.ti.endPrice:ua.ti.lastPrice;
let up=ua.ti.lastPrice, pl=option.ti.buy1Price;
if(!sp||!up||!pl){if(FILTER_RESULT)return false;return '';}
let list=optionSE();
for(let i=0;i<list.length;i++){
 let h=list[i]; if(h.strike<=option.strike)continue;
 let ph=h.ti.buy1Price; if(!ph)continue;
 let nc=sp-pl-ph; if(nc<=0)continue;
 let p=pl+ph-Math.max(0,up-option.strike)-Math.max(0,up-h.strike);
 let r=(p/nc)*100, ud=((h.strike+ph-up)/up)*100, ld=((up-nc)/up)*100;
 if(r<FILTER_MIN_RETURN||ud>FILTER_MAX_UPPER_DIST||ld>FILTER_MAX_LOWER_DIST)continue;
 if(FILTER_RESULT)isFilterMatched=true;
 pos.clear(); pos.add('buy',ua.namad); pos.add('sell',option.namad,1,'buy'); pos.add('sell',h.namad,1,'buy');
 items.push({returnPct:r,upperDist:ud,lowerDist:ld,output:style(roundNumber(r,1)+'%','green')+' '+showDetail(option.namad,'#')+'/'+showDetail(h.namad,'#')+' '+style('↑'+roundNumber(ud,0)+'%','','','بالا')+' '+style('↓'+roundNumber(ld,0)+'%','','','پایین')+' '+pos.build('کاور دوتایی '+ua.namad)});
}
if(FILTER_RESULT)return isFilterMatched;
return sortAndFormatResults(items,SORT_BY,SORT_DIR);
خرید سهم + فروش دو کال (پایین/بالا). سود=اگر قیمت ثابت بماند. فیلتر: سود≥۷٪، فاصله بالا≤۳۰٪، پایین≤۴۰٪. سوئیچ نتایج در ⚙️.
محمد صادق جعفری
19 تیر 1405 - 09:34
من میخام 2تا فروش کال و خرید سهم پایه را به عنوان استراتژی انتخاب کنم. طوری که سود ماهانه اش بیش از10% باشه و فاصله قیمت فعلی سهم پایه تا سربه سر پائین بیش از40% و تا سربه سر بالا بیش از30% باشه(نمودار این قرارداد مثل استرانگل فروش هست ولی ماهیتش یه چیز دیگس ) این را چطوری میتونم فرمول نویسی کنم و روی همه قراردادهای هم ماه تمام سهم های آپشن دار پیدا کنم
پشتیبانیپاسخ
19 تیر 1405 - 16:16
برای اینکه دقیق راهنمایی‌تان کنیم، لطفاً چند مورد را روشن کنید: ۱. استراتژی دقیقاً چیست؟ در متن «۲ تا فروش call و خرید سهم پایه» آمده. منظورتان کدام است؟ - کاورکال (۱ سهم پایه + ۱ call فروخته‌شده) - کاورکال نسبتی (۱ سهم پایه + ۲ call فروخته‌شده) - شورت استرانگل (فروش call + فروش put، بدون خرید پایه) - اسپرد credit کال (فروش call استرایک پایین + خرید call استرایک بالاتر) - چیز دیگر — لطفاً پاها را بنویسید (خرید/فروش، call/put، تعداد) ۲. «نمودار مثل استرنگل ولی ماهیتش فرق دارد» یک نمونه مشخص بفرستید (نماد + استرایک‌ها + سررسید) تا همان را مبنا بگیریم. ۳. «روی همه قراردادهای هم‌ماه» منظورتان یک سررسید مشخص (مثلاً ۱۴۰۴/۰۴/۲۵) برای همه نمادهای آپشنی است؟ بعد از این توضیحات، فرمول و فیلتر مناسب را می‌نویسیم.
رضا شادوندی
17 تیر 1405 - 18:23
سلام میشه این فیلتر برام بنویسی کدش ای وی نسبت به ای وی رانگ پایین باشه
پشتیبانیپاسخ
18 تیر 1405 - 13:19
برای فیلتر قراردادهایی که IV ضمنی‌شان از IV Rank پایه پایین‌تر است:
return option.iv != null && ua.ivRank != null && (option.iv * 100) < ua.ivRank;
`option.iv` به‌صورت اعشاری است (مثلاً ۰.۳۵ یعنی ۳۵٪) و `ua.ivRank` بین ۰ تا ۱۰۰ است؛ برای مقایسه IV را در ۱۰۰ ضرب می‌کنیم.
محمد
07 دی 1404 - 23:06
یک فرمول برای ساختن ستون محاسباتی جدید در استراتژی کال اسپرد صعودی میخواهم که نسبت سرمایه ی لازم در روز سررسید را به سرمایه ی درگیر مطابق روند زیر محاسبه کند: قیمت اعمال قرارداد اختیار خرید اول/(قیمت فروش اختیار خرید قرار داد دوم - قیمت خرید اختیارخرید قرار داد اول)
پشتیبانیپاسخ
18 تیر 1405 - 13:49
این ستون را روی call پایین‌تر (پای خرید) بگذارید. قرارداد دوم با `optionSE(1)` (یک استرایک بالاتر) پیدا می‌شود. در تابلو: - خرید call اول = `option.ti.sell1Price` (سرخط عرضه) - فروش call دوم = `upper.ti.buy1Price` (سرخط تقاضا)
let upper = optionSE(1);
if (!upper || option.type !== 'call') return '';
let buyFirst = option.ti.sell1Price;
let sellSecond = upper.ti.buy1Price;
let debit = buyFirst - sellSecond;
if (!debit) return '';
return roundNumber(option.strike / debit, 2);
- `option.strike` = قیمت اعمال call اول (سرمایه لازم در سررسید) - `debit` = سرمایه درگیر (پریمیوم خالص) - خروجی = نسبت strike به debit اگر روی call بالاتر (پای فروش) اجرا شود نتیجه غلط می‌شود — فقط سطر call با استرایک پایین‌تر معنا دارد.
حمید خوش نویس
26 آذر 1404 - 17:54
با سلام میخوام درصد فاصله تا سربسری رو بر روزهای معاملاتی تقسیم کنم و بتونم ستون بدست آمده را از بالا به پایین سورت کنم ممنون میشم کمکم کنید
پشتیبانیپاسخ
18 تیر 1405 - 13:49
برای ستون سفارشی این فرمول را بگذارید:
let dist = calcRateChange(ua.ti.lastPrice, breakeven());
let days = option.dayTradesUntilMaturity;
if (!days || days <= 0) return '';
return roundNumber(dist / days, 2);
- `calcRateChange(ua.ti.lastPrice, breakeven())` = درصد فاصله سربه‌سری تا قیمت پایه - `option.dayTradesUntilMaturity` = روز معاملاتی تا سررسید (نه `daysUntilMaturity` که روز تقویمی است) - خروجی = میانگین درصد فاصله در هر روز معاملاتی باقی‌مانده سورت ستون: روی هدر ستون در دیده‌بان کلیک کنید — یک‌بار نزولی، دوباره صعودی.
مهراب
20 آذر 1404 - 23:41
سلام با چه کدی باید ستونی بسازم که قیمت سهم پایه تقسیم بر قیمت اولین ردیف فروش در خود اختیار رو داشته باشم
پشتیبانیپاسخ
18 تیر 1405 - 13:50
یک فرمول با نوع ستون بسازید:
if (!option.ti.sell1Price) return '';
return roundNumber(ua.ti.lastPrice / option.ti.sell1Price, 2);
- `ua.ti.lastPrice` = آخرین قیمت سهم پایه - `option.ti.sell1Price` = قیمت سرخط عرضه (ردیف اول فروش) همان قرارداد
محمدغفار
02 آذر 1404 - 12:50
سلام چطور یه فیلتر بسازم که قرارداد هایی رو نمایش بده که قیمت عرضه آنها در تابلو حداقل 5 درصد زیر ارزش ذاتی باشه تا بهم نمایش بده؟ حقیقتا حتی با هوش مصنوعی نتونستم که به شما پیام دادم
پشتیبانیپاسخ
18 تیر 1405 - 13:39
در دیده‌بان، از دکمه «فرمول‌نویسی» یک فرمول جدید با نوع فیلتر بسازید و این کد را در آن بگذارید:
intrinsic() > 0 && option.ti.sell1Price > 0 && calcRateChange(intrinsic(), option.ti.sell1Price) <= -5
- `intrinsic()` ارزش ذاتی قرارداد است (فقط وقتی ITM باشد مثبت می‌شود). - `option.ti.sell1Price` قیمت سرخط عرضه در تابلو است. - `calcRateChange(intrinsic(), option.ti.sell1Price) <= -5` یعنی عرضه حداقل ۵٪ پایین‌تر از ارزش ذاتی باشد. بعد از ذخیره، فیلتر را از پنل «فیلترهای کاربر» در toolbar فعال کنید. برای درصد دیگر (مثلاً ۱۰٪)، عدد `-5` را به `-10` تغییر دهید.
خوش نویس
28 آبان 1404 - 11:08
با سلام میخوام یک روز به روزهای معاملاتی اضافه بشه یعنی روز آخر بجای عدد صفر عدد یک را نشان بدهد و محاسبات سود و زیان رو بر این اساس حساب کند ممنون میشم فرمولش رو برام بگذارید
پشتیبانیپاسخ
18 تیر 1405 - 13:41
فیلد `option.daysUntilMaturity` در سیستم قابل تغییر نیست؛ باید یک تابع عمومی بسازید و به‌جای آن در فرمول‌های خودتان استفاده کنید. ۱. فرمول با نوع «تابع»:
function tradingDays() {
  return option.daysUntilMaturity === 0 ? 1 : option.daysUntilMaturity;
}
۲. ستون نمایش روز:
tradingDays()
۳. در محاسبات سود/زیان به‌جای `option.daysUntilMaturity` از `tradingDays()` استفاده کنید — مثلاً:
let profit = (option.ti.buy1Price / ua.ti.lastPrice) * 100;
return ytmProfit(profit, tradingDays());
همین الگو برای `monthlyProfit`، `probOfProfit` و `calcBS({ days: tradingDays() })` هم کار می‌کند. دلیلش این است که وقتی `daysUntilMaturity` برابر ۰ باشد، توابعی مثل `ytmProfit` خروجی خالی برمی‌گردانند؛ با `tradingDays()` روز آخر به‌عنوان ۱ روز در نظر گرفته می‌شود.
حمید سالاری
12 مهر 1404 - 01:53
سلام، قیمت بلک شولز یک اختیار با چه کدی نوشته می شود؟
پشتیبانیپاسخ
18 تیر 1405 - 13:41
قیمت تئوری بلک‌شولز قرارداد جاری با `calcBS().bs` به‌دست می‌آید:
calcBS().bs
برای قرارداد مشخص با نام نماد:
calcBS('ضخود9015').bs
اگر فقط قیمت نظری با نوسان تاریخی پایه (HV) لازم است و می‌خواهید سریع‌تر باشد، از فیلد ازپیش‌محاسبه‌شده استفاده کنید:
option.blackSholesHV
بهروز
20 خرداد 1404 - 01:23
با درود،اگه لطف کنید راهنمایی کنید،چطور میشه فیلتری نوشت که کلیه قراردادهای فروش(آپشن های فروش) در دامنه قیمتی مشخصی در واچ لیست ظاهر شوند.باسپاس
پشتیبانیپاسخ
18 تیر 1405 - 13:46
یک فرمول با نوع فیلتر بسازید و این کد را در آن بگذارید. `FILTER_MIN_PRICE` و `FILTER_MAX_PRICE` از پنل ویژوال (آیکن ⚙ «مدیریت خروجی و فیلتر») قابل تغییر‌اند:
const FILTER_MIN_PRICE = 100;   // حداقل قیمت title=حداقل قیمت قرارداد (ریال)
const FILTER_MAX_PRICE = 2000;  // حداکثر قیمت title=حداکثر قیمت قرارداد (ریال)

if (option.type !== 'put') return false;
if (!option.ti.lastPrice) return false;
return option.ti.lastPrice >= FILTER_MIN_PRICE && option.ti.lastPrice <= FILTER_MAX_PRICE;
بعد از ذخیره، فیلتر را از پنل «فیلترهای کاربر» فعال کنید. برای تغییر دامنه، ⚙ را بزنید و در تب فیلتر حداقل و حداکثر را عوض کنید. اگر می‌خواهید بر اساس سرخط عرضه فیلتر شود، `option.ti.lastPrice` را با `option.ti.sell1Price` عوض کنید.
بهروز
18 خرداد 1404 - 02:17
با درود،اگه لطف کنید راهنمایی کنید،چطور میشه فیلتری نوشت که مقادیر قیمتی 1 تا 5 ریال رو در قراردادهای کال و پوت رو پیدا کنیم، با سپاس
پشتیبانیپاسخ
18 تیر 1405 - 13:51
در دیده‌بان هر سطر یک قرارداد است (call یا put)؛ برای هر دو نوع کافی است فیلتر بسازید:
return option.ti.lastPrice >= 1 && option.ti.lastPrice <= 5;
`option.ti.lastPrice` = آخرین قیمت معامله‌شده قرارداد (ریال). اگر می‌خواهید بر اساس قیمت سرخط فیلتر کنید: - تقاضا (خرید): `option.ti.buy1Price >= 1 && option.ti.buy1Price <= 5` - عرضه (فروش): `option.ti.sell1Price >= 1 && option.ti.sell1Price <= 5` فیلتر را از مدیریت فرمول‌ها → نوع فیلتر بسازید و به دیده‌بان اضافه کنید.
محمد
16 خرداد 1404 - 21:21
با سلام آیا می توان به اطلاعات گذشته آپشن ها دسترسی داشته باشم؟
پشتیبانیپاسخ
18 تیر 1405 - 13:52
در فرمول‌نویسی دیده‌بان فقط داده لحظه‌ای و چند فیلد محدود گذشته در دسترس است؛ تاریخچه کامل قیمت/IV آپشن (مثلاً قیمت ۱۰ روز پیش) در فرمول قابل فراخوانی نیست. فیلدهای مرتبط با گذشته: | فیلد | معنی | |------|------| | `option.ti.endPrice` | قیمت پایانی دیروز | | `option.ti.lastPC` | درصد تغییر آخرین قیمت نسبت به دیروز | | `option.ti.endPC` | درصد تغییر قیمت پایانی | | `option.ti.lastDayVolume` | حجم روز معاملاتی قبل | | `option.ti.lastDayTValue` | ارزش معاملات روز قبل | | `option.openInterestPC` | درصد تغییر موقعیت باز نسبت به دیروز | | `option.volumeAvg` | میانگین حجم روزانه | | `ua.hv` | نوسان تاریخی پایه | | `ua.ivRank` / `ua.ivPercentile` | رتبه IV پایه نسبت به یک سال گذشته | مثال ستون — مقایسه آخرین قیمت با پایانی دیروز:
if (!option.ti.endPrice) return '';
return calcRateChange(option.ti.endPrice, option.ti.lastPrice);
برای تحلیل تاریخی عمیق‌تر (نمودار روزانه، IV گذشته و …) باید از بخش‌های دیگر سایت استفاده کنید، نه فرمول دیده‌بان.
محمد مهدی توفیقی
12 خرداد 1404 - 21:21
با سلام فاکشن رند کردن اعداد هم ادیتور شما دارد؟
محمدپاسخ
12 خرداد 1404 - 22:42
سپاس از شما
محمد
08 خرداد 1404 - 22:40
سلام وقت بخیر من حقیقتا هرچی گشتم نتونستم ارزش زمانی رو پیدا کنم که در فیلتر و یا ستون ها ازش استفاده کنم
محمدغفارپاسخ
08 خرداد 1404 - 23:49
ممنونم از لطف و پاسخگویی سریعتون
عباس
26 آذر 1403 - 20:38
سلام.این فیلتر رو میخام اختیار خریدهایی که از اختیار فروش ها بیش از 10 درصد گرونتر معامله شود.با اعمال یکسان وسررسید یکسان اختیار فروشش هم معامله شود ممنون
عباسپاسخ
27 آذر 1403 - 00:07
سلام،بله،پرمیوم کال از پوت گرونتر باشه بایک اعمال وسررسید یکسان
علی
15 شهریور 1403 - 23:57
درود بر شما لطفا فرمول جاوا اسکریپت برای ساخت ستون و نیز فیلتر مربوطه برای IV RANK را بنویسید .ممنون
پشتیبانیپاسخ
18 تیر 1405 - 13:53
IV Rank روی نماد پایه است، نه روی قرارداد. با ستون آماده IV دیده‌بان (`option.iv`) اشتباه گرفته نشود. فیلد IV Rank: - `ua.ivRank` — رتبه نوسان ضمنی پایه نسبت به یک سال گذشته (۰ تا ۱۰۰) - `ua.ivPercentile` — مکمل (صدک IV) اگر تاریخچه WIV کافی نباشد، مقدار `null` است. دیدن بدون فرمول: روی نماد پایه کلیک کنید → کارت جزئیات → IV Rank و IV Percentile (گیج). نمودار یک‌ساله WIV هم در همان کارت است. در دیده‌بان (ستون/فیلتر): ستون پیش‌ساخته IV Rank نداریم؛ از همین فیلد `ua.ivRank` در فرمول‌نویسی استفاده کنید. در ویرایشگر فرمول با تایپ `ua.` در autocomplete می‌آید؛ در راهنمای فرمول‌نویسی هم در بخش فیلدهای آبجکت `ua` توضیح داده شده. مقاله: IV Rank
فرزاد
22 خرداد 1403 - 19:30
با سلام و احترام. میشه لطفا فیلتری رو بهم بدین که قراردادهایی که شکاف عرضه و تقاضای اونا در تابلو کوچکتر از 15% باشه رو نشون بده؟
پشتیبانیپاسخ
18 تیر 1405 - 13:53
یک فرمول با نوع فیلتر بسازید:
askBidSpread() <= 15
تابع `askBidSpread()` شکاف عرضه و تقاضا را به‌صورت درصد از آخرین قیمت برمی‌گرداند؛ شرط بالا یعنی اسپرد حداکثر ۱۵٪. بعد از ذخیره، فیلتر را از پنل «فیلترهای کاربر» فعال کنید.
فرزاد
24 اردیبهشت 1403 - 15:11
با سلام و احترام. میشه لطفا فیلتری رو بهم بدین که قراردادهایی که آخرین قیمت شون پایین تر از بلک شولز باشه رو بهم نشون بده؟
پشتیبانیپاسخ
18 تیر 1405 - 13:55
فیلتر (مقایسه با ستون «بلک‌شولز» دیده‌بان):
return option.ti.lastPrice > 0 && calcBS().bs > 0 && option.ti.lastPrice < Math.round(calcBS().bs);
`calcBS().bs` = قیمت نظری بلک‌شولز؛ `Math.round` برای هم‌خوانی با ستون آماده «بلک‌شولز». جایگزین ساده‌تر (BS با HV پایه، از قبل محاسبه‌شده):
return option.blackSholesHV > 0 && option.ti.lastPrice > 0 && option.ti.lastPrice < option.blackSholesHV;
`option.blackSholesHV` = قیمت BS با نوسان تاریخی پایه (`ua.hv`). بدون فرمول: ستون ٪ بلک‌شولز را به جدول اضافه کنید → از هدر ستون فیلتر سریع بزنید → مقدار کمتر از ۰ (پرمیوم زیر BS). فیلتر را از مدیریت فرمول‌ها → نوع فیلتر بسازید و به دیده‌بان اضافه کنید.
حمید
22 دی 1402 - 13:21
سلام لطفا کد دلتا بین 0.2 - 0.5 و تعداد روز تا سررسید 60 روز
پشتیبانیپاسخ
18 تیر 1405 - 13:56
نیازی به نوشتن کد فیلتر نیست؛ از فیلتر ستون استفاده کنید: ۱. ستون «دلتا» - روی سرستون دلتا آیکن فیلتر را بزنید - عملگر: بین - مقدار: `0.2` تا `0.5` ۲. ستون «روز تا سررسید» - روی سرستون روز تا سررسید آیکن فیلتر را بزنید - عملگر: کمتر از - مقدار: `60` هر دو فیلتر هم‌زمان فعال می‌مانند (منطق AND). اگر ستون‌ها در جدول نیستند، از تنظیمات ستون‌ها visible‌شان کنید.
صابر
11 دی 1402 - 03:55
سلام فیلتری قراردادهای نشان بده که اوردر خریدار بالای 100% گرانتر از بلک شولز باشه و قیمت اعمال حداقل 5% بیشتر از قیمت سهم باشه پارامتر های درصد 100 و 5 قابل تغییر باشه
صابرپاسخ
11 دی 1402 - 18:00
باتشکر شرط زیر هم قابل اضافه شدن بهش هست که اوردر خریدار بزرگتر از 50? وجه تضمین باشه،??
صابرپاسخ
12 دی 1402 - 02:18
سپاس فراوان
مجید
06 مهر 1402 - 18:23
سلام من قرارداهای اختیار خریدی رو میخوام که حداقل 30 روز تا تاریخ اعمالشون مونده و حجم معاملات بالای 100M دارند و قیمت پایانی زیر 150 ریال دارند
مجیدپاسخ
07 مهر 1402 - 04:49
ممنونم
محمد
23 مرداد 1402 - 18:28
باسلام برای خریدهای نسبتاسنگین دربازاراختیار..مبلغ بالاترازمثلا5میلیون...نیازبه تعریف فیلتر یاستونی دارم که ارزش سفارش سطر1 سمت عرضه را sortکند.لذامحاسبه حاصل ضرب قیمت عرضه درحجم سطر1 فروش موردنیازاست بنظرم جای حجم سطر1 عرضه وخرید درامانات فرمول نویسی سایت خالی است.اگرروشی داردلطفاراهنمایی بفرمایید.متشکرم
پشتیبانیپاسخ
18 تیر 1405 - 13:57
فیلدهای حجم سطر ۱ خالی نیستند؛ زیر `option.ti` هستند: - `option.ti.sell1Price` — قیمت عرضه سطر ۱ - `option.ti.sell1Volume` — حجم عرضه سطر ۱ - `option.ti.buy1Price` / `option.ti.buy1Volume` — تقاضا سطر ۱ `buy1Count` و `sell1Count` = تعداد سفارش در آن سطح (نه حجم). ارزش سفارش خرید از عرضه سطر ۱ = قیمت × حجم × اندازه قرارداد: ستون (برای نمایش و سورت):
let v = option.ti.sell1Price * option.ti.sell1Volume * option.size;
if (!v) return '';
return commaSeparator(v);
فیلتر (مثلاً بالای ۵ میلیون ریال):
return option.ti.sell1Price > 0
  && option.ti.sell1Volume > 0
  && (option.ti.sell1Price * option.ti.sell1Volume * option.size) >= 5000000;
برای سورت: روی هدر ستون کلیک کنید. در ویرایشگر فرمول با تایپ `option.ti.s` فیلدهای `sell1Price` و `sell1Volume` در autocomplete می‌آیند؛ در راهنما → فیلدهای ti هم لیست شده‌اند.
علی
14 مرداد 1402 - 13:22
فیلتر قراردادهایی که نماد پایه آنها صف خرید هست
پشتیبانیپاسخ
18 تیر 1405 - 13:57
یک فرمول با نوع فیلتر بسازید:
ua.ti.dailyPriceHigh > 0 && ua.ti.sell1Price > ua.ti.dailyPriceHigh
وقتی سرخط عرضه پایه بالاتر از سقف مجاز روز باشد، یعنی پایه در صف خرید (قفل سقف) است. بعد از ذخیره، فیلتر را از پنل «فیلترهای کاربر» فعال کنید.
محمد
18 تیر 1402 - 22:50
باسلام وخسته نباشین برای نمایش تعداد قرارداد باز ستون ایجاد کرده ام باعنوان OpenInterest(داخل فرمول) ولی نتایج رونمیاره ؟!
پشتیبانیپاسخ
18 تیر 1405 - 13:58
OpenInterest تابع نیست؛ فیلد روی آبجکت قرارداد است: `option.openInterest` ستون ساده:
return option.openInterest;
یا با جداکننده هزارگان:
return option.openInterest ? rnwc(option.openInterest) : '';
بدون فرمول: ستون آماده «موقعیت باز» را از تنظیمات ستون‌های دیده‌بان اضافه کنید. اگر خالی می‌ماند: بعضی فرمول‌ها با `if (!option.openInterest) return ''` وقتی OI صفر یا null است چیزی نشان نمی‌دهند — آن شرط را بردارید یا فقط null را چک کنید:
return option.openInterest != null ? option.openInterest : '';
محمد
17 تیر 1402 - 01:05
باسلام کمترین قیمت معامله شده پرمیوم (درهرروزمعاملاتی ) باچه عبارتی قابل شناسایی است ؟
پشتیبانیپاسخ
18 تیر 1405 - 14:01
کمترین قیمت معامله‌شده امروز پرمیوم همان قرارداد با `option.ti.min` به‌دست می‌آید:
option.ti.min
برای ستون، همین عبارت را در فرمول نوع ستون بگذارید. تاریخچه کمترین قیمت روزهای معاملاتی قبل در فرمول دیده‌بان در دسترس نیست — فقط آمار امروز (`min` / `max`) و چند فیلد محدود دیروز (مثل `option.ti.endPrice`) موجود است.
پارسایی
02 خرداد 1402 - 16:29
سلام. فرق بین var و let چیه؟ چه مواقعی از let و چه مواقعی از var استفاده میکنیم؟
پارساییپاسخ
03 خرداد 1402 - 01:32
پس میتونیم همیشه (حتی به جای let) از var استفاده کنیم؟
حمید
26 اردیبهشت 1402 - 18:33
let capital= ScalePrice(Option.TI) + UA.TI.LastPrice; let eps = (Option.Strike - capital )*100 / capital; let month = Option.DaysUntilMaturity / 30; if (Option.Type == "put" && ScalePrice(Option.TI)>1 && Option.DaysUntilMaturity > 30) //incomePerMonth (eps/month).toFixed(1); else ""; فیلتر بالا چه اشکالی داره ، چون را برای طتوس709 برابر 11.2 نشان میده در صورتی که مقدار مطابق محاسبه خودم 1.08 درصد هستش
حمیدپاسخ
26 اردیبهشت 1402 - 23:22
اشکال رو متوجه شدم ممنون
حمید
23 اردیبهشت 1402 - 18:07
باسلام لطفا فیلتر و ستون اسپرد اختیار هایی که ، قیمت اعمال حداقل 40 درصد پایین تر از آخرین قیمت و سود اسپرد بالای 10 درصد باتشکر فراوان
حمیدپاسخ
23 اردیبهشت 1402 - 18:53
سپاس از پاسخ گویی سریع لطفا قسمت دوم فیلتر یعنی سود اسپرد بالای 10 درصد را نیز برایم ارسال کنید.
حمیدپاسخ
23 اردیبهشت 1402 - 19:10
ضمنا هر دو اختیار چه long و put ، قیمت اعمال 40 درصد پایین تر از آخرین معامله باشد. با شرط فوق فقط روی اختیاری که خردید می شود اعمال می گردد.
حمیدپاسخ
25 اردیبهشت 1402 - 17:08
لطفا هر دوطرف اسپرد صعودی ، حداقل مثلا 30 درصد درسود (ITM) باشد.
ابوالفضل احسانی
23 اردیبهشت 1402 - 00:40
سلام و دورد فراوان لطفا، 1- فیلتر کاورد کال برای سهم هایی که قیمت آخرین معامله سهم 20 درصد بیش از قیمت اعمال سهم باشه 2-امکان شناسایی موقعیت های مناسب جهت افست زودتر از موعد کاورد کال هایی که زده ایم
ابوالفضل احسانیپاسخ
23 اردیبهشت 1402 - 02:04
متوجه پاسخ سوال دو نشدم ، چه ارتباطی بین بستن کاورد کالها زودتر از سررسید با سود و آربیتراژ وجود داره
حمیدپاسخ
23 اردیبهشت 1402 - 18:01
بسیارسپاس استاد گرامی
اشکان
17 اردیبهشت 1402 - 20:42
سلام ستونی میخواستم بسازم که اختلاف ارزش ذاتی و اولین عرضه را به درصد بگه
اشکانپاسخ
18 اردیبهشت 1402 - 02:31
بله
اشکان
13 اردیبهشت 1402 - 21:41
سلام نوسان ضمنی (iv) راباچه عنوانی درفرمول میتوان نوشت؟
اشکانپاسخ
13 اردیبهشت 1402 - 23:02
خیلی ممنون
محمد
12 اردیبهشت 1402 - 00:50
باسلام ..قیمت پایانی پرمیوم..راباچه عندانی درفرمولهامیتوان نوشت..؟..باتشکر
محمدپاسخ
12 اردیبهشت 1402 - 03:46
متشکرم
محمد رضا
07 اردیبهشت 1402 - 14:42
سلام روز شما بخیر فیلتری برای اطلاع از قرارداد های با سررسید نزدیک که افت قیمت پیدا میکنند قابل تهیه است ؟ به هر دلیل نزدیک سر رسید عرضه با قیمت پایین تر از سر به سر داشته باشند
محمدرضاپاسخ
07 اردیبهشت 1402 - 17:59
ممنونم
سعید
03 اردیبهشت 1402 - 06:03
سلام ، اول ممنون بابت دیده بان و پاسخگویی شما به سوالات میشه راهنمایی کنید 1-چه جوری باید یه ستون برای تعداد معاملات قرارداد ایجاد کنم چون تو ستون های آماده نیست 2-میشه فیلتری نوشت که خرید و فروش حفوقی رو در قرارداد نشون بده ممنون بابت پاسخگویی
سعیدپاسخ
04 اردیبهشت 1402 - 01:57
واقعا ممنون بابت پاسخگویی و پشتیبانی شما ، اصلا توقع نداشتم به این سرعت جواب بدید ؛ مجموعه ای که در دوره اونا شرکت کردم حتی پاسخگو نیستند .
سیامک
03 اردیبهشت 1402 - 01:03
سلام آیا میشه ستونها رو جابجا کرد و بعضی ستونها رو به اوال جدول بیاریم؟وهمچنین عرض ستونها رو کم و زیاد کرد؟
سیامکپاسخ
03 اردیبهشت 1402 - 14:37
سلام میشه لطفا بفرمایید از کدام قسمت تنظیمات میشه ستونها رو جابجا کرد من پیدا نکردم جایی رو که بشه اینکارو کرد
محمد
07 اسفند 1401 - 19:58
باسلام وخسته نباشید . من آزمایشی ازسایت خوب شما استفاده میکنم .یک اشکال درمحاسبه اهرم مشاهد ه کردم که اگردسوربررسی بفرمایید دراستفاده ازسایت بسیارموثراست . اهرم معاملاتی که درضرر--->OTM هستند اشتباه محاسبه ونمایش داده می شوند .
محمدپاسخ
07 اسفند 1401 - 21:56
متشکرم
حسین
18 بهمن 1401 - 01:46
سلام برای استراتژی Protective Put یک ستون میخوام درست کنم ولی خطا نامعتبر بودن کد را میده if (Option.Type == "put" && ScalePrice(Option.TI)>1) { let capital= ScalePrice(Option.TI) + UA.TI.LastPrice let eps = (Option.Strike - capital )*100 / capital var month = 1; if (Option.DaysUntilMaturity > 30) {month = Option.DaysUntilMaturity / 30;} let incomePerMonth= (eps/month) } incomePerMonth.toFixed(1);
حسینپاسخ
20 بهمن 1401 - 19:34
ممنون فقط یک سوال دارم چرا نمیشه شرط را اول محاسبات قرار داد و سپس در صورت برقراری شرط باقی محاسبات انجام شود. به اینصورت if (option.type == "put" &amp;&amp; basePrice(option)&gt;1) ادامه کد
محسن شهیب
04 دی 1401 - 17:01
میشه این فیلتر رو برای من بنویسید لطفا ؟ اختلاف با بلک شولز بیشتر از 20 درصد فاصله سربسری کمتر از 10 درصد حجم معاملات بالای 100000 اهرم بیشتر از 2
محسن شهیبپاسخ
04 دی 1401 - 20:12
ممنون بابت لطفتون سپاسگذار
محسن شهیبپاسخ
04 دی 1401 - 21:10
ببخشید فیلتری که نوشتید فکر کنم ایراد داره چونکه قیمتهای پرمیوم زیر ارزش بلک شولز نیستن من فیلتری میخواستم که پرمیومهای زیر قیمت بلک شولز رو بیاره مثلا 20 درصد زیر ارزش بلک شولز و نزدیک سربسری
علی
21 آذر 1401 - 18:59
سلام، وقت بخیر، فیلتر تحرکات حقوقی تو اختیارات رو میخواستم
علیپاسخ
22 آذر 1401 - 16:51
منظور خرید یا فروش بیش از 50 درصد حجم روزانه یا کد به کد حقوقی به حقیقی
علیپاسخ
23 آذر 1401 - 03:58
خیلی ممنونم، اگر گروه عمومی هست لطف می کنید لینک گروه رو ارسال کنید
باقر
15 آبان 1401 - 03:04
باسلام و احترام بی زحمت فیلتر تعداد موقعیت باز خواستم ممنونم
باقرپاسخ
16 آبان 1401 - 04:29
فیلتری که تعدادموقعیت باز راسهم ها نشون بده مثلا سهم هایی که بیش از 100 موقعیت باز دارد
باقرپاسخ
19 آبان 1401 - 18:15
ممنونم خداخیرت بده
حسن علوی دیلمی
14 مهر 1401 - 05:10
سلام درصد شکاف چطور محاسبه میشه ؟ ممنونم
حسنپاسخ
15 مهر 1401 - 17:44
سپاسگزار از شما
علیرضا
08 مهر 1401 - 03:58
سلام فیلتر سر به سری کمتر از 20 درصد رو میخواستم
علیرضاپاسخ
09 مهر 1401 - 18:58
نسبت به اخرین قیمت سهم پایه هم سمت خرید و هم فروش اختیار خرید
علیرضاپاسخ
10 مهر 1401 - 00:37
فقط نمیدونم چطور درصد بگیرم
علیرضاپاسخ
10 مهر 1401 - 02:22
بسیار سپاسگزارم برای پاسخگویی و راهنمایی تون. کد رو که اجرا میکنم بازهم سربه سری بیشتر از 20 درصد رو میاره لطفا راهنمایی بفرمایید متشکرم
علیرضاپاسخ
10 مهر 1401 - 04:34
درست شد لطفا چک بفرمایید let intrinsictValue; if (option.type == "call") intrinsictValue =(option.ti.lastPrice + option.strike) - ua.ti.lastPrice; else intrinsictValue = (option.strike - option.ti.lastPrice) - ua.ti.lastPrice; 100*(intrinsictValue/ua.ti.lastPrice)&lt;20 &amp;&amp; option.ti.sell1Price&gt;1
محمود
19 فروردین 1401 - 01:33
با سلام و عرض ادب . میشه خواهش کنم فیلتر نمادهای اختیار معامله که در حال خرید و فروش هستند و حجم خورده رو بی زحمت بگذارین. ممنونم ازتون
محمودپاسخ
20 فروردین 1401 - 00:12
ببخشید کجاست فیلترش من ندیدم ؟؟
یوسف
11 فروردین 1401 - 18:56
با سلام دوستان من تکه کدی دارم که اطلاعات رو از tse به تلگرام میفرسته میخواستم ببینم چجوری اونو تبدیل کنم که تو قسمت فیلتر نویسی آپشن باز بشه اعمال کرد
یوسفپاسخ
12 فروردین 1401 - 17:48
من میخوام نتایج فیلترم رو به تلگرام بفرسته تو سایت tse میتونم این کار رو انجام بده ولی تو اپشن باز نتونستم تکه کد رو اینجا نتونستم بذارم
حسام اسدی
23 اسفند 1400 - 03:05
سلام وعرض ادب احتراما فیلد وجه تضمین چی هست؟
حسامپاسخ
23 اسفند 1400 - 04:38
ممنون
احمد
20 اسفند 1400 - 03:21
اگر امکان داره تو تنظیمات بشه رنگ ستون رو تغییر داد عالی میشه اینطور همه یک رنگ ی مقدار سخته ممنون
شایستهپاسخ
21 اسفند 1400 - 20:39
میشه الان . من رنگ پیش زمینه رو برای خودم عوض کردم
احمد
17 اسفند 1400 - 16:44
سلام و احترام برای اینکه ستونی باشد که بلک شولز W_IV نشان دهد و بتوان با عرضه یا تقاضا یا آخرین قیمت مقایسه کرد هنگامی که دیده بان بر اساس هر کدام قرار دادیم از چه فیلتری باید استفاده کرد؟
احمدپاسخ
20 اسفند 1400 - 18:15
اگر بخواهیم در محاسبه بلک شولز در ستون نرخ بازدهی به جای 25 عدد دلخواه ما باشد چکار باید کرد و اینکه daily _price_low با min و ماکزیمم ها چه تفاوت با هم دارند؟
آرش شاهرخی
11 اسفند 1400 - 19:13
سلام می خواهم یک ستون داشته باشم با فرمول زیر 30*(تعداد روز تقویمی تا سررسید/(قیمت اعمال/( قیمت پرمیموم-قیمت تابلو))) ممنون میشم راهنمایی کنید
پشتیبانیپاسخ
12 اسفند 1400 - 00:45
<p class="ltr" style="text-align: left; "> n1= ( ( (ua.ti.lastPrice - option.ti.lastPrice) / option.strike ) / option.daysUntilMaturity) * 30; </p><p class="ltr" style="text-align: left; ">n1.toFixed(2); </p>