سطوح نوسانات ضمنی را با استفاده از داده های آزادانه و R برای بهبود ارزیابی ریسک گزینه های خود محاسبه و تجسم کنید
توجه داشته باشید از ویرایشگران Data Science: در حالی که ما به نویسندگان مستقل اجازه می دهیم مقالات را مطابق با قوانین و دستورالعمل های خود منتشر کنند ، ما سهم هر نویسنده را تأیید نمی کنیم. شما نباید بدون اینکه به دنبال مشاوره حرفه ای باشید ، به آثار نویسنده اعتماد کنید. برای جزئیات بیشتر به شرایط خواننده ما مراجعه کنید.
سلب مسئولیت
این مقاله مشاوره سرمایه گذاری را ارائه نمی دهد و هیچ چیز در آن نباید به عنوان مشاوره سرمایه گذاری تفسیر شود. این اطلاعات و آموزش را برای افرادی فراهم می کند که می توانند بدون مشاوره تصمیمات سرمایه گذاری خود را بگیرند.
اطلاعات موجود در این مقاله نیست ، و نباید به عنوان پیشنهاد یا توصیه برای خرید یا فروش یا درخواست پیشنهاد یا توصیه برای خرید یا فروش اوراق بهادار خوانده شود. این توصیه نمی شود ، و نباید به عنوان توصیه ای برای استفاده از هر استراتژی سرمایه گذاری خاص باشد.
ظهور اخیر کارگزاری های کم یا بدون هزینه مانند Robinhood منجر به افزایش قابل توجه قراردادهای گزینه معاملاتی سرمایه گذاران خرده فروشی شده است. این ابزارهای مالی ذاتاً از سهام اصلی خود ریسک پذیر هستند و این ریسک فقط با استفاده از قیمت گزینه ها به طور مستقیم قابل اندازه گیری نیست. بنابراین باید از اقدامات مختلفی برای ارزیابی مناسب خطر استفاده شود. یکی از این اندازه گیری ها ، سطح نوسانات ضمنی است.
در این مقاله ، من فرآیند به دست آوردن سطح نوسانات ضمنی فعلی را برای گزینه های سهام با استفاده از داده های آزاد در دسترس و R. شرح خواهم داد. نتیجه می تواند برای مقایسه ریسک در سهام های مختلف و قراردادهای گزینه قیمت استفاده شود. من همچنین نشان خواهم داد که چگونه می توانیم یک نمودار تعاملی از سطح نوسانات را برای تجزیه و تحلیل فوری ایجاد کنیم یا آن را در داشبورد نمایش دهیم.
1. معرفی
قبل از اینکه بتوانیم مراحل لازم را برای به دست آوردن و ترسیم سطح نوسانات ضمنی مانند مورد فوق انجام دهیم ، باید ابتدا بتوانیم به چند سؤال پاسخ دهیم:
- نوسانات ضمنی چیست و چرا مهم است؟
- نوسانات ضمنی چگونه محاسبه می شود؟
- سطح نوسانات چیست؟
توجه: اگر قبلاً با مفهوم سطوح نوسانات ضمنی و قیمت گذاری گزینه آشنا هستید ، می توانید به بخش 2 بروید. در بخش زیر برخی از مفاهیم کلیدی ، نمادها و قطعه های کد را معرفی می کند که در طول بقیه مقاله استفاده می شود. با این حال ، کد کامل را می توان در پایان مقاله یافت.
نوسانات ضمنی چیست و چرا مهم است؟
به گفته ویکی پدیا ، نوسانات ضمنی به شرح زیر تعریف شده است:
نوسانات ضمنی (IV) از یک قرارداد گزینه این است که مقدار نوسانات ابزار زیربنایی است که با ورود به یک مدل قیمت گذاری گزینه ، یک ارزش نظری برابر با قیمت فعلی بازار گزینه را باز می گرداند.
به زبان ساده تر ، IV یک اقدام برای نوسانات آینده مورد انتظار قیمت سهام بر اساس سهام موجود در قیمت های موجود در گزینه های موجود است. این معمولاً به عنوان یک درصد درصد بیان می شود که نشان دهنده محدوده انحراف استاندارد سالانه 1 سالانه برای سهام است.
به عنوان مثال ، اگر اپل (AAPL) در حال حاضر در 119. 02 با IV 25 ٪ معامله می شود ، این بدان معنی است که انتظار می رود با احتمال 68 ٪ (مربوط به 1 انحراف استاندارد توزیع عادی) قیمت سهام خود در یک سالاز هم اکنون بین 89. 27 (119. 02 * (1 - 0. 25)) و 148. 78 (119. 02 * (1 + 0. 25)) است.
بنابراین چرا نوسانات ضمنی مهم است؟IV ایده ای در مورد چگونگی ارزیابی شرکت کنندگان در بازار عدم اطمینان در قیمت سهام به ما می دهد. بنابراین این یک شاخص خوب برای ریسک اساسی عمومی سهام و همچنین پیش بینی کننده محدوده معاملات مورد انتظار است. علاوه بر این ، IV یک سهام به ما امکان می دهد تا با پارامترهایی که در حال حاضر در بازار قابل مشاهده نیستند ، گزینه های قیمت را قیمت گذاری کنیم. سرانجام ، می توان از IV برای ارزیابی مقدار نسبی بین گزینه های موجود در سهام مختلف استفاده کرد. از آنجا که قیمت یک گزینه به قیمت زیرین بستگی دارد ، برای مقایسه بین گزینه های موجود در سهام مختلف مناسب نیست. به همین دلیل است که قیمت های گزینه نیز اغلب از نظر نوسانات و نه قیمت نقل می شوند.
نوسانات ضمنی چگونه محاسبه می شود؟
نوسانات ضمنی به طور کلی با حل فرمول قیمت گذاری معکوس یک مدل قیمت گذاری گزینه محاسبه می شود. این بدان معنی است که به جای استفاده از مدل قیمت گذاری برای محاسبه قیمت یک گزینه ، قیمتی که در بازار مشاهده می شود به عنوان ورودی استفاده می شود و خروجی نوسانات است.
بهترین مدل قیمت گذاری گزینه شناخته شده مدل عمومی Scholes Merton است. اکنون در حالی که این مدل سهم نسبتاً خوبی از انتقادات خود را در طول سال ها جلب کرده است ، به دلیل سادگی و راه حل های بسته آن ، در عمل بسیار مورد استفاده قرار می گیرد و ما در طول این مقاله از آن استفاده خواهیم کرد.
راه حل های فرم بسته برای تماس ها و قرار دادن اروپایی عبارتند از:
- S قیمت فعلی سهام است
- X قیمت اعتصاب گزینه ها است
- σ نوسانات ضمنی است
- b یک پارامتر هزینه تعمیم یافته است (شامل نرخ بهره بدون ریسک، بازده سود سهام در صورت وجود)
- t زمان بلوغ در سال است
- و N(x) تابع توزیع نرمال تجمعی است
این به راحتی در R پیاده سازی می شود.
در حالی که مدل قیمت گذاری یک راه حل بسته به ما ارائه می دهد، مدل قیمت گذاری معکوس که برای به دست آوردن IV استفاده می شود چنین راه حلی ندارد. بنابراین باید از یک بهینه ساز برای محاسبه IV استفاده کنیم. برای این کار، یک تابع هدف را در R پیاده سازی می کنیم و سپس از تابع optimize برای بدست آوردن IV استفاده می کنیم.
بیایید بررسی کنیم که آیا پیاده سازی ما با استفاده از برخی از داده های دنیای واقعی کار می کند. ما از اپل (AAPL) به عنوان مثال استفاده خواهیم کرد. ما می توانیم تمام داده های مورد نیاز خود را از یاهو فاینانس دریافت کنیم، اطلاعات سهام اینجاست و آخرین قیمت های آپشن را می توان در اینجا پیدا کرد. در زیر یک اسکرین شات از داده هایی که در مثال استفاده خواهیم کرد، آمده است.
از اسکرین شات می بینیم که قیمت فعلی سهام (در 16 اکتبر) 119. 02 است، اولین قیمت اعتصاب در لیست 125، قیمت اختیار معامله (ما از قیمت درخواستی استفاده می کنیم) 3. 55، زمان سررسید 28 روز است وIV نمایش داده شده 45. 12٪ است. تنها چیزی که برای محاسبه IV خودمان کم است، نرخ بهره بدون ریسک است. به عنوان یک تقریب، نرخ اسناد خزانه 3 ماهه ایالات متحده را در نظر می گیریم که در حال حاضر 0. 11٪ است (اطلاعات را می توانید در اینجا بیابید).
با وصل کردن این مقادیر به تابع بهینه سازی، موارد زیر به دست می آید:
بهینه سازی ما IV 45. 11% در مقابل 45. 12% نمایش داده شده توسط yahoo finance به دست می دهد. یک تطابق بسیار خوب (و به نظر می رسد که یاهو مالی از مدل عمومی بلک اسکولز نیز استفاده می کند).
توجه: احتمالا متوجه شده اید که ما بازده سود تقسیمی q را در بهینه سازی خود 0 قرار داده ایم و همان نتیجه یاهو فاینانس را به دست آورده ایم. هنگام بررسی بازده سود سهام اپل، می توان دید که 0 نیست. این نشان می دهد که داده های ارائه شده توسط Yahoo finance ممکن است کاملاً دقیق نباشد. بنابراین ما به محاسبه خودمان پایبند خواهیم بود.
با نگاهی به داده های نمونه بالا، احتمالاً مشاهده کرده اید که نوسانات ضمنی با قیمت اعتصاب و همچنین هنگام انتخاب تاریخ انقضای متفاوت تغییر می کند. این مشاهدات در نهایت ما را به سطح ناپایداری ضمنی هدایت می کند.
سطح نوسانات چیست؟
یکی از کاستی های اصلی مدل اصلی Scholes Merton این است که این امر نوسانات مداوم را در قیمت های اعتصاب فرض می کند. با این حال ، در عمل نوسانات مختلف برای قیمت های مختلف اعتصاب مشاهده می شود. این به عنوان لبخند به اصطلاح نوسانات شناخته می شود. همین مورد را می توان برای گزینه های سررسید مختلف مشاهده کرد. بنابراین نوسانات ضمنی در طول 2 بعد ، قیمت اعتصاب و زمان بلوغ تغییر می کند. از آنجا که قیمت اعتصاب به قیمت سهام زیرین بستگی دارد ، برای مقایسه در سهام مختلف مناسب نیست. به جای قیمت اعتصاب ، از گزینه های پول استفاده می شود. این به سادگی قیمت سهام / قیمت اعتصاب برای تماس ها و قیمت اعتصاب / قیمت سهام برای قرار دادن است.
این سطح نوسانات را تولید می کند که به گزینه های دقیق قیمت و ارزیابی عدم اطمینان اساسی قیمت سهام نیاز دارد.
پس از این مقدمه کاملاً طولانی ، ما در نهایت به چگونگی دستیابی به سطوح نوسانات ضمنی از داده های واقعی بازار و مقایسه آن در سهام مختلف خواهیم پرداخت.
2. داده ها
بر خلاف داده های تاریخی سهام ، زنجیره های گزینه تاریخی به راحتی قابل دستیابی نیستند (به ویژه به صورت رایگان). با این حال ، از آنجا که ما بیشتر نگران وضعیت فعلی سطح نوسانات ضمنی برای قیمت گذاری و ارزیابی ریسک هستیم ، داده های فعلی انجام می شود.
همانطور که در بخش مقدمه نشان داده شده است ، یاهو مالی ما را تحت پوشش قرار داده است ، به عنوان مثالمی توانید زنجیرهای گزینه فعلی را برای Apple در اینجا پیدا کنید. برای بارگذاری داده ها در R ، می توانیم از عملکرد GetOptionChain از بسته QuantMod استفاده کنیم یا خودمان آن را خراش دهیم. من تصمیم گرفتم که دومی را انجام دهم زیرا عملکرد GetOptionChain ستون IV ارائه شده توسط Yahoo Finance را برنگرداند و می خواستم این مقادیر را با مقادیر محاسبه شده توسط خودم مقایسه کنم. همچنین ، همیشه خوب است که WebScraping را تمرین کنید!
کد زیر از بسته QuantMod برای به دست آوردن اطلاعات عمومی سهام و بسته RVEST برای خراش دادن زنجیره های گزینه استفاده می کند. برای جلوگیری از نقاط داده غیرقابل اعتماد ، گزینه هایی را حذف می کنیم که طی 5 دقیقه آخر سهام آخرین روز معاملات معامله نشده است (از آنجا که ما از قیمت بسته شدن سهام برای محاسبه IV استفاده می کنیم) و همچنین مرزهای پول را تعیین می کنیم (بین 0. 85 و1. 15) و زمان بلوغ (بین 7 روز تا 6 ماه).
این به ما دو قاب داده می دهد ، یکی برای گزینه های تماس و دیگری برای گزینه های Put.
3. محاسبه نوسانات ضمنی
در مرحله بعد ، ما نوسانات ضمنی را بر اساس داده های داده شده خودمان محاسبه خواهیم کرد. ممکن است از خود بپرسید که اگر فقط بتوانیم داده ها را از مالی یاهو دریافت کنیم ، این کار را انجام می دهیم. ما این کار را به دلایل زیر انجام می دهیم:
- ما می خواهیم خودمان بتوانیم این محاسبه را انجام دهیم تا بتوانیم از همان روش برای گزینه هایی استفاده کنیم که IV را در دسترس نداریم
- همانطور که در مقدمه ذکر شد ، به نظر می رسد که داده ها بدون استفاده از سود سهام محاسبه می شوند
ما مثال خود را با اپل ادامه خواهیم داد و IV را با استفاده از روش شرح داده شده در مقدمه و بدون استفاده از سود سهام محاسبه خواهیم کرد. به عنوان یک یادآوری ، در اینجا کدی است که ما از آن استفاده خواهیم کرد.
به عنوان یک بررسی ، می توانیم تفاوت بین IV به دست آمده توسط محاسبه ما و داده های مالی یاهو را ترسیم کنیم.
ما می توانیم مشاهده کنیم که تفاوت مطلق بین نوسانات ضمنی حداقل است و با زمان به بلوغ کاهش می یابد. این به دلیل این واقعیت فوق الذکر است که ما IV را بر اساس قیمت بسته شدن محاسبه می کنیم در حالی که آخرین قیمت گزینه معامله شده براساس قیمت سهام کمی متفاوت است. این اثر برای زمان های کوتاه تر به بلوغ قوی تر است.
در این مثال ما سود سهام را درج نکرده ایم. با این حال ، با این حال ، ما آن را درج خواهیم کرد. خوشبختانه ، داده ها را می توان به راحتی با استفاده از عملکرد GetQuote از بسته QuantMod بدست آورد. ما می توانیم اکنون محاسبه IV را دوباره انجام دهیم و از عملکرد Acast از بسته Reshape2 استفاده کنیم تا شبکه های IV خود را برای تماس و قرار دادن ایجاد کنیم.
بازرسی از شبکه های حاصل ، نشان می دهد که ما به دلیل نداشتن قیمت گزینه برای همه اعتصابات/سررسید موجود ، NA های زیادی داریم:
برای پر کردن مقادیر گمشده ، باید سطح خود را درون یابی کنیم.
4- درون یابی سطح
برای انجام درون یابی ، از عملکرد اینترپ از بسته Akima استفاده خواهیم کرد. این یک درون یابی دو متغیره شبکه برای داده های نامنظم ، اساساً دقیقاً همان چیزی است که ما نیاز داریم.
مراحلی که برای به دست آوردن سطح کامل خود باید انجام دهیم به شرح زیر است:
- مختصات را برای هر مقدار گمشده دریافت کنید
- یک شبکه با حداکثر بعد 11x11 را در اطراف مقدار گمشده دریافت کنید
- از این شبکه استفاده کنید تا مقدار گمشده را با استفاده از درون یابی خطی یا spline درون یابی کنید
- مقدار گمشده را با مقدار درون یابی جایگزین کنید
یک مثال کد با توضیحات بیشتر در مورد مقادیر تماس گمشده را می توان در زیر یافت.
و در آنجا ما آن را داریم ، سطح نوسانات کامل ضمنی برای گزینه های تماس در سهام اپل! ما می توانیم نتیجه خود را در یک نمودار تعاملی خوب با استفاده از بسته Plotly ترسیم کنیم.
ما می توانیم از همان کد برای به دست آوردن سطوح برای سایر سهام ، به عنوان مثال تسلا استفاده کنیم.
ما می توانیم بلافاصله تفاوت بین دو سهام را ببینیم ، تسلا ذاتاً از اپل بی ثبات است و در سطح نوسانات نشان می دهد. به سادگی با نگاهی به قیمت های گزینه این امر را نشان نمی دهد زیرا آنها به قیمت سهام زیرین بستگی دارند و مقایسه آنها بین سهام مختلف را غیرممکن می کند.
5- نتیجه گیری
در این مقاله ، من فرایندی را برای به دست آوردن سطح نوسانات ضمنی فعلی برای گزینه های سهام با استفاده از داده های آزاد در دسترس و R. به تفصیل شرح داده ام. این می تواند برای مقایسه ریسک در سهام های مختلف و قراردادهای گزینه قیمت گذاری استفاده شود. با استفاده از Plotly ، می توانیم برای تجزیه و تحلیل فوری ، نمودارهای تعاملی از سطح نوسانات ایجاد کنیم یا آن را در داشبورد نمایش دهیم.
لطفاً اگر بازخورد یا پیشنهادی برای بهبود آنچه در این پست توضیح داده ام ، به من اطلاع دهید!< Span> ما می توانیم از همان کد برای به دست آوردن سطوح برای سهام دیگر ، به عنوان مثال تسلا استفاده کنیم.
بازار رمزارزها...
ما را در سایت بازار رمزارزها دنبال می کنید
برچسب :
نویسنده : محمود کیانوش
بازدید : <-PostHit->
تاريخ : جمعه
8 ارديبهشت
1402 ساعت: 17:27