Proxima Alpha - Powered by Santander

Santander

Últimos 7 días

chat_bubble_outlineActúa como quantitative c...
chat_bubble_outlineActúa como quantitative c...
chat_bubble_outlineEx 28.- Top Cheflabel
chat_bubble_outlineEx 27.- top 25 Q-Alabel
chat_bubble_outlineEx 26.- Panel estructurado de ...label
chat_bubble_outlineEx 25.- Optimización regulator...label
chat_bubble_outlineEx 24.- WWRlabel
chat_bubble_outlineEx 23.- Insurance 1label
chat_bubble_outlineEx 25.- Counterparty Credit Ri...label
chat_bubble_outlineEx 24.- VaR Backtesting Workfl...label
chat_bubble_outlineEx 23.- VaR 2label
chat_bubble_outlineEx 22.- Merton - Credit Risklabel
chat_bubble_outlineEx 21.- Framework de análisis ...label
chat_bubble_outlineEx 20.- Claims, reserveslabel
chat_bubble_outlineEx 19.- credit card scoringlabel
chat_bubble_outlineEx 18.- credit scoring mediant...label
chat_bubble_outlineEx 17.- Mortality, Lee Carterlabel
chat_bubble_outlineEx 16.- business cycle analysi...label
chat_bubble_outlineEx 15.- Portfolio Optimizationlabel
chat_bubble_outlineEx 14.- First-to-Defaultlabel
chat_bubble_outlineEx 13.- Bond Optimizationlabel
chat_bubble_outlineEx 12.- Brinson-Fachler Attrib...label
chat_bubble_outlineEx 11.- Forecasting de tasas d...label
chat_bubble_outlineEx 10.- Asian Basketlabel
chat_bubble_outlineEx 9.- Price a Swaption Using ...label
chat_bubble_outlineEx 8.- Black-Karasinskilabel
chat_bubble_outlineEx 7.- Weather derivativeslabel
chat_bubble_outlineEx 6.- pricing sobre electrici...label
chat_bubble_outlineEx 5.- Option chainlabel
chat_bubble_outlineEx 4.- Semiconductorlabel
chat_bubble_outlineEx 3.- Hurricane Natural Catas...label
chat_bubble_outlineEx 2.- Catastrophe Risklabel
chat_bubble_outlineEx 1 .- Geopolitical risklabel
chat_bubble_outlineUnderstant it first: You ...
chat_bubble_outlineQuiero que entiendas en d...
chat_bubble_outlineQuiero que entiendas en d...
chat_bubble_outlinedibuja el precio de BBVA....
chat_bubble_outlinedibuja el precio de BBVA....
chat_bubble_outlinedime que hay en Movement4...
chat_bubble_outlinedile a quant_calculations...
chat_bubble_outlinedile a quant que haga una...
chat_bubble_outlinellama a quant_calculation...
chat_bubble_outlineDibuja el precio de Santa...
chat_bubble_outlineDibuja el precio de Santa...
chat_bubble_outlineDibuja el precio de Santa...
chat_bubble_outlineDibuja el precio de Santa...
chat_bubble_outlineQuiero que entiendas en d...
chat_bubble_outlinedile a quant que me diga ...
chat_bubble_outlinedile a quant que haga una...
chat_bubble_outlinedile a quant que haga una...
settings Ajustes
help_outlineAyuda
chevron_right
📗
HistoricalYT...xlsx129.1 KB
Actúa como quantitative fixed income portfolio analyst. Usa el Excel adjunto HistoricalYTMData.xlsx con: - tsYTMMats: maturities de la curva YTM - tsYTMRates: series históricas de yields - tsYTMObsDat...

Blackmont

Informe ejecutivo – Cartera de UST 10Y / 20Y / 30Y a 1 mes

1. Revisión del fichero y tratamiento de datos

He revisado cuidadosamente tu Excel HistoricalYTMData.xlsx (file-CYTTFgyXTE4cAoPnSrZbuF):

  • Sheets y estructura:

    • tsYTMMats: sin filas de datos; los headers son las maturities en años: 0.5, 1, 2, 3, 5, 7, 10, 20, 30.
    • tsYTMRates: 2500 filas × 9 columnas, yields para esas mismas maturities.
    • tsYTMObsDates: 2500 filas × 1 columna, fechas en número de serie Excel/MATLAB.
  • Conversión y alineación:

    • Las fechas se han convertido desde serial Excel a datetime con origen 1899‑12‑30 y se han usado como índice temporal.
    • Las columnas se han alineado a las maturities [0.5, 1, 2, 3, 5, 7, 10, 20, 30] en años.
  • Limpieza, missing y outliers:

    • Se han identificado:
    • Missing iniciales: missing_before (contado en el código).
    • Outliers: yields < 0 o > 20% y saltos diarios > 100 bps (0.01).
    • Todos esos puntos se han marcado como NaN y posteriormente:
    • Interpolación temporal (method='time').
    • Relleno ffill/bfill.
    • Resultado: no quedan NaN tras limpieza y la serie es regular en el tiempo.

Esto garantiza una base razonablemente limpia para estimar invariantes y simular curvas.


2. Curvas históricas de YTM y visualizaciones

Se han generado las siguientes figuras interactivas (HTML):

  • Evolución temporal de yields por maturity:

    Muestra la dinámica de toda la curva: tramos cortos más volátiles, largos más suaves.

  • Curvas históricas seleccionadas (varias fechas):

    Permite comparar la forma de la curva (pendiente, convexidad) en distintas fases de mercado.

  • Heatmap tiempo–maturity:

    Visualiza de un vistazo niveles y regímenes de tipos a lo largo de toda la curva.


3. Invariantes de mercado (ΔYTM) y proyección mensual

Se han calculado cambios diarios de YTM:

  • ΔYTMt=YTMt−YTMt−1\Delta YTM_t = YTM_t - YTM_{t-1}ΔYTMt​=YTMt​−YTMt−1​ para cada maturity.

A partir de ellos:

  • Medias diarias y mensuales de ΔYTM (resumen):

    Para cada maturity se ha estimado media diaria y proyectado a 1 mes (~21 días):

    Download file

    Ejemplo 10Y (a partir del código):

    • Media diaria 10Y ≈ −1.24×10−5-1.24\times10^{-5}−1.24×10−5.
    • Media mensual 10Y ≈ −2.60×10−4-2.60\times10^{-4}−2.60×10−4 (ligera tendencia a la baja en yields largos).
  • Se ha estimado la matriz de covarianza diaria de ΔYTM y se ha escalado a 1 mes:

    • μ1m=21 μ1d\mu_{1m} = 21\, \mu_{1d}μ1m​=21μ1d​.
    • Σ1m=21 Σ1d\Sigma_{1m} = 21\, \Sigma_{1d}Σ1m​=21Σ1d​.
  • La matriz mensual se ha regularizado suavemente para garantizar definición positiva (Cholesky exitoso tras, si hacía falta, añadir un pequeño eps·I).


4. Simulación de escenarios de curva a 1 mes

Supuestos:

  • ΔYTM1m\Delta YTM_{1m}ΔYTM1m​ multivariante normal con la media y covarianza mensuales anteriores.
  • Punto de partida: última curva observada.

Pasos:

  1. Simulación de 10 000 escenarios de cambios mensuales en todas las maturities.
  2. Reconstrucción de curvas futuras: YTMfuture(i)=YTMlast+ΔYTM(i)YTM^{(i)}_{future} = YTM_{last} + \Delta YTM^{(i)}YTMfuture(i)​=YTMlast​+ΔYTM(i).
  3. Interpolación por maturity para vencimientos efectivos (por paso de 1 mes):
    • 10Y → 9.9167 años.
    • 20Y → 19.9167 años.
    • 30Y → 29.9167 años.

Visualización de un subconjunto de curvas simuladas:

Se observa un “abanico” de posibles curvas alrededor de la actual.


5. Bonos, pricing y retornos simulados

Definición de bonos UST:

  • Bonos bullet, cupón fijo, frecuencia semestral, valor nominal 100, day count Act/365:
    • UST_10Y: 10 años, cupón 4.00 %.
    • UST_20Y: 20 años, cupón 4.25 %.
    • UST_30Y: 30 años, cupón 4.50 %.

Pricing inicial (curva actual):

Precios obtenidos (a partir de la última curva):

  • 10Y: initialPrice_10Y ≈ 112.45.
  • 20Y: initialPrice_20Y ≈ 113.04.
  • 30Y: initialPrice_30Y ≈ 115.42.

Todos cotizan sobre la par, consistente con cupones algo superiores al nivel de YTM actual.

Pricing futuro a 1 mes:

  • Se reduce el tiempo a vencimiento en 1/12 de año.
  • En cada escenario, se toma el YTM interpolado a la maturity ajustada de cada bono para descontar:
    • Precio futuro = valor presente de flujos restantes con ese YTM.
  • Se añade el cupón devengado del mes:
    • cupoˊn_devengado=cupoˊn_anual×100×(1/12)\mathrm{cupón\_devengado} = \mathrm{cupón\_anual} \times 100 \times (1/12)cupoˊn_devengado=cupoˊn_anual×100×(1/12).
  • Se calculan retornos por escenario: R(i)=Pfuturo(i)+cupoˊn_devengado−P0P0 R^{(i)} = \frac{P^{(i)}_{futuro} + \mathrm{cupón\_devengado} - P_{0}}{P_{0}}R(i)=P0​Pfuturo(i)​+cupoˊn_devengado−P0​​ Estadísticos de retornos por bono:

Se disponen en:

Download file

Resumen clave (media mensual y volatilidad):

BonoMeanReturnVolatility
UST_10Y0.00690.0250
UST_20Y0.00790.0378
UST_30Y0.00730.0372
  • Los bonos 20Y y 30Y ofrecen algo más de retorno esperado, pero con volatilidad significativamente mayor que el 10Y.
  • Distribuciones ligeramente leptocúrticas pero bastante cercanas a normal (skew y kurtosis moderadas).

Distribución simulada de retornos por bono:


6. Optimización de cartera (Equal, Min Var, Max Sharpe, Frontera)

Con la matriz de retornos simulados (10 000 × 3) se ha:

  • Estimado media y covarianza de retornos.
  • Resuelto problemas con restricciones:
    • Fully invested: suma pesos = 1.
    • Long-only: pesos ≥ 0.
    • Bounds por defecto [0, 1].

Carteras consideradas:

  • Equal Weight: [1/3, 1/3, 1/3].
  • Minimum Variance: varianza mínima sujeta a restricciones.
  • Maximum Sharpe: máximo Sharpe sobre la frontera eficiente (rf = 0).
  • Efficient Frontier: 50 puntos de mínima varianza para distintos retornos objetivo.

Visualización de la frontera y carteras clave:

Pesos óptimos y métricas (resumen):

Download file

Tabla resumida clave:

PortfolioUST_10YUST_20YUST_30YExpectedReturnVolatilitySharpeVaR95VaR99CVaR95CVaR99Duration
EqualWeight0.33330.33330.33330.00740.03140.2340.04320.06370.05570.073513.41
MinVariance1.00000.00000.00000.00690.02500.2740.03410.04930.04350.05758.45
MaxSharpe1.00000.00000.00000.00690.02500.2740.03410.04930.04350.05758.45

Comentarios:

  • Min Variance y Max Sharpe coinciden: ambos se concentran al 100 % en UST 10Y.
    • Razón: el 10Y tiene un perfil de retorno/volumen muy eficiente y la frontera con restricciones long-only y solo 3 activos hace que el máximo Sharpe esté en un vértice.
  • Equal Weight:
    • Sube algo el retorno esperado (0.74 % vs 0.69 % mensual) pero con una subida de volatilidad considerable (3.14 % vs 2.50 %) y un Sharpe inferior.
    • Además, eleva significativamente VaR y CVaR.

Gráfico comparando pesos:


7. Duración, contribuciones al riesgo y VaR/CVaR

Duraciones aproximadas de las carteras:

  • Equal Weight: ≈ 13.41 años.
  • Min Variance / Max Sharpe: ≈ 8.45 años.

Conclusión: la cartera óptima (MinVar/MaxSharpe) reduce claramente la duración frente al equal weight, lo que mitiga el riesgo a movimientos de tipos.

Contribuciones marginales al riesgo:

  • Para Equal Weight:
    • UST_10Y: ~25 % de la varianza.
    • UST_20Y: ~39 %.
    • UST_30Y: ~36 %.
  • Pese a ponderación igual, 20Y y 30Y dominan el riesgo.
  • En MinVar/MaxSharpe (100 % 10Y): toda la varianza viene del 10Y.

VaR/CVaR para la cartera Max Sharpe (1 mes):

  • VaR95 ≈ 3.41 %.
  • VaR99 ≈ 4.93 %.
  • CVaR95 ≈ 4.35 %.
  • CVaR99 ≈ 5.75 %.

Interpretación: con probabilidad 95 %, la pérdida no superaría ~3.4 % en un mes; en el 5 % peor de los casos, la pérdida media estaría en torno a 4.35 %.

Visualización de distribución de retornos y umbrales VaR para Max Sharpe:


8. Archivos de salida y reporte ejecutivo

Se han generado los siguientes ficheros con resultados detallados:

  • Curvas y YTM:

    • Time series YTM:
    - Curvas históricas: - Heatmap YTM:
  • Escenarios y carteras:

    • Curvas futuras simuladas:
    - Frontera eficiente: - Pesos de carteras: - Histogramas de retornos por bono: - Gráfico VaR/CVaR:
  • Tablas (CSV):

    • Estadísticos de bonos: Download file
    • Pesos y métricas por cartera: Download file
    • Invariantes YTM: Download file
  • Reporte ejecutivo Markdown:

    Download file

(NB: el notebook reproducible no se ha listado explícitamente entre los ficheros devueltos; si lo necesitas, podemos generarlo explícitamente en un segundo paso.)


9. Conclusiones y siguientes pasos

Conclusiones principales:

  1. Bajo el horizonte de 1 mes y los supuestos normales, la cartera óptima (Min Var / Max Sharpe) se concentra al 100 % en UST 10Y:
    • Mejor equilibrio riesgo–retorno.
    • Duración significativamente menor que Equal Weight.
  2. Las posiciones en 20Y y 30Y:
    • Aportan incremento limitado en retorno esperado, pero empeoran Sharpe y aumentan VaR/CVaR y duración.
    • Dominan la contribución al riesgo cuando se ponderan igual.

Limitaciones (a tener en cuenta):

  • Supuesto de normalidad de ΔYTM y escalado lineal diaria→mensual (no captura colas gruesas).
  • Pricing simplificado por bono (uso de un único YTM interpolado por vencimiento).
  • Horizonte de un solo periodo (1 mes) sin rebalanceos intermedios.

Posibles extensiones:

  • Introducir un asset libre de riesgo explícito para obtener carteras tangentes con apalancamiento/desapalancamiento.
  • Permitir short positions o límites intermedios (por ejemplo, 50 % máximo por bono).
  • Trabajar con factores principales de la curva (PCA) en lugar de ΔYTM por maturity.
  • Ajustar el horizonte (3–6 meses) o trabajar con ventanas históricas móviles para análisis de robustez.

Si quieres, el siguiente paso puede ser:

  • Ajustar restricciones (por ejemplo, peso mínimo en 20Y/30Y) y volver a optimizar.
  • Cambiar horizonte a 3 meses o 1 año y repetir toda la simulación/optimización para comparar resultados.

Nuestro Asistente es una herramienta de inteligencia artificial. La información generada no debe considerarse asesoramiento oficial