יום שני, 3 ביוני 2013

עצי תמחור באמצעות MATLAB

אני שמח לארח בבלוג פעם נוספת את חנן קביץ, אשר כתב מספר פוסטים עד כה, האחרון שבהם - לפני כחצי שנה.

עצים הפכו בשנים האחרונות מאוד פופולריים במגוון תחומים בעולם הפיננסי ומשמשים לרוב למידול מכניקת שוק ההון ולמידול ריביות. מגוון המודלים והישומים גדל כל הזמן יחד עם המורכבות של מודלים אלו. בין הנפוצים ביותר ניתן לציין את עציCox-Ross-Rubinstein  (CRR),  Heath-Jarrow-Morton (HJM) ,Black-Derman-Toy (BDT) ,Black-Karasinski (BK) ו- Hull-White (HW), בו יעסוק פוסט זה.
מודל HW ממדל ריבית עתידית, ובצורתו הבסיסית משתייך למשפחת מודלים "חסרי ארביטרז' ". המודל עם פאקטור אחד הוא מהצורה:
בפוסט זה לא ניכנס למתמטיקה שמאחורי המודל, אלא נדגים בניה פשוטה שלו ושימוש מוגבל בו. על מנת לבנות עץ HW  ב- MATLAB  יש להגדיר שלושה מבנים:
1.      תהליך תנודתיות הריבית יוגדר בעזרת פונקצית hwvolspec.
2.      מבנה הריבית בשוק יוגדר באמצעות פונקצית  intenvset.
3.      מבנה זמן  (valuation ו- maturity) יוגדר באמצעות פונקצית hwtimespec.
לאחר מכן, פונקצית hwtree תבנה עבורנו את העץ, שאותו ניתן להציג באמצעות הפונקציה treeviewer, והנה התוצאה (ניתן ללחוץ על התמונה להגדלה):
ברגע שיש לנו עץ, אנו יכולים לתמחר מוצרים מובני ריבית שונים, לדוגמה תיק המכיל שתי אגרות חוב ואג"ח עם אופצית call (Option Embedded Bond), כמו התיק הבא (ניתן ללחוץ על התמונה להגדלה):


תיק זה ניתן לתמחור באמצעות פונקצית

hwprice, ואת הנגזרים של התיק ניתן לקבל באמצעות פונקצית hwsens : 
ה-Financial Instruments toolbox מכיל מודלים לעצי תמחור אחרים שהוזכרו למעלה ולעצים נוספים - Implied Volatility tree ו- Leisen-Reimer. תהליך בניית עצים אלו דומה מאוד לתהליך שתואר לעיל עבור HW.