Calculadora de convexidad de bonos
Para un bono a 10 años con cupón del 5 % y rendimiento del 4 %, una subida de 100 puntos básicos baja el precio estimado de encima de la par a unos 1000. Incluye la duración y la convexidad. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Valor nominal
- 1 000
- Tasa del cupón (%)
- 5
- YTM (%)
- 4
- Años hasta el vencimiento
- 10
- Frecuencia
- 2
- Variación del rendimiento (pb)
- 100
- Períodos
- 20
- Pago del cupón
- 25
- Precio
- 1 081,757167
- Duración de Macaulay
- 8,080936
El precio de un bono no se mueve en línea recta cuando saltan los rendimientos de mercado. La duración capta la pendiente de primer orden de esa curva precio-rendimiento; la convexidad capta la curvatura que la duración sola subestima ante movimientos amplios de tipos. Esta calculadora de convexidad de bonos valora un bono de cupón fijo a partir del valor nominal, el cupón anual, el rendimiento al vencimiento, los años hasta el vencimiento y la frecuencia de pago, y devuelve la duración de Macaulay, la duración modificada y la convexidad anualizada del mismo calendario de flujos. Opcionalmente puede indicar un desplazamiento paralelo del rendimiento en puntos básicos para ver el efecto de duración, el de convexidad y un precio estimado con la expansión clásica de Taylor. Úsela en notas de riesgo de tipos, ejercicios de renta fija, comprobaciones de cartera y automatización que deba refinar la predicción de precio más allá de una aproximación solo por duración.
Qué mide la convexidad del bono y por qué la duración no basta
La duración modificada estima el cambio porcentual del precio de un bono ante un movimiento paralelo pequeño del rendimiento: aproximadamente menos la duración modificada por el cambio de rendimiento. Esa aproximación lineal funciona bien para unos pocos puntos básicos, pero subestima de forma sistemática las ganancias de precio cuando bajan los rendimientos y exagera las pérdidas cuando suben, porque la relación real precio-rendimiento es convexa en bonos de cupón fijo ordinarios. La convexidad cuantifica esa curvatura.
Con la convexidad anualizada Conv y un desplazamiento anual de rendimiento Δy expresado en decimal, el refinamiento de segundo orden es un medio por Conv por (Δy) al cuadrado, sumado al término de duración. La fórmula combinada es el cambio porcentual de precio aproximadamente igual a menos la duración modificada por Δy más un medio por la convexidad por (Δy) al cuadrado.
Mayor vencimiento, menor cupón y menor rendimiento tienden a elevar la convexidad en bonos por lo demás similares, por eso los ceros largos son especialmente sensibles a grandes vaivenes de tipos más allá de lo que predice solo la duración. Esta calculadora no obtiene cotizaciones en vivo ni spreads de crédito; mide la geometría de un calendario de flujos que usted suministra para que notas de riesgo, claves de ejercicios y automatización compartan una identidad auditable.
Emparejar duración y convexidad es práctica estándar de renta fija cuando los choques de escenario son decenas o cientos de puntos básicos y no un solo tick.
Dónde una calculadora de convexidad de bonos aporta valor
Gestores de cartera y mesas de riesgo usan una calculadora de convexidad de bonos cuando un memorando de choque de tipos debe mostrar el impacto lineal de duración y el complemento de segundo orden de convexidad ante un movimiento paralelo de cien puntos básicos, para que las partes interesadas vean por qué los bonos largos recuperan más a la baja de lo que sugiere una tabla solo de duración.
Asesores patrimoniales y tesorerías comparan bonos con cupón frente a ceros al explicar por qué dos posiciones con duración modificada similar aún divergen ante grandes movimientos de rendimiento. Educadores y plataformas LMS necesitan un oráculo determinista para ejercicios de renta fija que piden precio, duración de Macaulay, duración modificada y convexidad desde primeros principios sin un terminal Bloomberg completo. La validación fallida no consume saldo.
Mantenga nominal y años positivos, fije los campos redondeados en las pruebas y obtendrá figuras de convexidad reproducibles para cuadernos y producción sin montar su propia biblioteca de renta fija.
Qué puede hacer con ella
Refinar el precio ante choques de tipos
Combine duración modificada y convexidad para estimar el cambio de precio del bono ante grandes movimientos paralelos del rendimiento en puntos básicos, no solo una conjetura lineal de duración.
Comparar estructuras con cupón y ceros
Mantenga la duración modificada aproximadamente constante e inspeccione la convexidad para ver qué forma de flujos amortigua mejor los grandes vaivenes de tipos.
Ejercicios de renta fija y claves LMS
Corrija problemas que piden precio, duración de Macaulay, duración modificada y convexidad anualizada con un oráculo determinista de flujos de caja.
Preguntas frecuentes
¿Cómo se calcula la convexidad de un bono?
A partir de los flujos del bono: Conv = Σ[CF_k · k · (k+1) / (1+r)^k] / [P · (1+r)² · m²], donde r es el rendimiento del periodo, m es el número de pagos al año y P es el precio sucio del mismo calendario.
¿Cómo mejora la convexidad la estimación del cambio de precio?
La duración sola es lineal. Añadir ½ · Conv · (Δy)² capta la curvatura, de modo que grandes subidas de rendimiento parecen menos graves y grandes bajadas más favorables en bonos de cupón fijo ordinarios.
¿Cuándo no basta la duración para estimar el cambio de precio de un bono?
Cuando los rendimientos se mueven decenas o cientos de puntos básicos. La duración es una aproximación en línea recta que funciona con movimientos pequeños, pero subestima las ganancias cuando el rendimiento baja y exagera las pérdidas cuando sube.
¿Por qué los bonos cupón cero a largo plazo son tan sensibles a los grandes cambios de rendimiento?
Porque un plazo más largo, un cupón más bajo y un rendimiento más bajo elevan la convexidad. Un bono largo que no paga cupón reúne las dos primeras condiciones, así que su precio es el que más se curva.
¿Qué frecuencias de cupón acepta la calculadora?
Pagos anuales, semestrales, trimestrales o mensuales; la semestral es la opción inicial. Los años hasta el vencimiento multiplicados por los pagos al año deben dar un número entero de periodos, como 20 en un bono semestral a 10 años.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/finance/bond-convexity \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"face_value":1000,"coupon_rate_percent":5,"ytm_percent":4,"years_to_maturity":10}'const res = await fetch("https://api.kit.forhosting.com/finance/bond-convexity", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"face_value": 1000,
"coupon_rate_percent": 5,
"ytm_percent": 4,
"years_to_maturity": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/finance/bond-convexity",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"face_value": 1000,
"coupon_rate_percent": 5,
"ytm_percent": 4,
"years_to_maturity": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/finance/bond-convexity", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"face_value":1000,"coupon_rate_percent":5,"ytm_percent":4,"years_to_maturity":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"face_value":1000,"coupon_rate_percent":5,"ytm_percent":4,"years_to_maturity":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/finance/bond-convexity", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"face_value": 1000,
"coupon_rate_percent": 5,
"ytm_percent": 4,
"years_to_maturity": 10
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "finance.bond_convexity",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
La entrada inválida falla con invalid_input y no se factura.
Contrato de entrada, fórmulas, redondeo y ejemplos trabajados
Internamente la tasa del periodo es r igual a ytm dividido por frequency, el cupón es el nominal por la tasa de cupón dividido por frequency, y el precio es el valor presente de todos los cupones más el nominal al vencimiento. La duración de Macaulay en años es el tiempo medio de pago ponderado por valor presente; la duración modificada es Macaulay dividida por uno más r; la convexidad anualizada es la suma del flujo por k por (k más uno) descontada, dividida por el precio por (uno más r) al cuadrado por frequency al cuadrado. Envíe por POST un cuerpo JSON con cuatro números finitos obligatorios: face_value mayor que cero, coupon_rate_percent mayor o igual que cero (cero modela un bono puro de descuento), ytm_percent como rendimiento anual capitalizado a la frecuencia de cupón, y years_to_maturity mayor que cero. frequency es opcional, por defecto dos (cupones semestrales) y debe ser uno, dos, cuatro o doce; años por frecuencia debe ser un entero positivo de periodos de cupón. yield_change_bp opcional es el desplazamiento paralelo del rendimiento en puntos básicos para la estimación de Taylor. decimals opcional es un entero de cero a doce (por defecto seis) que controla el redondeo half-up de las salidas numéricas. Ejemplo: nominal mil, cupón del cinco por ciento, rendimiento del cuatro por ciento, diez años y frecuencia semestral produce un precio con prima sobre la par, duración modificada de varios años y convexidad positiva; al añadir yield_change_bp de cien devuelve duration_effect, convexity_effect, estimated_price_change, estimated_price y estimated_percent_change. Campos ausentes, valores no finitos, nominal o vencimiento no positivos, cupón negativo, frequency inválida, rendimiento demasiado negativo que hace no positivo uno más r, o un número no entero de periodos fallan con invalid_input y no se facturan.
Dónde una calculadora de convexidad de bonos aporta valor
Integradores conectan el endpoint a n8n, workers en el borde u hojas internas de valoración para fijar goldens de regresión cuando cambian los supuestos de flujos.
Preguntas técnicas
¿Qué entradas necesita la calculadora de convexidad de bonos?
Obligatorias: face_value, coupon_rate_percent, ytm_percent, years_to_maturity. Opcionales: frequency (por defecto 2), yield_change_bp para la estimación de Taylor, y decimals para el redondeo.
¿Puedo modelar un bono cupón cero?
Sí. Ponga coupon_rate_percent en cero. El único flujo es face_value al vencimiento; la duración y la convexidad se derivan de ese único pago.
¿Cuánto cuesta la calculadora de convexidad de bonos?
La herramienta del navegador es gratuita. Las peticiones API usan saldo KIT prepago a $0.002 por llamada exitosa; la entrada inválida no se factura.