Работа с ограничениями портфеля MAD с помощью параметров по умолчанию

Конечным элементом для полной спецификации задачи оптимизации портфеля является набор допустимых портфелей, который называется портфельным набором. Портфельный набор XRn задается как конструкция пересечение наборов, образованное набором ограничений на веса портфеля. Набор портфеля обязательно и в достаточной степени должен быть непустым, закрытым и ограниченным набором.

При настройке портфельного набора убедитесь, что портфельный набор удовлетворяет этим условиям. Самый основной набор портфеля или набор портфелей по умолчанию требует, чтобы веса портфеля были неотрицательными (с использованием ограничения, связанного ниже) и чтобы сумма 1 (с использованием ограничения бюджета). Для получения информации о рабочем процессе при использовании PortfolioMAD объекты, см. раздел Рабочий процесс объекта PortfolioMAD.

Установка ограничений по умолчанию для весов портфеля с использованием объекта PortfolioMAD

Задача портфеля MAD по умолчанию имеет два ограничения на веса портфеля:

  • Веса портфеля должны быть неотрицательными.

  • Веса портфеля должны равняться 1.

Неявно, эти ограничения подразумевают, что веса портфеля не больше 1, хотя это является излишним ограничением, которое необходимо наложить на проблему.

Установка ограничений по умолчанию с помощью функции PortfolioMAD

Учитывая задачу оптимизации портфеля с NumAssets = 20 ресурсы, используйте PortfolioMAD объект, чтобы настроить задачу по умолчанию и явным образом задать границы и бюджетные ограничения:

p = PortfolioMAD('NumAssets', 20, 'LowerBound', 0, 'Budget', 1);
disp(p)
  PortfolioMAD with properties:

         BuyCost: []
        SellCost: []
    RiskFreeRate: []
        Turnover: []
     BuyTurnover: []
    SellTurnover: []
    NumScenarios: []
            Name: []
       NumAssets: 20
       AssetList: []
        InitPort: []
     AInequality: []
     bInequality: []
       AEquality: []
       bEquality: []
      LowerBound: [20×1 double]
      UpperBound: []
     LowerBudget: 1
     UpperBudget: 1
     GroupMatrix: []
      LowerGroup: []
      UpperGroup: []
          GroupA: []
          GroupB: []
      LowerRatio: []
      UpperRatio: []
    MinNumAssets: []
    MaxNumAssets: []
       BoundType: []

Установка ограничений по умолчанию с помощью setDefaultConstraints Функция

Альтернативным подходом является использование setDefaultConstraints функция. Если количество активов уже известно в PortfolioMAD объект, использование setDefaultConstraints без аргументов для настройки необходимых ограничений и бюджетных ограничений. Предположим, что у вас есть 20 активов для настройки набора портфелей для задачи по умолчанию:

p = PortfolioMAD('NumAssets', 20);
p = setDefaultConstraints(p);
disp(p)
 PortfolioMAD with properties:

         BuyCost: []
        SellCost: []
    RiskFreeRate: []
        Turnover: []
     BuyTurnover: []
    SellTurnover: []
    NumScenarios: []
            Name: []
       NumAssets: 20
       AssetList: []
        InitPort: []
     AInequality: []
     bInequality: []
       AEquality: []
       bEquality: []
      LowerBound: [20×1 double]
      UpperBound: []
     LowerBudget: 1
     UpperBudget: 1
     GroupMatrix: []
      LowerGroup: []
      UpperGroup: []
          GroupA: []
          GroupB: []
      LowerRatio: []
      UpperRatio: []
    MinNumAssets: []
    MaxNumAssets: []
       BoundType: [20×1 categorical]

Если количество активов неизвестно, setDefaultConstraints принимает NumAssets как необязательный аргумент для формирования набора портфелей для задачи по умолчанию. Предположим, что у вас есть 20 активов:

p = PortfolioMAD;
p = setDefaultConstraints(p, 20);
disp(p)
PortfolioMAD with properties:

         BuyCost: []
        SellCost: []
    RiskFreeRate: []
        Turnover: []
     BuyTurnover: []
    SellTurnover: []
    NumScenarios: []
            Name: []
       NumAssets: 20
       AssetList: []
        InitPort: []
     AInequality: []
     bInequality: []
       AEquality: []
       bEquality: []
      LowerBound: [20×1 double]
      UpperBound: []
     LowerBudget: 1
     UpperBudget: 1
     GroupMatrix: []
      LowerGroup: []
      UpperGroup: []
          GroupA: []
          GroupB: []
      LowerRatio: []
      UpperRatio: []
    MinNumAssets: []
    MaxNumAssets: []
       BoundType: [20×1 categorical]

См. также

| | | | | | | | |

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

Подробнее о