---
title: "Cvičenie 9"
author: "Finančné deriváty"
#date: "22. 4. 2021"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```


# Ceny dlhopisov v modeloch krátkodobých úrokových mier

Okamžitú úrokovú mieru modelujeme pomocou stochastickej diferenciálnej rovnice:
$$
  dr = \mu(t, r) dt + \sigma(t, r) dw.
$$
Potom sa dá odvodiť parciálna diferenciálna rovnica pre cenu dlhopisu:
$$
  \frac{\partial P}{\partial t} + \big( \mu(r,t) - \lambda(r,t)\sigma(r,t) \big)\frac{\partial P}{\partial r} + \frac{\sigma^2}{2} \frac{\partial^2 P}{\partial r^2} - rP = 0.
$$
K tejto parciálnej diferenciálnej rovnici prislúcha okrajová podmienka, ktorá hovorí, že dlhopis v čase $T$ vypláca jeden dolár: $P(T, r) = 1$.

Ďalej existuje prevod medzi cenou dlhopisu a úrokovou mierou:
$$
  P(t, T) = e^{-R(t, T) \cdot (T-t)},
$$
kde $R(t,T)$ predstavuje *časovú štruktúru úrokovej miery* z času $t$ po čas $T$. Tento vzorec hovorí, že dlhopis sa úročí úrokovou mierou $R(t, T)$ počas doby dlhej $T-t$.

Situácia je ale zvyčajne opačná: poznáme cenu dlhopisov $P$ a z nich chceme odvodiť úrokovú mieru:
$$
  R(t, T) =  - \frac{\ln P(t, T)}{T-t}.
$$


# Vašíčkov model

Vašíčkov model je daný stochastickou diferenciálnou rovnicou v tvare
$$
  dr = \theta( \kappa - x)dt + \sigma\  dw
$$
Iný zápis toho istého modelu používa parametre:
$$
  dr = (\alpha + \beta r) dt + \sigma r^{\gamma}\ dw.
$$
Prevod medzi parametrami poznáme z minulého cvičenia:
$$
  \kappa = -\beta\\
  \theta = -\frac{\alpha}{\beta}
$$
resp.
$$
  \alpha = \kappa \theta
  \\
  \beta = -\kappa
$$

Budeme uvaživať konštantnú trhovú cenu rizika: $\lambda(r,t) \equiv \lambda = const.$ Na uľahčenie zápisu budeme značiť čas do splatnosti $\tau := T-t$. 

V tomto modeli existuje explicitné riešenie pre cenu dlhopisu, ktoré hľadáme v tvare:
$$
  P(r, \tau) = A(\tau) \cdot e^{-B(\tau) r},
$$
kde
$$
\begin{align*}
   \ln A(\tau) =& \left[\frac{1}{\kappa} (1-e^{-\kappa \tau}) - \tau \right]\left[\theta - \frac{\lambda \sigma}{\kappa} - \frac{\sigma^2}{2\kappa^2} \right] - \frac{\sigma^2}{4\kappa^3}(1-e^{-\kappa \tau})^2
   \\
   B(\tau) =& \frac{1-e^{-\kappa \tau}}{\kappa}
\end{align*}
$$


## Úloha: Výnosová krivka

Zoberme parametre Vašíčkovho modelu článku z minulého cvičenia. Zvoľte si hodnotu okamžitej úrokovej miery a zakreslite výnosové krivky pre niekoľko rôznych trhových cien rizika.

Návod: Vieme že cena dlhopisu $P(r, \tau)$ je na jednej strane $e^{-R(t, T) \tau}$ a na druhej strane $A(\tau) e^{-B(\tau) r}$. Vyjadríme z toho úrokovú mieru $R$ pomocou funkcií $A, B$:
$$
  R(T, t) = \frac{-\ln A(\tau)}{\tau} + \frac{B r}{\tau}
$$

```{r}
# parametre z minula
alpha <- 0.0046
beta <- -0.0487
sigma <- sqrt(0.0001)

kappa <- -beta
theta <- -alpha/beta

# okamžitá hodnota úrokovej miery
r0 <- 0.03  # skús zmeniť

# trhová cena rizika
lambda <- 0.1

# budeme počítať na časovom horizonte 100 rokov
tau_max <- 100
tt <- seq(0, tau_max, length.out=1001)[-1] # musíme vyhodiť tau=0


# časová štruktúra úrokových mier
InterestRateTermStrucutre <- function(tau, r0, lambda) {
  lnA <- ((1 - exp(-kappa*tau))/kappa - tau)*(theta - lambda*sigma/kappa
   - sigma^2/(2*kappa^2)) - (sigma^2*(1 - exp(-kappa*tau))^2/(4*kappa^3))
  B <- (1 - exp(-kappa*tau))/kappa
  
  return() # TODO
}

# graf
r <- InterestRateTermStrucutre(tt, r0, lambda)
plot(tt, r, "l", xlab="čas do splatnosti", ylab="Úroková miera", lwd=2)
```


## Úloha: Výnosová krivka a trhová cena rizika

Ako sa mení priebeh výnosovej krivky, ak sa mení trhová cena rizika $\lambda$?
```{r}
lambdas <- c(-2, -1, -0.5, -0.1, 0, 0.1, 0.5, 1, 2)
r0 <- 0.02
lambda <- -2
tau.max <- 100
tt <- seq(0, tau.max, length.out=1001)[-1]

# TODO
```


## Úloha: Limita výnosovej krivky

Zoberme parametre Vašíčkovho modelu článku z minulého cvičenia. Zvoľte si hodnotu trhovej ceny rizika. Pre niekoľko hodnôt okamžitej úrokovej miery zakreslite do jedného grafu výnosové krivky.

Dokážte, že pre $\tau \to \infty$ konvergujú forwardové úrokové miery k hodnote
$$
  R_\infty = \theta - \frac{\lambda \sigma}{\kappa} - \frac{\sigma^2}{2\kappa^2}
$$

Návod: vypočítajte limitu pre $\tau \to \infty$ z funkcie $R = \frac{-\ln A(\tau)}{\tau} + \frac{B(\tau) r}{\tau}$.


```{r}
alpha <- 0.0046
beta <- -0.0487
sigma <- sqrt(0.0001)

kappa <- -alpha/beta


lambda <- 0.1 # try and change this
tau_max <- 200 # may converge slowly
tt <- seq(0, tau_max, length.out=1001)[-1]

r_inf <- theta - lambda*sigma/kappa - sigma^2/(2*kappa^2)

r0s <- c(-0.05, -0.01, 0, 0.01, 0.05, 0.1) # different spot prices

# TODO
```


## Úloha: Trhová cena rizika a limita úrokových mier

Zoberme parametre Vašíčkovho modelu článku z minulého cvičenia. Predpokladajme, že limita výnosových kriviek sa rovná trom štvrtinám limitnej hodnoty okamžitej úrokovej miery. Vypočítajte trhovú cenu rizika.
$$
  R_{\infty} = \frac{3}{4}\theta
  \\
  \lambda = ?
$$
Pre overenie: malo by vyjsť $\lambda = 0,\!0123$.

```{r}
# TODO
```


## Úloha: Nie monotónna výnosová krivka

Uvažujme parametre z predchádzajúcej otázky. Nájdite príklad takej hodnoty okamžitej úrokovej miery, pre ktorú nie je príslušná výnosová krivka monotónna.
```{r}
r0 <- 0.001

# This should not be monotone
r <- InterestRateTermStrucutre(tt, r0, lambda)
plot(tt, r, "l", xlab="čas do splatnosti", ylab="Úroková miera", lwd=2)
```


## Tvary výnosových kriviek vo Vašíčkovom modeli

Výnosová krivka vo Vašíčkovom modeli môže mať priebeh:

- monotónne rastúci,
- najprv rastúci, potom klesajúci,
- monotónne klesajúci.

Hranice pre okamžitú úrokovú mieru, ktoré určujú tvar výnosovej krivky, sa dajú explicitne odvodiť. Pre Vašíčkov model to bolo spravené už v pôvodnom článku od Vašíčka. Používal nasledovnú parametrizáciu modelu: 
$$
  dr = \alpha(\gamma - r)\ dt + \rho \ dz
$$
a odvodil: 

![](http://www.iam.fmph.uniba.sk/institute/stehlikova/fd16/ex/ex08_files/shiny6.png)


### Bonus: Dnešná úroková miera (1b)

Cvičenie: Zoberme znovu parametre z minulého cvičenia. Predpokladajme, že limita úrokových mier je 11 percent. Pre aké hodnoty okamžitej úrokovej miery nie je výnosová krivka monotónna? 

### Bonus: Limita výnosových kriviek a trhová cena rizika (2b)

Zoberme znovu parametre z minulého cvičenia. Ak je okamžitá úroková mier rovná 10 percentám, výnosová krivka má nemonotónny priebeh a maximálny výnos má dlhopis so splatnosťou 23 rokov. Čomu sa rovná limita výnosových kriviek a čomu sa rovná trhová cena rizika? 


### Bonus: Otázka zo skúšok americkej *Society of Actuaries*: (4b)

You are using Vasicek one-factor interest-rate model with the short-rate process calibrated as:
$$
  \mbox dr(t) = 0.6[b - r(t)] \mbox dt + \sigma \ \mbox dZ(t).
$$
For $t \leq T$, let $P(r, t, T)$ be the price at time $t$ of a zero-coupon bond that pays $\$1$ at time $T$, if short-rate at time $t$ is $r$. The price of each zero-coupon bond in the Vasicek model follows na Itô process:
$$
  \frac{\mbox dP[r(t), t, T]}{P[r(t), t, T]} = \alpha[r(t), t, T] \mbox dt - q[r(t), t, T]\ \mbox dZ(t), \qquad t\leq T.
$$

You are given that $\alpha(0.04, 0, 2) = 0.04139761$.

Find $\alpha(0.05, 1 4)$.


# Bonus: CIR model (4b)

CIR model používa na modelovanie krátkodobej úrokovej miery stochastický proces:
$$
  dr_t = \kappa(\theta - r_t)\ dt + \sqrt {r_t}\ dw_t
$$
Vyriešte parciálnu diferenciálnu rovnicu pre cenu dlhopisu s okrajovou podmienkou $P(r, T) = 1$.

Návod: Hľadajte riešenie v tvare $P(r, \tau) = A(\tau) \cdot e^{-B(\tau) r}$.