Ich mache eine mittlere Varianz-Optimierung, um das Problem der Portfolio-Optimierung zu lösen. Was ich versuche zu tun, um die Varianz hinsichtlich beiden Einschränkungen zu minimieren:Mittlere Varianz-Optimierung
- x1m1 + x2m2 + ... + xnmn = m
- x1 + x2 + ... + xn = 1
das ist also der Code, den ich tat:
################ Simulation for n=3 ################
################ Parameters ################
mu<-50 ## Mean of the portfolio
n<-3 ## Number of asset
m1<-30000 ## Size of the simulation
########### 3 Assets ############
x<- rnorm(m1,2,1)
y<- rnorm(m1,0.5,1.5)
z<- rnorm(m1,3.75,1)
d<-data.frame(x,y,z)
################ Solution Directe ################
Sol<-function(m1) {
A = matrix(nrow=n+2, ncol=n+2)
for (i in 1:n){
for (j in 1:n)
if(i==j) {
A[i,j] <- (2*var(d[,i]))
} else {
A[i,j] <- cov(d[,i],d[,j])
}
}
for (i in 1:n){
A[i,n+1] <- -mean(d[,i])
A[i,n+2] <- -1
}
for (j in 1:n){
A[n+1,j] <- mean(d[,j])
A[n+2,j] <- 1
}
for (i in 2:n+2){
for (j in 2:n+2)
if(i==j) {
A[i,j] <- 0
} else {
A[i,j] <- 0
}
}
A
Inv=solve(A)
Sol=Inv%*%c(0,0,0,m1,1)
result=list(x=Sol,A=A,Inv=Inv)
return(result)
}
Sol(mu)
Sol(mu)$x ## The solution
Sol(mu)$A
ich bekannt, ich bin eine Menge schlechter Dinge für R, aber ich konnte nicht eine bessere Lösung herauszufinden. Also meine Frage ist es richtig?
Alle Korrekturen und Vorschläge zur Verbesserung dieses Prozesses! Fühlen Sie sich frei, Ihren vorhandenen Code in R zu teilen.
Riesiger Dank!
Sie können Ihre Kovarianzmatrix der Assets erhalten durch: 'cov (d)' und bedeutet durch 'colMeans (d)'. –
Welche Rolle spielt 'mu' hier? – Khashaa