###
# code1.R - Monte Carlo Simulation zur Schätzung des erwarteten zukünftigen Werts einer Investition
# 240409
###

library(ggplot2)

# Seed setzen für die Reproduzierbarkeit der Ergebnisse
set.seed(240409)

# Parameter setzen
initial_investment <- 10000  # Anfangsinvestitionssumme
mean_return <- 0.05  # Durchschnittliche Jahresrendite
sd_return <- 0.02  # Standardabweichung der Jahresrendite
n_simulations <- 10000  # Anzahl der Monte-Carlo-Simulationen

# Zufällige jährliche Renditen simulieren
simulated_returns <- rnorm(n_simulations, mean_return, sd_return)

# Zukünftige Werte der Investition berechnen
future_values <- initial_investment * (1 + simulated_returns)

# Den erwarteten zukünftigen Wert schätzen
expected_future_value <- mean(future_values)

# Den erwarteten zukünftigen Wert ausgeben
# print(paste("Erwarteter Zukünftiger Wert:", round(expected_future_value, 2)))

# Erstellen eines Histogramms der zukünftigen Werte mit ggplot2
ggplot(data.frame(future_values), aes(x = future_values)) +
    theme_minimal() +
    geom_histogram(fill = "lightblue", color = "black", binwidth = 200) +
    labs(title = "Verteilung der zukünftigen Werte der Investition",
         x = "Zukünftiger Wert", y = "Häufigkeit") +
    geom_vline(aes(xintercept = mean(future_values)), 
               color = "red", linetype = "dashed", size = 1) +
    annotate("text", x = mean(future_values), y = 3500, label = paste("Mittelwert:", round(expected_future_value, 2)), hjust = 1.1, color = "red") +
    theme(aspect.ratio = 1)
