1 votos

Quantlib: Cómo cotizar un bono después de haber construido una estructura de plazos

Abajo están mis códigos usando QuantLib para construir una estructura de plazos Lo que me gustaría hacer es utilizarlo para fijar el precio de cualquier bono hipotético, por ejemplo

fecha de inicio : 8 Feb 2016 fecha de finalización : 8 Feb 2021 cupones : 10% semi

¿Cómo lo hago?

import matplotlib
matplotlib.use('macosx')
import matplotlib.pyplot as plt
import QuantLib as ql
import pandas as pd

# Deposit rates
depo_maturities = [ql.Period(1,ql.Months),ql.Period(3,ql.Months),ql.Period(6,ql.Months)]
depo_cpn = [.149,.165,.155] #yields they are trading at

maturity_days = [299,845,1210,1485,1895,2306,2671,3128,3494,3904,4453,5275,7101,8699,10526,13629,18834]

# Coupon Bonds
bond_maturities = [ql.Period(i, ql.Days) for i in maturity_days]
bond_cpn = [1.5,.5,.75,1,.625,1.5,1.25,1.625,.875,4.75]
bond_rates = [.106,.114,.151,.187,.252,.214,.272,.311,.4089,.474]
bond_quotes = [101.161,100.896,101.987,103.301,101.926,108.078,107.088,111.111,104.374,144.568]

bond_long_cpn = [4.25, 4.5, 4.25, 3.25, 1.75, 1.75, 1.625]  # coupons
bond_long_rates = [.593, .667, .767, .858, .848, .669, .543]  # yields
bond_long_quotes = [142.974, 152.719, 162.806, 151.432, 123.016, 135.634, 148.58]

'''####### Depo Helpers #########'''

calc_date = ql.Date(24, 3, 2020)
ql.Settings.instance().evaluationDate = calc_date

calendar = ql.UnitedKingdom()
business_convention = ql.Unadjusted
day_count = ql.Thirty360()
end_of_month = True
settlement_days = 0
face_amount = 100
coupon_frequency = ql.Period(ql.Annual)

# Create depo helpers
depo_helpers = [ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(r / 100.0)),
                                     m,
                                     settlement_days,
                                     calendar,
                                     business_convention,
                                     end_of_month,
                                     day_count)
                for r, m in zip(depo_cpn, depo_maturities)]

'''####### Bonds Helpers #########'''

# day_count = ql.Thirty360()
day_count = ql.Actual365Fixed()
end_of_month = True
settlement_days = 2

# create fixed rate bond helpers from fixed rate bonds
bond_cpn += bond_long_cpn
# bond_maturities += bond_long_maturities
bond_quotes += bond_long_quotes
bond_rates += bond_long_rates

bond_helpers = []
for r, m, q in zip(bond_cpn, bond_maturities, bond_quotes):
    termination_date = calc_date + m
    quote = ql.QuoteHandle(ql.SimpleQuote(q))
    schedule = ql.MakeSchedule(calc_date, termination_date, frequency=ql.Annual)
    helper = ql.FixedRateBondHelper(quote, settlement_days, face_amount, schedule, [r / 100.0], day_count,
                                    business_convention)
    bond_helpers.append(helper)

# The yield curve is constructed by putting the two helpers together.
rate_helpers = depo_helpers + bond_helpers
yieldcurve = ql.PiecewiseLogCubicDiscount(calc_date, rate_helpers, day_count)

# The spot cpn is obtined from yieldcurve object using the zeroRate method.
spots = []
tenors = []
for d in yieldcurve.dates():
    yrs = day_count.yearFraction(calc_date, d)
    compounding = ql.Compounded
    freq = ql.Annual
    zero_rate = yieldcurve.zeroRate(yrs, compounding, freq)
    tenors.append(yrs)
    eq_rate = zero_rate.equivalentRate(day_count, compounding, freq, calc_date, d).rate()
    spots.append(100 * eq_rate)

0voto

Marc Puntos 892

Como ya han dicho otros, no existe "tu mitad de la hipoteca" a los ojos del prestamista, por lo que no puedes liquidarla y dejar de ser responsable. Sin embargo, hay un par de formas de proceder.

  1. Suponiendo que las condiciones de su hipoteca lo permitan, pague el 50% de la hipoteca. A continuación, pida a un abogado que redacte un acuerdo entre usted y su pareja, en el que se establezca que él/ella es ahora responsable de la totalidad de la hipoteca restante (en realidad, usted lo redacta y lo firma antes de pagando el 50%). Este acuerdo no te servirá de nada si tu pareja huye del país y te deja con la hipoteca, ya que el banco seguirá persiguiéndote por ella, pero debería ayudarte si rompéis y discutís sobre quién es responsable de qué.
  2. Refinanciar la casa, pagando la hipoteca actual la mitad con tu herencia y la otra mitad con una nueva hipoteca suscrita sólo a nombre de tu SO.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X