---
title: "Cvičenie 4"
author: "Ján Gašper"
date: "06. 03. 2023"
output: html_document
---

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

# Black-Scholesov model: greeks

## Zaistenie portfólia a delta hedžing

Delta hedžing sa používa na zaistenie portfólia proti posunu ceny podkladového aktíva pomocou vhodnej kombinácie akcií a opcií. Pri odvodení Black-Scholesovej rovnice sme mali porfólio $$
  1\ \text{Opcia} - \Delta\ \text{Akcií}
$$ A pre vhodne zvolenú deltu sme dostali bezrizikové portfólio $$
  \Delta = \frac{\partial V}{\partial S}
$$

Ak by sme poznali hodnotu $\frac{\partial V}{\partial S}$, môžeme v portfóliu eliminovať riziko. V Black-Scholesovom modeli sa dá delta call opcie, napísať ako $\Delta = \Phi(d_1)$, ak akcia nevypláca dividendy. Implementujte funkciu, ktorá vypočíta deltu pre put opciu

```{r}
CallValue <- function(s, e, r, sigma, tau, q=0) {
  d1 <- (log(s/e) + (r-q+0.5*sigma^2)*tau)/(sigma*sqrt(tau))
  d2 <- (log(s/e) + (r-q-0.5*sigma^2)*tau)/(sigma*sqrt(tau))
  
  return(s*exp(-q*tau)*pnorm(d1) - e*exp(-r*tau)*pnorm(d2))
}

PutValue <- function(s, e, r, sigma, tau, q=0) {
  d1 <- (log(s/e) + (r - q + 0.5*sigma^2)*tau)/(sigma*sqrt(tau))
  d2 <- (log(s/e) +(r - q - 0.5*sigma^2)*tau)/(sigma*sqrt(tau))
  
  return(-s*exp(-q*tau)*pnorm(-d1) + e*exp(-r*tau)*pnorm(-d2))
}
```

```{r}
CallDelta <- function(s, e, r, sigma, tau) {
  d1 <- (log(s/e) + (r + 0.5*sigma^2)*tau)/(sigma*sqrt(tau))
  
  return(pnorm(d1))
}

PutDelta <- function(s, e, r, sigma, tau){
  # TODO
}
```


## Úloha 1: Delta hedžing

Cena akcie dnes je 20 USD, jej volatilita je 0.3 a úroková miera je 0.5 percenta.

```{r}
# TODO
```

Zaujíma nás počet akcií v portfóliu ak sme...

### a)

vypísali 1000 call opcií s exspiračnou cenou 25 USD a exspiráciou o pol roka,

```{r}
# TODO
```

### b)

vypísali 1000 put opcií s exspiračnou cenou 20 USD a exspiráciou o pol roka,

```{r}
# TODO
```

### c)

kúpili 1000 call opcií s exspiračnou cenou 30 USD a exspiráciou o pol roka

```{r}
# TODO
```

### d)

kúpili 1000 put opcií s exspiračnou cenou 20 USD a exspiráciou o pol roka,

```{r}
# TODO
```


## Úloha 2: Rôzne časy do exspirácie

Nasledovný graf zobrazuje deltu troch call opcií ako funkcií ceny akcie. Tieto opcie majú rôzny čas do exspirácie. **1 deň, 1/2 roka, 2 roky**. Ostatné parametre sú rovnaké. Priraďte časy exspirácie ku grafom. Svoju odpoveď overte výpočtom.

![](http://www.iam.fmph.uniba.sk/institute/stehlikova/fd17/cv03_files/cv11.png)

```{r}
# TODO
```


## Úloha 3: Limita delty

Chceme vypočítať limitu $\Delta$, pre $\tau\to 0^+$ a pre $\tau \to \infty$. Treba rozlíšiť prípady $S>E, S=E, S<E$.

Skúsime aj graficky:

```{r}
s <- 50
r <- 0.005
sigma <- 0.5
tau <- seq(0, 5, length.out=501)

# S > E
e <- 40
v <-  CallDelta(s, e, r, sigma, tau)
plot(tau, v, type="l", col="blue", ylim = c(0,1), ylab = "delta call opcie" )

# S = E
e <- 50
v <- CallDelta(s, e, r, sigma, tau)
lines(tau, v, type="l", col="red" )

# S < E
e <- 60
v <- CallDelta(s, e, r, sigma, tau)
lines(tau, v, type="l", col="green" )

# limita
abline(0.5, 0) # FIXME
```


## Úloha 4: Dividendy

Napíšte funkciu, ktorá vráti deltu pre *call* a *put* opcie v prípade, že akcia vypláca dividendy.

```{r}
CallDelta <- function(s, e, r, signa, tau, q=0) {
  # TODO  
}

PutDelta <- function(s, e, r, signa, tau, q=0) {
  # TODO  
}
```


# Domáca úloha (8b)

## Úloha 1 (1b)

Put opcia s exspiračnou cenou $E=450$ s exspiráciou o dva mesiace má cenu $51,\!34$. Aká je úroková miera, ak má podkladové aktívum cenu $400$ a volatilitu $\sigma = 25\%$?

## Úloha 2 (3b)

Nech sú splnené všetky predpoklady Black-Scholesovho modelu. Nájdite cenu derivátu, ktorý v čase exspirácie $T$ vyplatí $(S_T)^n$. Použite ansatz v tvare $V(S, t) = S^n\cdot A(t)$, kde $A(t)$ je nejaká funkcia.

Koľko kusov tohto derivátu treba nakúpiť/predať, aby sme zaistili $1000$ akcií pomocou delta hedžingu? Dnešná cena akcie je $S=50$, úroková miera je $0,\!2\%$, volatilita je $\sigma = 40\%$ a čas do exspirácie je pol roka.

## Úloha 3 (2b)

Pán Bohatý má v portfóliu jednu put opciu s exspiračnou cenou $E = 70$ a jednu call opciu s exspiračnou cenou $E = 50$, pričom akcia nevypláca dividendy. Rozhodnite či platí tvrdenie: „Hodnota portfólia pána Bohatého je minimálne 20."

## Úloha 4 (2b)

Dá sa nájsť cena opcie aj pomocou simulácie?

Predpokladajme, že cena podkladového aktíva sa riadi geometrickým Brownovým pohybom:
$$
  S_t = 100 \exp(0,\!1\, t + 0,\!3\, w_t)
$$

- Vypočítajte Black-Scholesovu cenu *binárnej call* opcie s exspiračnou cenou $E=115$ exspiráciou o rok na toto podkladové aktívum, ak úroková miera $r=1\%$.
- Vypočítajte pravdepodobnosť, že cena podkladového aktíva o rok bude vyššia ako $115$. Mala by to byť pravdepodobnosť, že opcia sa uplatní.
- Vypočítajte strednú hodnotu profitu.
- Čomu by sa musela rovnať úroková miera, aby platilo tvrdenie „diskontovaná stredná hodnota profitu sa rovná cene opcie"?

Poznámka: *binárna call* opcia vyplatí hodnotu $1$, ak cena podkladového aktíva v čase exspirácie presiahne exspiračnú cenu.


## Odovzdávanie

Podmienky odovzdania sú rovnaké ako pri prvej domácej úlohe. Pracovať možno samostatne alebo v skupinkách maximálne troch ľudí. Vaše riešenie odovzdajte mailom s predmetom **FD 2023 -- nick** do 12.03.2023.
