رسم نمودار استراتژی

رسم نمودار سود و زیان استراتژی از دل فرمول‌نویسی دیده‌بان: پارامترهای کامل pos.add (سمت، تعداد، قیمت، وجه تضمین)، pos.build و pos.clear، با نمونه کاورکال، کال اسپرد صعودی و باترفلای.

نویسنده: آپشن بازتاریخ انتشار: 1405/02/01آخرین به‌روزرسانی: 1405/05/2517 دقیقه مطالعه
اشتراک‌گذاری:

در دیده‌بان، هر فرمولی که پاهای یک استراتژی را با 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?)

پنج پارامتر، سه‌تایشان اختیاری pos.add(position, namad, count?, price?, cashBlock?) 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 را ننویسید، موتور سمت واقعی سفارش را انتخاب می‌کند: پای خرید با سرخط عرضه (برای خرید فوری باید عرضه را بزنید) و پای فروش با سرخط تقاضا. یعنی در بیشتر فرمول‌ها نیازی به دادن این پارامتر نیست.

مقدارِ price به سمتِ صف اشاره دارد، نه به سمتِ شما پای خرید 'sell' یعنی سرخط عرضه قیمتی که با آن می‌خرید پای فروش 'buy' یعنی سرخط تقاضا قیمتی که با آن می‌فروشید بله، برعکسِ چیزی است که انتظار دارید ساده‌ترین راه: پارامتر را اصلاً ننویسید — موتور خودش درست انتخاب می‌کند و اگر برعکس بدهید، خطایی نمی‌گیرید — فقط بازده خوش‌بینانه می‌شود
برای پای خرید 'sell' و برای پای فروش 'buy' — چون مقدار به سمتِ صف اشاره دارد. ساده‌ترین راه: ننوشتنش.
چرا «آخرین قیمت» برای همهٔ پاها بد است سرخط تقاضا سرخط عرضه آخرین معامله — جایی وسط با آخرین قیمت، هر پا کمی بهتر از واقعیت قیمت می‌خورد و در ترکیب چندپایه، این «کمی»ها روی هم جمع می‌شوند نتیجه بازده‌ای است که خوب به نظر می‌رسد و اجرا نمی‌شود
آخرین معامله جایی وسطِ دو سرخط است، پس هر پا کمی بهتر از واقعیت قیمت می‌خورد — و در ترکیب چندپایه این «کمی»ها روی هم جمع می‌شوند.
مقدارقیمت انتخابی
'buy' یا 'bid'سرخط تقاضا (buy1Price) — قیمتی که با آن می‌فروشید
'sell' یا 'ask'سرخط عرضه (sell1Price) — قیمتی که با آن می‌خرید
'last' یا 'close'قیمت آخرین معامله
'end'قیمت پایانی
عددهمان عدد — مثلاً قیمت واقعی ورود خودتان به موقعیت
نکتهٔ ضدشهودی که بیشترین اشتباه را می‌سازد: برای پای خرید باید 'sell' بدهید و برای پای فروش باید 'buy' — چون نام مقدار به سمت صف اشاره دارد، نه به سمت معاملهٔ شما. با 'last' بازده خوش‌بینانه درمی‌آید، چون آخرین معامله معمولاً قابل اجرا نیست (سنجش نقدشوندگی).

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

پارامتر پنجم فقط روی پای 'sell' اثر دارد و تعیین می‌کند نمودار چه مبلغی را «قفل‌شده» حساب کند:

پارامتر پنجم، فقط روی پای فروش true وجه تضمین استاندارد، خودکار حساب می‌شود پیش‌فرض — درست برای فروش بدون پوشش false پا پوشش دارد و وجه تضمین ندارد مثل کاورکال، یا پای فروشِ پوشش‌شده با پای خرید یک عدد همان مبلغ قفل می‌شود وقتی خودتان وثیقهٔ اختلاف دو اعمال را حساب کرده‌اید پای پوشش‌داده روی پیش‌فرض، سرمایه را بی‌دلیل بزرگ می‌کند و بازده را کوچک — یعنی ردیف‌های خوب ته جدول می‌روند
پیش‌فرض برای فروش بدون پوشش درست است؛ پای پوشش‌داده که رویش بماند، سرمایه بی‌دلیل بزرگ و بازده کوچک می‌شود — و ردیف‌های خوب ته جدول می‌روند.
سرمایهٔ ستون و سرمایهٔ نمودار باید یکی باشند در ستون سرمایهٔ درگیر را خودتان حساب کرده‌اید در نمودار از cashBlock می‌آید نه از ستون شما اگر این دو یکی نباشند، ستون یک بازده می‌گوید و نمودار بازدهی دیگر و هیچ‌کدام هم غلط نیست — فقط دو مبنای متفاوت دارند پس همان عددی که در ستون حساب کردید، به cashBlock هم بدهید تا کلیک روی آیکون، همان چیزی را نشان دهد که در سلول دیدید
اگر سرمایهٔ ستون و cashBlock یکی نباشند، دو بازدهِ متفاوت می‌بینید و هیچ‌کدام غلط نیست — فقط دو مبنا دارند.
  • true (یا ننوشتن آن) — وجه تضمین استاندارد فروش خودکار محاسبه می‌شود؛ حالت درست برای فروش بدون پوشش (نیکد)
  • false — پا پوشش‌داده است و وجه تضمین ندارد؛ مثل کاورکال (پوشش با سهم) یا پای فروشی که با یک پای خرید با اعمال پایین‌تر پوشش شده
  • عدد — همان مبلغ قفل می‌شود؛ برای وقتی خودتان وثیقهٔ اختلاف دو اعمال را حساب کرده‌اید (مثل پای فروش با اعمال پایین‌تر در کال اسپرد نزولی)
اگر در ستون خودتان «سرمایهٔ درگیر» را حساب می‌کنید، همان عدد را به cashBlock هم بدهید؛ وگرنه سرمایه‌ای که ستون نشان می‌دهد با سرمایهٔ نمودار یکی نمی‌شود.

pos.build و pos.clear

pos.build(name, tradingFee?, exerciseFee?) پاهای انبارشده را به یک استراتژی تبدیل می‌کند و رشتهٔ آیکون نمودار را برمی‌گرداند:

هر build، انبار پاها را خالی می‌کند 1 pos.add پاها انبار می‌شوند 2 pos.build می‌سازد و خالی می‌کند 3 ترکیب بعدی از صفر add کنید 4 pos.clear دور ریختن بدون ساخت در فرمول‌های حلقه‌ای این نکته بیشترین دردسر را می‌سازد ترکیب دوم پاهای خودش را ندارد و نمودارش ناقص ساخته می‌شود و اگر وسط محاسبه فهمیدید ردیف شرط‌ها را ندارد، clear کنید وگرنه پاهای نیمه‌کاره به ترکیب بعدی می‌چسبند
pos.build انبار پاها را خالی می‌کند — در فرمول‌های حلقه‌ای، ترکیب دوم باید پاهایش را از نو اضافه کند، وگرنه ناقص ساخته می‌شود.
  • name — نامی که در پنل نمودار دیده می‌شود (مثلاً 'کاور ' + option.namad)
  • tradingFee — با true، کارمزد معامله در محاسبات نمودار لحاظ می‌شود
  • exerciseFee'itm-only': کارمزد اعمال فقط برای پاهای ITM · 'all': برای همهٔ پاها · ننوشتن یا هر مقدار دیگر: بدون کارمزد اعمال

pos.clear() پاهای انبارشده را بدون ساختن نمودار دور می‌ریزد — به‌کار می‌آید وقتی وسط محاسبات می‌فهمید ردیف شرط‌ها را ندارد.

هر بار pos.build صدا زده شود، لیست پاها خالی می‌شود. برای استراتژی بعدی دوباره pos.add بنویسید.

سه نمونه کد آماده

1) کاورکال + بازده ماهانه + نمودار

پای سهم و پای فروش کال در یک ستون، همراه بازده ماهانهٔ موقعیت:

if (!option.ti.buy1Price || option.ti.buy1Price <= 0) return ''; // سرمایهٔ درگیر و دریافتی در سررسید let block = (ua.ti.lastPrice - option.ti.buy1Price) * option.size; let receive = (option.strike - ua.ti.lastPrice + option.ti.buy1Price) * option.size; if (block <= 0) return ''; let mp = roundNumber(monthlyProfit((receive / block) * 100, option.daysUntilMaturity), 1); // پاها: خرید سهم + فروش کال (پوشش‌داده با سهم ⇒ cashBlock = false) pos.add('buy', ua.namad); pos.add('sell', option.namad, 1, 'buy', false); return style(mp + '%', '#16a34a', '', 'بازده ماهانه') + ' ' + pos.build('کاور ' + option.namad, true, 'itm-only');

عدد بازده در این مثال کارمزد را لحاظ نکرده است؛ نسخهٔ کامل با کارمزد معامله و اعمال: فرمول‌نویسی کاورد کال.

2) کال اسپرد صعودی — دو پا از یک زنجیره

با optionSE اعمال بعدی را بگیرید. پای خرید 'sell' و پای فروش 'buy' می‌گیرد، و پای فروش با اعمال بالاتر تحت پوشش پای خرید است:

let upper = optionSE(1); if (!upper) return ''; pos.add('buy', option.namad, 1, 'sell'); pos.add('sell', upper.namad, 1, 'buy', false); return pos.build('کال اسپرد صعودی ' + option.namad, true, 'itm-only');

نسخهٔ کامل با سربه‌سر، سرمایه و فیلترها: فرمول‌نویسی کال اسپرد صعودی.

3) باترفلای — استفاده از count

وقتی یک پا چند قرارداد دارد، پارامتر سوم را بدهید:

let mid = optionSE(1); let high = optionSE(2); if (!mid || !high) return ''; if (mid.strike - option.strike !== high.strike - mid.strike) return ''; pos.add('buy', option.namad, 1, 'sell'); pos.add('sell', mid.namad, 2, 'buy', false); pos.add('buy', high.namad, 1, 'sell'); return pos.build('لانگ کال باترفلای ' + option.namad, true, 'itm-only');

نمونهٔ حرفه‌ایِ همین ساختار با سود دو دنباله و وجه تضمین: فرمول‌نویسی شورت کال باترفلای.

چهار اشتباه رایج

چهار اشتباهی که هیچ‌کدام خطا نمی‌دهند نبودِ return پاها ساخته می‌شوند ولی آیکون در سلول نیست شبیه این است که کد کار نکرده آخرین قیمت برای همه بازده خوش‌بینانه و غیرقابل‌اجرا و هیچ نشانه‌ای هم ندارد cashBlock پیش‌فرض روی پای پوشش‌داده — سرمایه بی‌دلیل بزرگ فراموشیِ خالی شدن انبار در حلقه، ترکیب بعدی ناقص می‌شود هر چهارتا بی‌صدا خراب می‌کنند — پس خروجی را روی یک ردیف معلوم بسنجید
هر چهار اشتباه بی‌صدا خراب می‌کنند و هیچ‌کدام خطا نمی‌دهند — پس خروجی را روی یک ردیف با مقدار معلوم بسنجید.
  1. ننوشتن return برای pos.build — پاها ساخته می‌شوند ولی آیکون در سلول ظاهر نمی‌شود.
  2. دادن 'last' به همهٔ پاها — بازده خوش‌بینانه و غیرقابل‌اجرا؛ سمت درست صف را بدهید یا پارامتر را حذف کنید.
  3. رها کردن cashBlock روی حالت پیش‌فرض برای پای پوشش‌داده — سرمایهٔ نمودار بی‌دلیل بزرگ و بازده کوچک می‌شود.
  4. فراموش‌کردن این‌که pos.build لیست را خالی می‌کند — در فرمول‌های حلقه‌ای، پاهای ترکیب بعدی را دوباره اضافه کنید.

قدم بعدی

فرمول‌ها در کتابخانهٔ شخصی ذخیره می‌شوند و می‌توانید هر کدام را به‌عنوان فیلتر یا ستون سفارشی به دیده‌بان اضافه کنید.

جمع‌بندی

با pos.add پاهای استراتژی را در ستون تعریف کنید و با return pos.build('نام') آیکون نمودار سود/زیان بسازید. دو پارامتری که بیشترین تفاوت را در درستی اعداد می‌سازند price (سمت واقعی صف) و cashBlock (وجه تضمین پای فروش) هستند. فیلدها را با option و ua به‌صورت camelCase بنویسید — مثل option.ti.buy1Price و ua.ti.lastPrice.

پس از کلیک روی آیکون در ستون، برای تحلیل یونانی‌ها و سناریوهای what-if راهنمای نمودار استراتژی را ببینید.

مقالات مرتبط

ستون محاسباتی در دیده‌بان | ساخت ستون با فرمول‌نویسی و مثال

چطور در دیده‌بان آپشن‌باز ستون محاسباتی بسازید: از دکمه فرمول‌نویسی تا نوع ستون، return، افزودن به جدول، و چند مثال عملی (اسپرد، ارزش ذاتی، فاصله تا اعمال، دلتا).

نمونه کدهای کاربردی در ایجاد ستون

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

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

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

فرمول‌نویسی کاورد کال | Covered Call در دیده‌بان

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

فرمول‌نویسی کال اسپرد صعودی | Bull Call Spread در دیده‌بان

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

فرمول‌نویسی شورت کال باترفلای | Short Call Butterfly در دیده‌بان

آموزش فرمول‌نویسی شورت کال باترفلای در دیده‌بان: حلقه optionSE برای K2 و K3، اعتبار خالص با سرخط درست، سه ناحیه کارمزد اعمال، دو سربه‌سر، وجه تضمین پایه K1 و pos.add.

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

آموزش سیستم فرمول‌نویسی دیده‌بان: کارگاه شخصی و کتابخانه استراتژی‌های آماده اختیار معامله — هر دو با همان موتور فرمول؛ افزودن به جدول، فیلتر و میزکار.

فرمول‌نویسی با هوش مصنوعی | پرامپت آماده برای ChatGPT، Claude و Cursor

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

راهنمای نمودار استراتژی اختیار معامله | ساخت و تحلیل سود و زیان

آموزش کامل نمودار استراتژی آپشن‌باز: ساخت چندپایه، قیمت روز، مقایسه با نمودار دوم، ورود اکسل کارگزاری، what-if، یونانی‌ها، جدول ماتریس، کارمزد، ذخیره و اتصال به فرمول‌نویسی — برای مبتدی تا حرفه‌ای.

راهنمای نمودار تاریخی استراتژی آپشن | تحلیل سود و زیان قبل از سررسید

آموزش نمودار تاریخی در نمودار استراتژی آپشن‌باز: منحنی زمانی بلک-شولز، اسلایدر تاریخ و IV، حالت چند منحنی (امروز/میانه/سررسید) و تفاوت با What-if.

راهنمای جدول سود و زیان استراتژی آپشن | نمای ماتریس قیمت×تاریخ

آموزش جدول heatmap سود/زیان استراتژی آپشن: خواندن ماتریس قیمت×تاریخ، مثال کامل کاوردکال گام‌به‌گام، ریال/درصد/ریسک و ردیف زنده.

استراتژی لانگ کال باترفلای Long Call Butterfly | شرط روی آرامش با ریسک بسته

لانگ کال باترفلای چیست و چه چیزی را با چه چیزی معامله می‌کند: ساختار چهار قرارداد روی سه اعمال، چرا نسبت 1:2:1 است، قلهٔ سود روی اعمال میانی، دو نقطهٔ سربه‌سر و پنجرهٔ سود، مثال عددی کامل، انتخاب پهنای بال‌ها، زمان و نوسان، و زمان درست خروج.

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

آموزش ساخت پرتفوی اختصاصی، تعریف فیلدهای شخصی (تعداد، قیمت خرید/فروش، یادداشت) و دسترسی پویا به آن‌ها در فرمول‌ها و ستون‌های دیده‌بان.

دیدگاه‌ها و پرسش‌ها

اگر سوال یا ابهامی در رابطه با این مطلب دارید، همین‌جا بپرسید؛ کارشناسان ما پاسخ می‌دهند.

تجربه یا نکته‌ای دارید؟ نوشتنش به بقیهٔ کاربران هم کمک می‌کند.

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

هنوز پرسشی ثبت نشده — شما اولین نفر باشید!

سوال یا نظرتان را در فرم بالا بنویسید؛ پاسخی که می‌گیرید برای کاربران بعدی هم می‌ماند.