'Conditional'
BoundType, MinNumAssets и ограничения MaxNumAssets Используя объекты PortfolioMADКогда любой или любая комбинация 'Conditional'
, BoundType, MinNumAssets или ограничения MaxNumAssets активны, проблема портфеля, формулируется путем добавления двоичных переменных NumAssets, где 0 указывает не инвестированный, и 1 инвестируют. Например, чтобы объяснить
BoundType 'Conditional' и MinNumAssets и ограничения MaxNumAssets, примите, что ваш портфель имеет вселенную 100 активов, которые вы хотите инвестировать:
BoundType 'Conditional' (также известный как полунепрерывные ограничения), установленный setBounds, часто используется в ситуациях, где вы не хотите инвестировать маленькие значения. Стандартным примером является задача оптимизации портфеля, где много маленьких выделений не привлекательны из-за операционных издержек. Вместо этого вы предпочитаете меньше инструментов в портфеле с большими выделениями. Эта ситуация может быть обработана using'Conditional'
ограничения BoundType для объекта PortfolioMAD.
Например, весом, который вы инвестируете в каждый актив, является или 0 или между [0.01, 0.5]. Обычно полунепрерывная переменная x является непрерывной переменной между границами [lb, ub], который также может принять значение 0, где lb> 0, lb ≤ ub. Применение этого к оптимизации портфеля требует, чтобы очень маленьких или больших положений избежали, который является значениями, которые обрушиваются (0, lb) или являются больше, чем ub.
MinNumAssets и MaxNumAssets (также известный как ограничения кардинальности), установленный setMinMaxNumAssets, ограничивают количество активов в объекте PortfolioMAD. Например, если у вас есть 100 активов в вашем портфеле, и вы хотите, чтобы количество активов, выделенных в портфеле, было от 40 до 60. Используя MinNumAssets и MaxNumAssets можно ограничить количество активов в оптимизированном портфеле, который позволяет вам ограничивать транзакцию и операционные затраты или создавать индексный портфель отслеживания.
'Conditional' ограничения BoundType Используя функцию setBoundsИспользуйте setBounds с
BoundType 'conditional', чтобы установить кси = 0 или 0.02 <= кси <= 0.5 для всего i=1... NumAssets:
p = PortfolioMAD; p = setBounds(p, 0.02, 0.5,'BoundType', 'Conditional', 'NumAssets', 3)
p =
Portfolio with properties:
BuyCost: []
SellCost: []
RiskFreeRate: []
AssetMean: []
AssetCovar: []
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, только два из этих трех активов инвестируют в портфель.
p = PortfolioMAD; p = setMinMaxNumAssets(p, 2, 2)
Portfolio with properties:
BuyCost: []
SellCost: []
RiskFreeRate: []
AssetMean: []
AssetCovar: []
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: 2PortfolioMAD | setBounds | setBounds | setBudget | setDefaultConstraints | setEquality | setGroupRatio | setGroups | setInequality | setMinMaxNumAssets | setOneWayTurnover | setTurnover