Ceny dlhopisov všeobecne

Okamžitú úrokovú mieru modelujeme pomocou stochastickej diferenciálnej rovnice: \[ dr = \mu(r, t) dt + \sigma(r, t) dw. \] Potom sa dá odvodiť parciálna diferenciálne 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(r, T) = 1\).

Ďalej existuje prevod medzi cenou dlhopisu a úrokovou mierou. Označme \(P(t, T)\) cenu dlhopisu ktorý si kúpime v čase \(t\) a ktorý v čase \(T\) vyplatí hodnotu \(1\): \[ P(t, T) = e^{-R(t, T) \cdot (T-t)}, \] kde \(R(t,T)\) je forwardová úroková miera z času \(t\) po čas \(T\). Tento vzorec hovorí, že dlhopis sa úročí forwarodovú ú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ť forwardovú ú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 \]

Vo Vašíčkovom modeli uvažujeme 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

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.

Zopár predbežných výpočtov

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} \]

Kód na doplnenie

# parameters from last week
alpha <- 0.0046
beta <- -0.0487
sigma <- sqrt(0.0001)

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

# spot interest rate
r0 <- 0.03  # try and change this

# market value of risk
lambda <- 0.1

# Time horizon will be 100 years
tau_max <- 100
tt <- seq(0, tau_max, length.out=1001)[-1] # We have to omit tau=0


# Term structure of interest rate
InterestRateTermStrucutre <- function(tau, r0, lambda){
  ln_A <- ((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
}

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

Ako sa mení priebeh výnosovej krivky, ak sa mení trhová cena rizika \(\lambda\)? Vykreslite grafy pre rozličné hodnoty \(\lambda\).

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

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\) úrokové miery so splatnosťou \(\tau\) konvergujú k hodnote \[ R_\infty = \theta - \frac{\lambda \sigma}{\kappa} - \frac{\sigma^2}{2\kappa^2} \]

Dôkaz nechávame na čitateľa. Stačí urobiť limitu pre \(\tau \to \infty\) z funkcie \(R = \frac{-\ln A(\tau)}{\tau} + \frac{B(\tau) r}{\tau}\).

Kód na doplnenie

alpha <- 0.0046
beta <- -0.0487
sigma <- sqrt(0.0001)

kappa <- -alpha/beta
theta <- -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

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.

Riešenie

Limita krátkodobých úrokových mier je \(\theta\): \[ R_{\infty} = \frac{3}{4}\theta \\ \lambda = ? \]

lambda <- 0
print(lambda)
## [1] 0
# TODO

Pre overenie: malo by vyjsť \(\lambda = 0,\!0123\).

Úloha

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.

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)

Bonus (3b)

Pozrite si stránku cvičení. Vyriešte cvičenia z časti Tvar výnosových kriviek: