- Code: Alles auswählen
# Calculate a GBM - mu and sigmna are based on the respective market scenario
gbm = function(nsim = 25, t = 1, mu = 0.07, sigma = 0.3, S0 = 100, n = 250){
# number of time steps between time = 0 and time = t by time step length dt
time = seq.default(from = 0, to = t, length.out = t*n + 1)
# define the Wiener process between time = 0 and time = t for nsim simulations
W = matrix(
replicate(nsim, cumsum(c(0, sqrt(1/n) * rnorm( length(time) - 1 )))),
nrow = length(time), ncol = nsim, byrow = FALSE)
# fill the paths via analytical solution
S = S0 * exp( (mu - 0.5*sigma^2) * time + sigma * W)
S = ts(S, start = 0, deltat = n)
return(S)
}
# Assigning an object to the output matrix of the gbm() function
stockprices = gbm()
View(stockprices)
# Calculating the returns
Returns = stockprices
Returns[,1:dim(Returns)[2]] = NA
for (j in 1:dim(Returns)[2]) {
for(i in 2:nrow(Returns)){
Returns[i,j] = (stockprices[i,j]-stockprices[i-1,j])/stockprices[i-1,j]
}
}
# Plotting the simulation of the stock prices
matplot(
gbm(nsim = 25, t = 1, mu = 0.07, sigma = 0.3, S0 = 100, n = 250),
type = "l",
ylab = "",
lty = 1:5,
lwd = 0.5) <- here´´´
Dies ist der Code, den ich verwendet habe, um 250 Aktienkurse auf der Grundlage der Geometrischen Brownschen Bewegung zu erzeugen und die Renditen dieser Aktienkurse zu berechnen. Nun möchte ich den erwarteten Nutzen dieser Renditen berechnen. Ich würde mich über gute Ratschläge freuen, wie man das macht, wie man anfängt, was die Schritte sind usw. Ich habe ein paar Beispiele gefunden, die mir nicht wirklich weiterhelfen. In einem Beispiel hieß es, dass die drei Schritte darin bestehen, Prädiktoren abzuleiten, eine Nutzenfunktion zu definieren und eine Entscheidung zu treffen, die den erwarteten Nutzen maximiert. Bei meinem speziellen Problem muss ich jedoch nichts vorhersagen, da ich die genauen Erträge berechnet habe.