Primero presento los fundamentos básicos del bootstrapping de una sola curva en la parte 1, y luego trato de aportar algunas ideas en la parte 2.
(bare) Fundamentos del bootstrapping de una sola curva
Según tengo entendido, para un ejercicio común de construcción de curvas tenemos lo siguiente ingredientes :
- Un conjunto de comillas de mercado $Q_{mkt}$ para diversos instrumentos (depósitos, FRAs, swaps, basis swaps, ...) correspondientes a los plazos $t=\{t_1,t_2,\ldots,t_n\}$ . Comúnmente utilizamos algo así como la comilla media, es decir, durante el bootstrapping, sólo hay una comilla fija por tenor.
- Una curva funcional parametrizada, comúnmente definida a través de puntos de tasa cero $r=\{r_1,r_2,\ldots,r_n\}$ , alguna hipótesis de interpolación para cualquier tenor $\tau \notin t$ y alguna función de descuento $D$ con el recuento de días y las convenciones de los tipos de interés. Recojamos todo eso en el parámetro (set) $\theta$ . Entonces, para cualquier tenor $\tau$ , $D(\tau)=f(r,t,\theta)$ . Comúnmente (pero no necesariamente), los nodos de la comilla y los nodos de la tasa coinciden, es decir, utilizamos el 3Y-swap para arrancar el 3Y-zero-rate, es decir, tenemos $n$ citas y $n$ parámetros en nuestro modelo.
Nota: Dado $D(\tau)$ podemos obtener trivialmente la curva de tipo cero o curva a plazo.
Normalmente, nuestro objetivo es minimizar (o mejor: poner a cero) la diferencia entre todas las comillas observadas y las comillas implícitas en nuestro modelo; dicho de otro modo, queremos minimizar los errores de fijación de precios variando los parámetros de la tasa cero:
$$ \min_{r} ||Q_{mkt}-Q(r)|| $$
Por lo general, se trata de un sistema multivariante ( $n$ -de las curvas, pero si el mecanismo de interpolación de las curvas es lo suficientemente local es decir, si no hay "fugas" al variar $r_i$ a cualquier $D(\tau)$ con $\tau<t_{i-1}$ o $\tau>t_{i+1}$ entonces podemos utilizar una secuencia de pasos de bootstrapping univariante.
Algunas ideas
Si le he entendido bien, su objetivo es encontrar una curva "óptima" dado un conjunto de comillas cuya forma sea lo más parecida posible a alguna otra curva, por ejemplo, la curva de descuento de ayer o de tipo cero.
Para ello, dejamos que $\tau$ o $t_i$ denotan el tiempo de maduración de un punto de la curva, en lugar de la hora del calendario.
¿Qué te parecen las siguientes ideas?
- Puntos de oferta y demanda de la comilla $Q_{mkt}^b, Q_{mkt}^a$ y el punto medio $Q_{mkt}^m$ a lo largo de los plazos (hasta el vencimiento) $t_1,\ldots,t_n$ y alguna curva de descuento de referencia $\hat{D}(\tau)$ (cuyos parámetros ya no son relevantes), encontrar los parámetros óptimos de la curva $r$ tal que:
$$ \begin{align} \min_r &\int_\limits{0}^{t_n}||D(\tau)-\hat{D}(\tau)||\mathrm{d}\tau\\ s.t.& \quad Q_{mkt,i}^b \leq Q_i(r) \leq Q_{mkt,i}^a \end{align} $$
- Como en 1, pero nuestra función objetivo se convierte en $$ \begin{align} \min_{r} &||Q_{mkt}^m-Q(r)|| + \lambda \int_\limits{0}^{t_n}||D(\tau)-\hat{D}(\tau)||\mathrm{d}\tau\\ s.t.& \quad Q_{mkt,i}^b \leq Q_i(r) \leq Q_{mkt,i}^a \end{align} $$ donde $\lambda$ es algún parámetro de penalización para la distancia de la curva.
Ahora bien, si su interpolación es efectivamente local y usted restringe sus diferencias de curvas deseadas de tal manera que sólo requiere puntos hasta $t_k$ cuando el parámetro bootstrapping $r_k$ entonces se puede seguir utilizando la maquinaria estándar de bootstrapping univariante, optimizando iterativamente:
$$ \min_{r_k} ||Q_{mkt,k}^m-Q_k(r_k|r_1,\ldots,r_{k-1})|| + \lambda\int\limits_{t_{k-1}}^{t_k}||D(\tau)-\hat{D}(\tau)||\mathrm{d}\tau $$ e incluso podría introducir trivialmente las restricciones de caja en la oferta y la demanda.
Espero que eso te ofrezca una idea de cómo abordar esto, y probablemente otras personas aquí tengan incluso mejores ideas o consejos.