1. Introducción

El objetivo del laboratorio es diseñar y evaluar estrategias de cobertura mediante opciones para proteger el 85% de un portafolio de USD 10 millones durante un horizonte de 2 años, analizando cómo cambia su nivel de riesgo con la cobertura. El informe está organizado en tres bloques: en el Bloque I se realiza la selección de los activos y la construcción del portafolio óptimo; en el Bloque II se realiza la simulación mediante el MBG con GARCH y se calcula el VaR del portafolio sin cobertura; y en el Bloque III se seleccionan las opciones y se construyen las tres estrategias de cobertura, para posteriormente analizar su comportamiento y efecto sobre el riesgo del portafolio.

2. Bloque I — Selección de activos y portafolio óptimo

2.1 Activos elegidos y documentación de datos

doc <- read.csv(file.path(carpeta, "documentacion_datos.csv"))
knitr::kable(doc, caption = "Documentación de los datos descargados")
Documentación de los datos descargados
ticker empresa sector mercado primera_fecha ultima_fecha n_obs_crudas faltantes fuente descarga
CSCO Cisco Systems, Inc. Tecnología (redes y equipos de telecomunicaciones) NASDAQ 2021-10-01 2026-09-24 1250 0 Yahoo Finance (quantmod) 2026-09-21 10:00
VEEV Veeva Systems Inc. Salud (software para ciencias de la vida) NYSE 2021-10-01 2026-09-24 1250 0 Yahoo Finance (quantmod) 2026-09-21 10:00
MRVL Marvell Technology, Inc. Tecnología (semiconductores) NASDAQ 2021-10-01 2026-09-24 1250 0 Yahoo Finance (quantmod) 2026-09-21 10:00

Las tres acciones se eligieron, en primer lugar, por liquidez de opciones: necesitábamos acciones donde fuera posible encontrar puts y calls con vencimientos entre 12 y 24 meses y con condiciones de mercado razonables (bid-ask ajustado, open interest suficiente). En segundo lugar, buscamos algo de diversificación entre ellas. CSCO y MRVL pertenecen al sector Tecnología, pero CSCO está más relacionada con redes e infraestructura, mientras que MRVL está enfocada en semiconductores. VEEV, por su parte, pertenece a un sector completamente distinto: software para ciencias de la vida. Es decir, aunque dos de las tres comparten el mismo sector amplio, no dependen del mismo negocio ni de los mismos factores de demanda, lo que ayuda a que el portafolio no esté totalmente concentrado en un solo tipo de riesgo.

Para las acciones CSCO, VEEV y MRVL se verificó la disponibilidad de información histórica desde el 20 de septiembre de 2016, obteniendo 2.516 observaciones para cada activo. Por lo tanto, las tres acciones cuentan con información suficiente para cumplir con la ventana histórica de 10 años requerida para la estimación de volatilidad mediante el modelo GARCH.

2.2 Liquidez de opciones (filtro inicial)

liquidez <- read.csv("liquidez_opciones_candidatos.csv")
knitr::kable(liquidez, digits = 3, caption = "Liquidez por vencimiento (paso 1)")
Liquidez por vencimiento (paso 1)
ticker spot div_yield vencimiento dias puts_con_bid calls_con_bid spread_rel_put_med spread_rel_call_med oi_put_med vol_put_sum iv_put_med
MRVL 261.935 0.001 2027-12-17 452 6 5 0.023 0.025 101.5 21 0.604
MRVL 261.935 0.001 2028-06-16 634 6 5 0.028 0.033 415.5 13 0.591
MRVL 261.935 0.001 2028-01-21 487 6 5 0.034 0.040 243.5 20 0.601
MRVL 261.935 0.001 2028-03-17 543 6 5 0.036 0.035 42.0 33 0.598
CSCO 106.700 0.016 2028-06-16 634 4 4 0.088 0.132 125.5 6 0.322
CSCO 106.700 0.016 2028-01-21 487 7 4 0.095 0.081 224.0 97 0.332
CSCO 106.700 0.016 2027-12-17 452 7 4 0.114 0.089 286.0 80 0.342
VEEV 280.680 0.000 2028-01-21 487 6 5 0.133 0.085 44.5 19 0.394

Para escoger el vencimiento de las opciones comparamos el spread, el interés abierto y el volumen. En VEEV solo encontramos un vencimiento dentro del rango de 12 a 24 meses, que fue el 21 de enero de 2028. En CSCO, este vencimiento tuvo el mejor spread (0,0583) y el mayor volumen (96), aunque otro vencimiento tuvo un interés abierto un poco mayor. En MRVL, el 21 de enero de 2028 no tuvo el mejor spread, pero sí tuvo un buen interés abierto (349) y el mayor volumen (26). Por esta razón, escogimos el 21 de enero de 2028 como vencimiento común para las tres acciones, ya que así podemos realizar la cobertura de todo el portafolio en la misma fecha y comparar sus resultados. En MRVL aceptamos un spread un poco mayor porque era importante mantener el mismo vencimiento y, al mismo tiempo, tenía buenas condiciones de volumen e interés abierto.

2.3 Retornos, volatilidad y correlaciones

port_opt <- read.csv(file.path(carpeta, "portafolio_optimo.csv"))
knitr::kable(port_opt, digits = 4, caption = "Retorno, volatilidad y contribución al riesgo")
Retorno, volatilidad y contribución al riesgo
ticker peso mu_anual sigma_anual contrib_vol pct_del_riesgo
CSCO 0.605 0.1619 0.2611 0.1293 0.4517
VEEV 0.150 -0.0089 0.3932 0.0256 0.0895
MRVL 0.245 0.2994 0.6439 0.1313 0.4587
Matriz de correlaciones
Matriz de correlaciones

Las correlaciones entre las tres acciones muestran que sí hay beneficio de diversificación, porque ninguna se mueve casi igual que la otra (ninguna correlación cercana a 1): entre CSCO y VEEV es de 0,17, entre CSCO y MRVL de 0,42, y entre VEEV y MRVL de 0,24. Esto quiere decir que, aunque a veces se muevan en la misma dirección, no lo hacen de forma idéntica, así que juntarlas en el portafolio ayuda a bajar el riesgo comparado con invertir en una sola.

Por otro lado, se observó que lo que cada acción aporta al riesgo total no depende solamente de qué tanto peso tiene en el portafolio. Por ejemplo, CSCO tiene cerca del 60% del portafolio, pero solo aporta entre 44% y 52% del riesgo total, mientras que VEEV, con el peso mínimo de 15%, aporta apenas cerca del 9%. Esto pasa porque el aporte de cada activo depende también de qué tan volátil es por sí sola y de qué tanto se correlaciona con las otras dos: CSCO es la que tiene menor volatilidad individual del grupo, y VEEV, aunque por separado es más volátil, es la que menos correlación tiene con las otras dos (0,17 con CSCO y 0,24 con MRVL). Esa baja correlación hace que buena parte de su riesgo se “cancele” dentro del portafolio, y por eso termina aportando menos riesgo del que uno esperaría solo mirando su volatilidad individual.

2.4 Portafolio óptimo (máximo Sharpe) y frontera eficiente

comp <- read.csv(file.path(carpeta, "comparacion_portafolios.csv"))
knitr::kable(comp, digits = 4, caption = "Máximo Sharpe vs. mínima varianza")
Máximo Sharpe vs. mínima varianza
portafolio CSCO VEEV MRVL retorno_anual volatilidad sharpe
Máximo Sharpe 0.6050 0.1500 0.245 0.170 0.2862 0.4277
Mínima varianza 0.6125 0.2375 0.150 0.142 0.2570 0.3673
Frontera eficiente
Frontera eficiente

Se trabajó con el portafolio de máximo Sharpe porque, aunque el de mínima varianza tiene menos volatilidad anual (25,71% frente a 28,88%), también da un retorno esperado más bajo (14,11% frente a 17,06%). El índice de Sharpe sirve justo para eso: mirar el retorno y el riesgo juntos, no por separado. Y ahí el portafolio de máximo Sharpe gana con 0,4267 contra 0,3645 del de mínima varianza, o sea que por cada unidad de riesgo que se asume, genera más retorno. Por eso se escogió este portafolio: buscando un punto medio entre retorno y riesgo, en lugar de quedarse solo con el que tiene menor volatilidad.

2.5 Posición y tamaño de la cobertura

posicion <- read.csv(file.path(carpeta, "posicion_y_cobertura.csv"))
knitr::kable(posicion, digits = 2, caption = "Acciones, contratos y cobertura del 85%")
Acciones, contratos y cobertura del 85%
ticker peso spot inversion_usd acciones acciones_a_cubrir_85 contratos_aprox criterio
CSCO 0.60 106.97 6050000 56557 48073 481 sharpe
VEEV 0.15 274.84 1500000 5457 4638 46 sharpe
MRVL 0.24 258.95 2450000 9461 8042 80 sharpe

3. Bloque II — Simulación MBG + GARCH y VaR sin cobertura

3.1 Parámetros GARCH(1,1)

garch <- read.csv(file.path(carpeta, "garch_parametros.csv"))
knitr::kable(garch, digits = 4, caption = "Parámetros GARCH(1,1) por activo")
Parámetros GARCH(1,1) por activo
ticker n_obs omega alpha1 beta1 persistencia vol_anual_incondicional vol_anual_ultima vol_anual_pronost_final
CSCO 2516 0e+00 0.2105 0.7119 0.9223 0.2994 0.3687 0.2994
VEEV 2516 1e-04 0.0503 0.8287 0.8789 0.3886 0.3755 0.3886
MRVL 2516 0e+00 0.1529 0.8272 0.9801 0.7327 0.5943 0.7327

La persistencia del modelo GARCH muestra cuánto tiempo tienden a mantenerse los efectos de un choque fuerte en la volatilidad. Cuando está cerca de 1, como en MRVL (0,98), quiere decir que ese choque casi no se olvida: si hay una noticia que mueve mucho el precio, ese efecto sigue afectando las estimaciones de los días siguientes durante bastante tiempo. CSCO y VEEV tienen persistencias más moderadas (0,92 y 0,88), así que también tienen memoria, pero sus choques se van disipando un poco más rápido que en MRVL.

Se usó GARCH en vez de una volatilidad histórica fija porque el riesgo de una acción no es siempre el mismo: hay épocas más tranquilas y otras más agitadas. El GARCH va actualizando la estimación de volatilidad combinando lo que pasó recientemente con la volatilidad de períodos anteriores, mientras que una volatilidad fija asumiría el mismo nivel de riesgo todo el tiempo, sin importar lo que esté pasando en el mercado. Por eso resulta más adecuado para las simulaciones: permite que el riesgo del portafolio vaya cambiando a lo largo de los dos años, en vez de suponer que siempre es igual.

3.2 Deriva del MBG

Se usó como deriva la tasa libre de riesgo menos el dividendo (r − q) porque es un supuesto que se apoya en información que sí se puede observar hoy en el mercado, y no en suponer que lo que pasó antes con cada acción se va a repetir. Por ejemplo, MRVL tuvo una deriva histórica de casi 30% anual, pero asumir que va a seguir creciendo así de rápido los próximos dos años sería arriesgado, porque rendimientos pasados no garantizan nada hacia adelante. En cambio, la tasa libre de riesgo sale de las tasas de los títulos del Tesoro y el dividendo es el rendimiento por dividendos del activo, o sea que son datos que uno puede consultar en el momento mismo de hacer la valoración. Por eso, para simular el MBG se prefirió usar r − q: así no se está proyectando a futuro un rendimiento histórico que a lo mejor no se vuelve a repetir.

3.3 Trayectorias simuladas y VaR sin cobertura

Trayectorias y bandas del portafolio
Trayectorias y bandas del portafolio
var_sin <- read.csv(file.path(carpeta, "var_sin_cobertura_rf.csv"))
knitr::kable(var_sin, digits = 2, caption = "VaR y ES sin cobertura, por horizonte")
VaR y ES sin cobertura, por horizonte
horizonte dias VaR_95 VaR_99 ES_95 VaR_95_pct_V0 VaR_99_pct_V0
1er trimestre 63 2228359 2988136 2683388 22.28 29.88
Vencimiento opciones 337 4522484 5557710 5165808 45.23 55.58
2 años 504 5190429 6393957 5884549 51.91 63.94

Distribución de P&L - 1er trimestre Distribución de P&L - 2 años

El VaR al 95% al vencimiento de las opciones, de 45,81%, quiere decir que, para un portafolio de USD 10 millones y en los 337 días analizados, hay un 95% de confianza en que la pérdida no pase de unos USD 4,58 millones, pero también hay un 5% de probabilidad de que sí supere ese valor. Al mirar las simulaciones a 2 años, se ve que la mediana del portafolio se puede quedar estancada o incluso bajar, mientras que la media sube. Esto pasa porque la distribución tiene una cola larga hacia la derecha: hay algunos escenarios con ganancias muy altas que jalan la media hacia arriba, aunque esos casos sean pocos y la mayoría de las simulaciones se queden en valores más bajos.

Por último, se considera que este nivel de riesgo sin cobertura sí es una razón importante para analizar una cobertura del 85% del portafolio, ya que se trata de una pérdida potencial de más del 45% del capital en el escenario de cola del 5%. Aun así, el VaR por sí solo no significa que esa pérdida vaya a ocurrir necesariamente; es una medida para dimensionar el riesgo y después poder compararlo con lo que cambia al incluir las estrategias de cobertura.

4. Bloque III — Selección de opciones y estrategias de cobertura

4.1 Strikes candidatos y elegidos

candidatos <- read.csv(file.path(carpeta, "candidatos_top.csv"))
knitr::kable(candidatos[, c("ticker","tipo","strike","moneyness","tipo_moneyness",
                             "bid","ask","oi","volumen","iv","puntaje")],
             digits = 3, caption = "Candidatos de strikes por liquidez (top 3 por tipo)")
Candidatos de strikes por liquidez (top 3 por tipo)
ticker tipo strike moneyness tipo_moneyness bid ask oi volumen iv puntaje
CSCO call 115.0 1.078 OTM 15.65 16.80 1360 58 0.410 6
CSCO call 120.0 1.125 OTM 13.70 16.00 7254 150 0.428 6
CSCO call 110.0 1.031 OTM 17.60 19.15 1456 4 0.421 9
CSCO put 100.0 0.937 OTM 11.55 12.15 3125 2 0.324 7
CSCO put 97.5 0.914 OTM 10.00 11.00 255 76 0.326 8
CSCO put 105.0 0.984 ATM 14.00 14.55 174 2 0.319 10
VEEV call 290.0 1.033 OTM 58.50 62.50 19 2 0.504 5
VEEV call 300.0 1.069 OTM 54.50 58.50 252 1 0.500 5
VEEV call 320.0 1.140 OTM 47.00 51.50 54 1 0.511 8
VEEV put 260.0 0.926 OTM 34.00 38.50 35 10 0.392 6
VEEV put 250.0 0.891 OTM 29.50 34.00 117 2 0.396 7
VEEV put 230.0 0.819 OTM 21.50 26.00 179 2 0.407 8
MRVL call 300.0 1.145 OTM 72.70 76.00 5840 49 0.737 7
MRVL call 270.0 1.031 OTM 81.50 84.10 391 4 0.732 8
MRVL call 290.0 1.107 OTM 75.60 78.25 227 12 0.735 8
MRVL put 260.0 0.993 ATM 68.50 69.90 1676 1 0.598 7
MRVL put 220.0 0.840 OTM 45.70 47.05 138 3 0.603 8
MRVL put 230.0 0.878 OTM 50.70 52.45 349 10 0.600 8
elegidos <- read.csv(file.path(carpeta, "strikes_elegidos.csv"))
knitr::kable(elegidos, caption = "Strikes finales elegidos")
Strikes finales elegidos
ticker put_strike call_strike criterio
CSCO 100 115 mejor puntaje (por defecto, falta decidir)
VEEV 260 290 mejor puntaje (por defecto, falta decidir)
MRVL 260 300 mejor puntaje (por defecto, falta decidir)
IV y spread por strike
IV y spread por strike

CSCO: la put tiene un moneyness de 0,9115, o sea que el strike queda cerca de un 8,85% por debajo del precio spot. Eso significa que la acción tendría que caer casi un 9% antes de que la put empiece a proteger de verdad. De las tres, es la que deja la zona de caída más grande sin cubrir.

VEEV: su put tiene un moneyness de 0,9460, con el strike alrededor de 5,4% por debajo del spot. Aquí la protección arranca después de una caída más pequeña que en CSCO, así que da una cobertura más cercana al precio actual.

MRVL: con un moneyness de 0,9654, el strike queda a solo cerca de 3,46% del spot. Es la put más cercana al precio actual de las tres, así que es la que menos margen de caída deja antes de que la protección empiece a funcionar.

La elección de los strikes no se basó solo en qué tanta protección daban, sino también en qué tan fácil era negociar esas opciones. Los strikes que se escogieron tenían una buena combinación: spread relativo bajo, mayor open interest y buen volumen negociado en comparación con las otras alternativas que se tenían en mente, así que dan una protección razonable sin complicar la entrada o salida de la posición. En resumen, la selección juntó el nivel de cobertura que se quería con condiciones de liquidez que tuvieran sentido.

4.2 Paridad put-call e IV implícita vs. GARCH

paridad <- read.csv(file.path(carpeta, "paridad_put_call.csv"))
iv_garch <- read.csv(file.path(carpeta, "iv_vs_garch.csv"))
knitr::kable(iv_garch, digits = 3, caption = "IV implícita (mercado) vs. GARCH vs. histórica")
IV implícita (mercado) vs. GARCH vs. histórica
ticker iv_mediana_puts iv_mediana_calls garch_vol_ultima garch_vol_incondicional vol_historica
CSCO 0.332 0.416 0.369 0.299 0.261
VEEV 0.400 0.508 0.376 0.389 0.393
MRVL 0.601 0.733 0.594 0.733 0.644

Al comparar la paridad put-call con el precio spot, se observa que las desviaciones son pequeñas, con medianas entre 0,24% y 0,47% del spot y valores máximos inferiores al 0,92%. Esto indica que, en general, la relación de paridad se cumple razonablemente, aunque no de manera exacta debido a que se están analizando opciones americanas. Por otro lado, al comparar la volatilidad implícita con la volatilidad estimada mediante GARCH, se observa que las IV medianas de las puts son relativamente cercanas al GARCH: en CSCO son 0,341 frente a 0,369, en VEEV 0,395 frente a 0,364 y en MRVL 0,606 frente a 0,594. En cambio, las IV de las calls son superiores al GARCH en las tres acciones: 0,408 frente a 0,369 en CSCO, 0,512 frente a 0,364 en VEEV y 0,741 frente a 0,594 en MRVL. Esto muestra que existe una diferencia importante entre las volatilidades implícitas de puts y calls, especialmente en VEEV y MRVL, y ayuda a explicar por qué en la estrategia collar la venta de calls puede generar un crédito que compense parte del costo de las puts.

4.3 Valoración binomial (europea/americana) y volatilidad implícita propia

val <- read.csv(file.path(carpeta, "valoracion_opciones.csv"))
knitr::kable(val[, c("ticker","tipo","strike","mid","iv_yahoo","iv_propia_mid",
                      "precio_europeo","precio_americano","prima_ejercicio_anticipado",
                      "delta_americano")], digits = 4,
             caption = "Valoración binomial CRR: europea vs. americana")
Valoración binomial CRR: europea vs. americana
ticker tipo strike mid iv_yahoo iv_propia_mid precio_europeo precio_americano prima_ejercicio_anticipado delta_americano
CSCO put 100 11.850 0.3240 0.3541 11.4836 11.850 0.3664 -0.3318
CSCO call 115 16.225 0.4105 0.3714 16.2246 16.225 0.0004 0.5405
VEEV put 260 36.250 0.3916 0.4238 34.9420 36.250 1.3080 -0.3170
VEEV call 290 60.500 0.5037 0.4488 60.5000 60.500 0.0000 0.6221
MRVL put 260 69.200 0.5976 0.6614 67.3816 69.200 1.8184 -0.3333
MRVL call 300 74.350 0.7370 0.6913 74.3500 74.350 0.0000 0.6181
Convergencia del árbol e IV Yahoo vs. propia
Convergencia del árbol e IV Yahoo vs. propia

Al comparar la volatilidad implícita calculada por nosotros con la de Yahoo, encontramos diferencias tanto en las puts como en las calls. Por eso decidimos calcular nuestra propia IV usando el árbol binomial CRR y el precio medio de mercado, para que la valoración fuera consistente con el modelo utilizado. En cuanto al ejercicio anticipado, observamos que en las calls la diferencia es casi cero, mientras que en las puts es mayor: 0,366 en CSCO, 1,308 en VEEV y 1,818 en MRVL. Esto se debe a que los dividendos de las acciones son muy bajos o nulos, por lo que ejercer una call antes del vencimiento casi no resulta atractivo, ya que se pierde el valor del tiempo que todavía le queda a la opción. En cambio, en una put puede ser conveniente ejercer antes cuando el precio de la acción cae bastante, porque se recibe antes el dinero correspondiente al strike. Por eso el ejercicio anticipado tiene mayor valor en las puts que en las calls.

4.4 Las tres estrategias de cobertura

Strikes usados en Protective Put y Collar
ticker A_protective_put B_collar_put B_collar_call
CSCO 100 100 115
VEEV 260 260 290
MRVL 260 260 300
  1. Protective Put: consiste en mantener la acción y comprar una opción put que da el derecho a venderla a un precio determinado. De esta forma, si el precio de la acción baja mucho, la put ayuda a limitar la pérdida.

  2. Collar: consiste en mantener la acción, comprar una put y vender una call. La put protege al portafolio ante una caída del precio, mientras que la venta de la call genera un ingreso por la prima, pero limita parte de la ganancia si el precio de la acción sube demasiado.

Se escogió el bear put spread como tercera estrategia porque el VaR sin cobertura, de casi 45,8% al vencimiento, mostraba un riesgo bastante alto que necesitaba una protección más directa contra caídas fuertes. A diferencia del covered call, que solo genera un ingreso por la prima y da un colchón limitado si el activo cae, el bear put spread sí permite compensar parte de las pérdidas gracias a la put comprada, dejando un rango de protección hasta el strike de la put vendida. Por eso esta estrategia encaja mejor con el objetivo de reducir el riesgo de pérdidas grandes, aunque hay que tener claro que su protección también tiene un límite y un costo asociado.

4.5 Costo de cada estrategia

costos <- read.csv(file.path(carpeta, "costos_estrategias.csv"))
knitr::kable(costos, digits = 0, caption = "Costo neto por estrategia y acción (USD; negativo = crédito)")
Costo neto por estrategia y acción (USD; negativo = crédito)
ticker protective_put collar bear_put_spread
CSCO 569985 -210438 64935
VEEV 166750 -111550 57500
MRVL 553600 -41200 182600
TOTAL 1290335 -363188 305035

El costo de las estrategias cambia bastante según cómo están armadas. La protective put fue la más cara, con un total de $1.353.262,50, porque solo compra puts y hay que pagar toda la prima completa. El bear put spread costó menos, $409.337,50, porque vender una put con strike más bajo ayuda a financiar parte de la put comprada. El collar, en cambio, dio un resultado de -$386.805, o sea un crédito neto: lo que se recibió por vender las calls fue más de lo que costó comprar las puts.

Esa diferencia entre el collar y el bear put spread se explica porque, como se vio en la sección 4.2, la volatilidad implícita de las calls fue consistentemente más alta que la de las puts en las tres acciones, así que las primas que se reciben por vender calls son más altas. Por eso el collar termina saliendo más barato —hasta a crédito— que el bear put spread, que solo vende una put adicional con una prima más modesta. En general, las estrategias que venden opciones bajan el desembolso inicial frente a la protective put, pero a cambio limitan parte de la protección.

4.6 Reparto del costo entre las 3 acciones

Para distribuir el costo de las estrategias entre las tres acciones se usó como criterio qué tanto aporta cada una al riesgo total del portafolio (pct_del_riesgo), en vez de repartir en partes iguales. En la protective put, por ejemplo, CSCO representó el 44,17% del costo frente a un 44% de participación en el riesgo; VEEV representó el 14,70% del costo frente a cerca del 9% del riesgo; y MRVL representó el 41,13% del costo frente a más o menos 47% del riesgo. Las proporciones no coinciden exactamente —sobre todo VEEV, que recibe una parte del costo un poco mayor de lo que su riesgo justificaría—, pero en general el reparto sí va en línea con la idea de asignarle más costo a los activos que más aportan al riesgo del portafolio.

No se usó una distribución de 33%/33%/33% porque eso implicaría que las tres acciones aportan el mismo riesgo, y eso no es lo que muestran los resultados: CSCO y MRVL concentran la mayor parte del riesgo, mientras que VEEV aporta bastante menos.

4.7 VaR con cobertura: comparación de las 3 estrategias

var_con <- read.csv(file.path(carpeta, "var_con_cobertura.csv"))
knitr::kable(var_con, digits = 2, caption = "VaR y ES por estrategia y horizonte")
VaR y ES por estrategia y horizonte
horizonte dias estrategia VaR_95 VaR_99 ES_95 VaR_95_pct VaR_99_pct
1er trimestre 63 Sin cobertura 2228359.1 2988136.08 2683387.9 22.28 29.88
1er trimestre 63 Protective put -1069394.5 -669957.12 -829664.4 -12.28 -7.69
1er trimestre 63 Collar 1198578.7 1378344.32 1308268.5 11.57 13.30
1er trimestre 63 Bear put spread 1545523.5 2253206.88 1977331.2 15.94 23.24
Vencimiento opciones 337 Sin cobertura 4522484.0 5557710.19 5165807.9 45.23 55.58
Vencimiento opciones 337 Protective put -220600.5 -50995.96 -115147.4 -2.53 -0.59
Vencimiento opciones 337 Collar 1435514.4 1602526.54 1538753.4 13.85 15.46
Vencimiento opciones 337 Bear put spread 3656555.2 4687953.86 4301532.0 37.72 48.36
VaR 95% por estrategia y horizonte
VaR 95% por estrategia y horizonte

Al comparar el VaR de las tres estrategias contra el escenario sin cobertura, la protective put es la que más reduce el riesgo: el VaR pasa de 22,99% a -9,69% a 63 días, y de 45,81% a 0,29% al vencimiento (los valores negativos quieren decir que, en el peor 5% de los escenarios, la estrategia termina en ganancia y no en pérdida). Después viene el collar, con un VaR de cerca de 14,4% a 63 días y 16,7% al vencimiento. Y por último queda el bear put spread, que es el que menos reduce el riesgo de las tres, con cerca de 15,7% y 36,3% respectivamente.

Este orden tiene sentido porque la protective put da la protección más amplia, pero a cambio hay que asumir el costo completo de la prima. En cambio, el collar y el bear put spread bajan ese costo vendiendo otra opción, y por eso mismo terminan limitando parte de la protección que se logra.

Aunque el collar usa las mismas puts compradas que la protective put, termina con un VaR más alto porque además incluye la venta de calls. Como las correlaciones entre CSCO, VEEV y MRVL son bajas o moderadas, en los escenarios extremos del portafolio no necesariamente caen las tres al tiempo: puede que una caiga fuerte mientras otra sube. Ahí es donde la call vendida sobre la que sube genera pérdidas, y eso le quita parte del efecto protector que dan las puts. Por eso la protective put logra una reducción más grande del VaR en los resultados, mientras que el collar sacrifica algo de esa protección a cambio de los ingresos que recibe por vender las calls.

El bear put spread muestra una reducción moderada del VaR al 95%, pero se pone bastante peor cuando se mira el VaR al 99%. Esto pasa porque, aunque la put comprada sí protege ante caídas, la put vendida en un strike más bajo pone un límite a hasta dónde llega esa protección. En caídas moderadas, como las del percentil 95%, es poco probable que el precio se pase de ese strike inferior, así que el spread todavía cubre bien. Pero en escenarios más extremos, como el percentil 99%, ya es más probable que el precio sí caiga por debajo de ese nivel, y ahí la protección adicional se acaba, dejando que las pérdidas del portafolio vuelvan a crecer más rápido. Por eso el bear put spread se comporta razonablemente bien ante caídas moderadas, pero queda más limitado frente a eventos extremos.

Cabe anotar que el VaR con cobertura solo se calculó hasta el vencimiento de las opciones (día 337), porque ahí termina la ventana de cobertura que se definió; a 2 años el VaR es el mismo con o sin cobertura porque las opciones ya vencieron.

5. Conclusión y recomendación del equipo

A partir de los resultados, se recomienda el collar como estrategia de cobertura, usando como criterio principal el equilibrio entre reducción del riesgo y costo. Aunque la protective put fue la que más redujo el VaR, también fue la más cara, con un desembolso de $1.353.262,50. El collar, en cambio, dio un crédito neto de $386.805 y también redujo el VaR frente al escenario sin cobertura, pasando de 22,99% a cerca de 14,4% a 63 días y de 45,81% a 16,7% al vencimiento. El bear put spread tuvo un costo intermedio, pero mostró menos capacidad de protección en escenarios extremos. Entonces, mirando costo y reducción de riesgo juntos, el collar queda como un punto medio entre los dos objetivos, aunque eso sí, limita parte de la ganancia potencial por la venta de las calls.

En cuanto a las limitaciones del análisis: primero, se usó una volatilidad constante bajo el supuesto de Black-Scholes para revalorar las opciones en el Paso 6, en vez de recalcularlas con un modelo más completo para cada una de las 10.000 trayectorias, lo cual simplifica el análisis y puede no reflejar del todo los cambios de volatilidad que pasarían en escenarios reales. Segundo, los precios spot que se usaron para valorar las opciones y armar algunas partes del análisis no siempre corresponden exactamente al mismo momento de las cotizaciones de las opciones y de los precios históricos, por diferencias en fechas y fuentes de información, lo que puede generar pequeñas diferencias en la valoración y en los resultados de las estrategias.

Referencias

Ryan, J. A., & Ulrich, J. M. (2024). quantmod: Quantitative financial modelling framework [Paquete de R]. https://cran.r-project.org/package=quantmod

Yahoo Finance. (2026). Cotizaciones históricas y cadenas de opciones de CSCO, VEEV y MRVL [Datos]. https://finance.yahoo.com

Board of Governors of the Federal Reserve System (US). (2026). 1-Year Treasury Constant Maturity Rate [DGS1] y 2-Year Treasury Constant Maturity Rate [DGS2] [Datos]. FRED, Federal Reserve Bank of St. Louis. https://fred.stlouisfed.org/