این مثال نشان می دهد که چگونه می توان از MATLAB® برای ایجاد نمونه کارها از اوراق بهادار مشتقات نرخ بهره استفاده کرد و آن را با استفاده از مدل نرخ بهره Black-Karasinski قیمت گذاری کرد. این مثال همچنین برخی از استراتژی های محافظت را برای به حداقل رساندن قرار گرفتن در معرض حرکات بازار نشان می دهد.
ساختار اصطلاح نرخ بهره را بر اساس داده های گزارش شده ایجاد کنید
ساختار نرخ های PEC یک ساختار مدت نرخ بهره است که مشخصات نرخ اولیه را که نرخ درخت از آن حاصل می شود ، تعریف می کند. از اطلاعات مربوط به نرخ کوپن صفر سالانه در جدول زیر استفاده کنید تا ساختار نرخ ها را جمع کنید.
از نرخ 27 فوریه 2007 27 فوریه 2008 0. 0493 27 فوریه 2007 27 فوریه 2009 0. 0459 27 فوریه 2007 27 فوریه 2010 0. 0450 27 فوریه 2012 0. 0446 27 فوریه 27 فوریه 2014 0. 0445 27 فوریه 2017 0. 0450 27 فوریه 2007 27 فوریه 27 فوریه فوریه2027 0. 0473
این داده ها را می توان با استفاده از جعبه ابزار DataFeed از صفحه انتشار آماری فدرال رزرو بازیابی کرد. در این حالت ، DataFeed Toolbox ™ به FRED® وصل می شود و نرخ یادداشت های خزانه زیر را به عقب می اندازد.
اصطلاحات نماد ====== ===== 1 = DGS1 2 = DGS2 3 = DGS3 5 = DGS5 7 = DGS7 10 = DGS10 20 = DGS20
ایجاد شیء اتصال:
ج = فرد ؛
لیست نماد واکشی را ایجاد کنید:
frednames =<. 'DGS1'; . ٪ 1 سال 'DGS2'; . ٪ 2 سال 'DGS3'; . ٪ 3 سال "DGS5"; . 5 سال "DGS7"; . 7 سال 'DGS10'; . 10 سال 'DGS20'>; 20 سال
شرایط را تعریف کنید:
اصطلاحات = [1 ؛. ٪ 1 سال2. ٪ 2 سال3 ؛. ٪ 3 سال5 ؛. 5 سال7 ؛. 7 سال10 ؛. 10 سال20] ؛20 سال
StartDate را روی 27 فوریه 2007 تنظیم کنید:
startDate = datenum ('' -27-2007 ') ؛fredret = fetch (c ، frednames ، startdate) ؛
ارزش گذاری را بر اساس StartDate تنظیم کنید:
ارزش گذاری = startDate ؛
enddates = [] ؛
نرخ = [] ؛
Enddates را ایجاد کنید:
برای idx = 1: طول (فردرت)
٪ نرخ های مرتبط با 27 فوریه 2007 را بکشید. تمام نرخ های فرد به عنوان نرخ درصد کاهش می یابد = [نرخ ها ؛بشرفردرت (idx) . data (1،2) / 100] ؛
٪ enddates را با افزودن اصطلاح به سال ٪ startdate enddates = [enddates ؛بشردور (Datenum (. سال (StartDate)+ اصطلاحات (idx ، 1) ، ماه (startDate). روز (startDate)))] ؛
برای ایجاد TAGESPEC با داده های زیر از function intenvset استفاده کنید:
ترکیب = 1 ؛StartDate = DateTime (2007،2،27) ؛نرخ = [0. 0493 ؛0. 0459 ؛0. 0450 ؛0. 0446 ؛0. 0446 ؛0. 0450 ؛0. 0473] ؛enddates = [DateTime (2008،2،27) ؛DateTime (2009،2،27) ؛DateTime (2010،2،27) ؛DateTime (2012،2،27) ؛DateTime (2014،2،27) ؛DateTime (2017،2،27) ؛DateTime (2027،2،27)] ؛ارزش گذاری = startDate ؛ratespec = intenvset ("ترکیب"، ترکیب ،"Startdates"، تاریخ شروع،. "enddates"، enddates ،"نرخ"، نرخ ،"ارزش گذاری"، ارزش گذاری)نرخ های pec =ساختار با زمینه ها:Finobj: 'TAGESPEC' ترکیب: 1 دیسک: [7x1 Double] نرخ ها: [7x1 Double] زمان های Endtimes: [7x1 Double] StartTimes: [7x1 Double] enddates: [7x1 Double] StartDates: 733100 ارزیابی: 733100 پایه: 0 endmonthrule: 1 1
مدل نوسانات را مشخص کنید
ساختار Volspec را ایجاد کنید که فرآیند نوسانات را با داده های زیر مشخص می کند.
نوسانات = [0. 011892 ؛0. 01563 ؛0. 02021 ؛0. 02125 ؛0. 02165 ؛0. 02065 ؛0. 01803] ؛آلفا = [0. 0001] ؛volspec = bkvolspec (ارزیابی دیتات ، enddates ، نوسانات ، enddates (پایان) ، آلفا)
volspec =ساختار با زمینه ها:finobj: 'bkvolspec' ارزیابی: 733100 voldates: [7x1 double] volcurve: [7x1 double] alphacurve: 1. 0000E-04 Alphadates: 740405 VolinterpMethod: 'Linear'
ساختار زمان درخت را مشخص کنید
ساختار Timespec ساختار زمان را برای یک درخت نرخ بهره مشخص می کند. این ساختار نقشه برداری بین زمان مشاهده در هر سطح از درخت و تاریخ های مربوطه را تعریف می کند.
timespec = bktimespec (ارزیابی دیتات ، enddates)
timespec =ساختار با زمینه ها:Finobj: 'BKTimespec' ارزیابی: 733100 بلوغ: [7x1 Double] ترکیب: -1 پایه: 0 اندونتر: 1
درخت BK را ایجاد کنید
برای ایجاد درخت BK از مقادیر قبلاً محاسبه شده برای TAGESPEC ، VOLSPEC و TIMEPEC استفاده کنید.
BKTREE = BKTREE (VOLSPEC ، TAGESPEC ، TIMESPEC)
bktree =ساختار با زمینه ها:finobj: 'Bkfwdtree' volspec: [1x1 struktur] timespec: [1x1 struktur] pec: [1x1 struktur] tobs: [0 1 2 3 5 7] dobs: [733383465 7334196 734926 734926 735657 73657 736753<[7x1 double] [6x1 double] [5x1 double] [4x1 double] [3x1 double] [2x1 double] [20]>پروب ها:<[3x1 double] [3x3 double] [3x5 double] [3x7 double] [3x7 double] [3x9 double]>اتصال: fwdtree:
با نگاهی به ساختار خروجی BKTREE ، تکامل نرخ بهره را در امتداد درخت تجسم کنید. عملکرد Bktree یک درخت تخفیف معکوس را برمی گرداند ، که می توانید با عملکرد CVTREE به یک درخت نرخ بهره تبدیل کنید.
bktreer = cvtree (bktree)
bktreer =ساختار با زمینه ها:finobj: 'bkratetree' volspec: [1x1 struktur] timespec: [1x1 struktur] pec: [1x1 struktur] tobs: [0 1 2 3 5 7 10] DOBS: [7333831 734196 734926 734926 735657 736753<[7x1 double] [6x1 double] [5x1 double] [4x1 double] [3x1 double] [2x1 double] [20]>پروب ها:<[3x1 double] [3x3 double] [3x5 double] [3x7 double] [3x7 double] [3x9 double]>اتصال: Ratetree:
به مسیرهای شاخه فوقانی ، وسط و پایین درخت نگاه کنید.
OldFormat = دریافت (0 ،"قالب") ؛قالبکوتاه ٪ در گره ریشه:Rateroot = trintreepath (Bktreer ، 0)
rotroot = 0. 0481
٪ در طول شاخه بالا:ratepathup = trintreepath (Bktreer ، [1 1 1 1 1 1])
PATPATOUP =7 × 10. 0481 0. 0425 0. 0446 0. 0478 0. 0510 0. 0555 0. 0620
نرخ در طول شاخه میانه:ratepathmiddle = trintreepath (Bktreer ، [2 2 2 2 2 2])
ratepathmiddle =7 × 10. 0481 0. 0416 0. 0423 0. 0430 0. 0436 0. 0449 0. 0484
٪ در طول شاخه پایین:ratepathdown = trintreepath (Bktreer ، [3 3 3 3 3 3])
ratepathdown =7 × 10. 0481 0. 0408 0. 0401 0. 0388 0. 0373 0. 0363 0. 0378
همچنین می توانید یک نمایش گرافیکی از درخت را به نمایش بگذارید تا میزان تعاملی در گره های درخت تا بلوغ را بررسی کنید. عملکرد TreeViewer ساختار درخت نرخ را در پنجره سمت چپ نشان می دهد. تجسم درخت در پنجره سمت راست خالی است ، اما با انتخاب جدول / نمودار و کلیک بر روی گره ها می توانید نرخ ها را در طول مسیرها بررسی کنید.
TreeViewer (Bktreer) ؛

یک نمونه کارها ابزار ایجاد کنید
یک نمونه کارها متشکل از دو ابزار اوراق قرضه و گزینه ای در وثیقه 5 ٪ ایجاد کنید.
٪ دو اوراق قرضهکوپنرات = [0. 04 ؛ 0. 05] ؛settle = dateTime (2007،2،27) ؛بلوغ = [DateTime (2009،2،27) ؛DateTime (2010،2،27)] ؛دوره = 1 ؛٪ گزینه آمریکایی در وثیقه 5 ٪optspec = 'تماس'>؛اعتصاب = 98 ؛ورزش = DateTime (2010،2،27) ؛AmericanOpt = 1 ؛instset = instadd ('رابطه، رشته'، کوپن ، حل و فصل ، بلوغ ، دوره) ؛instset = instadd (instset ،'Optbond'، 2 ، optspec ، اعتصاب ، ورزش ، AmericanOpt) ؛٪ نام و دارایی ها را اختصاص دهیدهلدینگ = [10 ؛15 ؛ 3] ؛نام ها = '4 ٪ باند'; "5 ٪ اوراق قرضه"; "گزینه 98">؛instset = InstsetField (Instset ،'فهرست مطالب'، 1: 3 ،'نام زمینه'، 'تعداد'>, 'داده ها'، هلدینگ) ؛instset = InstsetField (Instset ،'فهرست مطالب'، 1: 3 ،'نام زمینه'، 'نام'>, 'داده ها'، نام) ؛مجموعه ای از ابزارهای موجود در instset متغیر را بررسی کنید.
instdisp (instset)
شاخص نوع کوپن تسویه حساب دوره بلوغ پایه و اساس انتمونترول صادر شده FirstCoupondate LastCoupondate Startdate Face Face Name 1 اوراق قرضه 0. 04 27-FEB-2007 27-FEB-2009 1 0 1 NAN NAN NAN NAN 100 10 4 ٪ BOND 2 BOND 0. 05 27-FEB-2007 27 27-فوریه 2010 1 0 1 Nan Nan Nan Nan 100 15 5 ٪ شاخص اوراق
با استفاده از مدل BK ، نمونه کارها را قیمت گذاری کنید
قیمت هر ابزار را در نمونه کارها محاسبه کنید.
[قیمت ، ptree] = bkprice (bktree ، instset)
قیمت =3×198. 8841 101. 3470 3. 3470
PTree =ساختار با زمینه ها:FinObj: "BKPriceTree" PTtree:<[3x1 double] [3x3 double] [3x5 double] [3x7 double] [3x7 double] [3x9 double] [3x9 double] [3x9 double]>AITree:<[3x1 double] [3x3 double] [3x5 double] [3x7 double] [3x7 double] [3x9 double] [3x9 double] [3x9 double]>ExTree:<[3x1 double] [3x3 double] [3x5 double] [3x7 double] [3x7 double] [3x9 double] [3x9 double] [3x9 double]>tObs: [0 1 2 3 5 7 10 20] اتصال: مشکلات:
قیمت ها در بردار خروجی قیمت با قیمت های زمان مشاهده صفر (tObs = 0) مطابقت دارد که به عنوان تاریخ ارزش گذاری درخت نرخ بهره تعریف می شود.
در بردار Price، عنصر اول، 98. 884، نشان دهنده قیمت ابزار اول (4% Bond) است. عنصر دوم، 101. 347، نشان دهنده قیمت ابزار دوم (5% اوراق قرضه)، و 3. 347 نشان دهنده قیمت اختیار خرید آمریکایی است.
همچنین می توانید یک نمایش گرافیکی از درخت قیمت را برای بررسی قیمت ها روی گره های درخت تا زمان بلوغ نمایش دهید.
treeviewer (PTree, InstSet)؛

ابزارهای بیشتری را به مجموعه موجود اضافه کنید
ابزارهایی را به مجموعه موجود اضافه کنید: کلاه، کف، اسکناس نرخ شناور، مبادله وانیل و اوراق قرضه قابل فروش و قابل تماس.
٪ کلاه لبه دارStrikeC =0. 035; InstSet = instadd(InstSet,'کلاه لبه دار', StrikeC, Settle, datetime(2010, 2, 27));٪ کفStrikeF = 0. 05; InstSet = instadd(InstSet,'کف', StrikeF, Settle, datetime(2009, 2, 27));% نرخ شناور نکتهInstSet = instadd(InstSet,'شناور', 30, Settle, datetime(2009, 2, 27));% تعویض وانیلLegRate =[0. 04 5]; InstSet = instadd(InstSet,"مبادله", LegRate, Settle, datetime(2010, 2, 27));% اوراق قرضه قابل وصول و قابل وصولInstSet = instadd(InstSet,'OptEmBond', نرخ کوپن, تسویه, تاریخ (2010, 2, 27), 'put';'زنگ زدن'>,.اعتصاب، تاریخ (2010،2،27)،"AmericanOpt", 1,'دوره زمانی'، 1)؛٪ نام های فرآیند و منابعمنابع = [15 ; 5 ; 8; 7; 9; 4]؛نام ها = '3. 5% سقف';"طبقه 5%";'30BP Float';"مبادله 4%/5BP"; "پوت باند"; "CallBond">؛instset = InstsetField (Instset ،'فهرست مطالب', 4:9,'نام زمینه'، 'تعداد'>, 'داده ها'، هلدینگ) ؛instset = InstsetField (Instset ،'فهرست مطالب', 4:9,'نام زمینه'، 'نام'>, 'داده ها'، نام) ؛
مجموعه ای از ابزارهای موجود در instset متغیر را بررسی کنید.
instdisp (instset)
نوع شاخص نرخ کوپن تسویه دوره سررسید مبنای پایان ماه قانون صدور تاریخ اولین کوپن تاریخ آخرین کوپن تاریخ شروع تاریخ چهره تعداد نام 1 اوراق قرضه 0. 04 27-فوریه-2007 27-فوریه-2009 1 0 1 NaN50NN% 27 فوریه 2007 27-Feb-2010 1 0 1 NaN NaN NaN NaN 100 15 5% Bond Index Type UnderInd OptSpec Strike ExerciseDates AmericanOpt کمیت نام 3 OptBond 2 تماس 98 27-فوریه 2010 1 3 Option 98 Capsette Strike Strike Indextur0:Spread Settle Maturity FloatReset Bases Principal EndMonthRule CapRate FloorRate کمیت نام 6 Float 30 27-Feb-2007 27-Feb-2009 1 0 100 1 In f-Inf 8 30BP Float Index LegRecipal TipeTurth قانون تاریخ شروع تعداد نام 7 تعویض [0. 04 5] 27-Feb-2007 27-Feb-2010 [NaN] 0 100 [NaN] 1 NaN 7 4%/5BP شاخص مبادله نوع کوپن نرخ تسویه سررسید OptSpec Strike ExerciseDates Periodul Base FirstCounterMonthateDateDate ce AmericanOpt نام کمیت 8 OptEmBond0. 04 27-Feb-2007 27-Feb-2010 put 98 27-Feb-2007 27-Feb-2010 1 0 1 NaN NaN NaN NaN 100 1 9 PuttBond 9 OptEmBond 0. 05 27-200F 0. 05 27-200F تماس بگیرید.-Feb-2007 27-Feb-2010 1 0 1 NaN NaN NaN NaN 100 1 4 CallBond
پرچین
ایده پشت پوشش ریسک، به حداقل رساندن قرار گرفتن در معرض حرکات بازار است. با تغییرات اساسی، نسبت ابزارهای تشکیل دهنده پورتفولیو ممکن است نیاز به تنظیم داشته باشد تا حساسیت ها در محدوده مورد نظر حفظ شود.
محاسبه حساسیت با استفاده از مدل BK.
[Delta, Gamma, Vega, Price] = bksens(BKTree, InstSet);
دارایی های فعلی نمونه کارها را دریافت کنید.
استراتژیهای اسکالپ...
ما را در سایت استراتژیهای اسکالپ دنبال می کنید
برچسب :
نویسنده : ناصر تقوایی
بازدید : 35
تاريخ : چهارشنبه
15 شهريور
1402 ساعت: 5:36