Převod kódu na funkci

Oceňování a analýza dluhopisů v R

Clifford Ang

Senior Vice President, Compass Lexecon

Funkce pro oceňování dluhopisů

  • V tomto kurzu oceníme mnoho dluhopisů
  • Kroky z předchozí kapitoly se budou opakovat
  • Funkce bondprc() výpočty zjednodušuje
Oceňování a analýza dluhopisů v R

Kroky oceňování dluhopisů

  • Zobecnění vstupů:
    • p pro nominální hodnotu
    • r pro kupónovou sazbu
    • ttm pro dobu do splatnosti
    • y pro výnos
  • Část kódu je také zobecněna
Oceňování a analýza dluhopisů v R

Kroky oceňování dluhopisů

cf <- c(rep(p * r, ttm - 1), p * (1 + r))
  • rep(x, y) – opakuje hodnotu x celkem y-krát
  • x = p * r = kupónová platba
  • y = ttm - 1 = doba do splatnosti minus jeden rok
  • p * (1 + r) = jistina + poslední kupónová platba
Oceňování a analýza dluhopisů v R

Kroky oceňování dluhopisů

cf <- data.frame(cf)
  • Převod na datový rámec pro přidání proměnných (stejně jako v předchozí části)
cf$t <- as.numeric(rownames(cf))
  • Vytvoření časového indexu pro diskontování
    • rownames() vektoru cf odpovídá hodnotám 1, 2, 3, 4, … až po ttm dluhopisu
    • as.numeric() zajišťuje čtení hodnot jako čísel
Oceňování a analýza dluhopisů v R

Kroky oceňování dluhopisů

cf$pv_factor <- 1 / (1 + y)^cf$t
  • Výpočet faktoru současné hodnoty
cf$pv <- cf$cf * cf$pv_factor
  • Výpočet současné hodnoty každého peněžního toku
sum(cf$pv)
  • Součet současných hodnot = hodnota dluhopisu
Oceňování a analýza dluhopisů v R

Zabalení kódu

  • Vytvoření funkce bondprc()
  • Vstupy: p, r, ttm a y
bondprc <- function(p, r, ttm, y){
   cf <- c(rep(p * r, ttm - 1), p * (1 + r))
   cf <- data.frame(cf)
   cf$t <- as.numeric(rownames(cf))
   cf$pv_factor <- 1 / (1 + y)^cf$t
   cf$pv <- cf$cf * cf$pv_factor
   sum(cf$pv)
}
Oceňování a analýza dluhopisů v R

Lass uns üben!

Oceňování a analýza dluhopisů v R

Preparing Video For Download...