Przekształcenie kodu w funkcję

Wycena i analiza obligacji w R

Clifford Ang

Senior Vice President, Compass Lexecon

Funkcja wyceny obligacji

  • W tym kursie będziemy wyceniać wiele obligacji
  • Kroki z poprzedniego rozdziału będą powtarzane
  • Stworzymy funkcję bondprc(), aby uprościć obliczenia
Wycena i analiza obligacji w R

Kroki wyceny obligacji

  • Uogólnienie danych wejściowych:
    • p – wartość nominalna
    • r – stopa kuponowa
    • ttm – czas do zapadalności
    • y – rentowność
  • Część kodu zostaje uogólniona
Wycena i analiza obligacji w R

Kroki wyceny obligacji

cf <- c(rep(p * r, ttm - 1), p * (1 + r))
  • rep(x, y) – powtarza wartość x przez y razy
  • x = p * r = płatność kuponowa
  • y = ttm - 1 = czas do zapadalności minus jeden rok
  • p * (1 + r) = kapitał + ostatnia płatność kuponowa
Wycena i analiza obligacji w R

Kroki wyceny obligacji

cf <- data.frame(cf)
  • Konwersja do ramki danych umożliwia dodanie zmiennych (jak w poprzedniej sekcji)
cf$t <- as.numeric(rownames(cf))
  • Tworzenie indeksu czasu do dyskontowania
    • rownames() wektora cf przyjmuje wartości 1, 2, 3, 4, ... do ttm obligacji
    • as.numeric() zapewnia odczytanie wartości jako liczb
Wycena i analiza obligacji w R

Kroki wyceny obligacji

cf$pv_factor <- 1 / (1 + y)^cf$t
  • Obliczenie współczynnika PV
cf$pv <- cf$cf * cf$pv_factor
  • Obliczenie PV każdego przepływu pieniężnego
sum(cf$pv)
  • Suma PV jako wartość obligacji
Wycena i analiza obligacji w R

Opakowanie kodu

  • Tworzenie funkcji bondprc()
  • Przyjmuje parametry: p, r, ttm i 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)
}
Wycena i analiza obligacji w R

Czas na ćwiczenia!

Wycena i analiza obligacji w R

Preparing Video For Download...