Эволюция процентной ставки обычно представляется набором процентных ставок, включая начало и конец периодов, к которым применяются уровни. Для нулевых уровней даты начала обычно в дату оценки с расширением уровней с той даты оценки до их соответствующих дат погашения.
Часто, учитывая набор уровней включая их даты начала и конца, можно интересоваться нахождением уровней, применимых к различным терминам (периоды). Эта проблема решается функцией ratetimes
. Эта функция интерполирует процентные ставки, учитывая изменение в исходных терминах. Синтаксис для вызова ratetimes
[Rates, EndTimes, StartTimes] = ratetimes(Compounding, RefRates, RefEndDates, RefStartDates, EndDates, StartDates, ValuationDate);
где:
Compounding
представляет частоту, на которой нулевые уровни составлены, когда пересчитано на год.
RefRates
вектор из начальных процентных ставок, представляющих процентные ставки, применимые к начальным временным интервалам.
RefEndDates
вектор из дат, представляющих конец (периода) терминов процентной ставки, применимого к RefRates
.
RefStartDates
вектор из дат, представляющих начало терминов процентной ставки, применимых к RefRates
.
EndDates
представляйте даты погашения, для которых интерполированы процентные ставки.
StartDates
представляйте сроки начала работы, для которых интерполированы процентные ставки.
ValuationDate
дата наблюдения, от который StartTimes
и EndTimes
вычисляются. Эта дата представляет время = 0.
Входные параметры к этой функции могут быть разделены на две группы:
Начальные или ссылочные процентные ставки, включая термины, для которых они допустимы
Условия, для которых вычисляются новые процентные ставки
Как пример, считайте таблицу уровня заданной в Вычислении Коэффициентов дисконтирования от Уровней.
От | К | Уровень |
---|---|---|
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 |
Предположение, что дата оценки 15 февраля 2000, эти уровни представляют уровни облигации с нулевым купоном сроками платежа, заданными во втором столбце. Используйте функцию ratetimes
вычислить форвардные курсы в начале всех периодов, подразумеваемых в таблице. Примите значение соединения 2.
% Reference Rates. RefStartDates = ['15-Feb-2000']; RefEndDates = ['15-Aug-2000'; '15-Feb-2001'; '15-Aug-2001';... '15-Feb-2002'; '15-Aug-2002']; Compounding = 2; ValuationDate = ['15-Feb-2000']; RefRates = [0.05; 0.056; 0.06; 0.065; 0.075]; % New Terms. StartDates = ['15-Feb-2000'; '15-Aug-2000'; '15-Feb-2001';... '15-Aug-2001'; '15-Feb-2002']; EndDates = ['15-Aug-2000'; '15-Feb-2001'; '15-Aug-2001';... '15-Feb-2002'; '15-Aug-2002']; % Find the new rates. Rates = ratetimes(Compounding, RefRates, RefEndDates,... RefStartDates, EndDates, StartDates, ValuationDate)
Rates = 0.0500 0.0620 0.0680 0.0801 0.1155
Поместите эти значения в таблицу как предыдущая. Наблюдайте эволюцию форвардных курсов на основе начальных уровней нулевого купона.
От | К | Уровень |
---|---|---|
15 февраля 2000 | 15 августа 2000 | 0.0500 |
15 августа 2000 | 15 февраля 2001 | 0.0620 |
15 февраля 2001 | 15 августа 2001 | 0.0680 |
15 августа 2001 | 15 февраля 2002 | 0.0801 |
15 февраля 2002 | 15 августа 2002 | 0.1155 |
ratetimes
) ratetimes
функция может предоставить дополнительным выходным аргументам StartTimes
и EndTimes
, которые представляют эквиваленты фактора времени StartDates
и EndDates
векторы. ratetimes
функционируйте факторы времени использования для интерполяции уровней. Эти факторы времени вычисляются с дат начала и конца и даты оценки, которые передаются как входные параметры. ratetimes
может также использовать факторы времени непосредственно, принимая время = 0 как дата оценки. Этот альтернативный синтаксис:
[Rates, EndTimes, StartTimes] = ratetimes(Compounding, RefRates, RefEndTimes, RefStartTimes, EndTimes, StartTimes);
Используйте эту альтернативную версию ratetimes
найти форвардные курсы снова. В этом случае необходимо сначала найти факторы времени референсной кривой. Использование date2time
для этого.
RefEndTimes = date2time(ValuationDate, RefEndDates, Compounding)
RefEndTimes = 1 2 3 4 5
RefStartTimes = date2time(ValuationDate, RefStartDates,... Compounding)
RefStartTimes = 0
Это ожидаемые значения, учитывая полугодовые скидки (как обозначено значением 2
в переменной Compounding
), даты окончания, разделенные шестимесячными периодами и датой оценки, равняются началу маркировки даты первого периода (фактор времени = 0
).
Теперь вызовите ratetimes
с альтернативным синтаксисом.
[Rates, EndTimes, StartTimes] = ratetimes(Compounding,... RefRates, RefEndTimes, RefStartTimes, EndTimes, StartTimes);
Rates = 0.0500 0.0620 0.0680 0.0801 0.1155
EndTimes
и StartTimes
имейте, как ожидалось, те же значения, которые они имели как входные параметры.
Times = [StartTimes, EndTimes]
Times = 0 1 1 2 2 3 3 4 4 5
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