این فیلتر/ستون قراردادهایی را پیدا میکند که پرمیومشان با دستکم یک قرارداد همگروه (همسررسید) کمتر از آستانهٔ درصدی فاصله دارد — مثلاً دو اعمال متفاوت با قیمت نزدیک به هم.
ایده
کد روی هر سطر دیدهبان اجرا میشود. با حلقه روی optionSE() بقیهٔ زنجیره را میگردید؛ خودِ نماد را رد میکنید؛ اختلاف درصدی قیمتها را با calcRateChange میسنجید. برای قیمت از basePrice استفاده کنید تا با مبنای قیمت نوار دیدهبان یکی باشد.
حلقه روی همسررسیدها میرود و اختلاف درصدی پرمیوم را با هر کدام میسنجد — خودِ نماد رد میشود، نه حذف.
مثال ستون — همسایههای با اختلاف 10٪ یا کمتر
let result = '';
let price = basePrice(option);
if (!price || price <= 1) return '';
let list = optionSE();
for (let i = 0; i < list.length; i++) {
let other = list[i];
if (!other || other.namad === option.namad) continue;
let comparePrice = basePrice(other);
if (!comparePrice || comparePrice <= 1) continue;
let diff = Math.abs(calcRateChange(price, comparePrice));
if (diff <= 10) {
result += '[' + showDetail(other.namad) + ': ' + roundNumber(diff, 1) + '%] ';
}
}
return result;
continue در حلقه یعنی این دور را رد کن و برو سراغ قرارداد بعدی — خود نماد یا قیمتهای نامعتبر را اینطور رد میکنیم.
مثال فیلتر — حداقل یک همسایه نزدیک
آستانه با _var1 (پیشفرض 10٪):
let maxDiff = _var1 !== '' ? Number(_var1) : 10;
let price = basePrice(option);
if (!price || price <= 1) return false;
let list = optionSE();
for (let i = 0; i < list.length; i++) {
let other = list[i];
if (!other || other.namad === option.namad) continue;
let comparePrice = basePrice(other);
if (!comparePrice || comparePrice <= 1) continue;
if (Math.abs(calcRateChange(price, comparePrice)) <= maxDiff) return true;
}
return false;
فرمولها در کتابخانه شخصی ذخیره میشوند و میتوانید هر کدام را بهعنوان فیلتر یا ستون سفارشی به دیدهبان اضافه کنید.
همان حلقه، دو کاربرد: با برگرداندن متن یک ستون میشود و با برگرداندن درست/نادرست یک فیلتر.
با حلقه روی همسررسیدها، پرمیومهای نزدیک بین اعمالهای مختلف را سریع میبینید — برای کنجکاوی قیمتگذاری یا ایدههای اسپرد. مبنا را با نوار دیدهبان یکی نگه دارید.
اگر سوال یا ابهامی در رابطه با این مطلب دارید، همینجا بپرسید؛ کارشناسان ما پاسخ میدهند.
تجربه یا نکتهای دارید؟ نوشتنش به بقیهٔ کاربران هم کمک میکند.
پرسشها و نظرات کاربران
4 پیام
مهسا
25 خرداد 1405 - 11:00
پریمیومهای نزدیک به هم را پیدا کردم. این چه چیزی به من میگوید؟
پشتیبانیپاسخ
29 خرداد 1405 - 19:25
این فیلتر یک نشانه میدهد نه یک سیگنال، و معنایش بستگی دارد به اینکه کجای نردبان اتفاق افتاده.
دو قرارداد با قیمت اعمال متفاوت که پریمیوم تقریباً یکسانی دارند، معمولاً یکی از این سه را میگویند:
بازار به آن ناحیه بیتفاوت است. اگر هر دو دور از پول باشند، هر دو تقریباً بیارزشاند و شباهت قیمتشان اطلاعاتی ندارد.
یکی از دو قرارداد کممعامله است. قیمتی که کهنه باشد میتواند اتفاقی به قیمت همسایهاش نزدیک شود. این رایجترین حالت است: سنجش نقدشوندگیفرصت واقعی اسپرد. اگر هر دو نقدشونده باشند، خرید ارزانتر و فروش گرانتر یک اسپرد با هزینهٔ ورود بسیار کم میسازد — و این همان چیزی است که ارزش گشتن دارد.
پس ترتیب درست این است: اول با این فیلتر فهرست را کوتاه کنید، بعد هر دو پا را از نظر حجم و موقعیت باز و شکاف قیمت بسنجید. قرارداد بدون سرخط، هر عددی که نشان دهد قابل معامله نیست.
سعید
03 خرداد 1405 - 14:06
این فیلتر همسایههای نزدیک را پیدا میکند. اگر برای ردیفی همسایهای وجود نداشته باشد چه میشود؟
پشتیبانیپاسخ
07 خرداد 1405 - 12:46
این حالت حتماً پیش میآید — روی بالاترین و پایینترین قیمت اعمال هر سررسید — و اگر گاردش را نگذارید، بیصدا نتیجهٔ غلط میدهد.
وقتی همسایه وجود ندارد، چیزی که برمیگردد تعریفنشده است، نه یک خطای قابل دیدن. محاسبات بعدی رویش انجام میشوند، نتیجه NaN میشود، و توابع تبدیل عدد در انتها به مقدار پیشفرضشان میافتند. یعنی ممکن است عددی در ستون ببینید که هیچ ربطی به واقعیت ندارد.
راه درست: پیش از هر محاسبهای وجود همسایه را شرط کنید و اگر نبود، ردیف را از فیلتر بیندازید بیرون یا خروجی را خالی بگذارید.
دو تلهٔ همراهش:
آستانهٔ صفر فیلتر را خاموش میکند. اگر فیلتری اثر ندارد، شاید اصلاً اجرا نشده؛ عدد کوچکی مثل 0.1 بگذارید.
خالی با صفر یکی نیست و باید جدا هندل شود.
آزمون ارزان: ستون را روی یک نماد اجرا کنید و بالاترین قیمت اعمال هر سررسید را جدا نگاه کنید. اگر آنجا عدد دیدید، گارد ندارید.