'Conditional'
BoundType, MinNumAssets, и MaxNumAssets Ограничения с использованием объектов PortfolioMADКогда любой, или любая комбинация 'Conditional'
BoundType, MinNumAssets, или MaxNumAssets ограничения активны, задача портфеля сформулирована путем добавления NumAssets двоичные переменные, где 0 указывает на отсутствие инвестиций, и 1 инвестируется. Для примера, чтобы объяснить 'Conditional'
BoundType и MinNumAssets и MaxNumAssets ограничения, предположим, что ваш портфель имеет вселенную из 100 активов, которые вы хотите инвестировать:
'Conditional'
BoundType (также известные как полунепрерывные ограничения), заданные как setBounds, часто используется в ситуациях, когда вы не хотите инвестировать небольшие значения. Стандартным примером является задача оптимизации портфеля, в которой многие небольшие распределения не привлекательны из-за транзакционных издержек. Вместо этого вы предпочитаете меньше инструментов в портфеле с большими распределениями. С этой ситуацией можно справиться с помощью '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 с 'conditional'
BoundType установить xi = 0 или 0.02 < = xi < = 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: [] ФункцияМожно также задать MinNumAssets и MaxNumAssets свойства для определения предела на количество вложенных активов с помощью setMinMaxNumAssets. Для примера путем установки MinNumAssets= MaxNumAssets= 2в портфель вкладываются только два из трех активов.
p = PortfolioMAD; p = setBounds(p, 0.02, 0.5,'BoundType', 'Conditional', 'NumAssets', 3) p = setMinMaxNumAssets(p, 2, 2)
p =
PortfolioMAD with properties:
BuyCost: []
SellCost: []
RiskFreeRate: []
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]PortfolioMAD | setBounds | setBounds | setBudget | setDefaultConstraints | setEquality | setGroupRatio | setGroups | setInequality | setMinMaxNumAssets | setOneWayTurnover | setTurnover