addGroups

Добавьте ограничения группы для весов портфеля к существующим ограничениям группы

Описание

пример

obj = addGroups(obj,GroupMatrix,LowerGroup) добавляет ограничения группы для весов портфеля к существующим ограничениям группы для Portfolio, PortfolioCVaR, или PortfolioMAD объекты. Для получения дополнительной информации о соответствующих рабочих процессах при использовании этих различных объектов смотрите Рабочий процесс объекта портфеля, Рабочий процесс объекта PortfolioCVaR и Рабочий процесс объекта PortfolioMAD.

Заданные GroupMatrix и любой из них LowerGroup или UpperGroup, портфолио Port должны удовлетворять следующим требованиям:

LowerGroup <= GroupMatrix * Port <= UpperGroup

пример

obj = addGroups(obj,GroupMatrix,LowerGroup,UpperGroup) добавляет ограничения группы для весов портфеля к существующим ограничениям группы с дополнительной опцией для UpperGroup.

Заданные GroupMatrix и любой из них LowerGroup или UpperGroup, портфолио Port должны удовлетворять следующим требованиям:

LowerGroup <= GroupMatrix * Port <= UpperGroup

Примеры

свернуть все

Установите групповое ограничение, чтобы убедиться, что первые три актива составляют не более 30% портфеля. Затем добавьте еще одно групповое ограничение, чтобы убедиться, что нечетные активы составляют не менее 20% портфеля.

p = Portfolio;
G = [ true true true false false ];    % group matrix for first group constraint
p = setGroups(p, G, [], 0.3);
G = [ true false true false true ];    % group matrix for second group constraint
p = addGroups(p, G, 0.2);
disp(p.NumAssets);
     5
disp(p.GroupMatrix);
     1     1     1     0     0
     1     0     1     0     1
disp(p.LowerGroup);
      -Inf
    0.2000
disp(p.UpperGroup);
    0.3000
       Inf

Установите групповое ограничение, чтобы убедиться, что первые три актива составляют не более 30% портфеля. Затем добавьте еще одно групповое ограничение, чтобы убедиться, что нечетные активы составляют не менее 20% портфеля.

p = PortfolioCVaR;
G = [ true true true false false ];    % group matrix for first group constraint
p = setGroups(p, G, [], 0.3);
G = [ true false true false true ];    % group matrix for second group constraint
p = addGroups(p, G, 0.2);
disp(p.NumAssets);
     5
disp(p.GroupMatrix);
     1     1     1     0     0
     1     0     1     0     1
disp(p.LowerGroup);
      -Inf
    0.2000
disp(p.UpperGroup);
    0.3000
       Inf

Установите групповое ограничение, чтобы убедиться, что первые три актива составляют не более 30% портфеля. Затем добавьте еще одно групповое ограничение, чтобы убедиться, что нечетные активы составляют не менее 20% портфеля.

p = PortfolioMAD;
G = [ true true true false false ];    % group matrix for first group constraint
p = setGroups(p, G, [], 0.3);
G = [ true false true false true ];    % group matrix for second group constraint
p = addGroups(p, G, 0.2);
disp(p.NumAssets);
     5
disp(p.GroupMatrix);
     1     1     1     0     0
     1     0     1     0     1
disp(p.LowerGroup);
      -Inf
    0.2000
disp(p.UpperGroup);
    0.3000
       Inf

Входные параметры

свернуть все

Объект для портфеля, заданный с помощью Portfolio, PortfolioCVaR, или PortfolioMAD объект. Для получения дополнительной информации о создании объекта портфеля см.

Типы данных: object

Матрица ограничений группы, заданная как матрица.

Примечание

Матрица групп GroupMatrix часто указывает на членство в группах, что означает, что его элементы обычно либо 0 или 1. Из-за этой интерпретации GroupMatrix может быть логической или числовой матрицей.

Типы данных: double

Нижняя граница для групповых ограничений, заданная как вектор.

Примечание

Если вход скаляром, LowerGroup подвергается скалярному расширению, чтобы соответствовать GroupMatrix.

Типы данных: double

Верхняя граница для групповых ограничений, заданная как вектор.

Примечание

Если вход скаляром, UpperGroup подвергается скалярному расширению, чтобы соответствовать GroupMatrix.

Типы данных: double

Выходные аргументы

свернуть все

Обновленный объект портфеля, возвращенный как Portfolio, PortfolioCVaR, или PortfolioMAD объект. Для получения дополнительной информации о создании объекта портфеля см.

Совет

  • Можно также использовать запись через точку для добавления групповых ограничений для весов портфеля.

    obj = obj.addGroups(GroupMatrix, LowerGroup, UpperGroup)

  • Чтобы удалить ограничения группы из любого из объектов портфеля с помощью записи через точку, введите пустые массивы для соответствующих массивов.

Введенный в R2011a