exponenta event banner

Активные возвраты и отслеживание ошибок Эффективная граница

Предположим, что вы хотите определить эффективный набор портфелей, которые минимизируют дисперсию разницы в доходности по отношению к данному целевому портфелю при условии заданной ожидаемой избыточной доходности. Среднее и стандартное отклонение этого избыточного возврата часто называют активным возвратом и активным риском соответственно. Активный риск иногда называют ошибкой отслеживания. Поскольку цель состоит в том, чтобы отслеживать данный целевой портфель как можно ближе, результирующий набор портфелей иногда называют границей эффективности отслеживания ошибок.

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

Один из способов построения границы, эффективной для отслеживания ошибок, состоит в явном формировании целевого ряда возврата и вычитании его из ряда возврата отдельных активов. Таким образом, определяется ожидаемое среднее значение и ковариация активной доходности и вычисляется эффективная граница с учетом обычных ограничений портфеля.

Этот пример работает непосредственно со средним значением и ковариацией абсолютных (нескорректированных) возвращений, но преобразует ограничения из обычного формата абсолютного веса в активный формат веса.

Рассмотрим портфель из пяти активов со следующими ожидаемыми доходностями, стандартными отклонениями и корреляционной матрицей на основе абсолютных недельных доходностей активов.

NumAssets    =  5;

ExpReturn    = [0.2074  0.1971  0.2669  0.1323  0.2535]/100;

Sigmas       = [2.6570  3.6297  3.9916  2.7145  2.6133]/100;

Correlations = [1.0000  0.6092  0.6321  0.5833  0.7304
                0.6092  1.0000  0.8504  0.8038  0.7176
                0.6321  0.8504  1.0000  0.7723  0.7236
                0.5833  0.8038  0.7723  1.0000  0.7225
                0.7304  0.7176  0.7236  0.7225  1.0000];

Преобразование корреляций и стандартных отклонений в ковариационную матрицу с помощью corr2cov.

ExpCovariance = corr2cov(Sigmas, Correlations);

Далее предположим, что целевой индексный портфель является одинаково взвешенным портфелем, сформированным из пяти активов. Сумма весов индекса равна 1, удовлетворяя стандартному ограничению полного равенства инвестиционного бюджета.

Index = ones(NumAssets, 1)/NumAssets;

Создание матрицы ограничений по активам с помощью portcons. Матрица ограничений AbsConSet выражается в абсолютном формате (не скорректирован для индекса) и форматируется как [A b], соответствующие ограничениям формы A*w <= b. Каждая строка AbsConSet соответствует ограничению, и каждый столбец соответствует основному средству. Не допускайте коротких продаж и полных инвестиций в каждый актив (нижние и верхние границы каждого актива равны 0 и 1 соответственно). В частности, следует отметить, что первые две строки соответствуют ограничению бюджетного равенства; остальные строки соответствуют верхней/нижней инвестиционной границе.

AbsConSet = portcons('PortValue', 1, NumAssets, ... 
'AssetLims', zeros(NumAssets,1), ones(NumAssets,1));

Теперь преобразуйте абсолютные ограничения в активные с помощью abs2active.

ActiveConSet = abs2active(AbsConSet, Index);

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

[AbsConSet(:,end)  ActiveConSet(:,end)]
ans =

    1.0000         0
   -1.0000         0
    1.0000    0.8000
    1.0000    0.8000
    1.0000    0.8000
    1.0000    0.8000
    1.0000    0.8000
         0    0.2000
         0    0.2000
         0    0.2000
         0    0.2000
         0    0.2000

В частности, следует отметить, что абсолютное бюджетное ограничение «сумма к одной» становится активным бюджетным ограничением «сумма к нулю». Общее преобразование заключается в следующем:

bactive = babsolute A × Index.

Теперь создайте Portfolio объект и постройте график эффективной границы ошибки отслеживания с 21 портфелем.

p = Portfolio('AssetMean', ExpReturn, 'AssetCovar', ExpCovariance);
p = p.setInequality(ActiveConSet(:,1:end-1), ActiveConSet(:,end));
[ActiveRisk, ActiveReturn] = p.plotFrontier(21);

plot(ActiveRisk*100, ActiveReturn*100, 'blue')
grid('on')
xlabel('Active Risk (Standard Deviation in Percent)')
ylabel('Active Return (Percent)')
title('Tracking Error Efficient Frontier')

Особый интерес представляет портфель нижних левых вдоль границы. Этот портфель с нулевым риском/нулевой отдачей имеет практическое экономическое значение. Она представляет собой полную инвестицию в сам индексный портфель. Каждый портфель с эффективным отслеживанием ошибок (каждая строка в массиве) ActiveWeights) удовлетворяет активному бюджетному ограничению и, таким образом, представляет распределение портфельных инвестиций по отношению к индексному портфелю. Чтобы преобразовать эти ассигнования в абсолютные инвестиционные ассигнования, добавьте индекс к каждому эффективному портфелю.

ActiveWeights = p.estimateFrontier(21);
AbsoluteWeights = ActiveWeights + repmat(Index, 1, 21);

См. также

| | | | | | | | | | | | |

Связанные примеры

Подробнее