1. Reproducir y explicar los códigos

5.2 El bono

El instrumento financiero representado por el bono, aporta con un flujo de efectivo fijo que representa las cuotas hasta el vencimiento del bono con el aporte del reembolso del principal (valor nominal) del bono. Representado por:

\[V=\sum_{t=0}^{mT}\frac{cP}{(1+y/m)^t}+\frac{P}{(1+y/m)^{mT}}\]

El valor actual del bono está compuesta por los rendimientos, número de años, numero de periodo que los flujos de efectivo, la tasa cupón por año y el bono a valor nominal.

La fórmula que representa la suma del valor actual de los pagos cupón:

\[V=(c/m)P\left(\frac{1}{y/m}-\frac{1}{(y/m)(1+y/m)^{mT}}\right)+\frac{P}{(1+y/m)^{mT}}\]

Ejemplo:

Un bono típico paga cupones dos veces al año, por lo que M = 2, la madurez del bono en años es de 10 años, se tiene M = 2MT= 10×2 =20, además la tasa vupon es del 5%, precio del bono es 100 y la tasa de interés es de 0.04, 0.05, 0.06.

c <- 0.05
P <- 100
y <- c(0.04, 0.05, 0.06)
m <- 2
T <- 10
(V <- (c/m) * P * (1/(y/m) - 1/((y/m) * (1 + (y/m))^(m * T))) +
  P/(1 + (y/m))^(m * T))
## [1] 108.17572 100.00000  92.56126

5.2.1 Una muestra

Teniendo un tasa cupon mayor al rendimiento con tasas de interés negativas se calcula los valores de los bonos. \[y <- c(-0.02, -0.01, 0.00, .01, .02) \]

Respuesta:

El bono paga a una tasa mayor que la demanda del mercado. Donde los adquirientes estiman pagar más para cubrir la diferencia entre el par.

Teniendo una tasa cupon de 5%, valor nominal 100, por lo que M = 2, la madurez del bono en años es de 10 años se tiene:

c <- 0.05
P <- 100
y <- c(-0.02, -0.01, 0, 0.01, 0.02)
m <- 2
T <- 10

( V <- (c/m) * P * (1/(y/m) - 1/((y/m) * (1 + (y/m))^(m * T))) + 
    P/(1 + (y/m))^(m * T))
## [1] 177.9215 163.2689      NaN 137.9748 127.0683

Muestra el rendimiento promedio de las tasas a plazo que se estima para el mercado en el precio de los flujos de efectivo durante un tiempo determinado.

La estrategia para estimar el futuro del precio del bono es espimar el pasado como direccionado hacia el futuro y regular las tasas a una curva de tasas en los vencimientos.

El modelo spline de regresión de su comportamiento, se estima tasas para cualquier madurez

5.2.2 ¿Qué es una spline?

Una spline esta compuesto por funciones polinómicas, donde los polinomios son componentes a plazos de las tasas de interés. Donde las partes de las esctucturas estsan compuestas por paresee de precio y vencimiento. Donde se estructura mediante nudos que se colocan en cuartiles para incorporar mas nudos donde la información se agrupan. Con ello se estima una función polinómica distinta para cada rango y dominio de la información entre cada nudo.Para construir un spline de regresión poplinomica con la información del cupon cero del tesoro de EEUU. El polinomio se muestra de la siguiente manera.

\[f(x) = a_0 x^0 + a_1 x^1 + a_2 x^2 + ... + a_p x^p,\]

donde el UnUn’s son coeficientes constantes, y \[X0=1x0x1 Y X1=Xx1x.\]

• Si \[P=0\], muestra una función constante.

• Si \[P=1\], muestra una función lineal.

• Si \[P=2\], muestra una función cuadrática.

• Si \[P=3\], muestra una función cúbica, y así sucesivamente…

5.2.3 Mas del bono

En un supuesto caso donde los inversores dan a un emisor hoy el valor actual, el “precio” del bono de obtener de vuelta el 100% del valor nominal de un bono de cupón cero al año de vencimiento \[T_TP\].

El precio de un bono cupón cero, cotizado en términos del porcentaje de valor nominal, por lo cual la composición discreta a tasa (mensualmente obtiene un porcentaje del saldo del mes pasado): \[y_T^D\]

\[P_T = \frac{100}{(1+y^d(T))^{T}}\]

Con los términos de Jacob Bernoulli y Leonhardt Euler, se muestra:

1 Si al inicio de año paga para recibir 1 DOLAR al final de un año y los intereses se compone sólo de ese año. Tenemos que final del año es lo que obtendremos. pero por contrato esta cantidad es 1 DOLAR, con ello alcanzamos a la primera potencia para enfatizar que un período de composición fue estimado. \[P_yP+yP\].

\[P + yP = P(1+y) = 1\]

Y solucionar por \[P\]

\[P = \frac{1}{(1+y)^1}\]

\[(1+y) \]

  1. En este caso suponemos recibir intereses dos veces al año a una tasa de interés anual de \[y\]. tambien, al final del primer semestre del año obtendremos la mitad de los intereses para obtener en la cuenta de contrato. luego obtendremos un interes hasta el final del año del contrato para que el ajuste. \[yy/2\]

\[P\left(1+\frac{y}{2}\right)\]

\[y/2\]

\[P\left(1+\frac{y}{2}\right) + \frac{y}{2}\left[P\left(1+\frac{y}{2}\right)\right] = P\left(1+\frac{y}{2}\right)\left(1+\frac{y}{2}\right) = P\left(1+\frac{y}{2}\right)^2\]

\[P\left(1+\frac{y}{2}\right)^2 =1 \]

Solucionando para el valor actual de obtener $1 al final del año de contrato cuando se tiene dos períodos de composición.

  1. En términos de de Jacob Bernoulli, más usualmente señala para los períodos de composición.

  2. además los períodos de interés y composición (minuto a minuto compuesto), por lo siguiente, \[P\]

\[P = \frac{1}{\left(1+\frac{y}{2}\right)^2}\]

\[M\]

\[P = \frac{1}{\left(1+\frac{y}{m}\right)^m}\]

\[y=100%\]

\[M=365×24×60=525600\]

\[P = \frac{1}{\left(1+\frac{1}{525600}\right)^525600}\]

(m <- 365 * 24 * 60)
## [1] 525600
(y <- 1)
## [1] 1
(P <- 1/(1 + (y/m))^m)
## [1] 0.3678798

Cabe señalar la composición continua se adquiere del porcentaje del equilibrio del ultimo nanosegundo al final de este mismo… a medida que estos se conviertan más pequeños.

\[P_T(\theta) = 100 exp(-y_TT).\]

Donde este valor actual al calcanzar un flujo de caja del 100% del valor nominal al vencimiento. También si el bono son con cupones, se considera los pagos como bono mini-cero. La suma de todo los mini-ceros nos da el valor del bono, también contemplado como un portafolio de mini-ceros.

Para estimar la curva a plazos a travez de los precios de los bonos tenemos lo siguiente:

\[- \frac{\Delta log(P(T_{i}))}{\Delta T_{i}} = - \frac{log(P(T_{i})) - log(P(T_{i-1}))}{T_i - T_{i-1}}.\]

La función es el logaritmo natural. Un ejemplo de ello. \[ ΔYoYo−1Log() \]

También el rendimiento es igual al promedio de la tasa forward desde unb momento dado hasta la fecha de un bono cero. Utlizando la integral, donde es la suma acumulada, que sirve para calcular el promedio: \[0T\]

\[y_T(\theta) = T^{-1} \int_0^T r(t, \theta) DT.\]

5.2.4 Un ejemplo para aclarar

Se carga para el ejercicio

maturity <- c(1, 5, 10, 20, 30)  # en años
price <- c(99, 98, 96, 93, 89)  # en porcentaje del valor nominal

Para poder desarrollar una muestra se incluye los precios de cupon cero con sus vencimientos:

  1. Calcular la tasas de forward utilizando \[log(price)/100\]
(forward <- -diff(log(price))/diff(maturity))
## [1] 0.002538093 0.004123857 0.003174870 0.004396312
  1. Observa la relacion con \[.log(price)price\]

B. buscar la curva de rendimiento a vencimiento y hallar los precios de los bonos

(forward.initial <- -log(price[1]/100))
## [1] 0.01005034
(forward.integrate <- c(forward.initial, 
    forward.initial + cumsum(forward * 
        diff(maturity))))
## [1] 0.01005034 0.02020271 0.04082199 0.07257069 0.11653382
# una integración continua de tarifas
# a través de los vencimientos
(price <- 100 * exp(-forward.integrate))
## [1] 99 98 96 93 89
# valor presente de recibir el 100% de
# valor nominal

Las tarifas forward. se ejecuta el logaritmo natural de: \[price\]

(forward <- -diff(log(price/100))/diff(maturity))
## [1] 0.002538093 0.004123857 0.003174870 0.004396312
(-log(price/100))
## [1] 0.01005034 0.02020271 0.04082199 0.07257069 0.11653382

\[-log(price/100)\] muestra un rendimiento directo a la madurez. Aunque se observa: \[-diff(log(price))\]

(-diff(log(price/100)))
## [1] 0.01015237 0.02061929 0.03174870 0.04396312

Son tarifas en versión temporal continua de los cambio porcentuales, tasa de vencimiento, vencimiento a otro vencimiento. La interpretación de la tasa de interés con simples tasas de cambio de valor actual con respecto con el tiempo determinado por la madurez. Se calcula:

(-diff(price/100)/(price[-length(price)]/100))
## [1] 0.01010101 0.02040816 0.03125000 0.04301075

En cuanto a los cambio porcentuales discretos son similares, con la versión continua. Teniendo en consideración la indexación del precio para anular el ultimo precio, con ello se calcula: \[log()\]

\[\frac{P(T_i) - P(T_{i-1})}{P(T_{i-1})}\]

5.2.5 Rolling la integración

En cuanto para encontrar la curva de rendimiento a vencimiento y hallar los precios de los bonos se aplica el código:

forward.initial <- -log(price[1]/100)
(forward.integrate <- c(forward.initial, 
    forward.initial + cumsum(forward * 
        diff(maturity))))
## [1] 0.01005034 0.02020271 0.04082199 0.07257069 0.11653382
# una integración continua de tarifas
# a través de los vencimientos 
(price <- 100 * exp(-forward.integrate))
## [1] 99 98 96 93 89
# valor presente de recibir el 100% de
# valor nominal

La “integración” avanza a un proceso unificador para incluir más tasas a la forward en su proceso hasta el vencimiento, tambien se incluye una suma acumulada o incluso: \[Rcumsum()\]

  1. Los rendimientos son la acumulación de tasas a futuro. para hacer nuestros precios. \[logexp\]

  2. El primer tipo a plazo es la tasa de descuento en el bono de vencimiento sl primer año incluido en.\[forward.initial\]

  3. los precios de los bonos se obtienen desarrollando el proceso de producción a paso de los precios y la conversión a rendimientos y de nuevo a los precios.

5.2.6 más sobre el rendimiento de bono

El precio de un bono de cupón cero cotizado en porcentaje de valor nominal para la composición discreta con un comportamiento mensual, se obtiene un porcentaje del saldo del mes anterior:

\[P_T = \frac{100}{(1+y^d(T))^{T}}\]

la composición continua se obtiene un porcentaje del equilibrio del final nanosegundo al final de este nanosegundo dado:

\[P_T(\theta) = 100 exp(-y_T T) = 100 exp( \int_0^T r(t, \theta) dt )\]

El símbolo con la forma de nanosegundo por nanosegundo de sumar las tasas forward atravez de la madurez. Resolviendo para el rendimiento se aprecia: \[int y_T\]

\[P_T = \frac{100}{(1+y(T)_{d})^{T}} = 100 exp(-y_T T).\]

Según el álgebra creativa: tenemos: \[100\]

\[exp(-y_T t) = 1/ exp(y_T T)\]

\[exp(y_T T) = (1+y(T)_{d})^{T}.\]

Incluyendo el logaritmo de ambas magnitudes se obtiene:

\[exp(y_T T)^{-T} = (1+y(T)_{d})^{T-T} = (1+y(T)_{d}).\]

Teniendo por hechos:

\[log(exp(x)) = log(x^T) = T log(x)\]

\[log(exp(y_T T)^{-T}) = y_T = log(1 + y(T)_{d}).\]

Para calcular en tiempo discretas y continuas del rendimiento:

y.T.d <- 0.2499  # Tasa de usura en el estado de Nueva York; d = discreto, T = vencimiento en años 

(y.T <- log(1 + y.T.d))
## [1] 0.2230635
(y.T.d <- exp(y.T) - 1)
## [1] 0.2499

Se puede apreciar el rendimiento de tiempo continuo es menor que la tasa discreta porque incluye mas períodos de composición continua.

5.3 Parámetros de velocidad de avance

Ahora se tiene \[ θ\], donde la secuencia de velocidad directa \[r\]. Donde la tasa forward se compone de \[θ_0\]; con termino inclinado en \[ θ_1\]; un termino proporcionado “humped” con parámetro \[ θ_2\]; y sucesivamente para \[P\] en términos polinomiales: \[\theta R \theta_0 \theta_1 \theta_2 \]

\[r(t, \theta) = \theta_0 + \theta_1 t + \theta_2 t^2 + ... + \theta_p t^p\]

Para el cálculo que cuando integramos cualquier variable a una potencia (el antiderivado), elevamos la variable a la siguiente potencia y dividimos el término por esa siguiente potencia. Derivando la tasa de avance para obtener:

\[\int_0^T r(t, \theta) dt = \theta_0 T + \theta_1 \frac{T^2}{2} + \theta_2 \frac{T^3}{3} + ... + \theta_p \frac{T^{p+1}}{p+1}.\]

El cálculo de la suma acumulada de las tasas a plazo a través de pequeños incrementos en el tiempo \[DT\] desde la actualidad en vencimiento \[T=0\]hasta el vencimiento del término en \[T=T\]. Tenemos, la estimación de la curva de rendimiento tambien el precio del bono de cupón cero. utilizando las tasas a plazo integradas divididas por el vencimiento \[T\] para tener el rendimiento en:

\[y_T(\theta) = \theta_0 + \theta_1 \frac{T}{2} + \theta_2 \frac{T^2}{3} + ... + \theta_p \frac{T^{p}}{p+1}.\]

5.3.1 Datos de estructura a término

Según las tiras de los EEUU. Los bonos cupon cero pagaran el valor nominal al vencimiento. Recuperado en

“www.newyorkfed.org” (via)

# Los datos están en un directorio llamado
# datos que es un subdirectorio del
# directorio desde el cual este código
# se ejecuta.
dat <- read.table("bono/strips.txt", header = TRUE)

Para visualizar los datos:

head(dat, n = 3)
##        T  price
## 1 0.1260 99.393
## 2 0.6219 96.924
## 3 1.1260 94.511
names(dat)
## [1] "T"     "price"
dat <- dat[order(dat$T), ]

Visualizamos con un ordenamiento de los datos por madurez \[head()\] \[T_Y_0\]

plot(dat$T, dat$price, main = "STRIPS", 
    xlab = "Maturity", ylab = "Price")

5.3.2 La curva empírica hacia adelante

Resolviendo la curva empírica hacia adelante utilizando:

\[- \frac{\Delta log(P(T_i))}{\Delta T_i} = - \frac{log(P(T_i)) - log(P(T_{i-1}))}{T_i - T_{i-1}},\]

Dónde \[P\] es el precio del bono y \[T_Y_0\] es \[Y_0\] medurez,

t <- seq(0, 30, length = 100)
emp <- -diff(log(dat$price))/diff(dat$T)

la curva hacia adelante utiliza los vectores. Donde se observa en la consola y para tener mayor información de la función. \[Rdifft??seq\]

5.3.3 Pruebe este ejercicio

las curvas empíricas se traza hacia adelante usando:

plot(dat$T[2:length(dat$T)], emp, ylim = c(0.025, 
    0.075), xlab = "maturity", ylab = "empirical forward rate", 
    type = "b", cex = 0.75, lwd = 2, 
    main = "US Treasury STRIPs - 1995")

Trate de responder a estas preguntas antes de seguir adelante:

  1. \[dat$T[2:length(dat$T)]\] Muestra la longuitud del vector \[T\] con los números del vencimiento en el marco de información proporcionado.

  2. \[ylim lwd xlab ylab type cex main\] son rangos, etiquetas y trazos de la grafica.

  3. Para ampliar los vencimientos de 10 a 20 años. Tenemos:

  4. \[dat$T[2:length(dat$T)]\]

length(dat$T)
## [1] 117
head(dat$T[2:length(dat$T)])
## [1] 0.3699 0.6219 0.8740 1.1260 1.3699 1.6219

Diferenciamos los precios para obtener tasas a futuro y realizamo el alineamiento a las tarifas forward con sus respectivos vencimientos. \[Tdatdat$Tlengthdatdat$T[2:length(dat$T)] T_Y_0\] ### 5.3.4 Parámetros de trazado

Detalles de la lista:

\[Ylim\] muestra informacion del rango de datos del eje Y

\[lwd\] varia el ancho de la línea

\[xlab\] señala la etiqueta del eje X

\[ylab\] señala la etiqueta del eje Y

\[type\] señala la línea

\[cex\] cambia la escala del texto y los símbolos

\[main\] señala el título del trazado.

5.3.5 La trama en sí

plot(dat$T[2:length(dat$T)], emp, ylim = c(0.025, 
    0.075), xlab = "maturity", ylab = "empirical forward rate", 
    type = "b", cex = 0.75, lwd = 2, 
    main = "US Treasury STRIPS - 1995")

Tenemos en grafica:

plot(dat$T[2:length(dat$T)], emp, xlim = c(10, 
    20), ylim = c(0.025, 0.075), xlab = "maturity", 
    ylab = "empirical forward rate", 
    type = "b", cex = 0.75, lwd = 2, 
    pin = c(3, 2), main = "US Treasury STRIPS - 1995")

Podemos apreciar en \[T_Y_0 = 14\] una aproximación a lo atípico. También se aprecia un posible descanso en \[T_Y_0 = 15\]. El nodo natural requiere posiblemente de un spline.

2. Construya una objeto tipo función que determine el precio de un bono.

vp <- function(tasa.cupon, vn, t, tasa, m) {
  flujos <- numeric()
  for (i in 1:t) {
    flujos[i] <- (tasa.cupon*vn)/((1+(tasa/m))^(m*t))
    print(flujos)
  }
    flujos[t] <- (vn)/(1+(tasa/m))^(m*t)
  vp <- sum(flujos)
  return(vp)
}
vp(tasa.cupon = 0.05,t = 10,vn = 100,tasa = 0.04,m = 2)
## [1] 3.364857
## [1] 3.364857 3.364857
## [1] 3.364857 3.364857 3.364857
## [1] 3.364857 3.364857 3.364857 3.364857
## [1] 3.364857 3.364857 3.364857 3.364857 3.364857
## [1] 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857
## [1] 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857
## [1] 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857
## [1] 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857
## [9] 3.364857
##  [1] 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857 3.364857
##  [9] 3.364857 3.364857
## [1] 97.58084

Explique claramente las diferencias entre tasas de descuento discretos y continuos.

la tasas de descuento discretos asume un conjunto finito de datos en cuanto la continua asume toma un conjunto infinito de datos.

en cuanto a la discreta no es excluyente por tanto no superpuestos, y su rango de numero especificado esta completo, en cuanto a la continua son superpuestos o clasificacion mutuamente excluyentes el limite clase superior y no cuenta con un rango completo.

la discreta asume valores independiente con gráficamente mediante puntos aislados, mientras la continual asume cualquier valor en un rango dado con gráfico con la ayuda de puntos conectados.