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

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

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

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

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

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

  • Веса портфеля должны суммировать к 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: []

Смотрите также

| | | | | | | | | | |

Связанные примеры

Больше о

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