'Conditional'
BoundType, MinNumAssets, и MaxNumAssets Ограничения с использованием объектов портфеляКогда любой, или любая комбинация 'Conditional'
BoundType, MinNumAssets, или MaxNumAssets ограничения активны, задача портфеля сформулирована путем добавления NumAssets двоичные переменные, где 0 указывает на отсутствие инвестиций, и 1 инвестируется. Для примера, чтобы объяснить 'Conditional'
BoundType и MinNumAssets и MaxNumAssets ограничения, предположим, что ваш портфель имеет вселенную из 100 активов, которые вы хотите инвестировать:
'Conditional'
BoundType (также известные как полунепрерывные ограничения), заданные как setBounds, часто используется в ситуациях, когда вы не хотите инвестировать небольшие значения. Стандартным примером является задача оптимизации портфеля, в которой многие небольшие распределения не привлекательны из-за транзакционных издержек. Вместо этого вы предпочитаете меньше инструментов в портфеле с большими распределениями. С этой ситуацией можно справиться с помощью 'Conditional'
BoundType ограничения для Portfolio, PortfolioCVaR, или PortfolioMAD объект.
Например, вес, который вы вкладываете в каждый актив, либо 0 или между [0.01, 0.5]. Обычно полунепрерывная переменная, x является непрерывной переменной между границами [lb, ub], который также может принять значение 0, где lb > 0, lb ≤ ub. Применение этого к оптимизации портфеля требует, чтобы избегались очень маленькие или большие позиции, то есть значения, которые падают в (0, lb) или более ub.
MinNumAssets и MaxNumAssets (также известные как ограничения кардинальности), заданные как setMinMaxNumAssets, ограничьте количество активов в Portfolio, PortfolioCVaR, или PortfolioMAD объект. Например, если в портфеле 100 активов и необходимо, чтобы количество активов, распределенных в портфеле, составляло от 40 до 60. Использование MinNumAssets и MaxNumAssets можно ограничить количество активов в оптимизированном портфеле, что позволяет ограничить транзакционные и операционные издержки или создать портфель отслеживания индексов.
'Conditional' BoundType Ограничения с использованием setBounds ФункцияИспользовать setBounds с 'conditional'
BoundType установить xi = 0 или 0.02 < = xi < = 0.5 для всех i = 1... NumAssets:
p = Portfolio('AssetMean', AssetMean, 'AssetCovar', AssetCovar); p = setBounds(p, 0.02, 0.5,'BoundType', 'Conditional', 'NumAssets', 3)
p =
Portfolio with properties:
BuyCost: []
SellCost: []
RiskFreeRate: []
AssetMean: [3×1 double]
AssetCovar: [3×3 double]
TrackingError: []
TrackingPort: []
Turnover: []
BuyTurnover: []
SellTurnover: []
Name: []
NumAssets: 3
AssetList: []
InitPort: []
AInequality: []
bInequality: []
AEquality: []
bEquality: []
LowerBound: [3×1 double]
UpperBound: [3×1 double]
LowerBudget: []
UpperBudget: []
GroupMatrix: []
LowerGroup: []
UpperGroup: []
GroupA: []
GroupB: []
LowerRatio: []
UpperRatio: []
BoundType: [3×1 categorical]
MinNumAssets: []
MaxNumAssets: [] ФункцияМожно также задать MinNumAssets и MaxNumAssets свойства для определения предела на количество вложенных активов с помощью setMinMaxNumAssets. Для примера путем установки MinNumAssets= MaxNumAssets= 2в портфель вкладываются только два из трех активов.
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 = setMinMaxNumAssets(p, 2, 2) Portfolio with properties:
BuyCost: []
SellCost: []
RiskFreeRate: []
AssetMean: [3×1 double]
AssetCovar: [3×3 double]
TrackingError: []
TrackingPort: []
Turnover: []
BuyTurnover: []
SellTurnover: []
Name: []
NumAssets: 3
AssetList: []
InitPort: []
AInequality: []
bInequality: []
AEquality: []
bEquality: []
LowerBound: []
UpperBound: []
LowerBudget: []
UpperBudget: []
GroupMatrix: []
LowerGroup: []
UpperGroup: []
GroupA: []
GroupB: []
LowerRatio: []
UpperRatio: []
BoundType: []
MinNumAssets: 2
MaxNumAssets: 2Portfolio | setBounds | setBounds | setBudget | setDefaultConstraints | setEquality | setGroupRatio | setGroups | setInequality | setMinMaxNumAssets | setOneWayTurnover | setTrackingError | setTrackingPort | setTurnover