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

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

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

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

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

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

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

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

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

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

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

          BuyCost: []
         SellCost: []
     RiskFreeRate: []
        AssetMean: []
       AssetCovar: []
    TrackingError: []
     TrackingPort: []
         Turnover: []
      BuyTurnover: []
     SellTurnover: []
             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: []
        BoundType: []
     MinNumAssets: []
     MaxNumAssets: []

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

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

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

          BuyCost: []
         SellCost: []
     RiskFreeRate: []
        AssetMean: []
       AssetCovar: []
    TrackingError: []
     TrackingPort: []
         Turnover: []
      BuyTurnover: []
     SellTurnover: []
             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: []
        BoundType: [0×0 categorical]
     MinNumAssets: []
     MaxNumAssets: []

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

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

          BuyCost: []
         SellCost: []
     RiskFreeRate: []
        AssetMean: []
       AssetCovar: []
    TrackingError: []
     TrackingPort: []
         Turnover: []
      BuyTurnover: []
     SellTurnover: []
             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: []
        BoundType: [0×0 categorical]
     MinNumAssets: []
     MaxNumAssets: []

См. также

| | | | | | | | | | |

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

Подробнее о

Внешние веб-сайты

Для просмотра документации необходимо авторизоваться на сайте