Estimer le rendement d’une obligation

Évaluation et analyse des obligations avec R

Clifford Ang

Senior Vice President, Compass Lexecon

Trouver le rendement par essais-erreurs

  • Pour les obligations négociées, on peut en déduire le rendement
  • Si vous connaissez le prix et les flux, vous pouvez « tester » des rendements
  • Le rendement « correct » égalise le prix et la VA des flux de l’obligation
Évaluation et analyse des obligations avec R

Itérer différents essais

  • Obligation au pair 100 $, coupon 5 %, échéance 10 ans, prix 92,64 $
  • 1er essai : 5 % → Prix 100 $ (trop élevé)
  • 2e essai : 7 % → Prix 85,95 $ (trop bas)
  • 3e essai : 6 % → Prix 92,64 $ (correct)
Évaluation et analyse des obligations avec R

Automatiser le processus

  • Les essais-erreurs sont inefficaces
  • On peut utiliser uniroot() dans R pour automatiser
Évaluation et analyse des obligations avec R

Créer la fonction avec uniroot()

ytm <- function(cf) {
    uniroot(bval, c(0, 1), cf = cf)$root
}
  • Créer la fonction ytm() avec uniroot()
  • Elle prend un vecteur de flux modifié (cf) et utilise bval
  • c(0,1) borne la recherche à 0 %–100 %
Évaluation et analyse des obligations avec R

Vecteur de flux modifié

cf <- c(-92.64, 5, 5, 5, 5, 5, 5, 5, 5, 5, 105)
  • Le premier élément est le prix, saisi en négatif
  • Les suivants sont les flux : coupons plus nominal
  • Même obligation : prix -92,64 $, nominal 100 $, coupon 5 %, échéance 10 ans
Évaluation et analyse des obligations avec R

Fonction d’évaluation modifiée

bval <- function(i, cf, t = seq(along = cf))  sum(cf / (1 + i)^t)
  • Créer la fonction d’évaluation bval() utilisant le vecteur de flux modifié (cf)
  • Même logique que bondprc()
  • Créer l’indicateur de temps (t)
  • Actualiser les flux avec le taux (i)
Évaluation et analyse des obligations avec R

Passons à la pratique !

Évaluation et analyse des obligations avec R

Preparing Video For Download...