Структура термина процентной ставки представляет эволюцию процентных ставок в течение времени. В 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
bdtprice
| bdtsens
| bdttimespec
| bdttree
| bdtvolspec
| bkprice
| bksens
| bktimespec
| bktree
| bkvolspec
| bondbybdt
| bondbybk
| bondbyhjm
| bondbyhw
| bondbyzero
| capbybdt
| capbybk
| capbyblk
| capbyhjm
| capbyhw
| cfbybdt
| cfbybk
| cfbyhjm
| cfbyhw
| cfbyzero
| fixedbybdt
| fixedbybk
| fixedbyhjm
| fixedbyhw
| fixedbyzero
| floatbybdt
| floatbybk
| floatbyhjm
| floatbyhw
| floatbyzero
| floatdiscmargin
| floatmargin
| floorbybdt
| floorbybk
| floorbyblk
| floorbyhjm
| floorbyhw
| hjmprice
| hjmsens
| hjmtimespec
| hjmtree
| hjmvolspec
| hwcalbycap
| hwcalbyfloor
| hwprice
| hwsens
| hwtimespec
| hwtree
| hwvolspec
| instbond
| instcap
| instcf
| instfixed
| instfloat
| instfloor
| instoptbnd
| instoptembnd
| instoptemfloat
| instoptfloat
| instrangefloat
| instswap
| instswaption
| intenvprice
| intenvsens
| intenvset
| mmktbybdt
| mmktbyhjm
| oasbybdt
| oasbybk
| oasbyhjm
| oasbyhw
| optbndbybdt
| optbndbybk
| optbndbyhjm
| optbndbyhw
| optembndbybdt
| optembndbybk
| optembndbyhjm
| optembndbyhw
| optemfloatbybdt
| optemfloatbybk
| optemfloatbyhjm
| optemfloatbyhw
| optfloatbybdt
| optfloatbybk
| optfloatbyhjm
| optfloatbyhw
| rangefloatbybdt
| rangefloatbybk
| rangefloatbyhjm
| rangefloatbyhw
| swapbybdt
| swapbybk
| swapbyhjm
| swapbyhw
| swapbyzero
| swaptionbybdt
| swaptionbybk
| swaptionbyblk
| swaptionbyhjm
| swaptionbyhw