exponenta event banner

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

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

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

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

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

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

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

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

Настройка ограничений по умолчанию Используя функцию PortfolioCVaR

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

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

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

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

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

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

             BuyCost: []
            SellCost: []
        RiskFreeRate: []
    ProbabilityLevel: []
            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 = PortfolioCVaR;
p = setDefaultConstraints(p, 20);
disp(p)
 PortfolioCVaR with properties:

             BuyCost: []
            SellCost: []
        RiskFreeRate: []
    ProbabilityLevel: []
            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]

См. также

| | | | | | | | |

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

Подробнее

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