'Conditional'
BoundType, MinNumAssets и ограничения MaxNumAssets Используя объекты портфеляКогда любой или любая комбинация 'Conditional'
, BoundType, MinNumAssets или ограничения MaxNumAssets активны, проблема портфеля, формулируется путем добавления двоичных переменных NumAssets, где 0 указывает не инвестированный, и 1 инвестируют. Например, чтобы объяснить
BoundType 'Conditional' и MinNumAssets и ограничения MaxNumAssets, примите, что ваш портфель имеет вселенную 100 активов, которые вы хотите инвестировать:
BoundType 'Conditional' (также известный как полунепрерывные ограничения), установленный setBounds, часто используется в ситуациях, где вы не хотите инвестировать маленькие значения. Стандартным примером является задача оптимизации портфеля, где много маленьких выделений не привлекательны из-за операционных издержек. Вместо этого вы предпочитаете меньше инструментов в портфеле с большими выделениями. Эта ситуация может быть обработана using'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 с
BoundType 'conditional', чтобы установить кси = 0 или 0.02 <= кси <= 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: []setMinMaxNumAssetsМожно также установить свойства 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