Структура процентных ставок представляет собой эволюцию процентных ставок во времени. В 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
вектор состоит из 0 с. Кроме того, поскольку значение 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