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