Проблеми оптимізації портфеля

Середній рівень аналізу портфеля в R

Ross Bennett

Instructor

Проблеми

  • Багато розв'язувачів не спеціалізуються на оптимізації портфеля

  • Потрібно знати можливості й обмеження розв'язувачів, щоб обрати відповідний або переформулювати задачу під нього

  • Важко перемикатися між розв'язувачами

  • Аналітичний розв'язувач (напр., квадратичне програмування)

  • Глобальний розв'язувач (напр., оптимізація диференціальною еволюцією)

Середній рівень аналізу портфеля в R

Квадратична корисність

  • Максимізувати: $\quad \displaystyle \omega^T * \mu - \lambda * \omega^T * \Sigma * \omega $
  • За умов:

$$\omega_{i} >= 0$$

$$\sum_{i=1}^{n} \omega_i = 1$$

  • $\omega$ — вектор ваг
  • $\mu$ — вектор очікуваної дохідності
  • $\lambda$ — параметр відрази до ризику
  • $\Sigma$ — матриця варіацій і коваріацій
Середній рівень аналізу портфеля в R

Розв'язувач квадратичного програмування

  • Використайте пакет R quadprog, щоб розв'язати задачу оптимізації з квадратичною корисністю

  • solve.QP() розв'язує задачі квадратичного програмування форми:

$$min(-d^Tb+\frac{1}{2}b^TDb)$$

  • За обмеження:

$$A^Tb>=b_0$$

Середній рівень аналізу портфеля в R
library(quadprog)
data(edhec)
dat <- edhec[,1:4]

# Create the constraint matrix
Amat <- cbind(1, diag(ncol(dat)), -diag(ncol(dat)))
# Create the constraint vector
bvec <- c(1, rep(0, ncol(dat)), -rep(1, ncol(dat)))
 # Create the objective matrix
Dmat <- 10 * cov(dat)
# Create the objective vector
dvec <- colMeans(dat)

# Specify number of equality constraints
meq <- 1

# Solve the optimization problem
opt <- solve.QP(Dmat, dvec, Amat, bvec, meq)
Середній рівень аналізу портфеля в R

Давайте потренуємось!

Середній рівень аналізу портфеля в R

Preparing Video For Download...