Financial Instruments Toolbox™ позволяет вам использовать или функциональную среду или альтернативную основанную на объектах среду, чтобы оценить финансовые инструменты.
В функциональной среде типичный рабочий процесс, чтобы оценить связь со встроенными опциями следующие.
Создайте RateSpec
инструментальное использование intenvset
.
% Zero Data Settle = datetime(2018,9,15); Type = "zero"; ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; Compounding = -1; Basis = 1; % Instrument parameters Maturity = datetime(2024,9,15); CouponRate = 0.035; Strike = 100; ExerciseDates = datetime(2022,9,15); CallSchedule = timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); Period = 1; % HW Parameters Vol = 0.01; Alpha = 0.1; TreeDates = Settle + calyears(1:10); RateSpec = intenvset('Compounding', Compounding,'StartDates', Settle,... 'EndDates', ZeroDates,'Rates', ZeroRates,'Basis',Basis);
Создайте Белое как оболочка древовидное объектное использование hwvolspec
, hwtimespec
, и hwtree
.
HWVolSpec = hwvolspec(Settle, TreeDates, Vol,TreeDates, Alpha); HWTimeSpec = hwtimespec(Settle, TreeDates, 1); HWTree = hwtree(HWVolSpec, RateSpec, HWTimeSpec); OldPrice = optembndbyhw(HWTree,CouponRate,Settle,Maturity,'call',Strike,ExerciseDates,'Period',Period)
Оцените связь со встроенными опциями с помощью Белого как оболочка дерева процентной ставки с optembndbyhw
.
OldPrice = optembndbyhw(HWTree,CouponRate,Settle,Maturity,'call',Strike,ExerciseDates,'Period',Period)
OldPrice = 109.4814
В отличие от этого, в Financial Instruments Toolbox основанный на объектах рабочий процесс, вы оцениваете инструмент с помощью инструмента, модели и объектов калькулятора цен:
Создайте OptionEmbeddedFixedBond
инструмент с помощью OptionEmbeddedFixedBond
.
% Zero Data Settle = datetime(2018,9,15); Type = "zero"; ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; Compounding = -1; Basis = 1; % Instrument parameters Maturity = datetime(2024,9,15); CouponRate = 0.035; Strike = 100; ExerciseDates = datetime(2022,9,15); CallSchedule = timetable(ExerciseDates,Strike,'VariableNames',{'Strike Schedule'}); Period = 1; % HW Parameters Vol = 0.01; Alpha = 0.1; TreeDates = Settle + calyears(1:10); CallableBond = fininstrument("OptionEmbeddedFixedBond", "Maturity",Maturity,... 'CouponRate',CouponRate,'Period',Period, ... 'CallSchedule',CallSchedule,'Name',"CallableBond",'Basis',Basis);
Создайте ratecurve
объект с помощью ratecurve
.
myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates,'Basis',Basis);
Создайте HullWhite
объект модели с помощью HullWhite
.
HWModel = finmodel("HullWhite","Alpha",Alpha,"Sigma",Vol);
Создайте IRTree
объект калькулятора цен использование IRTree
.
HWPricer = finpricer("IRTree",'Model',HWModel,'DiscountCurve',myRC,'TreeDates',TreeDates');
Оцените инструментальное использование связи price
.
NewPrice = price(HWPricer, CallableBond)
NewPrice = 109.4814
Примечание
Функциональные и основанные на объектах рабочие процессы могут возвратить различные цены на инструменты, даже если вы используете те же данные. Различие - то, потому что существующие функции Financial Instruments Toolbox внутренне используют datetime
и основанное на объектах использование среды yearfrac
для обработки даты.
Для отображения функциональной инструментальной оценки к основанной на объектах инструментальной оценке см.: