exponenta event banner

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

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

При настройке набора портфолио убедитесь, что он удовлетворяет этим условиям. Наиболее базовый или «стандартный» набор портфелей требует, чтобы веса портфеля были неотрицательными (с использованием ограничения нижней границы) и суммировались с 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: []

См. также

| | | | | | | | | | |

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

Подробнее

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