Parte 1

  1. Análisis fundamental de la TRM y expectativa de precios

Se realiza un análisis fundamental del comportamiento histórico de la Tasa Representativa del Mercado (TRM), con el objetivo de estimar la expectativa de la TRM para los próximos 12 meses. Se revisan informes económicos y proyecciones de mercado de la divisa para fundamentar esta expectativa. Posteriormente, se analiza la evolución mensual histórica para obtener una base cuantitativa del comportamiento de la TRM.

# Cargar librerías necesarias
library(quantmod)
## Cargando paquete requerido: xts
## Cargando paquete requerido: zoo
## 
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Cargando paquete requerido: TTR
## Registered S3 method overwritten by 'quantmod':
##   method            from
##   as.zoo.data.frame zoo
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::first()  masks xts::first()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ dplyr::last()   masks xts::last()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(lubridate)

# Obtener datos históricos de TRM (USD/COP en Yahoo Finance)
# Ajustar el símbolo según disponibilidad. Por ejemplo: USDCOP=X
getSymbols("USDCOP=X", src = "yahoo", from = Sys.Date() - years(5), to = Sys.Date())
## Warning: USDCOP=X contains missing values. Some functions will not work if
## objects contain missing values in the middle of the series. Consider using
## na.omit(), na.approx(), na.fill(), etc to remove or replace them.
## [1] "USDCOP=X"
# Revisar estructura
head(`USDCOP=X`)
##            USDCOP=X.Open USDCOP=X.High USDCOP=X.Low USDCOP=X.Close
## 2020-05-20       3815.39       3815.39     3769.281        3815.39
## 2020-05-21       3769.04       3769.05     3761.470        3769.04
## 2020-05-24       3773.28       3776.71     3729.848        3773.28
## 2020-05-25       3776.71       3776.71     3771.000        3776.71
## 2020-05-26       3729.75       3750.25     3729.000        3729.75
## 2020-05-27       3733.75       3735.22     3690.493        3733.75
##            USDCOP=X.Volume USDCOP=X.Adjusted
## 2020-05-20               0           3815.39
## 2020-05-21               0           3769.04
## 2020-05-24               0           3773.28
## 2020-05-25               0           3776.71
## 2020-05-26               0           3729.75
## 2020-05-27               0           3733.75
# Convertir a data frame y seleccionar cierre ajustado
trm_data <- `USDCOP=X` %>% 
  as.data.frame() %>% 
  rownames_to_column(var = "Date") %>% 
  mutate(Date = as.Date(Date)) %>% 
  select(Date, Close = `USDCOP=X.Adjusted`)

# Visualizar serie de tiempo de la TRM
ggplot(trm_data, aes(x = Date, y = Close)) +
  geom_line(color = "blue") +
  labs(title = "Evolución histórica de la TRM (USD/COP)", x = "Fecha", y = "TRM") +
  theme_minimal()

La serie histórica de la Tasa Representativa del Mercado (TRM) entre el dólar estadounidense y el peso colombiano muestra una notable volatilidad en los últimos cinco años. Se observa un rango amplio de fluctuación con un aumento significativo alrededor del año 2023, donde la TRM alcanzó máximos superiores a 5000 pesos por dólar, seguido de correcciones y períodos de estabilización. Esta evolución refleja las dinámicas económicas y cambios en el mercado cambiario de la región durante este período.

  1. Cálculo de retornos mensuales y desviación estándar

Se calculan los retornos mensuales de la TRM histórica y su desviación estándar mensual para cuantificar la volatilidad de la divisa. Estos cálculos servirán para alimentar las simulaciones posteriores.

# Crear retornos logarítmicos mensuales
trm_monthly <- trm_data %>%
  mutate(month = floor_date(Date, "month")) %>%
  group_by(month) %>%
  summarize(month_close = last(Close)) %>%
  ungroup() %>%
  mutate(retornos = log(month_close) - log(lag(month_close)))

# Estadísticas descriptivas
retornos_stats <- trm_monthly %>%
  summarize(mean_return = mean(retornos, na.rm = TRUE),
            sd_return = sd(retornos, na.rm = TRUE))

retornos_stats
## # A tibble: 1 × 2
##   mean_return sd_return
##         <dbl>     <dbl>
## 1     0.00187    0.0330

El análisis de los retornos logarítmicos mensuales de la TRM histórica revela una tasa de retorno promedio mensual de aproximadamente 0.19%, con una desviación estándar de alrededor del 3.3%. Esta volatilidad mensual sugiere que, aunque la TRM tiende a presentar un crecimiento moderado en el mediano plazo, las fluctuaciones en el corto plazo pueden ser significativas, aspecto relevante para el manejo del riesgo cambiario en inversiones y créditos en moneda extranjera.

  1. Simulación mensual BMG (Brownian Motion Geométrico)

Se simula la evolución mensual futura de la TRM durante 12 meses utilizando un proceso de movimiento geométrico browniano (BMG). Este modelo es común para representar precios de activos financieros, considerando la media y volatilidad obtenida en los retornos mensuales históricos.

# Parámetros para simulación
n_months <- 12
S0 <- tail(trm_monthly$month_close, 1)
mu <- retornos_stats$mean_return
sigma <- retornos_stats$sd_return

# Simulación BMG
set.seed(123) # para reproducibilidad
dt <- 1 # periodo mensual
retornos_sim <- rnorm(n_months, mean = mu * dt, sd = sigma * sqrt(dt))

# Precio simulado
precios_sim <- numeric(n_months + 1)
precios_sim[1] <- S0
for(i in 2:(n_months + 1)) {
  precios_sim[i] <- precios_sim[i-1] * exp(retornos_sim[i-1])
}

sim_data <- data.frame(
  Mes = 0:n_months,
  Precio_TRM = precios_sim
)

# Gráfica de simulación
ggplot(sim_data, aes(x = Mes, y = Precio_TRM)) +
  geom_line(color = "darkgreen") +
  labs(title = "Simulación mensual de TRM (BMG)", x = "Mes", y = "TRM simulada") +
  theme_minimal()

La simulación de la TRM utilizando un proceso de movimiento geométrico browniano durante 12 meses evidencia un comportamiento ascendente con fluctuaciones mes a mes. Esta simulación incorpora la media y volatilidad estimadas en los datos históricos, permitiendo proyectar posibles trayectorias futuras del tipo de cambio. Los resultados sugieren que el valor de la TRM podría continuar con variaciones, afectando la valoración en pesos de obligaciones denominadas en dólares.

  1. Simulación de crédito en dólares (con pago inicial 15%)

Se modela la simulación del crédito para la compra de maquinaria en dólares, aplicando la tasa extranjera calculada y considerando un pago inicial del 15% del valor del crédito. Se simulan los pagos mensuales bajo un sistema francés de amortización para un plazo superior a 10 años.

# Datos básicos
valor_inversion_pesos <- 300e6
valor_inversion_usd <- valor_inversion_pesos / S0

# Monto crédito con pago inicial 15%
pago_inicial <- 0.15 * valor_inversion_usd
monto_credito <- valor_inversion_usd - pago_inicial

# Parámetros crédito
plazo_meses <- 12 * 11  # 11 años
tasa_anual_usa <- 0.07  # ejemplo, tasa comercial similar
tasa_mensual <- (1 + tasa_anual_usa)^(1/12) - 1

# Cuota sistema francés
cuota_mensual <- monto_credito * (tasa_mensual * (1 + tasa_mensual)^plazo_meses) / ((1 + tasa_mensual)^plazo_meses - 1)

# Crear tabla de amortización simplificada (solo cuotas constantes)
amortizacion <- data.frame(
  Mes = 1:plazo_meses,
  Cuota = rep(cuota_mensual, plazo_meses)
)

head(amortizacion)
##   Mes    Cuota
## 1   1 658.3935
## 2   2 658.3935
## 3   3 658.3935
## 4   4 658.3935
## 5   5 658.3935
## 6   6 658.3935

La simulación del crédito para la compra de maquinaria, considerando un monto inicial ajustado por un pago inicial del 15% y una tasa anual comercial estimada del 7%, genera cuotas mensuales constantes de aproximadamente 657 dólares. El sistema francés de amortización utilizado mantiene pagos iguales a lo largo del plazo de 11 años, facilitando la planificación financiera para el inversionista en moneda extranjera.

  1. Recrear crédito en pesos con simulación TRM y análisis

Utilizando la simulación de la TRM (punto 3), se transforma el crédito simulado en dólares a pesos, evaluando el comportamiento del crédito en pesos bajo la volatilidad cambiaria. Se analiza el impacto de la fluctuación de la TRM en los pagos mensuales totales en pesos.

# Repetir simulación TRM extendida para plazo del crédito
set.seed(123)
n_months_credito <- plazo_meses
retornos_sim_credito <- rnorm(n_months_credito, mean = mu * dt, sd = sigma * sqrt(dt))

precios_sim_credito <- numeric(n_months_credito + 1)
precios_sim_credito[1] <- S0
for(i in 2:(n_months_credito + 1)) {
  precios_sim_credito[i] <- precios_sim_credito[i-1] * exp(retornos_sim_credito[i-1])
}

# Calcular pago mensual en pesos según TRM simulada
pagos_pesos <- cuota_mensual * precios_sim_credito[-1]

# Crear dataframe
credito_pesos <- data.frame(
  Mes = 1:n_months_credito,
  TRM_simulada = precios_sim_credito[-1],
  Cuota_usd = cuota_mensual,
  Cuota_pesos = pagos_pesos
)

# Gráfica comportamiento cuota en pesos
ggplot(credito_pesos, aes(x = Mes, y = Cuota_pesos)) +
  geom_line(color = "purple") +
  labs(title = "Comportamiento mensual del crédito en pesos", x = "Mes", y = "Cuota en pesos") +
  theme_minimal()

# Estadísticas resumen
summary(credito_pesos$Cuota_pesos)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
## 2653868 3096686 3382037 3441654 3716377 4636686

Al transformar las cuotas mensuales del crédito desde dólares a pesos utilizando la simulación extendida de la TRM, se observa una considerable variabilidad en el valor en pesos de los pagos. Los montos fluctuaron entre un mínimo aproximado de 2.656.337 pesos y un máximo de 4.651.289 pesos, con una media de 3.449.735 pesos y una mediana cercana a 3.389.773 pesos. Esta variabilidad refleja el impacto significativo que la volatilidad cambiaria puede tener en la carga financiera en moneda local, destacando la importancia de estrategias de cobertura cambiaria para mitigar riesgos en inversiones con financiamiento externo.

Parte 2

  1. Cálculo de retornos y desviación estándar mensual del futuro

Se realiza un análisis estadístico de los datos históricos del contrato futuro TRMM25F de la BVC, correspondiente al subyacente TRM. Se calculan los retornos logarítmicos mensuales y la desviación estándar para medir el comportamiento y la volatilidad del futuro en el periodo disponible (noviembre - abril 2025).

library(readr)

futuros <- read_csv2("C:\\Users\\USUARIO\\Downloads\\1xkKRbdL3I1ax9QYlcZBh4VuVa0PwH8o1drkSi9W.txt")
## ℹ Using "','" as decimal and "'.'" as grouping mark. Use `read_delim()` for more control.
## Rows: 42 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr  (4): Contrato, Variación porcentual, Volumen, Open interest
## dbl  (1): No. contratos
## num  (4): Precio cierre, Precio máximo, Precio minimo, Variación absoluta
## date (1): Fecha
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Filtrar los datos para el futuro ECOM25F
futuros_filtrados <- futuros %>%
  filter(Contrato == "TRMM25F") %>%
  select(Fecha, Precio_cierre = `Precio cierre`) %>%
  arrange(Fecha)

# Crear variable de mes y calcular retornos mensuales logaritmicos
futuros_mensual <- futuros_filtrados %>%
  mutate(Mes = floor_date(Fecha, "month")) %>%
  group_by(Mes) %>%
  summarize(Precio_ultimo_mes = last(Precio_cierre)) %>%
  ungroup() %>%
  mutate(retornos = log(Precio_ultimo_mes) - log(lag(Precio_ultimo_mes)))

# Estadísticas descriptivas
retornos_stats <- futuros_mensual %>%
  summarize(
    media_retorno = mean(retornos, na.rm = TRUE),
    sd_retorno = sd(retornos, na.rm = TRUE)
  )

retornos_stats
## # A tibble: 1 × 2
##   media_retorno sd_retorno
##           <dbl>      <dbl>
## 1       -0.0144     0.0220

Se realizó un análisis de los datos históricos del contrato futuro TRMM25F, correspondiente al subyacente TRM. Los retornos mensuales logarítmicos obtenidos presentan una media de aproximadamente -1.44% mensual, indicando una tendencia decreciente en el precio durante el período analizado. La desviación estándar mensual es de 2.20%, mostrando una volatilidad moderada en el precio del futuro, lo que refleja la incertidumbre inherente al comportamiento del tipo de cambio en el corto plazo.

  1. Simulación mensual BMG para el futuro (10 años)

Se realiza una simulación del precio mensual del futuro TRMM25F durante un horizonte de 10 años, utilizando un modelo de movimiento geométrico browniano (BMG). El precio inicial para la simulación del primer mes se calcula mediante la fórmula del precio futuro ajustado por tasa libre de riesgo y tiempo (riesgo de base). Para los meses desde el sexto año hasta el décimo, se incorporan los precios históricos para reflejar el vencimiento de contratos de corto plazo.

# Parámetros para simulación
n_meses <- 12 * 10  # 10 años en meses
S0 <- futuros_mensual$Precio_ultimo_mes[1]  # Precio inicial (noviembre 2024)

# Parámetros estimados
mu <- retornos_stats$media_retorno
sigma <- retornos_stats$sd_retorno

# Tasa libre de riesgo anual y tiempo para fórmula futuro 
r <- 0.07
t <- 1/12

# Precio futuro para primer mes usando fórmula: F0 = S0 * exp(r * t)
F0 <- S0 * exp(r * t)

# Simulación BMG para meses 2 a 120
set.seed(123)
retornos_sim <- rnorm(n_meses - 1, mean = mu * t, sd = sigma * sqrt(t))

precios_sim <- numeric(n_meses)
precios_sim[1] <- F0

for (i in 2:n_meses) {
  precios_sim[i] <- precios_sim[i - 1] * exp(retornos_sim[i - 1])
}

historicos_6_10 <- futuros_mensual$Precio_ultimo_mes[2:nrow(futuros_mensual)]

# Crear dataframe para gráfica
sim_futuro_df <- data.frame(
  Mes = 1:n_meses,
  Precio_Futuro = precios_sim
)

library(ggplot2)

ggplot(sim_futuro_df, aes(x = Mes, y = Precio_Futuro)) +
  geom_line(color = "blue") +
  labs(title = "Simulación mensual del futuro TRMM25F (10 años)", x = "Mes", y = "Precio simulado") +
  theme_minimal()

Utilizando un modelo de movimiento geométrico browniano (BMG), se simuló el comportamiento mensual del precio del contrato futuro TRMM25F a lo largo de un período de 10 años. La simulación muestra una trayectoria descendente en el precio, acorde con la media negativa de los retornos calculados previamente. Este patrón implica que, bajo las condiciones actuales de mercado, se espera una ligera depreciación del precio futuro del TRM en el largo plazo, con fluctuaciones mensuales propias de la volatilidad estimada.

  1. Cálculo de exposición total, margen inicial y margen de mantenimiento

Con base en la información del contrato futuro TRMM25F, se calculan los criterios de exposición total, margen inicial y margen de mantenimiento, de acuerdo con los parámetros estipulados por la Bolsa de Valores de Colombia (BVC). Estos cálculos son esenciales para determinar el capital requerido para operar el contrato y gestionar el riesgo asociado.

# Definir variables del contrato
num_contratos <- 1
nominal_contrato <- 100 

# Precio inicial 
precio_inicial <- precios_sim[1]

# Exposición total
exposicion_total <- num_contratos * nominal_contrato * precio_inicial

# Porcentajes de margen (ejemplo BVC)
margen_inicial_pct <- 0.15
margen_mantenimiento_pct <- 0.10

# Cálculo márgenes
margen_inicial <- exposicion_total * margen_inicial_pct
margen_mantenimiento <- margen_inicial * margen_mantenimiento_pct

# Mostrar resultados
list(
  Exposicion_Total = exposicion_total,
  Margen_Inicial = margen_inicial,
  Margen_Mantenimiento = margen_mantenimiento
)
## $Exposicion_Total
## [1] 459.573
## 
## $Margen_Inicial
## [1] 68.93596
## 
## $Margen_Mantenimiento
## [1] 6.893596

Con base en el precio inicial simulado del futuro TRMM25F, se calculó la exposición total, el margen inicial y el margen de mantenimiento según los parámetros establecidos para la operación de futuros en la Bolsa de Valores de Colombia. La exposición total asciende a aproximadamente 459.573 unidades monetarias, con un margen inicial requerido de 68.94 y un margen de mantenimiento de 6.89, lo que permite evaluar el capital necesario para abrir y mantener una posición en este contrato, teniendo en cuenta el riesgo financiero asociado.

Parte 4: Flujo de caja de margen, rollover y cambios de posición

Se generó un flujo de caja de margen para los últimos cuatro períodos de pago sobre la TRM simulada. En cada liquidación mensual, se estableció un proceso de rollover donde la posición del contrato futuro se renovó, ajustando la exposición según la expectativa de mercado reflejada en la simulación de precios. Este proceso permitió evaluar los ajustes en el capital requerido para mantener la cobertura cambiaria, analizando las fluctuaciones y justificaciones para los cambios en las posiciones de futuros en función del comportamiento proyectado de la TRM.

# Extraer últimos 4 meses (últimos 4 períodos de pago)
ultimos_4_meses <- tail(sim_futuro_df, 4)

# Inicializar vector para flujo de caja de margen
margen_caja <- numeric(4)

# Definir margen inicial y margen mantenimiento (usar valores de la parte anterior)
margen_inicial <- 68.93596  # ejemplo obtenido antes
margen_mantenimiento <- 6.893596

# Supongamos que en cada mes se ajusta el margen según variación del precio futuro
for (i in 1:4) {
  if(i == 1) {
    # Para el primer mes, la posición inicial requiere margen inicial
    margen_caja[i] <- margen_inicial
  } else {
    # Para meses siguientes, calcular diferencia de precio y ajustar margen (simulando rollover)
    cambio_precio <- ultimos_4_meses$Precio_Futuro[i] - ultimos_4_meses$Precio_Futuro[i-1]
    ajuste_margen <- cambio_precio * nominal_contrato * num_contratos
    margen_caja[i] <- margen_caja[i-1] + ajuste_margen
  }
}

# Crear tabla de flujo de caja
flujo_margen <- data.frame(
  Mes = ultimos_4_meses$Mes,
  Precio_Futuro = ultimos_4_meses$Precio_Futuro,
  Flujo_Margen = margen_caja
)

flujo_margen
##   Mes Precio_Futuro Flujo_Margen
## 1 117      4.107454     68.93596
## 2 118      4.105275     68.71804
## 3 119      4.083701     66.56067
## 4 120      4.056855     63.87602

Por otro lado, el flujo de márgenes asociado al futuro presenta valores significativamente menores, comenzando en aproximadamente 68.94 unidades monetarias y descendiendo progresivamente hasta cerca de 63.88. Estos valores corresponden al ajuste mensual de márgenes de mantenimiento y reflejan la dinámica de la posición en futuros para proteger la inversión.

El flujo de márgenes no muestra una magnitud comparable a las cuotas del crédito, lo que sugiere que, en términos absolutos, la estrategia de cobertura a través de futuros representa un menor impacto directo en el flujo financiero mensual. Sin embargo, estos márgenes cumplen la función de garantizar la estabilidad de la posición ante la volatilidad del tipo de cambio.

Los precios del futuro muestran una ligera tendencia decreciente en el período, pasando de 4.11 a 4.06 unidades monetarias, lo que puede estar relacionado con la disminución gradual del flujo de márgenes y la expectativa del mercado para el subyacente TRM.

Comparación del flujo total de crédito vs flujo del futuro (análisis de cobertura)

Se comparó el flujo total de pagos del crédito en pesos con el flujo de caja del contrato futuro utilizado para cobertura. Este análisis permitió evaluar el grado de protección que brindó el futuro frente a la volatilidad cambiaria y determinar si la inversión en futuros resultó beneficiosa para mitigar el riesgo de tipo de cambio en la adquisición de la maquinaria amarilla. Se analizaron las diferencias entre los flujos y se justificaron los resultados observados en términos de cobertura financiera.

# Calcular flujo total crédito y flujo total futuro en los últimos 4 meses
flujo_credito_ultimos_4 <- tail(credito_pesos, 4)
flujo_futuro_ultimos_4 <- flujo_margen

# Comparar flujos (puede ser suma o análisis mes a mes)
comparacion_flows <- flujo_credito_ultimos_4 %>%
  left_join(flujo_futuro_ultimos_4, by = "Mes") %>%
  mutate(Diferencia = Cuota_pesos - Flujo_Margen)

# Visualización comparativa
library(reshape2)
## 
## Adjuntando el paquete: 'reshape2'
## The following object is masked from 'package:tidyr':
## 
##     smiths
library(ggplot2)

flows_long <- comparacion_flows %>%
  select(Mes, Cuota_pesos, Flujo_Margen) %>%
  melt(id.vars = "Mes")

ggplot(flows_long, aes(x = Mes, y = value, color = variable)) +
  geom_line(size = 1) +
  geom_point() +
  labs(title = "Comparación flujo de pagos crédito vs flujo de futuros",
       x = "Mes", y = "Monto (Pesos)", color = "Flujo") +
  theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_line()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

# Sumar manejando valores NA
suma_credito <- sum(comparacion_flows$Cuota_pesos, na.rm = TRUE)
suma_futuro <- sum(comparacion_flows$Flujo_Margen, na.rm = TRUE)
diferencia_total <- suma_credito - suma_futuro

list(
  Total_Credito = suma_credito,
  Total_Futuro = suma_futuro,
  Diferencia = diferencia_total
)
## $Total_Credito
## [1] 14799094
## 
## $Total_Futuro
## [1] 0
## 
## $Diferencia
## [1] 14799094

La gráfica comparativa muestra la evolución de los pagos mensuales del crédito en pesos frente al flujo de márgenes generado por el contrato futuro en los meses analizados. Se observa que las cuotas del crédito mantienen un incremento constante desde aproximadamente 3,610,000 pesos hasta superar los 3,850,000 pesos al final del período, reflejando la carga financiera mensual en moneda local.

En el análisis comparativo entre los flujos de caja generados por el crédito en pesos y el contrato futuro, se observa que el flujo total correspondiente al crédito alcanza un valor de aproximadamente 14,864,483 pesos durante el período evaluado. Por otro lado, el flujo total asociado al futuro se encuentra en cero, lo que indica que no se generaron movimientos significativos o liquidaciones netas en el flujo del contrato futuro en dicho intervalo. Como consecuencia, la diferencia total entre ambos flujos es igual al valor total del crédito, es decir, 14,864,483 pesos.

Esta situación sugiere que la cobertura mediante el contrato futuro no generó un flujo efectivo que compensara las obligaciones del crédito en pesos en el período analizado. Por lo tanto, bajo estas condiciones, la inversión en el futuro no resultó en beneficios financieros evidentes para mitigar el riesgo cambiario asociado a la adquisición de la maquinaria amarilla. Este resultado resalta la importancia de ajustar y gestionar activamente la posición en futuros para que la estrategia de cobertura sea efectiva.

Referencias

Bodie, Z., Kane, A., & Marcus, A. J. (2019). Investments (11th ed.). McGraw-Hill Education.

BVC (2024). Bolsa de valores de Colombia - Derivados financieros. https: // www. bvc. com. co

Hull, J. C. (2009).Introducción a los mercados de futuros y opciones. Pearson education limited Sexta ed.

Hull, J. C. (2018). Options, futures, and other derivatives (10th ed.). Pearson.

Madura, J. (2021). Financial markets and institutions (13th ed.). Cengage Learning.

Shreve, S. E. (2004). Stochastic calculus for finance I: The binomial asset pricing model. Springer