# --- 1. LIBRERÍAS ---
if (!require("pacman")) install.packages("pacman")
## Cargando paquete requerido: pacman
## Warning: package 'pacman' was built under R version 4.5.3
pacman::p_load(tidyverse, quantmod, scales, moments, MASS)
# --- 2. PARÁMETROS ---
monto_cop <- 350000000
trm_spot <- 3950
cuota_inicial_pct <- 0.10
plazo_anos <- 10
frecuencia <- 4
tasa_ea_usd <- 0.075
# --- 3. CRÉDITO EN USD ---
monto_usd <- monto_cop / trm_spot
cuota_inicial_usd <- monto_usd * cuota_inicial_pct
p_financiar_usd <- monto_usd - cuota_inicial_usd
tasa_trim_usd <- (1 + tasa_ea_usd)^(1/4) - 1
n_periodos <- plazo_anos * frecuencia
cuota_usd <- p_financiar_usd * (tasa_trim_usd * (1 + tasa_trim_usd)^n_periodos) /
((1 + tasa_trim_usd)^n_periodos - 1)
# --- 4. RESULTADOS CRÉDITO ---
cat("===== RESULTADOS DEL CRÉDITO =====\n")
## ===== RESULTADOS DEL CRÉDITO =====
cat("Monto en USD:", round(monto_usd,2), "\n")
## Monto en USD: 88607.59
cat("Cuota inicial (USD):", round(cuota_inicial_usd,2), "\n")
## Cuota inicial (USD): 8860.76
cat("Monto financiado (USD):", round(p_financiar_usd,2), "\n")
## Monto financiado (USD): 79746.84
cat("Cuota trimestral (USD):", round(cuota_usd,2), "\n\n")
## Cuota trimestral (USD): 2826.21
# --- 5. SIMULACIÓN TRM ---
set.seed(123)
n_sim <- 1000
horizonte_meses <- 12
mu <- 0.0005
sigma <- 0.015
# BMG (Normal)
sim_bmg <- matrix(ncol = n_sim, nrow = horizonte_meses + 1)
sim_bmg[1, ] <- trm_spot
for(i in 2:(horizonte_meses+1)){
sim_bmg[i, ] <- sim_bmg[i-1, ] * exp((mu - 0.5 * sigma^2) + sigma * rnorm(n_sim))
}
# T-Student
df_student <- 4
sim_t <- matrix(ncol = n_sim, nrow = horizonte_meses + 1)
sim_t[1, ] <- trm_spot
for(i in 2:(horizonte_meses+1)){
sim_t[i, ] <- sim_t[i-1, ] * exp((mu - 0.5 * sigma^2) + sigma * rt(n_sim, df = df_student))
}
# --- 6. FORWARD ---
tasa_domestica <- 0.11
tasa_externa <- 0.05
tasa_forward <- trm_spot * (1 + tasa_domestica) / (1 + tasa_externa)
cat("===== FORWARD =====\n")
## ===== FORWARD =====
cat("Tasa Forward estimada:", round(tasa_forward,2), "\n\n")
## Tasa Forward estimada: 4175.71
# --- 7. VISUALIZACIÓN ---
df_plot <- as.data.frame(sim_t) %>%
mutate(Mes = 0:horizonte_meses) %>%
pivot_longer(-Mes, names_to = "Simulacion", values_to = "TRM")
ggplot(df_plot, aes(x = Mes, y = TRM, group = Simulacion)) +
geom_line(alpha = 0.1, color = "dodgerblue4") +
geom_hline(yintercept = tasa_forward, color = "red", linetype = "dashed", size = 1) +
labs(title = "Simulación Monte Carlo TRM (T-Student)",
subtitle = paste("Forward:", round(tasa_forward,2)),
x = "Meses", y = "TRM") +
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.

# --- 8. INTERPRETACIÓN ---
cat("\n===== INTERPRETACIÓN =====\n")
##
## ===== INTERPRETACIÓN =====
cat("Cuando la TRM supera el forward, la cobertura protege al inversionista.\n")
## Cuando la TRM supera el forward, la cobertura protege al inversionista.
cat("La distribución T-Student refleja eventos extremos (mayor riesgo).\n")
## La distribución T-Student refleja eventos extremos (mayor riesgo).
# --- 9. CONCLUSIÓN ---
cat("\n===== CONCLUSIÓN =====\n")
##
## ===== CONCLUSIÓN =====
cat("El forward reduce la incertidumbre cambiaria, pero puede generar costo de oportunidad.\n")
## El forward reduce la incertidumbre cambiaria, pero puede generar costo de oportunidad.