Структура термина процентной ставки представляет эволюцию процентных ставок в течение времени. В MATLAB®, среда процентной ставки инкапсулируется в структуре под названием RateSpec
(спецификация уровня). Эта структура содержит всю информацию, запрошенную, чтобы полностью идентифицировать эволюцию процентных ставок. Несколько функций, включенных в программное обеспечение Financial Instruments Toolbox™, выделены созданию и управлению RateSpec
структура. Многие другие берут эту структуру в качестве входного параметра, представляющего эволюцию процентных ставок.
Перед рассмотрением далее RateSpec
структура, исследуйте три функции, которые обеспечивают ключевую функциональность для работы с процентными ставками: disc2rate
, его противоположное, rate2disc
, и ratetimes
. Первые две функции сопоставляют между коэффициентами дисконтирования и процентными ставками. Третья функция, ratetimes
, вычисляет эффект термина изменяется на процентных ставках.
Коэффициентами дисконтирования являются коэффициенты, обычно раньше находил текущее значение будущих потоков наличности. По сути, существует прямое отображение между уровнем, применимым к промежутку времени и соответствующим коэффициентом дисконтирования. Функция disc2rate
преобразует коэффициенты дисконтирования для данного термина (период) в процентные ставки. Функция rate2disc
делает противоположное; это преобразует процентные ставки, применимые к данному термину (период) в соответствующие коэффициенты дисконтирования.
Как пример, рассмотрите эти пересчитанные на год уровни облигации с нулевым купоном.
От | К | Уровень |
---|---|---|
15 февраля 2000 | 15 августа 2000 | 0.05 |
15 февраля 2000 | 15 февраля 2001 | 0.056 |
15 февраля 2000 | 15 августа 2001 | 0.06 |
15 февраля 2000 | 15 февраля 2002 | 0.065 |
15 февраля 2000 | 15 августа 2002 | 0.075 |
Чтобы вычислить коэффициенты дисконтирования, соответствующие этим процентным ставкам, вызвать rate2disc
использование синтаксиса
Disc = rate2disc(Compounding, Rates, EndDates, StartDates, ValuationDate)
где:
Compounding
представляет частоту, на которой нулевые уровни составлены, когда пересчитано на год. В данном примере примите это значение, чтобы быть 2.
Rates
вектор из годовых процентных ставок, представляющих процентную ставку, применимую к каждому временному интервалу.
EndDates
вектор из дат, представляющих конец каждого термина процентной ставки (период).
StartDates
вектор из дат, представляющих начало каждого термина процентной ставки.
ValuationDate
дата наблюдения, для которого вычисляются коэффициенты дисконтирования. В этом конкретном примере используйте 15 февраля 2000 в качестве начинающейся даты всех терминов процентной ставки.
Затем установите переменные в MATLAB.
StartDates = ['15-Feb-2000']; EndDates = ['15-Aug-2000'; '15-Feb-2001'; '15-Aug-2001';... '15-Feb-2002'; '15-Aug-2002']; Compounding = 2; ValuationDate = ['15-Feb-2000']; Rates = [0.05; 0.056; 0.06; 0.065; 0.075];
Наконец, вычислите коэффициенты дисконтирования.
Disc = rate2disc(Compounding, Rates, EndDates, StartDates,... ValuationDate)
Disc = 0.9756 0.9463 0.9151 0.8799 0.8319
Путем добавления четвертого столбца в таблицу уровней (см. Вычисление Коэффициентов дисконтирования от Уровней), чтобы включать соответствующие скидки, вы видите эволюцию коэффициентов дисконтирования.
От | К | Уровень | Скидка |
---|---|---|---|
15 февраля 2000 | 15 августа 2000 | 0.05 | 0.9756 |
15 февраля 2000 | 15 февраля 2001 | 0.056 | 0.9463 |
15 февраля 2000 | 15 августа 2001 | 0.06 | 0.9151 |
15 февраля 2000 | 15 февраля 2002 | 0.065 | 0.8799 |
15 февраля 2000 | 15 августа 2002 | 0.075 | 0.8319 |
Функциональный rate2disc
опционально возвращает два дополнительных выходных аргумента: EndTimes
и StartTimes
. Эти векторы из факторов времени представляют даты начала и даты окончания в скидке периодические модули. Шкала этих модулей определяется значением входной переменной Compounding
.
Чтобы исследовать фактор времени выходные параметры, найдите соответствующие значения в предыдущем примере.
[Disc, EndTimes, StartTimes] = rate2disc(Compounding, Rates,... EndDates, StartDates, ValuationDate);
Расположите эти два вектора в единый массив для более легкой визуализации.
Times = [StartTimes, EndTimes]
Times = 0 1 0 2 0 3 0 4 0 5
Поскольку дата оценки равна дате начала всех периодов, StartTimes
вектор состоит из 0s. Кроме того, начиная со значения Compounding
2, уровни раз в полгода составляются, который устанавливает модули периодической скидки к шести месяцам. Векторный EndDates
состоит из дат, разделенных интервалами шести месяцев с даты оценки. Это объясняет почему EndTimes
вектор является прогрессией целых чисел от 1 до 5.
Функция rate2disc
также вмещает альтернативный синтаксис, который использует периодические дисконтные модули вместо дат. Поскольку отношение между коэффициентами дисконтирования и процентными ставками основано на периодах времени а не в абсолютные даты, эту форму rate2disc
позволяет вам работать непосредственно с периодами времени. В этом режиме дата оценки соответствует 0, и векторы StartTimes
и EndTimes
используются в качестве входных параметров вместо их эквивалентов даты, StartDates
и EndDates
. Этот синтаксис для rate2disc
:
Disc = rate2disc(Compounding, Rates, EndTimes, StartTimes)
Используя, как введено StartTimes
и EndTimes
векторы вычислили ранее, необходимо получить предыдущие результаты для коэффициентов дисконтирования.
Disc = rate2disc(Compounding, Rates, EndTimes, StartTimes)
Disc = 0.9756 0.9463 0.9151 0.8799 0.8319
Функция disc2rate
дополнение к rate2disc
. Это находит уровни применимыми к набору соединения периодов, учитывая коэффициент дисконтирования в те периоды. Синтаксис для того, чтобы вызвать эту функцию:
Rates = disc2rate(Compounding, Disc, EndDates, StartDates, ValuationDate)
Каждый аргумент к этой функции имеет то же значение как в rate2disc
. Используйте результаты, которые, как находят в предыдущем примере, возвращали значения уровня, с которых вы начали.
Rates = disc2rate(Compounding, Disc, EndDates, StartDates,... ValuationDate)
Rates = 0.0500 0.0560 0.0600 0.0650 0.0750
Как в случае rate2disc
, disc2rate
опционально возвращает StartTimes
и EndTimes
векторы, представляющие времена начала и конца, измеренные в скидке периодические модули. Снова, работая с теми же значениями как прежде, необходимо получить те же числа.
[Rates, EndTimes, StartTimes] = disc2rate(Compounding, Disc,... EndDates, StartDates, ValuationDate);
Расположите результаты в матрице, удобной для отображения.
Result = [StartTimes, EndTimes, Rates]
Result = 0 1.0000 0.0500 0 2.0000 0.0560 0 3.0000 0.0600 0 4.0000 0.0650 0 5.0000 0.0750
Как с rate2disc
, отношение между уровнями и коэффициентами дисконтирования определяется периодами времени а не абсолютными датами. Так, альтернативный синтаксис для disc2rate
временные векторы использования вместо дат, и это принимает, что дата оценки соответствует времени = 0. Основанный на времени синтаксис вызова:
Rates = disc2rate(Compounding, Disc, EndTimes, StartTimes);
Используя этот синтаксис, вы снова получаете исходные значения для процентных ставок.
Rates = disc2rate(Compounding, Disc, EndTimes, StartTimes)
Rates = 0.0500 0.0560 0.0600 0.0650 0.0750
instbond
| instcap
| instcf
| instfixed
| instfloat
| instfloor
| instoptbnd
| instoptembnd
| instoptfloat
| instoptemfloat
| instrangefloat
| instswap
| instswaption
| intenvset
| bondbyzero
| cfbyzero
| fixedbyzero
| floatbyzero
| intenvprice
| intenvsens
| swapbyzero
| floatmargin
| floatdiscmargin
| hjmtimespec
| hjmtree
| hjmvolspec
| bondbyhjm
| capbyhjm
| cfbyhjm
| fixedbyhjm
| floatbyhjm
| floorbyhjm
| hjmprice
| hjmsens
| mmktbyhjm
| oasbyhjm
| optbndbyhjm
| optfloatbyhjm
| optembndbyhjm
| optemfloatbyhjm
| rangefloatbyhjm
| swapbyhjm
| swaptionbyhjm
| bdttimespec
| bdttree
| bdtvolspec
| bdtprice
| bdtsens
| bondbybdt
| capbybdt
| cfbybdt
| fixedbybdt
| floatbybdt
| floorbybdt
| mmktbybdt
| oasbybdt
| optbndbybdt
| optfloatbybdt
| optembndbybdt
| optemfloatbybdt
| rangefloatbybdt
| swapbybdt
| swaptionbybdt
| hwtimespec
| hwtree
| hwvolspec
| bondbyhw
| capbyhw
| cfbyhw
| fixedbyhw
| floatbyhw
| floorbyhw
| hwcalbycap
| hwcalbyfloor
| hwprice
| hwsens
| oasbyhw
| optbndbyhw
| optfloatbyhw
| optembndbyhw
| optemfloatbyhw
| rangefloatbyhw
| swapbyhw
| swaptionbyhw
| bktimespec
| bktree
| bkvolspec
| bkprice
| bksens
| bondbybk
| capbybk
| cfbybk
| fixedbybk
| floatbybk
| floorbybk
| oasbybk
| optbndbybk
| optfloatbybk
| optembndbybk
| optemfloatbybk
| rangefloatbybk
| swapbybk
| swaptionbybk
| capbyblk
| floorbyblk
| swaptionbyblk