0.1 Parte 1 - Proceso del Crédito

0.1.1 1. Análisis Fundamental de la TRM

# Análisis basado en proyecciones de BanRep y BBVA
# Ver texto en markdown (sin código)

0.1.2 2. Cálculo de retornos y volatilidad mensual de la TRM con citmre

if (!require(citmre)) install.packages("citmre")
library(citmre)
library(dplyr)
library(lubridate)
library(ggplot2)

trm_diaria <- get_trm_range(start_date = "2015-01-01", end_date = Sys.Date())

trm_mensual <- trm_diaria %>%
  mutate(mes = floor_date(fecha, "month")) %>%
  group_by(mes) %>%
  summarise(TRM = mean(valor, na.rm = TRUE)) %>%
  arrange(mes)

trm_mensual <- trm_mensual %>%
  mutate(retornos = log(TRM / lag(TRM)))

mu_trm <- mean(trm_mensual$retornos, na.rm = TRUE)
sigma_trm <- sd(trm_mensual$retornos, na.rm = TRUE)

# Gráfico
ggplot(trm_mensual, aes(x = mes, y = TRM)) +
  geom_line(color = "darkblue") +
  labs(title = "Evolución de la TRM mensual",
       x = "Fecha", y = "TRM promedio mensual (COP/USD)") +
  theme_minimal()

0.1.3 3. Simulación BMG mensual de TRM

set.seed(123)
S0 <- tail(trm_mensual$TRM, 1)
mu <- mu_trm
sigma <- sigma_trm
n <- 120
dt <- 1
Z <- rnorm(n)
S <- numeric(n)
S[1] <- S0 * exp((mu - 0.5 * sigma^2) * dt + sigma * sqrt(dt) * Z[1])
for (t in 2:n) {
  S[t] <- S[t - 1] * exp((mu - 0.5 * sigma^2) * dt + sigma * sqrt(dt) * Z[t])
}
sim_trm <- data.frame(Mes = 1:n, TRM_simulada = S)

# Gráfico
ggplot(sim_trm, aes(x = Mes, y = TRM_simulada)) +
  geom_line(color = "darkblue") +
  labs(title = "Simulación de la TRM - BMG (10 años)",
       x = "Mes", y = "TRM estimada") +
  theme_minimal()

0.1.4 4. Crédito en USD con sistema francés

valor_maquinaria_COP <- 300000000
trm_actual <- S0
valor_maquinaria_USD <- valor_maquinaria_COP / trm_actual
credito_usd <- valor_maquinaria_USD * 0.90
plazo_meses <- 120
tasa_anual_usd <- 0.1149
tasa_mensual <- tasa_anual_usd / 12

cuota_usd <- credito_usd * (tasa_mensual * (1 + tasa_mensual)^plazo_meses) /
             ((1 + tasa_mensual)^plazo_meses - 1)

amortizacion <- data.frame(
  Mes = 1:plazo_meses,
  Cuota = rep(cuota_usd, plazo_meses),
  Interés = NA,
  Abono_Capital = NA,
  Saldo = NA
)

saldo <- credito_usd
for (t in 1:plazo_meses) {
  interes <- saldo * tasa_mensual
  abono <- cuota_usd - interes
  saldo <- saldo - abono

  amortizacion$Interés[t] <- interes
  amortizacion$Abono_Capital[t] <- abono
  amortizacion$Saldo[t] <- saldo
}

0.1.5 5. Crédito en COP con TRM simulada

amortizacion$TRM_simulada <- sim_trm$TRM_simulada
amortizacion$Cuota_COP <- amortizacion$Cuota * amortizacion$TRM_simulada
amortizacion$Interes_COP <- amortizacion$Interés * amortizacion$TRM_simulada
amortizacion$Abono_Capital_COP <- amortizacion$Abono_Capital * amortizacion$TRM_simulada

0.2 Parte 2 - Proceso del Futuro

0.2.1 2.2 Simulación de Futuro USD/COP con tasas Citibank

r_COP <- 0.1830
r_USD <- 0.1149
t <- 1 / 12
F0 <- S0 * exp((r_COP - r_USD) * t)

set.seed(456)
mu_futuro <- mu_trm
sigma_futuro <- sigma_trm
n_futuro <- 120
Zf <- rnorm(n_futuro)
F <- numeric(n_futuro)
F[1] <- F0
for (t in 2:n_futuro) {
  F[t] <- F[t - 1] * exp((mu_futuro - 0.5 * sigma_futuro^2) + sigma_futuro * Zf[t])
}
sim_futuro <- data.frame(Mes = 1:n_futuro, Precio_Futuro = F)

0.2.2 2.3 Exposición y flujo de cobertura (años 6 a 10)

```r valor_cubierto_COP <- 0.70 * valor_maquinaria_COP valor_cubierto_USD <- valor_cubierto_COP / S0 usd_por_contrato <- 1000 n_contratos <- ceiling(valor_cubierto_USD / usd_por_contrato)

futuros_6_10 <- sim_futuro %>% filter(Mes >= 61) %>% mutate(Diferencia = Precio_Futuro - lag(Precio_Futuro), Liquidacion = Diferencia * usd_por_contrato * n_contratos)

margen_inicial <- 700000 margen_mant <- 500000 futuros_6_10\(Flujo_Margen <- cumsum(replace_na(futuros_6_10\)Liquidacion, 0))