abs2active

Преобразуйте ограничения от абсолютного до активного формата

Синтаксис

ActiveConSet = abs2active(AbsConSet,Index)

Описание

ActiveConSet = abs2active(AbsConSet,Index) преобразовывает матрицу ограничений к эквивалентной матрице, выраженной в активном формате веса (относительно индекса).

Входные параметры

AbsConSet

Портфель линейная матрица ограничения неравенства выражается в абсолютном формате веса. AbsConSet отформатирован как [A b], таким образом, что   A*w <= b, где A является многими ограничениями (NCONSTRAINTS) количеством активов (NASSETS) матрица коэффициентов веса, и b и w, является вектор-столбцами длины NASSETS. w значения представляет вектор абсолютных весов актива, элементы которых суммируют к общей стоимости портфеля. Смотрите вывод ConSet от portcons для дополнительных деталей об ограничительных матрицах.

Index

NASSETS-by-1 вектор индексных весов портфеля. Сумма индексных весов должна равняться общей стоимости портфеля (например, стандартная оптимизация портфеля налагает sum-one ограничение бюджета).

Выходные аргументы

ActiveConSet

Преобразованный портфель линейная матрица ограничения неравенства выразил в активном формате веса, также формы [A b], таким образом что   A*w <= b. w значения представляет вектор активных весов актива (относительно индексного портфеля), чьи элементы суммируют, чтобы обнулить.

Примеры

Настройте ограничения для оптимизации портфеля для портфеля w0 с ограничениями в форме A*w <= b, где w является абсолютными весами портфеля. (Абсолютные веса не зависят от портфеля отслеживания.) Используют abs2active, чтобы преобразовать ограничения с точки зрения абсолютных весов в ограничения с точки зрения активных весов портфеля, заданных относительно портфеля отслеживания w0. Примите три актива со следующим средним значением, и ковариация актива возвращается:

m = [ 0.14; 0.10; 0.05 ];
C = [ 0.29^2 0.4*0.29*0.17 0.1*0.29*0.08; 0.4*0.29*0.17 0.17^2 0.3*0.17*0.08;...
0.1*0.29*0.08 0.3*0.17*0.08 0.08^2 ];

Абсолютные ограничения портфеля являются типичными единицами (сумма весов к 1 и падение от 0 до 1), создают A и матрицы b с помощью portcons:

AbsCons = portcons('PortValue',1,3,'AssetLims', [0; 0; 0], [1; 1; 1;]);

Используйте объект Portfolio определить границу эффективности:

p = Portfolio('AssetMean', m, 'AssetCovar', C);
p = p.setInequality(AbsCons(:,1:end-1), AbsCons(:,end));
p.plotFrontier;

Портфель отслеживания w0:

w0 = [ 0.1; 0.55; 0.35 ];

Используйте abs2active, чтобы вычислить ограничения для активных весов портфеля:

ActCons = abs2active(AbsCons, w0)

Это возвращается:

ActCons =

    1.0000    1.0000    1.0000         0
   -1.0000   -1.0000   -1.0000         0
    1.0000         0         0    0.9000
         0    1.0000         0    0.4500
         0         0    1.0000    0.6500
   -1.0000         0         0    0.1000
         0   -1.0000         0    0.5500
         0         0   -1.0000    0.3500

Используйте объект Portfolio p и его граница эффективности, чтобы продемонстрировать ожидаемые доходы и риск относительно портфеля отслеживания w0:

p = p.setInequality(ActCons(:,1:end-1), ActCons(:,end));
p.plotFrontier;

Отметьте, при использовании abs2active, чтобы вычислить “активные ограничения” для использования с объектом Portfolio, не использовать ограничения объекта Portfolio по умолчанию, потому что относительные веса могут быть положительными или отрицательными (функция setDefaultConstraints задает веса, чтобы быть неотрицательной).

Алгоритмы

abs2active преобразовывает матрицу ограничений к эквивалентной матрице, выраженной в активном формате веса (относительно индекса). Уравнение преобразования

Awabsolute=A(wactive+windex)babsolute.

Поэтому

AwactivebabsoluteAwindex=bactive.

Начальная матрица ограничений состоит из портфеля NCONSTRAINTS линейные ограничения неравенства, выраженные в абсолютном формате веса. Индексный вектор портфеля содержит активы NASSETS.

Представлено до R2006a