---
title: "Cvičenie 2"
author: "Ján Gašper"
date: "20. 02. 2023"
output: html_document
editor_options: 
  markdown: 
    wrap: 72
---

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

# Európske opcie

-   **Európska call opcia** je kontrakt v ktorom majiteľ, opcie získava
    právo (ale nie povinnosť) kúpiť akciu v presne určenom exspiračnom
    čase za vopred dohodnutú exspiračnú cenu $E$.
-   **Európska put opcia** je kontrakt, v ktorom majiteľ, opcie získava
    právo (ale nie povinnosť) predať akciu v presne určenom exspiračnom
    čase za vopred dohodnutú exspiračnú cenu $E$.
-   **Payoff** je hodnota opcie v čase exspirácie
    -   Call opcia má payoff $\max(S-E,0)$
    -   Put opcia má payoff $\max(E-S,0)$
-   Profit je zisk, t.j. payoff znížený o (odúročenú) cenu opcie

## Reálne ceny opcií

Ceny opcií sa dajú pozrieť online na [yahoo
finance](https://finance.yahoo.com), alebo na [google
finance](https://www.google.com/finance/). Symboly opcie majú svoj
[štandardný tvar](https://help.yahoo.com/kb/SLN13884.html), v ktorom sú
uvedené všetky potrebné detaily opcie. Tento tvar je možné použiť aj pri
automatizovanom načítavaní dát.

## Payoff

Vytvorte funkciu, ktorá vráti payoff call a put opcie s exspiračnou
cenou $E$, ak je cena podkladového aktíva $S$

```{r}
CallPayoff <- function(s, e)
{
  # TODO
}

PutPayoff <- function(s, e)
{
  # TODO
}
```

Vyskúšajte pre $S \in [200, 300]$ a $E=250$:

```{r eval = FALSE}
s <- seq(200, 300, length.out=1001)
e <- 250

plot(s, PutPayoff(s, e), "l")
```

## Opčné stratégie

Často portfólio obsahuje viacero opcií. V tom prípade hovoríme o
*opčných stratégiách*. Stratégiu volí investor podľa svojich očakávaní o
budúcom vývine ceny podkladového aktíva.

### Typy stratégií

-   Investori, ktorí očakávajú, že cena podkladového aktíva bude rásť sa
    v žargóne nazývajú *bulls* (býci). Stratégie, ktoré prinesú profit,
    ak sa tento predpoklad naplní sa nazývajú *bullish* (býčie).
-   Investori, ktorí naopak očakávajú, že cena podkladového aktíva bude
    klesať sa nazývajú *bears* (medvede). Stratégie, ktoré prinesú
    profit, ak sa tento predpoklad naplní sa nazývajú *bearish*
    (medvedie).
-   Niektoré stratégie sú postavené na tom, či cena podkladového aktíva
    sa zmení.
    -   Stratégie, pri ktorých sa predpokladá, že sa cena aktíva výrazne
        zmení, sa nazývajú *short* (krátke). Tento názov je odvodený od
        tzv. *short pozícií*, pri ktorých má investor záporný počet
        nejakého cenného papiera. V inej terminológii sa nazývajú
        *bullish on volatility*.
    -   Stratégie, ktoré predpokladajú že sa cena aktíva veľmi nezmení,
        sa nazývajú *long* (dlhé), resp *bearish on volatility*.
    -   Existuje veľa druhov takýchto stratégií.

Viac o stratégiách sa môžete dočítať napríklad na portáli [The Options
Guide](https://www.theoptionsguide.com/option-trading-strategies.aspx).

### Príklad: tri stratégie

Pozrite si nasledujúce funkcie, ktoré vypočítajú profit troch rôznych
stratégií. Zistite exspiračné ceny jednotlivých opcií v stratégiách a
ich ceny.

```{r eval = FALSE}
Profit1 <- function(s) {
  call1 <- CallPayoff(s, 510)
  call2 <- CallPayoff(s, 517.5)
  return(14*((call1 - 36.4) + (-call2 + 29.55)))
}

Profit2 <- function(s) {
  return (
    8  * CallPayoff(s, 530) - 
    16 * CallPayoff(s, 550) +
    8  * CallPayoff(s, 570) - 
    39.2)
}

Profit3 <- function(s) {
  call510 <- CallPayoff(s, 510)
  call550 <- CallPayoff(s, 550)
  call570 <- CallPayoff(s, 570)
  5*((call510 - 36.4) - 2*(call550 - 12) + call570 - 6.3)
}
```

Vykreslite profit diagramy, tak ako na obrázku.

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

Doplňte výpočet, ktorý do grafu zakreslí, ktorá stratégia prináša pri
danej cene akcie najvyšší zisk. Červená farba znamená, že všetci sú v
strate, inak farba zodpovedá farbe profit diagramu najziskovejšej
stratégie.

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

```{r}
s <- seq(500, 600, length.out=101)

# TODO
```

### Príklad: butterfly stratégia

Investor očakáva, že cena podkladového aktíva bude v čase exspirácie
okolo hodnoty $E = 100$. Od svojej stratégie navyše požaduje aby mala
zdola ohraničený profit. Zvolil preto stratégiu *long butterfly*, ktorej
profit je znázornený na obrázku:

![](http://davinci.fmph.uniba.sk/~gasper6/FD23/butterfly.png)

-   Čo vieme povedať o cenách opcií, ktoré použil?
-   Vytvorte portfólio, ktoré má rovnaký profit, požijúc iba call opcie.
-   Vytvorte portfólio, ktoré má rovnaký profit, požijúc iba put opcie.

### Príklad:

Nájdite kombinácie call a put opcií, ktoré majú nasledovné payoffy:
![](http://www.iam.fmph.uniba.sk/institute/stehlikova/fd14/cv/obr1/strategie.png)

## Ohraničenia na ceny a arbitráž

Ak má nejaké portfólio profit, ktorý nadobúda iba nezáporné hodnoty, ide
o arbitráž: kúpou tohto portfólia s istotou nič nestratím a prinajlepšom
niečo získam.

Podľa princípu *no arbitrage* sa dá napr. ukázať, že cena call opcie
musí byť konvexnou funkciou exspiračnej ceny.

### Príklad (zo semestrálnej písomky)

Uvažujme nasledujúce ceny put opcií s rovnakým časom exspirácie a na
rovnaké podkladové aktívum:

| exspiračná cena | cena put opcie |
|:---------------:|:--------------:|
|       20        |       10       |
|       25        |     \$\$12     |
|       40        |       15       |

```{r}
e <- c(20, 25, 40)
price <- c(10, 12, 15)
plot(e, price, pch=19, xlab="Exspiračná cena", ylab="Cena opcie")
```

### Úloha: Put - Call parita

Ukážte že portfólio $+1 Call - 1Put$ má payoff \$S-E\$, ak sú obe opcie
na to isté podkladové aktívum a majú rovnaký čas exspirácie. Čo z toho
vieme usúdiť o vzťahu ceny $Put$ a $Call$?

## Ďalšie úlohy

Viac úloh na precvičenie môžete nájsť v [archíve
cvičení](http://www.iam.fmph.uniba.sk/institute/stehlikova/fd17/cv1.html)

# Domáca úloha

Úlohu vypracujte samostatne alebo v skupinkách najviac 3 ľudí.

Vaše riešenie odovzdajte mailom s predmetom **FD 2023 -- nick** , kde
**nick** je vami zvolená prezývka skupiny. Riešenie treba odovzdať do
26.02.2023.

## Úloha 1: Itôva lema pre diskrétne prírastky (2b)

Podľa Itôvej lemy platí $dw_t^2 = dt$. Ukážeme, že podobné tvrdenie
platí aj pre diskrétny časový krok, aspoň pre strednú hodnotu.

Označme $\Delta w$ zmenu Wienerovho procesu za časový interval dĺžky
$\Delta t$: $\Delta w_t = w_{t + \Delta t} - w_t$.

-   Aké je rozdelenie náhodnej premennej $(\Delta w)^2$? Akú ma strednú
    hodnotu a disperziu?
-   Ukážte že $\mathbb E\left[(\Delta w)^2\right]$ a $\Delta t$ sú
    asymptoticky zhodné, t.j. $$
    \lim_{\Delta t \to 0^+} \frac{\mathbb E\left[(\Delta w)^2\right]}{\Delta t} = 1
    $$

## Úloha 2: Ornstein-Uhlenbeckov proces (5b)

Uvažujme proces daný stochastickou diferenciálnou rovnicou: $$
  dr_t = \kappa (\theta - r_t)\, dt + \sigma\, dw_t
$$

### 2a) Stredná hodnota procesu (1b)

Aplikujme strednú hodnotu na stochastickú diferenciálnu rovnicu: $$
\begin{align*}
  \mathbb E[dr_t] &= \mathbb E[\kappa (\theta - r_t)\, dt + \sigma\, dw_t]
  \\
  d\mathbb E[r_t] &= \kappa (\theta - \mathbb E[r_t])\, dt + \sigma \mathbb E[dw_t]
\end{align*}
$$ Stredná hodnota $dw_t$ je rovná nule. Ak označíme
$f(t) := \mathbb E[r_t]$, dostávame diferenciálnu rovnicu pre strednú
hodnotu: $$
  df(t) = \kappa (\theta - f(t))\, dt
$$ Vyriešte túto diferenciálnu rovnicu s počiatočnou podmienkou
$f(0) = r_0$. Aká je limitná stredná hodnota tohto procesu, t.j. $$
  \lim_{t\to\infty} \mathbb E[r_t]
$$

### 2b) Disperia procesu (2b)

Nájdite diferenciál pre proces $s_t := r_t^2$. Odvoďte diferenciálnu
rovnicu pre $\mathbb E[s_t]$ a nájdite jej riešenie. Pomocou toho určte
disperziu procesu $r_t$ v čase $t$.

### 2a) Parametre procesu (2b)

Priraďte hodnoty parametrov k trajektóriám na obrázku:

-   $\kappa = 20, \theta = 1, \sigma = 1$
-   $\kappa = 3, \theta = 1, \sigma = 1$
-   $\kappa = 20, \theta = 3, \sigma = 5$
-   $\kappa = 20, \theta = 3, \sigma = 1$

Návod: Pomôžte si simuláciou pomocou metódy Euler-Marayuma.

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

### 2c) Bonus: Nezápornosť Ornstein-Uhlenbeckovho procesu (1b)

Dokážte nezápornosť Ornstein-Uhlenbeckovho procesu ak $\theta > 0$ a
$r_0 \geq 0$. Návod: Ak $r_0 \geq 0$ a pre nejaké $t_1$ platí
$r_{t_1} < 0$, potom musí existovať také $t_0$ že $r_{t_0} = 0$.
Zdôvodnite prečo. Aký je prírastok procesu $dr_{t_0}$ v čase $t_0$?

## Úloha 3: Bonus: Zlé odvodenie (0,5b)

Zdôvodnite prečo pre proces daný SDR $$
  dX_t = (3X_t - X_t^3)\, dt + dw_t
$$ s počiatočnou podmienkou $X_0 = x_0$ neplatí diferenciálna rovnica
pre strednú hodnotu v tvare $$
  \frac{df(t)}{dt} = 3f(t) - f^3(t)
$$ s počiatočnou podmienkou $f(0) = x_0$.

# Bonusová domáca úloha: stratégie na reálnych dátach (max. 5b)

Pozrite si ceny opcií na podkladové aktívum [Taiwan Semiconductor
Manufacturing Company
Limited](https://finance.yahoo.com/quote/TSM/options?p=TSMC&date=1680220800)
s dátumom exspirácie 31.03.2023.

Vytvorte portfólio, ktoré:

-   Obsahuje iba celočíselný počet call opcií (môže byť aj záporný).
-   Má profit zdola ohraničený sumou $-100 \mbox{ USD}$.

Kupovať môžete za cenu v stĺpci *Bid* a predávať za cenu v stĺpci *Ask*

Hodnotenie:

-   Každá stratégia, ktorá spĺňa zadanie získa 1 bod.
-   Ďalší bod získa každá stratégia, ktorá bude v čase exspirácie
    zisková.
-   Ďalšie tri body získa stratégia, ktoré bude v čase exspirácie
    najväčší zisk (ale kladný). V prípade zhody sa body rozdelia medzi
    skupinky.
-   Bodový zisk sa pripíše každému členovi skupinky

Úlohu vypracujte samostatne alebo v skupinkách najviac 3 ľudí.

Odovzdať treba:

-   Slovný popis stratégie: ako očakávate že sa pohne cena akcie, koľko
    akých opcií kúpite a predáte.
-   R-kovskú funkciu v tvare `nick <- function(s)`, kde `nick` je vami
    zvolená prezývka. pod ktorou budú zverejnené výsledky. Funkcia
    vracia profit vašej stratégie, ak je cena podkladového aktíva v čase
    exspirácie $S$ a kreslí profit diagram.
-   Obrázok profit diagramu.
-   Mená všetkých členov skupinky.
-   Screenshot cien opcií z Yahoo finance; dátum a čas urobenia
    screenshotu.

Vaše riešenie odovzdajte mailom s predmetom **FD 2023 -- nick** do
26.02.2023.
