ComeçarComece de graça

Use a função uniroot para encontrar o YTM

Tentar e errar é um processo bem trabalhoso. Uma alternativa é usar um algoritmo que faça esse trabalho por você. Neste caso específico, a solução do problema é a mesma que encontrar a raiz de uma função.

Neste exercício, você vai usar a função unrioot() para encontrar a raiz.

A função uniroot() exige que você defina um vetor de fluxos de caixa, cf, que comece com o preço do título (como um número negativo) como primeiro elemento e os fluxos de caixa que você espera receber do título (ou seja, pagamentos de cupom e principal) como os elementos restantes.

Lembre-se de que o preço do título é $95,79 e que ele tem valor de face de $100, taxa de cupom de 5% e 5 anos até o vencimento.

Este exercício faz parte do curso

Avaliação e Análise de Títulos em R

Ver curso

Instruções do exercício

  • Crie um vetor de fluxos de caixa, cf, que inclua o preço inicial do título (negativo) e os pagamentos até o vencimento (positivos).
  • Use o código pré-escrito para criar uma função simples de avaliação de títulos, bval(), que calcula o valor do título em cada período.
  • Use o código pré-escrito para criar a função ytm() usando uniroot().
  • Use ytm() com seu vetor cf para encontrar o yield to maturity do título.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Create cash flow vector
cf <- c(___, ___, ___, ___, ___, ___)

# Create bond valuation function
bval <- function(i, cf,
     t=seq(along = cf))
     sum(cf / (1 + i)^t)

# Create ytm() function using uniroot
ytm <- function(cf) {
    uniroot(bval, c(0, 1), cf = cf)$root
}

# Use ytm() function to find yield


Editar e executar o código