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