Чтобы создать полностью определенную задачу оптимизации портфеля средних отклонений, создайте экземпляр Portfolio объект с использованием Portfolio. Сведения о рабочем процессе при использовании Portfolio см. Рабочий процесс объекта портфеля.
Использовать Portfolio для создания экземпляра объекта Portfolio класс. Вы можете использовать Portfolio несколькими способами. Настройка задачи оптимизации портфеля в Portfolio объект, простейший синтаксис:
p = Portfolio;
Portfolio объект, p, так что все свойства объекта пусты. Portfolio объект также принимает коллекции аргументов пары «имя-значение» для свойств и их значений. Portfolio объект принимает входные данные для общих свойств с общим синтаксисом:
p = Portfolio('property1', value1, 'property2', value2, ... );Если Portfolio объект уже существует, синтаксис допускает первый (и только первый аргумент) из Portfolio является существующим объектом с последующими аргументами пары «имя-значение» для добавления или изменения свойств. Например, при наличии Portfolio объект в p, общий синтаксис:
p = Portfolio(p, 'property1', value1, 'property2', value2, ... );
Имена входных аргументов не чувствительны к регистру, но должны быть полностью указаны. Кроме того, можно указать несколько свойств с альтернативными именами аргументов (см. Ярлыки для имен свойств). Portfolio объект обнаруживает размеры задачи из входных данных, и после установки последующие входные данные могут подвергаться различным скалярным или матричным операциям расширения, которые упрощают общий процесс для формулирования задачи. Кроме того, Portfolio объект является объектом стоимости, так что, данное портфолио p, следующий код создает два объекта, p и q, которые отличаются:
q = Portfolio(p, ...)
Оптимизация портфеля средних отклонений полностью определена с помощью Portfolio объект при выполнении этих двух условий:
Моменты возврата основных средств должны быть указаны таким образом, чтобы свойство AssetMean содержит допустимый конечный средний вектор возврата активов и свойства AssetCovar содержит действительную симметричную положительно-полуопределенную матрицу для ковариации доходности актива.
Первое условие выполняется путем установки свойств, связанных с моментами возврата активов.
Набор возможных портфелей должен быть непустым компактным набором, где компактный набор закрыт и ограничен.
Второе условие удовлетворяется обширным набором свойств, которые определяют различные типы ограничений для формирования набора возможных портфелей. Поскольку такие наборы должны быть ограничены, могут быть наложены явные или неявные ограничения и несколько функций, например estimateBounds, предоставить способы, чтобы убедиться, что ваша проблема правильно сформулирована.
Хотя общие условия достаточности для оптимизации портфеля средних отклонений выходят за рамки этих двух условий, Portfolio объект, реализованный в Financial Toolbox™, неявно обрабатывает все эти дополнительные условия. Дополнительные сведения о модели Марковица для оптимизации портфеля средних отклонений см. в разделе Оптимизация портфеля.
При создании Portfolio объект, p, без входных аргументов, его можно отобразить с помощью disp:
p = Portfolio; disp(p)
Portfolio with properties:
BuyCost: []
SellCost: []
RiskFreeRate: []
AssetMean: []
AssetCovar: []
TrackingError: []
TrackingPort: []
Turnover: []
BuyTurnover: []
SellTurnover: []
Name: []
NumAssets: []
AssetList: []
InitPort: []
AInequality: []
bInequality: []
AEquality: []
bEquality: []
LowerBound: []
UpperBound: []
LowerBudget: []
UpperBudget: []
GroupMatrix: []
LowerGroup: []
UpperGroup: []
GroupA: []
GroupB: []
LowerRatio: []
UpperRatio: []
MinNumAssets: []
MaxNumAssets: []
BoundType: [] Перечисленные подходы обеспечивают способ настройки проблемы оптимизации портфеля с Portfolio объект. set функции предлагают дополнительные способы установки и изменения коллекций свойств в Portfolio объект.
Вы можете использовать Portfolio объект для непосредственной настройки «стандартной» задачи оптимизации портфеля, учитывая среднее значение и ковариацию доходности активов в переменных m и C:
m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0;
0.00408 0.0289 0.0204 0.0119;
0.00192 0.0204 0.0576 0.0336;
0 0.0119 0.0336 0.1225 ];
p = Portfolio('assetmean', m, 'assetcovar', C, ...
'lowerbudget', 1, 'upperbudget', 1, 'lowerbound', 0);LowerBound значение свойства подвергается скалярному расширению, поскольку AssetMean и AssetCovar укажите размеры проблемы.С функцией можно использовать точечную нотацию plotFrontier.
p.plotFrontier

Альтернативный способ выполнения той же задачи создания «стандартной» задачи оптимизации портфеля с учетом среднего значения и ковариации доходности активов в переменных. m и C (что также иллюстрирует, что имена аргументов не чувствительны к регистру):
m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0;
0.00408 0.0289 0.0204 0.0119;
0.00192 0.0204 0.0576 0.0336;
0 0.0119 0.0336 0.1225 ];
p = Portfolio;
p = Portfolio(p, 'assetmean', m, 'assetcovar', C);
p = Portfolio(p, 'lowerbudget', 1, 'upperbudget', 1);
p = Portfolio(p, 'lowerbound', 0);
plotFrontier(p)
Этот способ работает, потому что вызовы Portfolio находятся в этом особом порядке. В этом случае вызов для инициализации AssetMean и AssetCovar предоставляет размеры для задачи. Если бы этот шаг был выполнен последним, необходимо было бы явно измерить LowerBound следующим образом:
m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0;
0.00408 0.0289 0.0204 0.0119;
0.00192 0.0204 0.0576 0.0336;
0 0.0119 0.0336 0.1225 ];
p = Portfolio;
p = Portfolio(p, 'LowerBound', zeros(size(m)));
p = Portfolio(p, 'LowerBudget', 1, 'UpperBudget', 1);
p = Portfolio(p, 'AssetMean', m, 'AssetCovar', C);
plotFrontier(p)
Если не указан размер LowerBound но, вместо этого, введите скалярный аргумент, Portfolio объект предполагает, что вы определяете проблему с одним активом и создаете ошибку при вызове установки моментов актива с четырьмя активами.
Portfolio имеет более короткие имена аргументов, которые заменяют более длинные имена аргументов, связанные с определенными свойствами Portfolio объект. Например, вместо ввода 'assetcovar', Portfolio объект принимает имя без учета регистра 'covar' для установки AssetCovar свойство в Portfolio объект. Каждое более короткое имя аргумента соответствует одному свойству в Portfolio объект. Единственным исключением является альтернативное имя аргумента 'budget', что означает оба LowerBudget и UpperBudget свойства. Когда 'budget' используется, то LowerBudget и UpperBudget Для формирования бюджетного ограничения равенства свойствам присваивается одинаковое значение.
Ярлыки для имен свойств
Имя аргумента ярлыка | Эквивалентный аргумент/имя свойства |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Например, этот вызов Portfolio использует эти ярлыки для свойств и эквивалентен предыдущим примерам:
m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0;
0.00408 0.0289 0.0204 0.0119;
0.00192 0.0204 0.0576 0.0336;
0 0.0119 0.0336 0.1225 ];
p = Portfolio('mean', m, 'covar', C, 'budget', 1, 'lb', 0);
plotFrontier(p)
Хотя это не рекомендуется, можно задать свойства непосредственно, однако проверка ошибок на входе не выполняется:
m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0;
0.00408 0.0289 0.0204 0.0119;
0.00192 0.0204 0.0576 0.0336;
0 0.0119 0.0336 0.1225 ];
p = Portfolio;
p.NumAssets = numel(m);
p.AssetMean = m;
p.AssetCovar = C;
p.LowerBudget = 1;
p.UpperBudget = 1;
p.LowerBound = zeros(size(m));
plotFrontier(p)