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. Nuestro portafolio esta compuesto por las acciones de Cisco Systems (CSCO), Marvell Technology (MRVL) y Veeva Systems (VEEV). 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-25 1251 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-25 1251 0 Yahoo Finance (quantmod) 2026-09-21 10:00
MRVL Marvell Technology, Inc. Tecnología (semiconductores) NASDAQ 2021-10-01 2026-09-25 1251 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 el análisis del portafolio se trabajó con información desde el 1 de octubre de 2021. Adicionalmente, para la estimación de los modelos GARCH se utilizó información histórica desde el 20 de septiembre de 2016, con 2.517 observaciones para cada activo. De esta forma se contó con una historia más amplia para estimar la volatilidad utilizada en la simulación.

Aunque la marca de descarga se fijó en una fecha de referencia para mantener la reproducibilidad del análisis entre corridas, los datos de precios incluyen información de mercado hasta la última fecha disponible al momento de ejecutar el script (25 de septiembre de 2026).

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 seleccionar el vencimiento se consideraron conjuntamente los spreads relativos, el interés abierto y el volumen negociado. El 21 de enero de 2028 fue seleccionado como vencimiento común porque se encontraba dentro del horizonte requerido para los tres activos y presentaba condiciones de liquidez aceptables. Aunque no fue el vencimiento con menor spread en todos los casos, su elección permite mantener un horizonte homogéneo para la construcción y comparación de las estrategias.

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.60 0.1613 0.2610 0.1274 0.4430
VEEV 0.15 -0.0047 0.3931 0.0256 0.0889
MRVL 0.25 0.3014 0.6437 0.1346 0.4681
Matriz de correlaciones
Matriz de correlaciones

Las correlaciones entre las tres acciones muestran que existe diversificación en el portafolio. La correlación entre CSCO y VEEV es de 0,17, entre CSCO y MRVL es de 0,42 y entre VEEV y MRVL es de 0,24. Estos valores no son cercanos a 1, por lo que las acciones no se comportan exactamente igual.

También se puede ver que el peso de cada acción no es igual a su aporte al riesgo. CSCO representa el 60% del portafolio y aporta el 44,3% del riesgo, VEEV tiene el 15% y aporta el 8,9%, mientras que MRVL representa el 25% y aporta el 46,8% del riesgo.

Esto se debe principalmente a la volatilidad de cada acción y a la forma en que se relaciona con las demás. En el caso de VEEV, aunque tiene una volatilidad individual mayor que CSCO, sus correlaciones con las otras acciones son bajas, por lo que su aporte al riesgo total termina siendo menor.

Retornos log y precios ajustados:

Para calcular los retornos del portafolio se utilizaron precios ajustados por dividendos, mientras que para dimensionar la posición y valorar las opciones se usó el precio de cierre sin ajustar, ya que es el precio real al que se transan las acciones y las opciones en el mercado. Se trabajó con retornos logarítmicos en lugar de simples porque son aditivos en el tiempo, lo que los hace consistentes con el Movimiento Browniano Geométrico que se simula en el Bloque II.

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.6000 0.1500 0.25 0.1714 0.2877 0.4306
Mínima varianza 0.6125 0.2375 0.15 0.1429 0.2569 0.3710
Frontera eficiente
Frontera eficiente

Se escogió el portafolio de máximo Sharpe porque permite analizar conjuntamente el retorno esperado y el riesgo. El portafolio de mínima varianza presenta una volatilidad anual menor, de 25,69%, frente al 28,77% del portafolio de máximo Sharpe. Sin embargo, también presenta un retorno esperado menor, de 14,29% frente a 17,14%.

El índice de Sharpe relaciona el rendimiento adicional obtenido con el nivel de riesgo asumido. En este caso, el portafolio de máximo Sharpe presenta un indicador de 0,4306, frente a 0,3710 del portafolio de mínima varianza.

Por esta razón, se seleccionó el portafolio de máximo Sharpe como base para el ejercicio de cobertura, buscando un equilibrio entre retorno esperado y riesgo.

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.70 6000000 56232 47797 478 sharpe
VEEV 0.15 280.68 1500000 5344 4542 45 sharpe
MRVL 0.25 261.94 2500000 9544 8112 81 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 2517 0e+00 0.2103 0.7117 0.9220 0.2989 0.3236 0.2989
VEEV 2517 1e-04 0.0504 0.8283 0.8786 0.3885 0.3709 0.3885
MRVL 2517 0e+00 0.1542 0.8255 0.9797 0.7309 0.5512 0.7309

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 2181011 2905192 2634103 21.81 29.05
Vencimiento opciones 337 4525827 5542903 5157512 45.26 55.43
2 años 504 5193395 6404082 5878950 51.93 64.04

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,26%, quiere decir que, para un portafolio de USD 10 millones y en los 337 días analizados, la pérdida correspondiente al percentil 5% es de aproximadamente USD 4,53 millones. En otras palabras, en el 5% de los escenarios la pérdida puede ser superior a 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, este nivel de riesgo sin cobertura muestra por qué es importante 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.

Matriz de dependencia en la simulación:

Para simular las tres acciones de forma correlacionada, se aplicó una descomposición de Cholesky sobre la matriz de correlación de los residuos estandarizados del modelo GARCH, de manera que los choques aleatorios usados en el Movimiento Browniano Geométrico mantuvieran la misma estructura de dependencia observada entre los tres activos.

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 97.5 115 elegido por el equipo
VEEV 260.0 300 elegido por el equipo
MRVL 250.0 260 elegido por el equipo
IV y spread por strike
IV y spread por strike

CSCO: la put tiene un moneyness de 0,9138, por lo que el strike está aproximadamente 8,6% por debajo del precio spot. Esto significa que la opción comienza a tener valor intrínseco cuando la acción cae por debajo de ese nivel.

VEEV: la put tiene un moneyness de 0,9263, con el strike aproximadamente 7,4% por debajo del precio spot.

MRVL: la put tiene un moneyness de 0,9544, por lo que el strike está cerca de 4,6% por debajo del precio spot. De las tres acciones, esta es la put cuyo strike está más cerca del precio actual.

La selección de los strikes no se hizo únicamente buscando el mayor interés abierto. También se tuvo en cuenta la distancia del strike frente al precio spot, el nivel de protección deseado y las condiciones de negociación observadas en las opciones disponibles. De esta manera, se escogieron strikes que permitieran construir las estrategias planteadas y mantener una liquidez razonable.

Es importante aclarar que dos de los strikes elegidos, la put de 250 y la call de 260 de MRVL, no aparecen entre los tres primeros candidatos de la tabla anterior. La put de 250 sí pasó el filtro de liquidez, con un open interest de 1.132 y un spread relativo de 3,6%, pero no quedó entre las tres opciones con mejor resultado. En el caso de la call de 260, esta no apareció porque el precio de MRVL era de USD 261,94 y el strike estaba por debajo del precio de la acción, por lo que la opción era ITM y no cumplía con el filtro de calls OTM. Sin embargo, la opción tenía cotización de mercado y el equipo decidió utilizarla para el collar.

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.324 0.299 0.261
VEEV 0.400 0.508 0.371 0.389 0.393
MRVL 0.601 0.733 0.551 0.731 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 de las puts son cercanas al GARCH en CSCO y VEEV, mientras que en MRVL la diferencia es mayor. En las calls, la IV es superior al GARCH en las tres acciones, especialmente en VEEV y 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.2.1 Tasa libre de riesgo interpolada al plazo

tasas <- read.csv(file.path(carpeta, “tasas_libres_riesgo.csv”)) knitr::kable( tasas, digits = 4, caption = “Tasa libre de riesgo interpolada al vencimiento de las opciones” )

Como el vencimiento de las opciones es de aproximadamente 1,34 años, este no coincide exactamente con las tasas del Treasury de 1 y 2 años disponibles. Por esta razón, se utilizó una tasa libre de riesgo interpolada entre ambas —de 4,44% (1 año) y 4,76% (2 años), resultando en una tasa interpolada de 4,55%— con el fin de obtener una tasa más acorde con el plazo específico de las opciones, en lugar de usar directamente una que corresponda a un vencimiento distinto.

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 97.5 10.500 0.3258 0.3493 10.1844 10.500 0.3156 -0.3083
CSCO call 115.0 16.225 0.4105 0.3714 16.2246 16.225 0.0004 0.5404
VEEV put 260.0 36.250 0.3916 0.4238 34.9420 36.250 1.3080 -0.3170
VEEV call 300.0 56.500 0.5000 0.4472 56.5000 56.500 0.0000 0.5967
MRVL put 250.0 63.325 0.6005 0.6615 61.7114 63.325 1.6136 -0.3138
MRVL call 260.0 86.850 0.7386 0.6878 86.8500 86.850 0.0000 0.6836
Convergencia del árbol e IV Yahoo vs. propia
Convergencia del árbol e IV Yahoo vs. propia

Es importante aclarar que dos de los strikes elegidos, la put de 250 y la call de 260 de MRVL, no aparecen entre los tres primeros candidatos de la tabla anterior. La put de 250 sí pasó el filtro de liquidez, con un open interest de 1.132 y un spread relativo de 3,6%, pero no quedó entre las tres opciones con mejor resultado.

En el caso de la call de 260, esta no apareció porque el precio de MRVL era de USD 261,94 y el strike estaba por debajo del precio de la acción, por lo que la opción era ITM y no cumplía con el filtro de calls OTM. Sin embargo, la opción tenía cotización de mercado y el equipo decidió utilizarla para el collar.

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,3156 en CSCO, 1,308 en VEEV y 1,6136 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 97.5 97.5 115
VEEV 260.0 260.0 300
MRVL 250.0 250.0 260
  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 45,26% al vencimiento, mostró un nivel de riesgo importante, por lo que se decidió incluir el bear put spread como tercera estrategias.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 501900 -273655 117110
VEEV 163125 -91125 56250
MRVL 512932 -190552 95175
TOTAL 1177958 -555332 268535

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 USD 1.177.957,50, porque solo compra puts y hay que pagar toda la prima. El bear put spread costó USD 268.535, 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 -USD 555.332,50, es decir, un crédito neto: lo que se recibió por vender las calls fue mayor que lo que costó comprar las puts.

Esta diferencia se puede relacionar con las volatilidades implícitas observadas en las opciones. En las tres acciones, las calls presentaron una IV mayor que las puts, por lo que la prima recibida por vender las calls ayuda a cubrir el costo de las puts. En general, las estrategias que venden opciones reducen el desembolso inicial frente a la protective put, aunque también limitan parte de la protección o de la ganancia potencial.

4.6 Reparto del costo entre las 3 acciones

El costo de la cobertura no se distribuyó directamente según los pesos del portafolio ni según la contribución al riesgo. La participación final de cada activo en el costo corresponde al valor de las primas de las opciones utilizadas en cada posición.

Para la protective put, CSCO representa el 42,61% del costo total, VEEV el 13,85% y MRVL el 43,54%. Esta distribución está relacionada con el número de contratos y con el precio de las opciones de cada activo.

Como referencia, la contribución al riesgo del portafolio es de 44,30% para CSCO, 8,89% para VEEV y 46,81% para MRVL. Por tanto, la distribución efectiva del costo es cercana a la distribución por riesgo en CSCO y MRVL, mientras que VEEV presenta una participación mayor en el costo debido al precio de las opciones utilizadas.

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 2181010.8 2905192.1 2634102.9 21.81 29.05
1er trimestre 63 Protective put -814269.3 -411171.8 -568506.1 -9.23 -4.66
1er trimestre 63 Collar 1594719.3 1778636.5 1706640.9 15.11 16.85
1er trimestre 63 Bear put spread 1550096.9 2235124.8 1975783.9 15.93 22.97
Vencimiento opciones 337 Sin cobertura 4525826.9 5542903.4 5157511.6 45.26 55.43
Vencimiento opciones 337 Protective put 121378.7 288716.7 225860.5 1.38 3.27
Vencimiento opciones 337 Collar 1855383.8 2022006.7 1959322.5 17.58 19.16
Vencimiento opciones 337 Bear put spread 3609097.8 4652222.3 4253799.5 37.09 47.81
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. A 63 días, el VaR pasa de 21,81% sin cobertura a -9,23% con la protective put. Al vencimiento, pasa de 45,26% a 1,38%. El collar queda en 15,11% a 63 días y 17,58% al vencimiento, mientras que el bear put spread presenta 15,93% y 37,09%, respectivamente. En el caso de la protective put, el VaR negativo significa que en ese percentil el resultado de la estrategia todavía sería positivo.

Este resultado 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 reducen el costo al vender otra opción, y por eso también tienen límites en la protección que ofrecen.

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. En los escenarios extremos del portafolio no necesariamente caen las tres acciones al mismo tiempo: puede que una caiga mientras otra sube. En ese caso, la call vendida sobre la acción que sube puede generar pérdidas y quitar parte del efecto protector de las puts. Por eso la protective put logra una mayor reducción del VaR, mientras que el collar sacrifica parte de esa protección a cambio del ingreso recibido por las calls.

El bear put spread muestra una reducción moderada del VaR al 95%, pero tiene una protección más limitada en escenarios extremos. Esto pasa porque la put comprada protege ante las caídas, pero la put vendida en un strike más bajo limita hasta dónde llega esa protección. En caídas moderadas el spread todavía funciona bien, pero cuando la caída es mayor y el precio pasa el strike de la put vendida, la protección adicional se acaba.

En el primer trimestre, la protective put presenta un VaR de -9,23%. En este caso, el signo negativo indica que el percentil utilizado todavía corresponde a un resultado positivo de la estrategia, por lo que la pérdida de cola no llega a materializarse en ese horizonte bajo la convención utilizada en la simulación.

4.8 Revaloración trimestral (mark-to-market) y eficiencia de la cobertura

mtm <- read.csv(file.path(carpeta, "revaloracion_trimestral_mtm.csv"))
knitr::kable(mtm, digits = 2, caption = "Valor promedio de cada estrategia por trimestre (USD)")
Valor promedio de cada estrategia por trimestre (USD)
trimestre dias dentro_ventana_cobertura media_pp mtm_pct_pp media_collar mtm_pct_collar media_spread mtm_pct_spread
T1 63 TRUE 11209530 27.06 9508106 -9.92 10323655 6.09
T2 126 TRUE 11298611 28.07 9610605 -8.95 10426903 7.15
T3 189 TRUE 11382495 29.03 9713872 -7.97 10521296 8.12
T4 252 TRUE 11475626 30.08 9818961 -6.98 10623745 9.17
T5 315 TRUE 11612928 31.64 9937740 -5.85 10774084 10.72
T6 378 FALSE 10595556 20.11 10595556 0.38 10595556 8.88
T7 441 FALSE 10704950 21.35 10704950 1.42 10704950 10.01
T8 504 FALSE 10826608 22.72 10826608 2.57 10826608 11.26
eficiencia <- read.csv(file.path(carpeta, "eficiencia_estrategias.csv"))
knitr::kable(eficiencia, digits = 3, caption = "Costo como % del portafolio y eficiencia de cada estrategia")
Costo como % del portafolio y eficiencia de cada estrategia
estrategia costo_usd costo_pct_V0 reduccion_VaR95_usd eficiencia_usd_reducido_por_usd_prima
Protective put 1177957.5 11.780 4404448.2 3.739
Collar -555332.5 -5.553 2670443.0 NA
Bear put spread 268535.0 2.685 916729.1 3.414

En T5 la cobertura todavía está activa, pero las opciones vencen en el día 337 y todavía quedan tres trimestres de exposición (T6, T7 y T8). Por eso, en ese punto sería necesario renovar la cobertura antes de llegar a T6, buscando nuevas opciones que cubran el tiempo que falta. No sería conveniente dejar el portafolio descubierto durante esos tres trimestres, porque todavía existe riesgo. La idea sería renovar la cobertura antes de que venzan las opciones actuales para evitar quedar sin protección.

A partir de T6 las opciones ya han vencido, por lo que las tres estrategias dejan de tener posiciones en opciones y el valor mostrado corresponde únicamente al portafolio de acciones. Por esta razón, desde T6 los valores de las tres estrategias coinciden. Para mantener una cobertura durante los dos años completos, sería necesario renovar las opciones antes de su vencimiento y realizar una nueva valoración de la cobertura.

En cuanto a la eficiencia, la protective put reduce más el VaR en términos absolutos (USD 4.404.448), pero también tiene un costo mayor (USD 1.177.958, equivalente al 11,78% del portafolio). El bear put spread logra una eficiencia parecida por cada dólar gastado (3,41 frente a 3,74 de la protective put), pero con un costo mucho menor (USD 268.535, equivalente al 2,69% del portafolio). Esto muestra que el bear put spread tiene una mejor relación entre el costo y la reducción del riesgo, aunque la protective put consiga una mayor reducción del VaR en términos absolutos.

El collar es diferente porque tiene un costo negativo y por eso no se puede calcular el mismo indicador de eficiencia. En este caso, se obtiene un crédito neto de USD 555.333, es decir, se reduce el riesgo y al mismo tiempo se recibe dinero en lugar de hacer un desembolso.

5. Conclusión y recomendación del equipo

A partir de los resultados obtenidos, el equipo seleccionó el collar como estrategia de cobertura, tomando como criterio principal la relación entre el costo de la cobertura y la reducción del riesgo. La protective put presentó la mayor reducción del VaR, pero también implicó el mayor desembolso, con un costo de USD 1.177.957,50. El collar, por su parte, generó un crédito neto de USD 555.332,50 y redujo el VaR al 95% de 21,81% a 15,11% en el primer trimestre y de 45,26% a 17,58% al vencimiento de las opciones.

El bear put spread tuvo un costo de USD 268.535 y también permitió reducir el VaR frente al escenario sin cobertura, aunque su nivel de protección fue más limitado al vencimiento.

Con base en este criterio, el equipo escogió el collar porque permite disminuir parte del riesgo del portafolio sin realizar un desembolso inicial neto. Sin embargo, esta estrategia implica una limitación importante: la venta de las calls establece un nivel máximo para la ganancia de las acciones cubiertas. Por esto, el resultado del collar representa un equilibrio entre costo de cobertura, reducción del riesgo y participación en las ganancias del portafolio.

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/