1 votos

YTM de las emisiones de bonos "muy maduros"

Existe una prima de liquidez entre las emisiones de tesorería on-the-run y las emisiones off-the-run de características similares. Por ello, al construir una curva de rendimiento, se suelen utilizar las emisiones on-the-run para calcular esta curva como representación del tipo libre de riesgo.

Parece ser una práctica académica y profesional común eliminar estos valores "especiales" (por cuestiones obvias) al construir la curva. Sin embargo, cuando se realiza un análisis de valor relativo entre estos bonos, se utilizan exclusivamente estos valores fuera de serie.

Por lo general, sigue habiendo discrepancias entre los temas muy experimentados.

  1. ¿Cómo son estas emisiones (por ejemplo, un bono original a 30 años con menos de 2 años hasta el vencimiento y un cupón muy alto) se incorporan a los cálculos de la curva de rendimiento cálculos de la curva de rendimiento?
  2. ¿Cómo puedo obtener un YTM significativo para este ejemplo de vencimiento?

Por ejemplo, el bono original a 30 años de vencimiento más cercano en la actualidad es:

912810EB0 - Nov15'18 9.0 - BID 101.14000 ASK 101.30600 Mark Yield 1.994%

(edición: este rendimiento es proporcionado por el corredor, pero parece razonable, por lo que su "matemática de bonos" no explotó como la mía).

He probado mis propias matemáticas de bonos y algunas calculadoras disponibles aquí: http://www.quantwolf.com/calculators/bondyieldcalc.html

def bond_ytm(bond):

    price = float(bond['END OF DAY'])
    par = 100.
    T = bond['T']
    t = pd.to_datetime(bond['date'])

    if bond['SECURITY TYPE'] == 'MARKET BASED FRN':
        freq = 4
    else:
        freq = 2

    coupon = float(bond['RATE'].strip('%'))/freq
    coupon_dates = get_coupon_dates(bond, afterDate=t)

    # zero-coupon
    if len(coupon_dates) == 0:
        return (par/price)**(1/T) - 1.0

    dt = dates_to_relative(coupon_dates, anchor=t)

    def Px(Rate):
        return price - (((par + coupon) / (1 + Rate/freq)**(T)) + ((coupon/Rate) * sum([(1 / (1+Rate/freq)**(time*freq)) for time in dt]) ))

    ytm_func = lambda y: coupon*sum([1/(1+y/freq)**(time) for time in dt]) + 1/(1+y/freq)**(freq*T)
    guess = coupon/par
    return optimize.newton(Px, 0.03, maxiter=500)

Ambos me están dando resultados que no tienen sentido (como un 25% YTM).

¿Cómo puedo obtener algunos resultados significativos para estos temas tan experimentados?

7voto

Cube_Zombie Puntos 174

Existe una prima de liquidez entre las emisiones de tesorería on-the-run y las emisiones off-the-run de características similares. Por ello, al construir una curva de rendimiento, se suelen utilizar las emisiones on-the-run para calcular esta curva como representación del tipo libre de riesgo.

Depende de para qué uses la curva. En la práctica, es mucho más frecuente utilizar sólo OFF -las emisiones para construir las curvas de rendimiento del valor razonable y calcular los análisis.

¿Cómo se incorporan estas cuestiones (por ejemplo, un bono original a 30 años con menos de 2 años de vencimiento y un cupón muy alto) en los cálculos de la curva de rendimiento?

El tratamiento difiere de un país a otro, según las condiciones del mercado. En Estados Unidos, estos valores de alta temporada suelen excluirse por completo Porque no tienen liquidez, se negocian de forma diferente a las emisiones más recientes con vencimientos comparables y, por lo general, no proporcionan mucha información sobre el "valor razonable". Una regla general consiste en eliminar los valores con vencimiento que han salido de su categoría de vencimiento original. Por ejemplo, se pueden excluir los bonos a 30 años con menos de 10 años de vencimiento. Incluso mejor, en este tenor (<1 año), ¡no utilice los tipos del Tesoro en absoluto! Utilice los tipos repo, ya que son los tipos de financiación adecuados de todos modos.

¿Cómo puedo obtener un YTM significativo para este ejemplo de vencimiento?

Como este bono está en su último período de cupón, se utiliza la convención de interés simple. El interés acumulado es: $$ AI = \frac{\text{9/11/2018} - \text{5/15/2018}}{\text{11/15/2018} - \text{5/15/2018}}\times \frac{9}{2} = 2.910326087. $$

Por lo tanto, la fórmula precio-rendimiento es $$ 101.223 + 2.910326087 = \frac{104.5}{1 + \frac{y}{2} \cdot \text{DCF}},$$ donde la fracción de recuento de días DCF es $$ DCF = \frac{\text{11/15/2018} - \text{9/11/2018}}{\text{11/15/2018} - \text{5/15/2018}} = 0.35326087.$$ Resolver para $y$ da un 1,994% de precisión.

0voto

user35268 Puntos 6

Estoy obteniendo un rendimiento razonable por esa cuestión.

Vaya al siguiente sitio web:

https://www.opencminc.com

  1. Cambie al panel de bonos en la sección de calculadoras
  2. Escriba 912810EB0 dentro del filtro ISIN en la cuadrícula de "Valores existentes" en la parte izquierda del panel de la calculadora y pulse Enter
  3. Haga clic en el valor seleccionado para ver su estructura de plazos, precio, rendimiento, flujos de caja, etc. El precio de este bono se calculará a partir de la curva de rendimiento en la sección de datos de mercado que se encuentra encima del panel de calculadoras.

Espero que esto ayude. Gracias

0voto

user35546 Puntos 11

Un rendimiento del 1,994% correspondería a un precio limpio medio (aproximadamente) de 101,223. Si se añaden los intereses devengados de unos 2,9103 al precio limpio, se obtiene un precio de liquidación de 104,1333. Si se introduce este precio en las calculadoras que se han utilizado, se obtendrá un rendimiento de aproximadamente el 2%.

P.D.: algunas calculadoras de bonos de EE.UU. utilizan la capitalización simple al fijar el precio durante el último periodo de cupones.

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