'Conditional'
BoundType
, MinNumAssets
, и MaxNumAssets
Ограничения Используя объекты портфеляКогда любой или любая комбинация 'Conditional'
BoundType
, MinNumAssets
, или MaxNumAssets
ограничения активны, проблема портфеля формулируется путем добавления NumAssets
бинарные переменные, где 0
указывает не инвестированный, и 1
инвестирован. Например, чтобы объяснить 'Conditional'
BoundType
и MinNumAssets
и MaxNumAssets
ограничения, примите, что ваш портфель имеет вселенную 100 активов, которые вы хотите инвестировать:
'Conditional'
BoundType
(также известный как полунепрерывные ограничения), установленный 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
с 'conditional'
BoundType
установить кси = 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: 2
Portfolio
| setBounds
| setMinMaxNumAssets
| setDefaultConstraints
| setBounds
| setBudget
| setGroups
| setGroupRatio
| setEquality
| setInequality
| setTurnover
| setOneWayTurnover
| setTrackingPort
| setTrackingError