در دیدهبان، هر فرمولی که پاهای یک استراتژی را با pos.add تعریف کند و با pos.build تمام شود، در سلول ستون یک آیکون نمودار سود و زیان میسازد. با کلیک روی آن، همان پاها در نمودار استراتژی بارگذاری میشوند — بدون آنکه چیزی را دستی وارد کنید.
این مقاله همهٔ پارامترهای pos.add و pos.build را پوشش میدهد، توضیح میدهد هر پا با کدام قیمت وارد میشود، و سه نمونه کد آماده میدهد: کاورکال، کال اسپرد صعودی و باترفلای.
برای ساخت فرمول به دیدهبان آپشن بروید، یا از طریق میزکار باکس دیدهبان اضافه کنید؛ سپس را بزنید، نوع را روی ستون بگذارید، کد را بنویسید و ذخیره کنید. خروجی باید با return برگردد. اگر با ساخت ستون آشنا نیستید، ابتدا ستون محاسباتی در دیدهبان را بخوانید.
نمودار استراتژی در ستون به چه کار میآید؟
نمودار استراتژی رابطهٔ قیمت نماد پایه و سود/زیان را نشان میدهد. وقتی آن را از دل ستون دیدهبان میسازید:
- نقطهٔ سربهسر، حداکثر سود و حداکثر زیان هر ردیف را یکجا میبینید
- همان ترکیب را روی هر قرارداد جدول اسکن میکنید، نه فقط یک نماد خاص
- با یک کلیک به نمودار استراتژی میروید و آنجا یونانیها، نمودار تاریخی و جدول سود و زیان در اختیارتان است
مثال خروجی در سلول ستون (بازده ماهانه + آیکون نمودار):
2.3٪
آیکون در دیدهبان قابل کلیک است: پنل نمودار از بالای صفحه باز میشود، پاهای تعریفشده با pos.add خودکار بارگذاری میشوند و با دکمههای ارتفاع (30٪، 50٪، 75٪، تمام صفحه) اندازهٔ پنل را تنظیم میکنید.
pos.add — پارامتر به پارامتر
pos.add(position, namad, count?, price?, cashBlock?)
price و cashBlock پیشفرضی دارند که در نیمی از حالتها غلط است.| پارامتر | مقدار | توضیح |
|---|---|---|
position |
'buy' / 'sell' |
سمت پا: خرید یا فروش (اجباری) |
namad |
option.namad / ua.namad |
نماد قرارداد یا نماد پایه (اجباری). پاهای دیگر زنجیره را با optionSE بگیرید |
count |
عدد — پیشفرض 1 |
تعداد قرارداد همان پا؛ مثلاً بدنهٔ باترفلای 2 |
price |
'buy'/'bid' · 'sell'/'ask' · 'last'/'close' · 'end' · عدد ثابت |
قیمت ورود. اگر ننویسید، خودکار سمت واقعبینانه انتخاب میشود (بخش بعد) |
cashBlock |
true · false · عدد |
فقط برای پای فروش: وجه تضمین قفلشده |
هر پا با کدام قیمت وارد میشود؟
اگر پارامتر price را ننویسید، موتور سمت واقعی سفارش را انتخاب میکند: پای خرید با سرخط عرضه (برای خرید فوری باید عرضه را بزنید) و پای فروش با سرخط تقاضا. یعنی در بیشتر فرمولها نیازی به دادن این پارامتر نیست.
'sell' و برای پای فروش 'buy' — چون مقدار به سمتِ صف اشاره دارد. سادهترین راه: ننوشتنش.| مقدار | قیمت انتخابی |
|---|---|
'buy' یا 'bid' | سرخط تقاضا (buy1Price) — قیمتی که با آن میفروشید |
'sell' یا 'ask' | سرخط عرضه (sell1Price) — قیمتی که با آن میخرید |
'last' یا 'close' | قیمت آخرین معامله |
'end' | قیمت پایانی |
| عدد | همان عدد — مثلاً قیمت واقعی ورود خودتان به موقعیت |
نکتهٔ ضدشهودی که بیشترین اشتباه را میسازد: برای پای خرید باید'sell'بدهید و برای پای فروش باید'buy'— چون نام مقدار به سمت صف اشاره دارد، نه به سمت معاملهٔ شما. با'last'بازده خوشبینانه درمیآید، چون آخرین معامله معمولاً قابل اجرا نیست (سنجش نقدشوندگی).
وجه تضمین پایهٔ فروش (cashBlock)
پارامتر پنجم فقط روی پای 'sell' اثر دارد و تعیین میکند نمودار چه مبلغی را «قفلشده» حساب کند:
cashBlock یکی نباشند، دو بازدهِ متفاوت میبینید و هیچکدام غلط نیست — فقط دو مبنا دارند.true(یا ننوشتن آن) — وجه تضمین استاندارد فروش خودکار محاسبه میشود؛ حالت درست برای فروش بدون پوشش (نیکد)false— پا پوششداده است و وجه تضمین ندارد؛ مثل کاورکال (پوشش با سهم) یا پای فروشی که با یک پای خرید با اعمال پایینتر پوشش شده- عدد — همان مبلغ قفل میشود؛ برای وقتی خودتان وثیقهٔ اختلاف دو اعمال را حساب کردهاید (مثل پای فروش با اعمال پایینتر در کال اسپرد نزولی)
اگر در ستون خودتان «سرمایهٔ درگیر» را حساب میکنید، همان عدد را به cashBlock هم بدهید؛ وگرنه سرمایهای که ستون نشان میدهد با سرمایهٔ نمودار یکی نمیشود.
pos.build و pos.clear
pos.build(name, tradingFee?, exerciseFee?) پاهای انبارشده را به یک استراتژی تبدیل میکند و رشتهٔ آیکون نمودار را برمیگرداند:
pos.build انبار پاها را خالی میکند — در فرمولهای حلقهای، ترکیب دوم باید پاهایش را از نو اضافه کند، وگرنه ناقص ساخته میشود.name— نامی که در پنل نمودار دیده میشود (مثلاً'کاور ' + option.namad)tradingFee— باtrue، کارمزد معامله در محاسبات نمودار لحاظ میشودexerciseFee—'itm-only': کارمزد اعمال فقط برای پاهای ITM ·'all': برای همهٔ پاها · ننوشتن یا هر مقدار دیگر: بدون کارمزد اعمال
pos.clear() پاهای انبارشده را بدون ساختن نمودار دور میریزد — بهکار میآید وقتی وسط محاسبات میفهمید ردیف شرطها را ندارد.
هر بارpos.buildصدا زده شود، لیست پاها خالی میشود. برای استراتژی بعدی دوبارهpos.addبنویسید.
سه نمونه کد آماده
1) کاورکال + بازده ماهانه + نمودار
پای سهم و پای فروش کال در یک ستون، همراه بازده ماهانهٔ موقعیت:
عدد بازده در این مثال کارمزد را لحاظ نکرده است؛ نسخهٔ کامل با کارمزد معامله و اعمال: فرمولنویسی کاورد کال.
2) کال اسپرد صعودی — دو پا از یک زنجیره
با optionSE اعمال بعدی را بگیرید. پای خرید 'sell' و پای فروش 'buy' میگیرد، و پای فروش با اعمال بالاتر تحت پوشش پای خرید است:
نسخهٔ کامل با سربهسر، سرمایه و فیلترها: فرمولنویسی کال اسپرد صعودی.
3) باترفلای — استفاده از count
وقتی یک پا چند قرارداد دارد، پارامتر سوم را بدهید:
نمونهٔ حرفهایِ همین ساختار با سود دو دنباله و وجه تضمین: فرمولنویسی شورت کال باترفلای.
چهار اشتباه رایج
- ننوشتن
returnبرایpos.build— پاها ساخته میشوند ولی آیکون در سلول ظاهر نمیشود. - دادن
'last'به همهٔ پاها — بازده خوشبینانه و غیرقابلاجرا؛ سمت درست صف را بدهید یا پارامتر را حذف کنید. - رها کردن
cashBlockروی حالت پیشفرض برای پای پوششداده — سرمایهٔ نمودار بیدلیل بزرگ و بازده کوچک میشود. - فراموشکردن اینکه
pos.buildلیست را خالی میکند — در فرمولهای حلقهای، پاهای ترکیب بعدی را دوباره اضافه کنید.
قدم بعدی
- راهنمای فرمولنویسی — بخش pos · راهنمای فرمولنویسی و استراتژیهای آماده
- نمونه کدهای ستون · نمونه کدهای فیلتر
- فرمولنویسی با هوش مصنوعی — ساخت همین کدها با پرامپت
- استراتژیهای آماده — اگر نمیخواهید از صفر بنویسید
- تنظیمات ویژوال — تبدیل ثابتهای فرمول به پنجرهٔ ⚙️
فرمولها در کتابخانهٔ شخصی ذخیره میشوند و میتوانید هر کدام را بهعنوان یا ستون سفارشی به دیدهبان اضافه کنید.
جمعبندی
با pos.add پاهای استراتژی را در ستون تعریف کنید و با return pos.build('نام') آیکون نمودار سود/زیان بسازید. دو پارامتری که بیشترین تفاوت را در درستی اعداد میسازند price (سمت واقعی صف) و cashBlock (وجه تضمین پای فروش) هستند. فیلدها را با option و ua بهصورت camelCase بنویسید — مثل option.ti.buy1Price و ua.ti.lastPrice.
پس از کلیک روی آیکون در ستون، برای تحلیل یونانیها و سناریوهای what-if راهنمای نمودار استراتژی را ببینید.