setMinMaxNumAssets

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

Описание

пример

obj = setMinMaxNumAssets(obj,MinNumAssets,MaxNumAssets) ограничения кардинальности наборов для Portfolio, PortfolioCVaR, или PortfolioMAD объект.

MinNumAssets и MaxNumAssets минимальное и максимальное количество активов, которые инвестируют в портфель, соответственно. Общее количество выделенных активов, удовлетворяющих Связанным ограничениям, между [MinNumAssets, MaxNumAssets]. Для получения дополнительной информации на соответствующих рабочих процессах при использовании этих различных объектов, смотрите Рабочий процесс Объекта Портфеля, Рабочий процесс Объекта PortfolioCVaR и Рабочий процесс Объекта PortfolioMAD.

Примеры

свернуть все

Установите максимальное ограничение кардинальности для трех портфелей активов, для которых у вас есть среднее значение, и значения ковариации актива возвращается.

AssetMean = [ 0.0101110; 0.0043532; 0.0137058 ];
AssetCovar = [ 0.00324625 0.00022983 0.00420395;
               0.00022983 0.00049937 0.00019247;
               0.00420395 0.00019247 0.00764097 ]; 
           
p = Portfolio('AssetMean', AssetMean, 'AssetCovar', AssetCovar);
p = setDefaultConstraints(p); 

При работе с Portfolio объект, setMinMaxNumAssets функция позволяет вам настроить пределы на количестве активов, которые инвестируют. Используйте setMinMaxNumAssets ограничить общее количество выделенных активов к не больше, чем два.

 p = setMinMaxNumAssets(p, [], 2);

Используйте estimateFrontierByReturn оценить оптимальные портфели с целенаправленным портфелем возвращается.

pwgt = estimateFrontierByReturn(p,[ 0.008, 0.01 ])
pwgt = 3×2

         0         0
    0.6101    0.3962
    0.3899    0.6038

Установите минимальное ограничение кардинальности для трех портфелей активов, для которых у вас есть среднее значение, и значения ковариации актива возвращается.

AssetMean = [ 0.0101110; 0.0043532; 0.0137058 ];
AssetCovar = [ 0.00324625 0.00022983 0.00420395;
               0.00022983 0.00049937 0.00019247;
               0.00420395 0.00019247 0.00764097 ];  
           
p = Portfolio('AssetMean', AssetMean, 'AssetCovar', AssetCovar);
p = setDefaultConstraints(p); 

При работе с Portfolio объект, setMinMaxNumAssets функция позволяет вам настроить пределы на количестве активов, которые инвестируют. Эти пределы также известны как ограничения кардинальности. Когда управление портфель, распространено, что вы хотите вложить капитал, по крайней мере, в определенное число активов. Кроме того, необходимо также ясно задать требование веса для каждого инвестированного актива. Можно сделать это использование setBounds с 'Conditional' BoundType. Если вы не задаете 'Conditional' BoundType, оптимизатор не может понять, какие активы являются инвестированными активами и не могут сформулировать MinNumAssets ограничение.

Следующий пример указывает, что по крайней мере два актива нужно инвестировать, и инвестиции должны быть больше 16%.

p = setMinMaxNumAssets(p, 2, []);  
p = setBounds(p, 0.16, 'BoundType', 'conditional');

Используйте estimateFrontierByReturn оценить оптимальные портфели с целенаправленным портфелем возвращается.

pwgt = estimateFrontierByReturn(p,[ 0.008, 0.01 ])
pwgt = 3×2

    0.2861    0.3967
    0.5001    0.2438
    0.2138    0.3595

Установите минимальные и максимальные ограничения кардинальности и 'Conditional' BoundType для трех портфелей активов, для которых у вас есть среднее значение и значения ковариации актива, возвращается.

AssetMean = [ 0.0101110; 0.0043532; 0.0137058 ];
AssetCovar = [ 0.00324625 0.00022983 0.00420395;
               0.00022983 0.00049937 0.00019247;
               0.00420395 0.00019247 0.00764097 ];  
           
p = Portfolio('AssetMean', AssetMean, 'AssetCovar', AssetCovar);
p = setDefaultConstraints(p); 

При работе с Portfolio объект, setMinMaxNumAssets функция позволяет вам настроить пределы на количестве активов, которые инвестируют. Следующий пример указывает, что точно два актива нужно инвестировать с помощью setMinMaxNumAssets и инвестиции должны быть одинаково выделены среди этих двух активов с помощью setBounds.

p = setMinMaxNumAssets(p, 2, 2);  
p = setBounds(p, 0.5, 0.5, 'BoundType', 'conditional'); 

Используйте estimateFrontierByReturn оценить оптимальные портфели с целенаправленным портфелем возвращается.

pwgt = estimateFrontierByReturn(p,[ 0.008, 0.01 ])
pwgt = 3×2

         0    0.5000
    0.5000         0
    0.5000    0.5000

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

load CAPMuniverse
p = PortfolioCVaR('AssetList',Assets(1:12));
p = simulateNormalScenariosByData(p, Data(:,1:12), 20000 ,'missingdata',true);
p = setProbabilityLevel(p, 0.80);

При работе с PortfolioCVaR объект, setMinMaxNumAssets функция позволяет вам настроить пределы на количестве активов, которые инвестируют. Следующий пример указывает, что минимум пяти активов и максимум 10 активов нужно инвестировать с помощью setMinMaxNumAssets и инвестиции должны быть больше 4% и меньше чем 45% с помощью setBounds.

p = setMinMaxNumAssets(p, 5, 10);  
p = setBounds(p, 0.04, 0.45, 'BoundType', 'conditional'); 

Используйте estimateFrontierByReturn оценить оптимальные портфели с целенаправленным портфелем возвращается.

pwgt = estimateFrontierByReturn(p,[ 0.00026, 0.00038 ])
pwgt = 12×2

    0.0400    0.0400
         0         0
         0         0
         0         0
         0         0
    0.0507    0.0786
    0.0400    0.0400
    0.0400    0.0400
         0         0
    0.0400    0.0400
      ⋮

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

load CAPMuniverse
p = PortfolioMAD('AssetList',Assets(1:12));
p = simulateNormalScenariosByData(p, Data(:,1:12), 20000 ,'missingdata',true);

При работе с PortfolioMAD объект, setMinMaxNumAssets функция позволяет вам настроить пределы на количестве активов, которые инвестируют. Следующий пример указывает, что минимум пяти активов и максимум 10 активов нужно инвестировать с помощью setMinMaxNumAssets и инвестиции должны быть больше 4% и меньше чем 45% с помощью setBounds.

p = setMinMaxNumAssets(p, 5, 10);  
p = setBounds(p, 0.04, 0.45, 'BoundType', 'conditional'); 

Используйте estimateFrontierByReturn оценить оптимальные портфели с целенаправленным портфелем возвращается.

pwgt = estimateFrontierByReturn(p,[ 0.00026, 0.00038 ])
pwgt = 12×2

    0.0400    0.0400
         0         0
         0         0
         0         0
         0         0
    0.0507    0.0786
    0.0400    0.0400
    0.0400    0.0400
         0         0
    0.0400    0.0400
      ⋮

Входные параметры

свернуть все

Объект для портфеля, заданное использование Portfolio, PortfolioCVaR, или PortfolioMAD объект. Для получения дополнительной информации о создании объекта портфеля смотрите

Типы данных: object

Минимальное количество активов выделяется в портфеле, заданное использование числового скаляра.

Типы данных: double

Максимальное количество активов выделяется в портфеле, заданное использование числового скаляра.

Типы данных: double

Выходные аргументы

свернуть все

Обновленный объект портфеля, возвращенный как Portfolio, PortfolioCVaR, или PortfolioMAD объект.

Советы

  • Можно также использовать запись через точку, чтобы настроить список идентификаторов для активов.

    obj = obj.setMinMaxNumAssets(MinNumAssets,MaxNumAssets);

  • Определение пустых значений ([[]) для MinNumAssets и MaxNumAsssets удаляет предельные ограничения из Portfolio, PortfolioCVaR, или PortfolioMAD объект.

Введенный в R2018b