Динамика процентных ставок обычно представлена набором процентных ставок, включая начало и конец периодов, к которым применяются ставки. Для нулевых ставок начальные даты обычно находятся на дату оценки, причем ставки продлеваются с этой даты оценки до соответствующих дат срока.
Часто, учитывая набор ставок, включая даты их начала и окончания, вы можете быть заинтересованы в поиске ставок, применимых к различным условиям (периодам). Эта проблема решается функцией 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
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