Процентные ставки и модели процентных ставок
“Количественные финансы”

Салихов Марсель ()

2021-03-17

Цели лекции

Повторение

Типы облигаций

Облигации с нулевым купоном

Для облигации с номиналом в 1000 рублей номинальная стоимость равняется:

\[ = \frac{1000}{(1+i)^n} \]

Предположим, что \(i = 10%\), тогда стоимость однолетней бумаги:

\[ = \frac{1000}{(1+0,1)^1} = 909,09 \]

стоимость 6-месячной бумаги равна:

\[ = \frac{1000}{(1+0,1)^{1/2}} = 953,46 \]

Стоимость 10-летней бумаги будет равна:

\[ = \frac{1000}{(1+0,1)^{10}} = 385,54 \]

Облигации с фиксированным купоном

Эмитент облигации обещает осуществить серию периодических купонных платежей, а также вернуть номинал в дату погашению.

\[ P_{cb} = \frac{Coupon}{(1+i)^1} + \frac{Coupon}{(1+i)^2} + ... + \frac{Coupon}{(1+i)^n} + \frac{FaceValue}{(1+i)^n} \]

Доходности облигаций

Доходность к погашению (yield-to-maturity)

К примеру, для 1-летней облигации с купоном в 5%:

\[ Price = \frac{50}{(1+i)} + \frac{1000}{(1+i)} \]

Доходность к погашению (yield-to-maturity)

Оценим связь между ценой облигации и процентными ставками в R.

Cпотовые ставки (spot rates)

Оценка цены и доходности к погашению купонной облигации – пример

\[\frac{40}{1.05} + \frac{1040}{1.06^2} = 38,10 + 925,60 = 963,70 \]

\[\frac{40}{y+1} + \frac{1040}{(1+y)^2} = 963,70 \] Решение этого уравнение \(y = 6,3\) (полугодовая доходность). Годовая доходность будет равна 12,99%.

Дюрация

Дюрация Макколея (Macaulay Duration)

Дюрация Макколея - средневзвешенный срок потока платежей, где весами выступают дисконтированные стоимости платежей.

\[ MacalayD = \frac{\sum\limits_{t=1}^T{PV(CF_t)}}{P} \] где \(PV(CF)_t\) – дисконтированный денежный поток в период времени t, \(Price\) – текущая цена облигации.

Дюрация будет всегда меньше или равна сроку до погашению облигации, при этом дюрация будет равна сроку до погашения только бескупонных облигаций.

Дюрация денежного потока зависит не только от его структуры, но и от текущей процентной ставки. Чем выше ставка, тем меньше стоимость дальних выплат по сравнению с короткими и тем меньше дюрация, и наоборот, чем меньше ставка, тем больше дюрация потока платежей.

Фраза «дюрация облигации составляет 3 года» означает, что рассматриваемая облигация имеет такую же чувствительность цены к колебаниям процентных ставок, как 3-летняя бескупонная облигация.

Другая интерпретация дюрации – среднее средневзвешенное количество лет, которое инвестор должен держать облигацию для того, чтобы дисконтированная стоимость денежных потоков облигации не сравнялась с той ценой, которую заплатил инвестор.

Модифицированная дюрация Макколея – показатель, характеризующий реакцию цены облигации на изменение доходности к погашению.

\[ MD = \frac{MacalayD}{1+YTM}\]

при малых величинах будет выполняться равенство

\[ \frac{\Delta P }{P} \approx -MD * \Delta r\]

Пример. пусть модифицированная дюрация равна 4, облигация торгуется по цене 90% с доходность 8%. НКД равен 0. Как изменится цена, если доходность вырастет до 8.5% (изменение на 0.005).

Изменение цены можно будет вычислить следующим образом: \(-4 * 0.005 * 90=-1.8\). Цена облигации снизится на 1.8, до 88.2% номинала.

Накопленный купонный доход (НКД)

Накопленный купонный доход (accrued interest) – величина, измеряемая в денежных единицах, и характеризующая ту часть купонного дохода, которая «накоплена» с начала текущего купонного периода.

Купон по облигациям платится периодически, обычно 1 раз в квартал, полгода или год. Соответственно, после того, как очередной купон выплачен и начался новый купонный период, купон начинает «накапливаться».

Важность учета НКД обусловлена тем, что на большинстве рынков облигаций они торгуются по т.н. «чистой цене», не включающей в себя НКД. Для того, чтобы получить полную цену, которую покупатель облигации заплатит продавцу (ее также называют «грязной» ценой), надо к чистой цене прибавить НКД.

\[НКД = Coupon \frac{t_0 - t_{c-1}}{t_c - t_{c-1}} \] где \(t_0\) — текущая дата, \(t_{с-1}\) – дата начала купонного периода, \(t_{с}\) – дата дата выплаты ближайшего купона.

К примеру, если размер очередного купона по облигации составляет 50 рублей, дата начала купонного периода – 01.04, дата окончания купонного периода (выплаты купона) – 01.10, то на момент 01.09 НКД составит 50*153/183=41.80 рублей.

Временная структура процентных ставок (term structure)

Эмпирические наблюдения процентных ставок:

  1. Процентные ставки с разными сроками погашения изменяются вместе с течением времени, они не постоянны.
  2. Кривая доходности имеет положительный наклон, если “короткие” ставки меньше, чем “длинные”" и имеет отрицательный наклон – если наоборот.
  3. Кривая доходности обычно имеет положительный наклон
  4. Кривая доходностей достаточно устойчиво во времени и не меняется сильным образом за короткий период времени
  5. Короткая часть кривой доходности более волатильна, чем длинная часть кривой

Временная структура процентных ставок (term structure)

Временная структура процентных ставок до \(n\) лет погашению может описываться любым из следующих параметров:

  1. Цены облигаций с нулевым купоном для 1 года, 2 лет, …, \(n\) лет – \(P(1), P(2), .., P(n)\)
  2. Спотовые ставки (доходности к погашению облигаций с нулевым купоном) – \(y_1, y_2, ..., y_n\).
  3. Форвардные ставки – $r_1, r_2,, r_n $ - где \(r_i\) – это форвардная ставка, которая может быть зафиксирована для заимствования в \(i\)-ом году (\(i = 1\) для следующего года) на определенный срок.

Форвардные ставки

Определение цены облигации исходя из форвардных ставок

Пусть у нас есть следующие данные по форвардным ставкам:

** Таблица. Форвардные процентные ставки на 3 года **

Год Процентная ставка
1 6
2 7
3 8

Тогда 1-летняя бумага будет иметь цену, равную:

\[\frac{1000}{1+r_1} = \frac{1000}{1,06} = 943,40 = P(1) \]

2-летняя:

\[\frac{1000}{(1+r_1)(1+r_2)} = \frac{1000}{(1,06)(1,07)} = 881,68 = P(2) \]

3-летняя:

\[\frac{1000}{(1+r_1)(1+r_2)(1+r_3)} = \frac{1000}{(1,06)(1,07)(1,08)} = 816,37 = P(3) \]

Определение доходности к погашению

Доходность к погашению будет определяться по традиционной формуле:

\[\frac{1000}{1+y_1} = 943,40 \] то есть \(y_1 = 0,06\)

Для двухлетней бумаги:

\[\frac{1000}{(1+y_1)^2} = 881,68 \]

\[ y=\sqrt{\frac{1000}{881,68}}=0,065 \] \(y_3 = 0,07\). Проверьте!

Общая формула для определения форвардных ставок из спотовых:

\[ r_1 = y_1 \]

и

\[r_n = \frac{(1+y_n)^n}{(1+y_{n-1})^{n-1})}-1 \]

Расчет форвардных ставок из цен на облигации

Пусть у нас имеется следующая информация по ценам на облигации с нулевым купоном:

Погашение, лет Цена, рублей
1 920
2 830
3 760

Тогда доходности к погашению будут определяться как:

\[y_1 = \frac{1000}{920} = 0,087 \] \[ y_2 = \{\frac{1000}{830}\}^{1/2} = 0,0976\] \[ y_3 = \{\frac{1000}{760}\}^{1/3} = 0,096\] Тогда используя формулу:

\[r_1 = y_1 = 0,087\] \[r_2 = \frac{(1+y_2)^2}{1+y_1}-1=\frac{1,0976^2}{1,0876}-1 =0,108 \] \[r_3 = \frac{(1+y_3)^3}{(1+y_2)^2}-1=\frac{1,096^3}{1,0976^2}-1 =0,092 \]

Таким образом, общая формула будет иметь вид:

\[r_n = \frac{P(n-1)}{P(n)}-1 \]

Расчет форвардных ставок на рынке ОФЗ

Ставка 1y1y - форвардная ставка на 1 год через 1 год, то есть это текущие ожидаемое значение ставки на 1 год через 1 год.

Форвардная и спотовая кривая доходностей

curve_new <- gcurve[nrow(gcurve),]
spot_curve <- curve_new[,-(1:3)]

names(spot_curve) <- str_remove_all(names(spot_curve), 'X')

t <- as.numeric(names(spot_curve))
spot_curve <- (as.numeric(spot_curve) + 100)/100
spot_curve <- data.frame(spot_curve = spot_curve)
spot_curve$t <- t
spot_curve$fwd_curve <- spot_curve$spot_curve

for(i in 2:nrow(spot_curve)){
   spot_curve[i,3] = (spot_curve[i,1]^i)/spot_curve[i-1,1]^(i-1)  
}
plot(x = spot_curve$t,  y = spot_curve$fwd_curve*100-100, type='l', xlab="лет", ylab="%", main = 'Кривая доходностей рынка ОФЗ (16 марта 2021 г.)')
lines(x = spot_curve$t, y = spot_curve$spot_curve*100-100, col = 'red')
legend("topright",legend=c("Спотовая кривая","Форвардная кривая"), col=c(1,2),lty=1)

Различные формы спотовой кривой доходностей ОФЗ

На графике приведены формы кривой доходности ОФЗ в период 2017-2020 гг. Как видно, форма кривой может быть различной.

Непрерывно начисляемые проценты (сontinously compounded rates)

Пусть у нас вложение 1000 рублей, которое принесет 10% через год. Как сумма полученных средств зависит от скорости начисления процента?

Начисление Платежей % за период
Ежегодно 1 0.1
Полгода 2 0.05
Квартал 4 0.025
Месяц 12 0.0083
Неделя 52 \(\frac{0.1}{52}\)
День 365 \(\frac{0.1}{365}\)
\(\infty\) \(\infty\)

\[ 1105.517 = 1000 e^{0.1} \] Мы можем выразить наоборот: какова текущая величина инвестициии, которая позволит получить нам 1000 рублей при непрерывном начислении доходности:

\[1000 e^{-0.1} = 904.84 \]

Непрерывное начисление процентов для облигации

\[P(n) = \frac{1000}{exp(r_1 + r_2 + \ldots + r_n)} \] \[\frac{P(n-1)}{P(n)} = \frac{exp(r_1 + r_2 + \ldots + r_n)}{exp(r_1 + r_2 + \ldots + r_{n-1})} = exp(r_n)\] \[log(\frac{P(n-1)}{P(n)})= r_n \] Доходность к погашению n-летней облигации (\(y_n\)) с нулевым купоном решает уравнение:

\[P(n) = \frac{1000}{exp(n y_n)}\] тогда

\[y_n = \frac{(r_1 + r_2+ \ldots + r_n)}{n} \] Соответственно можно выразить форвардную ставку как:

\[r_n = n y_n - (n-1)y_{n-1} \]

Непрерывные форвардные ставки

\[ D(T) = exp(- \int_{0}^{T}r(t)dt \]

Дисконтная функция

\(D(T)\) называется дисконтной функцией. Цена любой облигации с нулевым купоном будет определяться как:

\[ P(T) = PAR \times D(T) \] где \(PAR\) – номинальная стоимость к погашению.

\[log(P(t)) = log(PAR)- \int_{0}^{T}r(t)dt\]

##Пример дисконтной функции

y = gcurve[nrow(gcurve),]
y <- y[,-1]
names(y) <- str_remove_all(names(y), 'X')
t = as.numeric(names(y))
y = (as.numeric(y)+100)/100
y
 [1] 1.048395 1.048486 1.049192 1.050236 1.055343 1.059787 1.065318 1.068163
 [9] 1.070325 1.071996 1.072816 1.073621
d <- rep(0,length(t))
for(i in 1:length(t)){
   d[i] = 1/y[i]^i
}
plot(t, d, type = 'l', main = 'Пример расчета дисконтной функции', xlab = 'лет до погашения', ylab = '')

Оценка кривой процентных ставок как задача регрессии

Предположим, что существует несколько типов облигаций с нулевой доходностью номиналом в 1000 рублей с несколькими разными сроками до погашения (\(T_i\).

Дходность к погашению для всех этих облигаций одинаковая и равна \(r\).

C условием постоянной величины \(r\) для разных типов облигаций:

\[ P_i = 1000 exp(-r T_i) \]

где \(i\) – определяет разные выпуски облигаций.

Так существует определенная вариация в наблюдаемых ценах на облигации, то можно включить случайную компоненту:

\[ P_i = 1000 exp(-r T_i) + \epsilon_i\]

Величину \(r\) можно определить с помощью МНК, минимизируя сумму квадратов

\[\sum_{i=1}^n \{ P_i - exp(-r T_i) \} \]

Оценка цен на облигации с постоянной доходностью (\(r\))

bondprices_df <- read.table("data/bondprices.txt",header=T)
bondprices_df
  maturity  price
1     0.75 967.26
2     2.50 834.21
3     3.00 810.52
4     5.00 769.30
5     7.50 656.64
6     7.90 639.71
7     8.00 604.61
8    12.00 502.11
9    16.00 393.38
fit = nls(data = bondprices_df, price ~ 1000*exp(-r*maturity),start=list(r=.04))
summary(fit)

Formula: price ~ 1000 * exp(-r * maturity)

Parameters:
  Estimate Std. Error t value Pr(>|t|)    
r 0.058498   0.001488   39.31 1.93e-10 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 19.6 on 8 degrees of freedom

Number of iterations to convergence: 4 
Achieved convergence tolerance: 5.528e-08
par(mfrow=c(1,1))
plot(bondprices_df$maturity,bondprices_df$price,pch="*",cex = 2, xlab = 'срок до погашения', ylab = 'цена P')
grid = seq(0, 20, length=201)
price_grid = 1000*exp(-0.0585*grid)
lines(grid,price_grid, lwd = 2, col = "red")

Параметрическая оценка форвардной кривой

\[ y_T(\beta) = T^{-1} \int_o^T r(t;\beta) dt \]

\[P_t(\beta) = exp \{-T y_T (\beta) \} = exp \int_o^T r(t;\beta) dt \]

Модель Нельсона-Сигеля

\[r(t; \beta) = \beta_0 + (\beta_1 + \beta_2 t) e^{(-\lambda t)} \]

Модель Нельсона-Сигеля - коэффициенты

Модель Нельсона-Сигеля - коэффициенты

Оценка модели Нельсона-Сигеля для ОФЗ в R

Мы загрузим данные кривой бескупонной доходности с сайта Банка России (предварительно сохраненные)

#gcurve <- read.csv("lectures/data/curve.csv")
#gcurve <- tail(gcurve,100)
names(gcurve) <- str_remove_all(names(gcurve), 'X')
tail(gcurve)
      tradedate   0.25    0.5   0.75      1      2      3      5      7     10
1049 2021-03-09 4.6270 4.6067 4.6496 4.7326 5.2259 5.7166 6.3420 6.6618 6.9138
1050 2021-03-10 4.6519 4.6382 4.6894 4.7811 5.3004 5.8017 6.4217 6.7299 6.9726
1051 2021-03-11 4.7582 4.7326 4.7812 4.8744 5.3988 5.8832 6.4594 6.7435 6.9779
1052 2021-03-12 4.7434 4.7318 4.7935 4.8974 5.4395 5.9165 6.4929 6.7843 7.0183
1053 2021-03-15 4.8716 4.8600 4.9139 5.0081 5.5175 5.9792 6.5401 6.8192 7.0383
1054 2021-03-16 4.8395 4.8486 4.9192 5.0236 5.5343 5.9787 6.5318 6.8163 7.0325
         15     20     30
1049 7.1127 7.2097 7.3020
1050 7.1703 7.2741 7.3799
1051 7.1728 7.2703 7.3595
1052 7.2069 7.3017 7.3933
1053 7.2168 7.3100 7.4040
1054 7.1996 7.2816 7.3621

используем пакет termstr

#devtools::install_github("termstrc", "datarob")

library(termstrc)
gcurve2 <- last(gcurve, 100)
yields <- as.matrix(gcurve2[,2:ncol(gcurve)])
yields <- apply(yields, 2, as.numeric)
dates <- gcurve2$tradedate
datazeroyields <- zeroyields(maturities = as.numeric(names(gcurve2))[-1], yields, dates) # сконструриуем объектов со ставками
datazeroyields
$maturities
 [1]  0.25  0.50  0.75  1.00  2.00  3.00  5.00  7.00 10.00 15.00 20.00 30.00

$yields
         0.25    0.5   0.75      1      2      3      5      7     10     15
  [1,] 4.0927 4.1427 4.2010 4.2656 4.5542 4.8467 5.3715 5.7844 6.2116 6.5690
  [2,] 4.1163 4.1585 4.2104 4.2698 4.5481 4.8390 5.3516 5.7576 6.1902 6.5435
  [3,] 4.1105 4.1541 4.2073 4.2676 4.5491 4.8483 5.3852 5.7986 6.2145 6.5518
  [4,] 4.1593 4.1969 4.2437 4.2975 4.5565 4.8416 5.3628 5.7756 6.2043 6.5511
  [5,] 4.1948 4.2253 4.2659 4.3141 4.5593 4.8418 5.3692 5.7878 6.2183 6.5687
  [6,] 4.2011 4.2307 4.2717 4.3216 4.5762 4.8655 5.4027 5.8278 6.2658 6.6274
  [7,] 4.2726 4.2936 4.3285 4.3743 4.6252 4.9179 5.4627 5.8906 6.3259 6.6784
  [8,] 4.3168 4.3270 4.3510 4.3875 4.6218 4.9278 5.4995 5.9320 6.3510 6.6878
  [9,] 4.3214 4.3321 4.3597 4.4008 4.6527 4.9658 5.5419 5.9778 6.4055 6.7475
 [10,] 4.3542 4.3570 4.3817 4.4232 4.6902 5.0208 5.6379 6.0961 6.5243 6.8521
 [11,] 4.3797 4.3775 4.3977 4.4350 4.6882 5.0077 5.6086 6.0633 6.5035 6.8566
 [12,] 4.3704 4.3597 4.3681 4.3914 4.5806 4.8422 5.3671 5.7859 6.2058 6.5480
 [13,] 4.2599 4.2631 4.2856 4.3207 4.5396 4.8089 5.3349 5.7496 6.1645 6.5083
 [14,] 4.3006 4.2911 4.3013 4.3274 4.5257 4.7824 5.2829 5.6845 6.0991 6.4440
 [15,] 4.2324 4.2396 4.2646 4.3026 4.5304 4.8015 5.3210 5.7340 6.1571 6.5140
 [16,] 4.1916 4.2221 4.2646 4.3130 4.5426 4.7927 5.2860 5.6959 6.1320 6.5241
 [17,] 4.2110 4.2360 4.2726 4.3175 4.5441 4.7960 5.2847 5.6876 6.1194 6.5181
 [18,] 4.2428 4.2647 4.2964 4.3357 4.5424 4.7845 5.2646 5.6719 6.1169 6.5124
 [19,] 4.1347 4.1967 4.2616 4.3197 4.5377 4.7727 5.2507 5.6579 6.0978 6.5008
 [20,] 4.2336 4.2662 4.3056 4.3487 4.5531 4.7890 5.2599 5.6599 6.0988 6.5091
 [21,] 4.3022 4.3212 4.3471 4.3785 4.5559 4.7899 5.2615 5.6640 6.1105 6.5276
 [22,] 4.2873 4.3040 4.3270 4.3557 4.5363 4.7954 5.2878 5.6843 6.1144 6.5246
 [23,] 4.2185 4.2520 4.2906 4.3306 4.5287 4.7847 5.2794 5.6833 6.1191 6.5264
 [24,] 4.2686 4.2840 4.3084 4.3403 4.5302 4.7795 5.2646 5.6657 6.1036 6.5120
 [25,] 4.2317 4.2651 4.3048 4.3455 4.5401 4.7830 5.2697 5.6748 6.1079 6.5047
 [26,] 4.2799 4.2970 4.3218 4.3528 4.5385 4.7920 5.2878 5.6931 6.1276 6.5297
 [27,] 4.3257 4.3221 4.3334 4.3573 4.5440 4.8067 5.3126 5.7153 6.1394 6.5284
 [28,] 4.2957 4.2931 4.3061 4.3319 4.5313 4.8093 5.3216 5.7206 6.1449 6.5356
 [29,] 4.3160 4.3174 4.3330 4.3605 4.5604 4.8343 5.3358 5.7283 6.1497 6.5388
 [30,] 4.2844 4.2902 4.3112 4.3447 4.5630 4.8403 5.3463 5.7398 6.1564 6.5388
 [31,] 4.2906 4.2956 4.3161 4.3494 4.5664 4.8395 5.3407 5.7333 6.1502 6.5306
 [32,] 4.2507 4.2597 4.2844 4.3215 4.5529 4.8390 5.3452 5.7304 6.1365 6.5083
 [33,] 4.2248 4.2363 4.2638 4.3041 4.5422 4.8221 5.3220 5.7075 6.1150 6.4836
 [34,] 4.2160 4.2309 4.2602 4.3011 4.5396 4.8239 5.3234 5.7040 6.1083 6.4824
 [35,] 4.2488 4.2653 4.2950 4.3360 4.5640 4.8225 5.2932 5.6751 6.1028 6.5190
 [36,] 4.2535 4.2778 4.3119 4.3538 4.5722 4.8242 5.3080 5.7047 6.1325 6.5396
 [37,] 4.2269 4.2552 4.2930 4.3386 4.5738 4.8456 5.3431 5.7383 6.1633 6.5666
 [38,] 4.2447 4.2724 4.3104 4.3571 4.5954 4.8587 5.3322 5.7135 6.1390 6.5553
 [39,] 4.2259 4.2588 4.3000 4.3480 4.5859 4.8543 5.3438 5.7368 6.1667 6.5810
 [40,] 4.3048 4.3340 4.3709 4.4141 4.6302 4.8783 5.3526 5.7438 6.1712 6.5857
 [41,] 4.2957 4.3340 4.3757 4.4185 4.6253 4.8835 5.3575 5.7383 6.1607 6.5816
 [42,] 4.2987 4.3299 4.3672 4.4096 4.6216 4.8698 5.3333 5.7134 6.1387 6.5726
 [43,] 4.2476 4.3117 4.3747 4.4309 4.6545 4.9142 5.3884 5.7678 6.1850 6.6045
 [44,] 4.3064 4.3477 4.3938 4.4440 4.6854 4.9633 5.4541 5.8405 6.2648 6.6796
 [45,] 4.2634 4.3178 4.3746 4.4316 4.6874 4.9793 5.4706 5.8417 6.2472 6.6541
 [46,] 4.2324 4.2952 4.3620 4.4310 4.7247 5.0221 5.5117 5.8802 6.2810 6.6811
 [47,] 4.1996 4.2590 4.3223 4.3891 4.6978 5.0348 5.5367 5.8862 6.2712 6.6467
 [48,] 4.1642 4.2274 4.2952 4.3670 4.6805 4.9993 5.5099 5.8772 6.2581 6.6110
 [49,] 4.1067 4.1771 4.2507 4.3266 4.6461 4.9660 5.4852 5.8644 6.2596 6.6281
 [50,] 3.9029 4.0035 4.1071 4.2092 4.5979 4.9374 5.4599 5.8372 6.2415 6.6478
 [51,] 3.6792 3.8747 4.0455 4.1802 4.5673 4.9142 5.4716 5.8699 6.2675 6.6239
 [52,] 4.0340 4.0860 4.1379 4.1969 4.5014 4.8683 5.4392 5.8354 6.2481 6.6499
 [53,] 3.9760 4.0437 4.1107 4.1794 4.4817 4.8158 5.3797 5.7955 6.2201 6.6209
 [54,] 3.8508 3.9472 4.0370 4.1149 4.4220 4.7881 5.3999 5.8261 6.2357 6.6157
 [55,] 3.7797 3.8835 3.9874 4.0837 4.4579 4.8441 5.4480 5.8540 6.2450 6.5866
 [56,] 4.1680 4.1875 4.2184 4.2645 4.5551 4.9206 5.5159 5.9287 6.3367 6.7013
 [57,] 4.2101 4.2300 4.2632 4.3105 4.5948 4.9435 5.5258 5.9318 6.3256 6.6829
 [58,] 4.1586 4.1845 4.2295 4.2911 4.6256 4.9891 5.5820 5.9903 6.3839 6.7344
 [59,] 4.1967 4.2347 4.2875 4.3516 4.6705 5.0099 5.5765 5.9831 6.3913 6.7639
 [60,] 4.1692 4.2189 4.2839 4.3610 4.7273 5.0944 5.6738 6.0741 6.4745 6.8477
 [61,] 4.1664 4.2159 4.2799 4.3551 4.7146 5.0861 5.6878 6.1031 6.5035 6.8640
 [62,] 4.1546 4.2071 4.2723 4.3471 4.6971 5.0562 5.6442 6.0596 6.4700 6.8442
 [63,] 4.0914 4.1520 4.2267 4.3123 4.7031 5.0844 5.6708 6.0667 6.4582 6.8189
 [64,] 4.1349 4.1640 4.2148 4.2866 4.6761 5.0843 5.7065 6.1122 6.4991 6.8419
 [65,] 4.1173 4.1585 4.2199 4.3001 4.7187 5.1584 5.8147 6.2327 6.6280 6.9774
 [66,] 4.1244 4.1741 4.2431 4.3278 4.7481 5.1820 5.8222 6.2244 6.6038 6.9448
 [67,] 4.1304 4.1735 4.2372 4.3170 4.7149 5.1237 5.7579 6.1763 6.5724 6.9186
 [68,] 4.1895 4.2216 4.2776 4.3528 4.7491 5.1649 5.8111 6.2320 6.6206 6.9467
 [69,] 4.2605 4.2784 4.3226 4.3883 4.7597 5.1606 5.7948 6.2153 6.6139 6.9669
 [70,] 4.2191 4.2363 4.2827 4.3527 4.7420 5.1460 5.7786 6.1955 6.5879 6.9321
 [71,] 4.2472 4.2590 4.2996 4.3624 4.7310 5.1357 5.7690 6.1838 6.5756 6.9162
 [72,] 4.2408 4.2631 4.3104 4.3773 4.7463 5.1444 5.7845 6.2177 6.6335 7.0035
 [73,] 4.1587 4.2048 4.2728 4.3569 4.7670 5.1779 5.8203 6.2504 6.6653 7.0379
 [74,] 4.1873 4.2350 4.3010 4.3814 4.7719 5.1650 5.7824 6.2118 6.6474 7.0385
 [75,] 4.1569 4.2089 4.2771 4.3571 4.7322 5.1062 5.7050 6.1253 6.5474 6.9306
 [76,] 4.2113 4.2396 4.2890 4.3582 4.7278 5.1097 5.7146 6.1322 6.5450 6.9056
 [77,] 4.2856 4.2940 4.3291 4.3868 4.7411 5.1437 5.7847 6.2113 6.6150 6.9567
 [78,] 4.2957 4.3127 4.3569 4.4232 4.7992 5.1981 5.8079 6.2177 6.6324 6.9952
 [79,] 4.3877 4.3996 4.4379 4.4988 4.8596 5.2568 5.8846 6.3071 6.7168 7.0651
 [80,] 4.4500 4.4775 4.5320 4.6067 4.9943 5.3823 5.9895 6.3986 6.7949 7.1334
 [81,] 4.5085 4.5341 4.5847 4.6540 5.0310 5.4383 6.0797 6.4994 6.8849 7.2045
 [82,] 4.5020 4.5503 4.6153 4.6926 5.0787 5.4998 6.1552 6.5784 6.9642 7.2909
 [83,] 4.6181 4.6518 4.7073 4.7793 5.1620 5.5802 6.2158 6.6143 6.9708 7.2668
 [84,] 4.5684 4.5972 4.6499 4.7198 5.0945 5.5018 6.1276 6.5272 6.8913 7.1866
 [85,] 4.5824 4.6068 4.6570 4.7264 5.1157 5.5524 6.2054 6.6026 6.9507 7.2379
 [86,] 4.5086 4.5248 4.5749 4.6499 5.0797 5.5464 6.2210 6.6165 6.9553 7.2308
 [87,] 4.6027 4.6264 4.6781 4.7486 5.1318 5.5527 6.2007 6.6014 6.9460 7.2252
 [88,] 4.5934 4.6180 4.6780 4.7618 5.2067 5.6648 6.3206 6.6986 7.0130 7.2717
 [89,] 4.5845 4.5990 4.6551 4.7393 5.2138 5.7173 6.3962 6.7627 7.0631 7.3048
 [90,] 4.5586 4.5586 4.6099 4.6956 5.1871 5.6890 6.3635 6.7270 7.0187 7.2455
 [91,] 4.6395 4.6187 4.6588 4.7399 5.2326 5.7260 6.3538 6.6759 6.9419 7.1679
 [92,] 4.6375 4.6149 4.6515 4.7244 5.1723 5.6361 6.2618 6.5978 6.8658 7.0824
 [93,] 4.6378 4.6065 4.6412 4.7171 5.1846 5.6507 6.2465 6.5540 6.8005 6.9985
 [94,] 4.6647 4.6338 4.6669 4.7412 5.2127 5.6999 6.3215 6.6394 6.8949 7.0955
 [95,] 4.6270 4.6067 4.6496 4.7326 5.2259 5.7166 6.3420 6.6618 6.9138 7.1127
 [96,] 4.6519 4.6382 4.6894 4.7811 5.3004 5.8017 6.4217 6.7299 6.9726 7.1703
 [97,] 4.7582 4.7326 4.7812 4.8744 5.3988 5.8832 6.4594 6.7435 6.9779 7.1728
 [98,] 4.7434 4.7318 4.7935 4.8974 5.4395 5.9165 6.4929 6.7843 7.0183 7.2069
 [99,] 4.8716 4.8600 4.9139 5.0081 5.5175 5.9792 6.5401 6.8192 7.0383 7.2168
[100,] 4.8395 4.8486 4.9192 5.0236 5.5343 5.9787 6.5318 6.8163 7.0325 7.1996
           20     30
  [1,] 6.7468 6.9383
  [2,] 6.7135 6.8943
  [3,] 6.7155 6.8900
  [4,] 6.7173 6.8941
  [5,] 6.7375 6.9159
  [6,] 6.8037 6.9887
  [7,] 6.8499 7.0350
  [8,] 6.8547 7.0383
  [9,] 6.9111 7.0823
 [10,] 7.0094 7.1834
 [11,] 7.0253 7.1981
 [12,] 6.7164 6.8985
 [13,] 6.6775 6.8538
 [14,] 6.6130 6.7893
 [15,] 6.6896 6.8689
 [16,] 6.7247 6.9267
 [17,] 6.7250 6.9311
 [18,] 6.7139 6.9235
 [19,] 6.7086 6.9166
 [20,] 6.7235 6.9396
 [21,] 6.7436 6.9598
 [22,] 6.7427 6.9624
 [23,] 6.7395 6.9533
 [24,] 6.7246 6.9380
 [25,] 6.7111 6.9217
 [26,] 6.7394 6.9517
 [27,] 6.7297 6.9292
 [28,] 6.7384 6.9386
 [29,] 6.7453 6.9588
 [30,] 6.7382 6.9379
 [31,] 6.7269 6.9219
 [32,] 6.7007 6.8902
 [33,] 6.6711 6.8521
 [34,] 6.6760 6.8628
 [35,] 6.7343 6.9318
 [36,] 6.7567 6.9762
 [37,] 6.7782 6.9848
 [38,] 6.7751 6.9839
 [39,] 6.8003 7.0149
 [40,] 6.8105 7.0397
 [41,] 6.8114 7.0405
 [42,] 6.8088 7.0373
 [43,] 6.8350 7.0648
 [44,] 6.8977 7.1041
 [45,] 6.8732 7.0815
 [46,] 6.9010 7.1195
 [47,] 6.8537 7.0642
 [48,] 6.7927 6.9645
 [49,] 6.8178 6.9967
 [50,] 6.8671 7.0726
 [51,] 6.8007 6.9582
 [52,] 6.8673 7.0836
 [53,] 6.8377 7.0620
 [54,] 6.8213 7.0303
 [55,] 6.7577 6.9168
 [56,] 6.8887 7.0726
 [57,] 6.8688 7.0492
 [58,] 6.9113 7.0737
 [59,] 6.9539 7.1285
 [60,] 7.0417 7.2202
 [61,] 7.0484 7.2197
 [62,] 7.0394 7.2277
 [63,] 7.0051 7.1749
 [64,] 7.0157 7.1764
 [65,] 7.1471 7.2891
 [66,] 7.1175 7.2698
 [67,] 7.0899 7.2427
 [68,] 7.1084 7.2624
 [69,] 7.1436 7.3007
 [70,] 7.1056 7.2637
 [71,] 7.0871 7.2444
 [72,] 7.1889 7.3546
 [73,] 7.2247 7.3880
 [74,] 7.2343 7.4117
 [75,] 7.1294 7.3195
 [76,] 7.0867 7.2591
 [77,] 7.1240 7.2793
 [78,] 7.1736 7.3343
 [79,] 7.2375 7.4014
 [80,] 7.3001 7.4545
 [81,] 7.3624 7.5147
 [82,] 7.4550 7.6128
 [83,] 7.4142 7.5570
 [84,] 7.3289 7.4644
 [85,] 7.3814 7.5202
 [86,] 7.3667 7.4961
 [87,] 7.3656 7.5065
 [88,] 7.4048 7.5368
 [89,] 7.4247 7.5401
 [90,] 7.3557 7.4637
 [91,] 7.2881 7.4072
 [92,] 7.1944 7.3075
 [93,] 7.1006 7.2045
 [94,] 7.1935 7.2891
 [95,] 7.2097 7.3020
 [96,] 7.2741 7.3799
 [97,] 7.2703 7.3595
 [98,] 7.3017 7.3933
 [99,] 7.3100 7.4040
[100,] 7.2816 7.3621

$dates
  [1] "2020-10-20" "2020-10-21" "2020-10-22" "2020-10-23" "2020-10-26"
  [6] "2020-10-27" "2020-10-28" "2020-10-29" "2020-10-30" "2020-11-02"
 [11] "2020-11-03" "2020-11-05" "2020-11-06" "2020-11-09" "2020-11-10"
 [16] "2020-11-11" "2020-11-12" "2020-11-13" "2020-11-16" "2020-11-17"
 [21] "2020-11-18" "2020-11-19" "2020-11-20" "2020-11-23" "2020-11-24"
 [26] "2020-11-25" "2020-11-26" "2020-11-27" "2020-11-30" "2020-12-01"
 [31] "2020-12-02" "2020-12-03" "2020-12-04" "2020-12-07" "2020-12-08"
 [36] "2020-12-09" "2020-12-10" "2020-12-11" "2020-12-14" "2020-12-15"
 [41] "2020-12-16" "2020-12-17" "2020-12-18" "2020-12-21" "2020-12-22"
 [46] "2020-12-23" "2020-12-24" "2020-12-25" "2020-12-28" "2020-12-29"
 [51] "2020-12-30" "2021-01-04" "2021-01-05" "2021-01-06" "2021-01-08"
 [56] "2021-01-11" "2021-01-12" "2021-01-13" "2021-01-14" "2021-01-15"
 [61] "2021-01-18" "2021-01-19" "2021-01-20" "2021-01-21" "2021-01-22"
 [66] "2021-01-25" "2021-01-26" "2021-01-27" "2021-01-28" "2021-01-29"
 [71] "2021-02-01" "2021-02-02" "2021-02-03" "2021-02-04" "2021-02-05"
 [76] "2021-02-08" "2021-02-09" "2021-02-10" "2021-02-11" "2021-02-12"
 [81] "2021-02-15" "2021-02-16" "2021-02-17" "2021-02-18" "2021-02-19"
 [86] "2021-02-22" "2021-02-24" "2021-02-25" "2021-02-26" "2021-03-01"
 [91] "2021-03-02" "2021-03-03" "2021-03-04" "2021-03-05" "2021-03-09"
 [96] "2021-03-10" "2021-03-11" "2021-03-12" "2021-03-15" "2021-03-16"

attr(,"class")
[1] "zeroyields"
dl_res <- estim_nss(datazeroyields, "dl", lambda = 1/2)
ns_res <- estim_nss(datazeroyields, "ns", lambda  = 0.5, tauconstr = c(0.2, 6, 0.1))
#ns_res
((param(ns_res)))
[[1]]
         beta_0    beta_1     beta_2     tau_1
  [1,] 7.331427 -3.270370 -2.8228873 1.9011939
  [2,] 7.285731 -3.193695 -2.8902317 1.8682046
  [3,] 7.260496 -3.164752 -2.9844875 1.7560677
  [4,] 7.280051 -3.126396 -3.0534731 1.8059262
  [5,] 7.304618 -3.103389 -3.2041599 1.7837476
  [6,] 7.386370 -3.183879 -3.2481354 1.7997529
  [7,] 7.421474 -3.137568 -3.3717682 1.7372052
  [8,] 7.401897 -3.044911 -3.6345314 1.6135332
  [9,] 7.454518 -3.099659 -3.6275356 1.6025720
 [10,] 7.546140 -3.139159 -3.8897656 1.4994521
 [11,] 7.581770 -3.154851 -3.8924365 1.5702498
 [12,] 7.271707 -2.850035 -3.6552770 1.6868603
 [13,] 7.227311 -2.939703 -3.4326902 1.7141888
 [14,] 7.162278 -2.827963 -3.4669457 1.7357686
 [15,] 7.255365 -3.007320 -3.3639331 1.7712254
 [16,] 7.362717 -3.180800 -3.0401010 2.0522379
 [17,] 7.369000 -3.170418 -3.0569387 2.0737610
 [18,] 7.365707 -3.120486 -3.1870366 2.0600320
 [19,] 7.383719 -3.257802 -2.7513472 2.2519769
 [20,] 7.401956 -3.173798 -3.0309272 2.1906504
 [21,] 7.424892 -3.110089 -3.3079956 2.1284785
 [22,] 7.402867 -3.105539 -3.3328402 2.0533859
 [23,] 7.401549 -3.180734 -3.1538638 2.0932477
 [24,] 7.383593 -3.107362 -3.3035514 2.0597124
 [25,] 7.363940 -3.126216 -3.1226702 2.0865098
 [26,] 7.387982 -3.093791 -3.3520698 2.0123420
 [27,] 7.338564 -2.989099 -3.5196280 1.8766853
 [28,] 7.344462 -3.032789 -3.4906865 1.8663409
 [29,] 7.364779 -3.042031 -3.3763910 1.9263941
 [30,] 7.336744 -3.051823 -3.2866007 1.8931266
 [31,] 7.320709 -3.028278 -3.2776808 1.8899057
 [32,] 7.273887 -3.029308 -3.1793836 1.8558949
 [33,] 7.237707 -3.022358 -3.1109928 1.8615315
 [34,] 7.250933 -3.050246 -3.0552037 1.8985195
 [35,] 7.381838 -3.156880 -2.9966215 2.1379486
 [36,] 7.421525 -3.183039 -3.0458694 2.1369296
 [37,] 7.418250 -3.212311 -3.0043608 2.0715528
 [38,] 7.438175 -3.227095 -2.8430730 2.2091528
 [39,] 7.466420 -3.268748 -2.9127235 2.1688676
 [40,] 7.499160 -3.214791 -2.9504771 2.2350170
 [41,] 7.506292 -3.231555 -2.8729095 2.2859728
 [42,] 7.520831 -3.248015 -2.8791087 2.3456112
 [43,] 7.542418 -3.326602 -2.5133154 2.4344042
 [44,] 7.553632 -3.279077 -2.8125923 2.1776759
 [45,] 7.519875 -3.305275 -2.5084969 2.2489614
 [46,] 7.558576 -3.401199 -2.1458363 2.3834238
 [47,] 7.452073 -3.337912 -2.1648163 2.1789106
 [48,] 7.330391 -3.231737 -2.3372354 1.9518023
 [49,] 7.385007 -3.347306 -2.3110251 2.0265671
 [50,] 7.527063 -3.747494 -1.2456289 2.6847349
 [51,] 7.367704 -3.779066 -0.6818338 2.5885417
 [52,] 7.479299 -3.497006 -2.9293390 1.9146633
 [53,] 7.482017 -3.558042 -2.7518186 2.0360146
 [54,] 7.422973 -3.613569 -2.7724549 1.8784430
 [55,] 7.271527 -3.562739 -2.4989686 1.7111503
 [56,] 7.429606 -3.258160 -3.5213040 1.6070365
 [57,] 7.399540 -3.189530 -3.3976403 1.6241337
 [58,] 7.419281 -3.281337 -3.2839773 1.5723003
 [59,] 7.506369 -3.349351 -3.0147907 1.7615100
 [60,] 7.587877 -3.489665 -2.7934784 1.7672918
 [61,] 7.578501 -3.460025 -3.0366772 1.6537642
 [62,] 7.604381 -3.507366 -2.9061658 1.7757728
 [63,] 7.527703 -3.517955 -2.6797347 1.7171033
 [64,] 7.500024 -3.395805 -3.3647708 1.4609779
 [65,] 7.624067 -3.535102 -3.4949937 1.4001533
 [66,] 7.588661 -3.511556 -3.2452013 1.4320656
 [67,] 7.581734 -3.489273 -3.2988345 1.4791047
 [68,] 7.583743 -3.407687 -3.5194148 1.3874147
 [69,] 7.640866 -3.393115 -3.5679006 1.4612819
 [70,] 7.592509 -3.393275 -3.5218887 1.4372710
 [71,] 7.571017 -3.326071 -3.6299637 1.4173471
 [72,] 7.715628 -3.494786 -3.5669582 1.5228575
 [73,] 7.751561 -3.649148 -3.2488725 1.5642814
 [74,] 7.802019 -3.680423 -3.1024223 1.7048627
 [75,] 7.703568 -3.617100 -2.9070961 1.7778854
 [76,] 7.613593 -3.441577 -3.2812512 1.5872237
 [77,] 7.616685 -3.316362 -3.7785688 1.4093787
 [78,] 7.684397 -3.421501 -3.4165636 1.5283414
 [79,] 7.742485 -3.359419 -3.6356676 1.4626346
 [80,] 7.787561 -3.375147 -3.2606444 1.4934471
 [81,] 7.833521 -3.324339 -3.5775931 1.3757422
 [82,] 7.936836 -3.449380 -3.4520542 1.4066871
 [83,] 7.848745 -3.225543 -3.4867904 1.3040183
 [84,] 7.763412 -3.187420 -3.4819815 1.3134325
 [85,] 7.802517 -3.191767 -3.6990969 1.2306767
 [86,] 7.767777 -3.212027 -3.9243587 1.1341193
 [87,] 7.787026 -3.157666 -3.6409712 1.2384322
 [88,] 7.785017 -3.162619 -3.7042519 1.1130754
 [89,] 7.781060 -3.117789 -4.0681243 0.9953804
 [90,] 7.699159 -3.039392 -4.1837133 0.9477902
 [91,] 7.600420 -2.850398 -4.1082531 0.9169063
 [92,] 7.515330 -2.767411 -4.0105985 0.9487971
 [93,] 7.390805 -2.620391 -4.0033555 0.8802862
 [94,] 7.492770 -2.676153 -4.1842734 0.8719145
 [95,] 7.506546 -2.740293 -4.1434995 0.8626978
 [96,] 7.565097 -2.784391 -4.1102806 0.8459501
 [97,] 7.533240 -2.640425 -4.0123273 0.8160090
 [98,] 7.566967 -2.715804 -3.8948683 0.8185111
 [99,] 7.568056 -2.581221 -3.7819994 0.8184536
[100,] 7.536293 -2.615937 -3.5449258 0.8236347

attr(,"class")
[1] "dyntermstrc_param"

Трехмерное представление кривой доходности

Доходности отдельных облигаций на рынке ОФЗ

(Графики и значения КБД Московской биржи) [https://www.moex.com/ru/marketdata/indices/state/g-curve/]

Расчет кривой бескупонной доходности ОФЗ – Московская Биржа

Кривая бескупонной доходности ОФЗ (Московская Биржа) – база расчета

Код в Торговой системе Дата погашения Корректирующая поправка Расчётная доходность Доходность последней сделки Спред к расчётной доходности Расчётная цена
SU26214RMFS5 27.05.2020 -0.01 5.1 5.1 0 100.28
SU26205RMFS3 14.04.2021 0 5.34 5.34 0 102.46
SU26217RMFS8 18.08.2021 0.02 5.42 5.5 0.08 102.96
SU25083RMFS5 15.12.2021 0 5.44 5.42 -0.02 102.71
SU26209RMFS5 20.07.2022 -0.01 5.5 5.46 -0.04 104.76
SU26220RMFS2 07.12.2022 0 5.54 5.49 -0.05 104.86
SU26211RMFS1 25.01.2023 0 5.56 5.59 0.03 103.99
SU26215RMFS2 16.08.2023 0 5.6 5.59 -0.01 104.56
SU26223RMFS6 28.02.2024 0.03 5.67 5.66 -0.01 103.2
SU26227RMFS7 17.07.2024 0.01 5.68 5.75 0.07 106.87
SU26222RMFS8 16.10.2024 -0.03 5.65 5.65 0 106.11
SU26219RMFS4 16.09.2026 0 5.81 5.79 -0.02 110.86
SU26226RMFS9 07.10.2026 0 5.81 5.86 0.05 112.01
SU26207RMFS9 03.02.2027 -0.02 5.82 5.81 -0.01 113.61
SU26212RMFS9 19.01.2028 -0.02 5.88 5.88 0 107.8
SU26224RMFS4 23.05.2029 -0.03 5.95 5.92 -0.03 107.25
SU26228RMFS5 10.04.2030 -0.01 6.02 6.02 0 112.9
SU26218RMFS6 17.09.2031 0 6.09 6.11 0.02 120.62
SU26221RMFS0 23.03.2033 0.02 6.17 6.18 0.01 114.46
SU26225RMFS1 10.05.2034 0 6.19 6.23 0.04 110.77
SU26230RMFS1 16.03.2039 0 6.31 6.3 -0.01 116.46
Код в Торговой системе Дата погашения Корректирующая поправка Расчётная доходность Доходность последней сделки Спред к расчётной доходности Расчётная цена

Список источников

  1. “Statistics and Data Analysis for Financial Engineering” (David Ruppert & David Matteson)
  2. Tuckman, B., & Serrat, A. (2011). Fixed income securities: tools for today’s markets (Vol. 626). John Wiley & Sons.
  3. Nelson, C. R., & Siegel, A. F. (1987). Parsimonious modeling of yield curves. Journal of business, 473-489.
  4. Diebold, F. X., & Li, C. (2006). Forecasting the term structure of government bond yields. Journal of econometrics, 130(2), 337-364.
  5. Gilli, M., Große, S., & Schumann, E. (2010). Calibrating the nelson-siegel-svensson model.