Robię średnią optymalizację wariancji, aby rozwiązać problem optymalizacji portfeli. Co staram się robić to, aby zminimalizować zmienność zarówno pod względem ograniczenia:Średnia optymalizacja wariancji
- x1m1 + x2m2 + ... + xnmn = m
- x1 + x2 + ... + xn = 1
Więc to jest kod zrobiłem:
################ 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
mi wiadomo, jestem przy użyciu dużo złych rzeczy dla R, ale nie mogłem wymyślić lepszego rozwiązania. Więc moje pytanie jest poprawne?
Każda korekta i sugestia poprawy tego procesu! prosimy o udostępnienie swojego dotychczasowego kodu w R.
Ogromne dzięki!
Możesz otrzymać macierz kowariancji aktywów przez: "cov (d)" i oznacza "colMeans (d)". –
Jaką rolę odgrywa tu 'mu'? – Khashaa