Calculadora Black-Scholes
Una opción de compra a un año, con el subyacente y el precio de ejercicio en 100, un tipo del 5 % y una volatilidad del 20 %, vale algo más de 10 según Black-Scholes. Introduzca sus cinco datos de mercado y valore cualquier opción europea. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Precio spot
- 100
- Precio de ejercicio
- 100
- Tiempo hasta el vencimiento
- 1
- Tasa de interés
- 0,05
- Volatilidad
- 0,2
- Tipo de opción
- Call
- D1
- 0,35
- D2
- 0,15
- N d1
- 0,636830586
- N d2
- 0,5596177096
La fórmula de Black-Scholes es el precio en forma cerrada de una opción europea de compra (call) o de venta (put) sobre un subyacente que no reparte dividendo. Con el contado de hoy, el strike, el plazo hasta el vencimiento en años, un tipo libre de riesgo capitalizado de forma continua y una volatilidad constante, devuelve una prima teórica única que manuales, hojas de mesa y preguntas de entrevista siguen tomando como referencia. Un plazo cero se reduce al valor intrínseco; una volatilidad cero, al pago determinista descontado.
Cómo se calcula la call y la put europea de Black-Scholes
Black-Scholes valora una opción europea que solo puede ejercerse al vencimiento sobre un subyacente que no paga dividendo. A partir de ellas la calculadora forma d1 igual al logaritmo natural de S sobre K más r más la mitad de σ al cuadrado, todo ello por T, dividido por σ por la raíz de T; d2 es d1 menos σ por la raíz de T.
N es la función de distribución acumulada normal estándar, evaluada con una aproximación fija de Abramowitz y Stegun a la función error para que las mismas entradas produzcan siempre las mismas cifras. Una call vale S por N(d1) menos K por e elevado a menos rT por N(d2). Una put vale K por e elevado a menos rT por N(−d2) menos S por N(−d1).
Esos dos precios cumplen la paridad put-call: call menos put igual a S menos el strike descontado. Cuando T es exactamente cero la fórmula no está definida (división por la raíz de T) y el precio es el intrínseco: máximo de S menos K y cero para una call, máximo de K menos S y cero para una put. Cuando la volatilidad es exactamente cero el subyacente es determinista y el precio es el pago cierto descontado, máximo de más o menos S menos K e elevado a menos rT.
Ambos límites se calculan en forma cerrada en lugar de enviar d1 a más o menos infinito.
Qué puede hacer con ella
Comprobaciones de deberes y entrevistas
Verifique una call o put europea resuelta a mano a partir de S, K, T, r y σ frente a una prima Black-Scholes determinista y los términos habituales d1 y d2.
Calificación en LMS y hojas de trabajo
Puntúe ítems de valoración de opciones con un oráculo que rechaza volatilidad o plazo negativos y nunca inventa un precio cuando el modelo no está definido.
Preguntas frecuentes
¿Qué ocurre si la volatilidad o el plazo hasta el vencimiento son negativos?
Una volatilidad negativa y un plazo negativo no están definidos en Black-Scholes; esas peticiones no se facturan. El cero se admite en ambos.
¿El tipo libre de riesgo y la volatilidad van en porcentaje o en decimal?
En decimal. Introduzca 0.05 para un tipo del 5 por ciento y 0.2 para una volatilidad del 20 por ciento. Introducir 5 o 20 se trataría como 500 por ciento y 2000 por ciento, no como cotizaciones de mercado.
¿Qué más devuelve la calculadora además del precio de la opción?
Cuando T y σ son ambos positivos también informa d1, d2, N(d1) y N(d2).
¿Sirve Black-Scholes para opciones americanas o acciones que pagan dividendos?
No con este modelo. Black-Scholes valora una opción europea, que solo se ejerce al vencimiento, sobre un subyacente que no paga dividendos. Si hay ejercicio anticipado o dividendos, necesita otro método de valoración.
¿Qué precio da una opción que vence hoy o con volatilidad cero?
Si no queda plazo, el precio es el valor intrínseco: lo que la opción está dentro del dinero, o cero. Con volatilidad cero el resultado es seguro, así que el precio es ese pago seguro descontado al tipo de interés.
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/fin/black-scholes \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"spot":100,"strike":100,"time_to_expiry":1,"rate":0.05,"volatility":0.2,"option_type":"call"}'const res = await fetch("https://api.kit.forhosting.com/fin/black-scholes", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"spot": 100,
"strike": 100,
"time_to_expiry": 1,
"rate": 0.05,
"volatility": 0.2,
"option_type": "call"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/black-scholes",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"spot": 100,
"strike": 100,
"time_to_expiry": 1,
"rate": 0.05,
"volatility": 0.2,
"option_type": "call"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/black-scholes", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"spot":100,"strike":100,"time_to_expiry":1,"rate":0.05,"volatility":0.2,"option_type":"call"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"spot":100,"strike":100,"time_to_expiry":1,"rate":0.05,"volatility":0.2,"option_type":"call"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/black-scholes", 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
{
"spot": 100,
"strike": 100,
"time_to_expiry": 1,
"rate": 0.05,
"volatility": 0.2,
"option_type": "call"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.black_scholes",
"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
Esta capacidad implementa esa identidad como una tarea parse pura: construye d1 y d2, evalúa la función de distribución acumulada normal estándar y entrega la esperanza descontada en medida neutral al riesgo como option_price. Una volatilidad negativa o un plazo negativo se rechazan con invalid_input y no se facturan, porque el modelo no los define.
Cómo se calcula la call y la put europea de Black-Scholes
Las cinco entradas de mercado son el spot S de hoy, el strike K, el plazo T en años, un tipo libre de riesgo r capitalizado de forma continua y escrito como decimal (cero punto cero cinco significa cinco por ciento, no cinco) y una volatilidad anualizada constante σ, también como decimal (cero punto dos significa veinte por ciento). El spot y el strike deben ser estrictamente positivos porque el modelo toma el logaritmo de su cociente.
Contrato de entrada, forma de la respuesta y errores
El cero se admite en ambos: el vencimiento hoy es intrínseco y una trayectoria plana es el pago determinista descontado. El tipo puede ser cero o negativo, en línea con las cotizaciones modernas del mercado monetario. Envíe por POST un cuerpo JSON con seis campos obligatorios. spot es el precio actual del subyacente S; los alias S, spot_price y price apuntan al mismo campo. strike es K; alias K y strike_price. time_to_expiry es T en años, de modo que uno equivale a doce meses y cero punto dos cinco a una opción trimestral; alias T, time y years. rate es el tipo libre de riesgo capitalizado de forma continua como decimal; alias r, risk_free_rate e interest_rate. volatility es σ como decimal; alias sigma y vol. option_type es el enumerado cerrado call o put; alias type, option y kind. Cada campo numérico puede llegar como número JSON o cadena numérica. Campos ausentes, cadenas vacías y valores no finitos fallan con invalid_input nombrando el campo. Una volatilidad negativa o un time_to_expiry negativo fallan con un mensaje de que el campo no debe ser negativo: esos fallos no se facturan. Si la validación pasa, el cuerpo repite las seis entradas, informa discount_factor e elevado a menos rT, intrinsic y option_price redondeado a ocho decimales. Cuando T y σ son ambos estrictamente positivos también informa d1, d2, n_d1 y n_d2 para que una hoja muestre los términos intermedios habituales; esas cuatro claves se omiten, nunca van a null, cuando aplican los límites en forma cerrada. Ejemplo: S y K de cien, T de un año, r de cero punto cero cinco, σ de cero punto dos, option_type call, produce una call europea en el dinero de manual cerca de diez punto cuarenta y cinco, con la put pareja que sigue de la paridad put-call.
Dónde aporta valor una calculadora Black-Scholes
Estudiantes y candidatos a entrevista usan una calculadora Black-Scholes para contrastar una call o put europea resuelta a mano frente a un oráculo determinista, en lugar de una hoja que trata en silencio veinte como veinte por ciento o como un decimal de dos mil por ciento. Las herramientas de mesa y los cuadernos de investigación necesitan un contrato parse pequeño para una marca europea vanilla cuando no quieren arrastrar una biblioteca analítica completa por cinco números. La validación fallida no consume saldo. Plataformas de tutoría y plugins LMS envían spot, strike, time_to_expiry, rate, volatility y option_type, y fijan option_price y la línea d1 para que un corrector puntúe tanto la prima final como los términos intermedios. Como la implementación es parse pura de nivel A, cada llamada correcta cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente. Mantenga rate y volatility como decimales, time_to_expiry y volatility no negativos, fije option_price redondeado en las pruebas y obtendrá una prima europea reproducible para deberes, controles de mesa y workers de borde sin montar un motor de valoración propio.
Casos de integración
Marcas de mesa y fixtures de CI
Fije una prima europea vanilla en cuadernos y pruebas de regresión sin importar una biblioteca completa de analítica de derivados.
Preguntas técnicas
¿Cómo se valora una call o put europea con Black-Scholes?
Envíe spot y strike positivos, time_to_expiry no negativo en años, rate y volatility como decimales, y option_type call o put. La API devuelve option_price = S·N(d1) − K·e^(−rT)·N(d2) para una call, o la fórmula de la put con N(−d1) y N(−d2).
¿Cuánto cuesta la calculadora Black-Scholes?
La herramienta del navegador es gratuita. Las peticiones API usan saldo prepago KIT a $0.002 por llamada correcta; la entrada inválida no se factura.