exponenta event banner

Оценка эффективных портфелей вдоль всей границы для объекта PortfolioMAD

Существует два способа взглянуть на задачу оптимизации портфеля, которая зависит от того, что вы пытаетесь сделать. Одна цель заключается в оценке эффективных портфелей, а другая - в оценке эффективных границ. Этот раздел посвящен прежней цели, и оценка эффективных границ для объекта PortfolioMAD фокусируется на второй цели. Дополнительные сведения о рабочем процессе при использовании объектов PortfolioMAD см. в разделе Рабочий процесс объекта PortfolioMAD.

Получение портфелей вдоль всей эффективной границы

Самый основной способ получить оптимальные портфели - получить точки по всей области значений эффективной границы. Учитывая задачу оптимизации портфеля в PortfolioMAD объект, estimateFrontier функция вычисляет эффективные портфели, разнесенные равномерно в соответствии с прокси возврата от минимального до максимального рентабельности портфелей. Количество оцененных портфелей контролируется скрытым свойством defaultNumPorts который установлен в 10. Другое значение для количества оцененных портфелей задается как вход в estimateFrontier. Этот пример показывает количество эффективных портфелей по умолчанию во всей области значений эффективных границ:

m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0; 
    0.00408 0.0289 0.0204 0.0119;
    0.00192 0.0204 0.0576 0.0336;
    0 0.0119 0.0336 0.1225 ];
m = m/12;
C = C/12;

AssetScenarios = mvnrnd(m, C, 20000);

p = PortfolioMAD;
p = setScenarios(p, AssetScenarios);
p = setDefaultConstraints(p);
pwgt = estimateFrontier(p);
disp(pwgt)
 Columns 1 through 8

    0.8907    0.7289    0.5614    0.3946    0.2257    0.0612         0    0.0000
    0.0330    0.1163    0.2119    0.3042    0.3998    0.4876    0.4400    0.3125
    0.0420    0.0469    0.0472    0.0505    0.0534    0.0580    0.0374    0.0018
    0.0343    0.1079    0.1794    0.2507    0.3211    0.3933    0.5226    0.6857

  Columns 9 through 10

    0.0000    0.0000
    0.1570    0.0000
    0.0000    0.0000
    0.8430    1.0000
Если в предыдущем примере требуется только четыре портфеля:
pwgt = estimateFrontier(p, 4);

disp(pwgt)
  0.8907    0.3946         0    0.0000
  0.0330    0.3042    0.4401    0.0000
  0.0420    0.0505    0.0373    0.0000
  0.0343    0.2507    0.5227    1.0000

Начиная с начального портфеля, estimateFrontier также возвращает покупки и продажи, чтобы получить от вашего начального портфеля к каждому эффективному портфелю на эффективной границе. Для примера, учитывая начальный портфель в pwgt0, вы можете получить покупки и продажи:

pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ];
p = setInitPort(p, pwgt0);
[pwgt, pbuy, psell] = estimateFrontier(p);

display(pwgt)
display(pbuy)
display(psell)
pwgt =

  Columns 1 through 8

    0.8907    0.7289    0.5614    0.3946    0.2257    0.0612         0    0.0000
    0.0330    0.1163    0.2119    0.3042    0.3998    0.4876    0.4400    0.3125
    0.0420    0.0469    0.0472    0.0505    0.0534    0.0580    0.0374    0.0018
    0.0343    0.1079    0.1794    0.2507    0.3211    0.3933    0.5226    0.6857

  Columns 9 through 10

    0.0000    0.0000
    0.1570    0.0000
    0.0000    0.0000
    0.8430    1.0000


pbuy =

  Columns 1 through 8

    0.5907    0.4289    0.2614    0.0946         0         0         0         0
         0         0         0    0.0042    0.0998    0.1876    0.1400    0.0125
         0         0         0         0         0         0         0         0
         0    0.0079    0.0794    0.1507    0.2211    0.2933    0.4226    0.5857

  Columns 9 through 10

         0         0
         0         0
         0         0
    0.7430    0.9000


psell =

  Columns 1 through 8

         0         0         0         0    0.0743    0.2388    0.3000    0.3000
    0.2670    0.1837    0.0881         0         0         0         0         0
    0.1580    0.1531    0.1528    0.1495    0.1466    0.1420    0.1626    0.1982
    0.0657         0         0         0         0         0         0         0

  Columns 9 through 10

    0.3000    0.3000
    0.1430    0.3000
    0.2000    0.2000
         0         0
Если вы не задаете начальный портфель, веса купли-продажи предполагают, что ваш начальный портфель 0.

См. также

| | | | | | | |

Похожие примеры

Подробнее о