Оптимизация портфеля Black-Litterman

Этот пример показывает рабочий процесс для реализации модели Black-Litterman с Portfolio класс. Модель Блэка-Литтермана является подходом к распределению активов, который позволяет инвестиционным аналитикам включать субъективные взгляды (основанные на оценках инвестиционного аналитика) в рыночные равновесные возвраты. Путем смешения аналитических взглядов и равновесных возвратов вместо того, чтобы полагаться только на исторические возвраты активов, модель Блэка-Литтермана предоставляет систематический способ оценки среднего и ковариационного значения возвратов активов.

В модели Black-Litterman смешанный ожидаемый возврат μ-=[PTΩ-1P+C-1]-1[PTΩ-1q+C-1π] и оценка неопределенности cov(μ)=[PTΩ-1P+C-1]-1. Чтобы использовать модель Black-Litterman, вы должны подготовить входы: P,q,Ω,π, и C. Входы для P,q,и Ω связаны с представлением и определены инвестиционным аналитиком. π является равновесным возвратом и C - неопределенность в предварительном убеждении. В этом примере приведены руководства для определения этих входов и использования полученных смешанных возвратов в оптимизации портфеля. Для получения дополнительной информации о концепции и выведении модели Блэка-Литтермана, смотрите раздел Приложения Модель Блэка-Литтермана в Байесовской среде.

Определите Вселенную Активов

The dowPortfolio.xlsx набор данных включает 30 ресурсов и один бенчмарк. Семь активов из этого набора данных составляют инвестиционную вселенную в этом примере. Безрисковая ставка принята нулевой.

T = readtable('dowPortfolio.xlsx');

Определите вселенную активов и извлеките возвраты активов из данных о ценах.

assetNames = ["AA", "AIG", "WMT", "MSFT", "BA", "GE", "IBM"];
benchmarkName = "DJI";
head(T(:,["Dates" benchmarkName assetNames]))
ans=8×9 table
       Dates        DJI      AA       AIG      WMT     MSFT      BA       GE       IBM 
    ___________    _____    _____    _____    _____    _____    _____    _____    _____

    03-Jan-2006    10847    28.72    68.41     44.9    26.19    68.63     33.6    80.13
    04-Jan-2006    10880    28.89    68.51    44.99    26.32    69.34    33.56    80.03
    05-Jan-2006    10882    29.12     68.6    44.38    26.34    68.53    33.47    80.56
    06-Jan-2006    10959    29.02    68.89    44.56    26.26    67.57     33.7    82.96
    09-Jan-2006    11012    29.37    68.57     44.4    26.21    67.01    33.61    81.76
    10-Jan-2006    11012    28.44    69.18    44.54    26.35    67.33    33.43     82.1
    11-Jan-2006    11043    28.05     69.6    45.23    26.63     68.3    33.66    82.19
    12-Jan-2006    10962    27.68    69.04    44.43    26.48     67.9    33.25    81.61

retnsT = tick2ret(T(:, 2:end));
assetRetns = retnsT(:, assetNames);
benchRetn = retnsT(:, "DJI");
numAssets = size(assetRetns, 2);

Определение взглядов на рынке

Мнения представляют субъективные взгляды инвестиционного аналитика на будущие изменения рынка, выраженные как q=P*μ+ε,  ε~N(0,Ω),Ω=diag(ω1,ω2,...ωv), где v - общее количество просмотров. Для получения дополнительной информации см. раздел «Допущения и представления» Приложения. С v видами и k активами, P является v-на-k матрицей, q является вектором v-на-1, и Ω является диагональной матрицей v на v (представляющей независимую неопределенность во взглядах). Взгляды не обязательно должны быть независимыми между собой и структурой Ω может быть выбран для учета неопределенности инвестиционного аналитика во взглядах [4]. Чем меньше, тем ωi в Ω, чем меньше отклонение в распределении i-го представления и тем более или более определенно i-й взгляд инвестора. Этот пример принимает три независимых представления.

  1. AIG будет иметь 5% годового возврата с неопределенностью 1e-3. Это слабый абсолютный взгляд из-за его высокой неопределенности.

  2. WMT будет иметь 3% годового возврата с неопределенностью 1e-3. Это слабый абсолютный взгляд из-за его высокой неопределенности.

  3. MSFT будет превосходить IBM на 5% годовой возврат с неопределенностью 1e-5. Это сильная относительная точка зрения из-за его низкой неопределенности.

v = 3;  % total 3 views
P = zeros(v, numAssets);
q = zeros(v, 1);
Omega = zeros(v);

% View 1
P(1, assetNames=="AIG") = 1; 
q(1) = 0.05;
Omega(1, 1) = 1e-3;

% View 2
P(2, assetNames=="WMT") = 1; 
q(2) = 0.03;
Omega(2, 2) = 1e-3;

% View 3
P(3, assetNames=="MSFT") = 1; 
P(3, assetNames=="IBM") = -1; 
q(3) = 0.05;
Omega(3, 3) = 1e-5;

Визуализируйте три представления в таблицу форме.

viewTable = array2table([P q diag(Omega)], 'VariableNames', [assetNames "View_Return" "View_Uncertainty"]) 
viewTable=3×9 table
    AA    AIG    WMT    MSFT    BA    GE    IBM    View_Return    View_Uncertainty
    __    ___    ___    ____    __    __    ___    ___________    ________________

    0      1      0      0      0     0      0        0.05             0.001      
    0      0      1      0      0     0      0        0.03             0.001      
    0      0      0      1      0     0     -1        0.05             1e-05      

Потому что возвращается из dowPortfolio.xlsx набор данных является ежедневными возвратами, и представления находятся на годовых возвратах, вы должны преобразовывать представления, чтобы быть на ежедневных возвратах.

bizyear2bizday = 1/252;
q = q*bizyear2bizday; 
Omega = Omega*bizyear2bizday;

Оценка ковариации из исторических возвратов активов

Σ - ковариация исторических возвратов активов.

Sigma = cov(assetRetns.Variables);

Определите неопределенность C

Модель Блэка-Литтермана делает предположение, что структура C пропорционально ковариации Σ. Поэтому, C=τΣ, где τ является малой константой. Меньшее τ указывает на более высокое доверие в предыдущем убеждении μ. В работе Хэ и Литтермана используется значение 0,025. Другие авторы предлагают использовать 1/n, где n - количество точек данных, используемых для генерации ковариационной матрицы [3]. Этот пример использует 1/n.

tau = 1/size(assetRetns.Variables, 1);
C = tau*Sigma;

Рыночный подразумеваемый равновесный возврат

В отсутствие каких-либо представлений, равновесные возвратов, вероятно, равны подразумеваемым возвратам от балансового портфеля. На практике применимым балансовым портфельным холдингом может быть любой оптимальный портфель, который инвестиционный аналитик использовал бы при отсутствии дополнительных взглядов на рынке, таких как портфельный бенчмарк, индекс или даже текущий портфель [2]. В этом примере вы используете линейную регрессию для поиска рыночного портфеля, который отслеживает возвраты бенчмарка DJI. Затем, вы используете рыночный портфель как равновесный портфель, и равновесные возвраты подразумевается из рыночного портфеля. The findMarketPortfolioAndImpliedReturn функция, заданная в Локальные Функции, реализует равновесные возвраты. Эта функция принимает исторические возвраты активов и эталонные возвраты в качестве входов и выводит рыночный портфель и соответствующие подразумеваемые прибыли.

[wtsMarket, PI] = findMarketPortfolioAndImpliedReturn(assetRetns.Variables, benchRetn.Variables);

Вычисление предполагаемого среднего возврата и ковариации

Используйте P,q,Ω,π, и C входы для вычисления возврата и отклонения смешанных активов с помощью модели Блэка-Литтермана.

Вы можете вычислить μ- и cov(μ) непосредственно при помощи этой матричной операции:

μ-=[PTΩ-1P+C-1]-1[PTΩ-1q+C-1π],cov(μ)=[PTΩ-1P+C-1]-1

mu_bl = (P'*(Omega\P) + inv(C)) \ ( C\PI + P'*(Omega\q));
cov_mu = inv(P'*(Omega\P) + inv(C));

Сравнение смешанной ожидаемой возврат от модели Блэка-Литтермана с предыдущим убеждением ожидаемого возврата π, вы обнаруживаете, что ожидаемый возврат от модели Блэка-Литтермана действительно является смесью как предыдущих убеждений, так и взглядов инвесторов. Для примера, как показано в таблице ниже, предыдущее убеждение принимает аналогичные возвраты для MSFT и IBM, но в смешанной ожидаемой отдаче, MSFT имеет более высокую доходность, чем IBM более чем на 4%. Это различие обусловлено навязанной твердой точкой зрения, что MSFT опережает IBM на 5%.

table(assetNames', PI*252, mu_bl*252, 'VariableNames', ["Asset_Name", ...
    "Prior_Belief_of_Expected_Return", "Black_Litterman_Blended_Expected_Return"])
ans=7×3 table
    Asset_Name    Prior_Belief_of_Expected_Return    Black_Litterman_Blended_Expected_Return
    __________    _______________________________    _______________________________________

      "AA"                    0.19143                                0.19012                
      "AIG"                   0.14432                                0.13303                
      "WMT"                   0.15754                                 0.1408                
      "MSFT"                  0.14071                                0.17557                
      "BA"                    0.21108                                 0.2017                
      "GE"                    0.13323                                0.12525                
      "IBM"                   0.14816                                0.12877                

Оптимизация портфеля и результаты

The Portfolio объект в Financial Toolbox™ реализует среду оптимизации портфеля отклонений Марковица. Использование Portfolio объект, вы можете найти эффективный портфель для заданного уровня риска или доходности, и вы также можете максимизировать коэффициент Шарпа.

Использование estimateMaxSharpeRatio с Portfolio объект для поиска выделений с максимальным коэффициентом Шарпа для следующих портфелей:

  • Портфель со средним активом и ковариацией от исторических возвратов активов

  • Портфель со смешанным возвратом активов и ковариацией из модели Блэка-Литтермана

port = Portfolio('NumAssets', numAssets, 'lb', 0, 'budget', 1, 'Name', 'Mean Variance');
port = setAssetMoments(port, mean(assetRetns.Variables), Sigma);
wts = estimateMaxSharpeRatio(port);

portBL = Portfolio('NumAssets', numAssets, 'lb', 0, 'budget', 1, 'Name', 'Mean Variance with Black-Litterman');
portBL = setAssetMoments(portBL, mu_bl, Sigma + cov_mu);  
wtsBL = estimateMaxSharpeRatio(portBL);

ax1 = subplot(1,2,1);
idx = wts>0.001;
pie(ax1, wts(idx), assetNames(idx));
title(ax1, port.Name ,'Position', [-0.05, 1.6, 0]);

ax2 = subplot(1,2,2);
idx_BL = wtsBL>0.001;
pie(ax2, wtsBL(idx_BL), assetNames(idx_BL));
title(ax2, portBL.Name ,'Position', [-0.05, 1.6, 0]);

table(assetNames', wts, wtsBL, 'VariableNames', ["AssetName", "Mean_Variance", ...
     "Mean_Variance_with_Black_Litterman"])
ans=7×3 table
    AssetName    Mean_Variance    Mean_Variance_with_Black_Litterman
    _________    _____________    __________________________________

     "AA"         1.1823e-16                     0.1115             
     "AIG"        1.2052e-17                    0.23314             
     "WMT"        4.6763e-18                   0.098048             
     "MSFT"         0.059393                    0.15824             
     "BA"            0.32068                    0.10748             
     "GE"          1.576e-15                     0.1772             
     "IBM"           0.61993                    0.11439             

Когда вы используете значения для возврата смешанного актива и ковариации из модели Black-Litterman в оптимизации средних дисперсий, оптимальные распределения отражают мнения инвестиционного аналитика непосредственно. Распределение из модели Black-Litterman более диверсифицировано, как показывает круговая диаграмма. Также веса среди активов в модели Black-Litterman согласуются с мнениями инвестиционного аналитика. Например, когда вы сравниваете результат Black-Litterman с простым результатом оптимизации средних дисперсий, можно увидеть, что результат Black-Litterman более сильно инвестируется в MSFT, чем в IBM. Это связано с тем, что инвестиционный аналитик твердо считает, что MSFT превзойдет IBM.

Локальные функции

function [wtsMarket, PI] = findMarketPortfolioAndImpliedReturn(assetRetn, benchRetn)
% Find the market portfolio that tracks the benchmark and its corresponding implied expected return.

Подразумеваемый возврат вычисляется обратной оптимизацией. Безрисковая ставка принята нулевой. Общая формулировка оптимизации портфеля задается задачей оптимизации Марковица: argmaxωωTμ-δ2ωTΣω. Здесь ω - N-вектор активов N-элемента, μ - N-вектор возвратов активов N-элемента, Σ является N-на-N ковариационной матрицей возвратов активов, и δ является положительным параметром отвращения к риску. Данный δв отсутствие ограничений решение этой проблемы в закрытой форме ω=1δΣ-1μ. Поэтому с рыночным портфелем подразумеваемая ожидаемый возврат π=δΣωmkt.

Чтобы вычислить подразумеваемый ожидаемый возврат, вам нужно Σ,ωmkt,δ.

1) Найти Σ.

Σ рассчитывается на основе исторических возвратов активов.

Sigma = cov(assetRetn);

2) Найти портфель рынка.

Чтобы найти рыночный портфель, регрессируйте против DJI. Наложенные ограничения полностью инвестированы и продолжительны только: i=1nωi=1,0ωi,i{1,...,n}

numAssets = size(assetRetn,2);
LB = zeros(1,numAssets);
Aeq = ones(1,numAssets);
Beq = 1;
opts = optimoptions('lsqlin','Algorithm','interior-point', 'Display',"off");
wtsMarket = lsqlin(assetRetn, benchRetn, [], [], Aeq, Beq, LB, [], [], opts);

3) Найти δ.

Умножьте обе стороны π=δΣωmkt с ωmktT производить δ=SharpeRatioσm. Здесь, Бенчмарк принято, чтобы максимизировать отношение Шарпа и соответствующее значение используется как рыночное отношение Шарпа. Кроме того, можно калибровать годовое отношение Шарпа до 0,5, что приводит к shpr=0.5/sqrt(252) [1]. σm - стандартное отклонение рыночного портфеля.

shpr = mean(benchRetn)/std(benchRetn);
delta = shpr/sqrt(wtsMarket'*Sigma*wtsMarket); 

4) Вычислите подразумеваемый ожидаемый возврат.

Принимая, что рыночный портфель максимизирует коэффициент Шарпа, подразумеваемый возврат, без эффектов от ограничений, вычисляется непосредственно как π=δΣω.

PI = delta*Sigma*wtsMarket;
end

Приложение: Модель Черного Литтермана в байесовских средах

Допущения и представления

Предположим, что инвестиционная вселенная состоит из k активов и вектора возвратов активов r моделируется как случайная переменная, следуя многомерному нормальному распределению r~N(μ,Σ). Σ - ковариация от исторических возвратов активов. Неизвестный параметр модели - ожидаемый возврат μ. С точки зрения байесовской статистики, модель Блэка-Литтермана пытается оценить μ путем объединения инвестиционных аналитических взглядов (или «наблюдений будущего») и некоторых предварительных знаний о μ.

В сложение примите предшествующее знание, что μ является обычно распределенной случайной переменной μ~N(π,C) [1, 2]. При отсутствии каких-либо взглядов (наблюдений) априорное среднее π вероятно, это будет равновесные возвраты, подразумеваемая из балансового портфеля. На практике применимым балансовым портфельным холдингом является не обязательно равновесный портфель, а, скорее, целевой оптимальный портфель, который инвестиционный аналитик использовал бы при отсутствии дополнительных мнений на рынке, таких как базовый показатель портфеля, индекс или даже текущий портфель. C представляет неопределенность в предыдущей и модели Блэка-Литтермана делает предположение, что структураC является τΣ. τ является небольшой константой, и многие авторы используют различные значения. Подробное обсуждение τ можно найти в [3].

Наблюдения необходимы, чтобы выполнить статистический вывод на μ. В модели Black-Litterman наблюдения представляют собой представления о будущих возвратах активов, выраженные на уровне портфеля. Точка зрения - ожидаемый возврат портфеля, состоящего из вселенной k активов. Обычно возврат портфеля имеет неопределенность, поэтому добавляется термин ошибки, чтобы поймать вылет. Предположим, что существует в общей сложности v представлений. Для представления i, pi является вектором-строкой с размерностью 1 x k, и qi является скаляром [2].

qi = Ε[pi*r|μ]+εi,i=1,2,...,v

Вы можете сложить v-образные представления вертикально, и Ω - ковариация неопределенностей со всех точек зрения. Предположим, что неопределенности независимы.

q=Ε[P*r|μ]+ε,ε~N(0,Ω),Ω=diag(ω1,ω2,...ωv).

Обратите внимание, что Ω не обязательно должна быть матрицей диагонали. Инвестиционный аналитик может выбрать структуру Ω для учета их неопределенности в мнениях [4].

При предыдущем допущении r~N(μ,Σ), из этого следует, что

q=P*μ+ε,  ε~N(0,Ω),Ω=diag(ω1,ω2,...ωv).

Байесовское определение модели Черного Литтермана

На основе байесовской статистики известно, что:posteriorlikelihood*prior.

В контексте модели Блэка-Литтермана,posteriorlikelihood*prior выражается как f(μ|q) f(q|μ)*f(μ), где каждый байесовский термин определяется следующим образом [2]:

  • Вероятность того, насколько вероятно, что эти взгляды произойдут μ и выражается как f(q|μ)exp[-12(Pμ-q)Ω-1(Pμ-q)].

  • Предыдущий принимает предшествующее знание, что μ~N(π,C) и выражается как f(μ)   exp[-12(μ-π)C-1(μ-π)].

  • Апостериор является распределением μ заданные взгляды и выражается как f(μ|q)exp[-12(Pμ-q)Ω-1(Pμ-q)-12(μ-π)C-1(μ-π)].

Как указывалось ранее, апостериорное распределениеμ также является нормальным распределением. Выполняя квадраты, можно вывести апостериорное среднее и ковариационное как μ-=[PTΩ-1P+C-1]-1[PTΩ-1q+C-1π], cov(μ)=[PTΩ-1P+C-1]-1.

Наконец, путем объединения байесовского апостериорного распределенияμ и модель возвратов активов r~N(μ,Σ), затем у вас есть апостериорное предсказание возвратов активов как r~N(μ-,Σ+cov(μ)).

Ссылки

  1. Уолтерс, Дж. «The Black-Litterman Model in Details». 2014. Доступно в SSRN: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1314585.

  2. Кольм, П. Н., и Риттер, Г. «О байесовской интерпретации чёрно-литтермана». Европейский журнал операционных исследований. Том 258, № 2, 2017, с. 564-572.

  3. Аттилио, М. «Beyond Black-Litterman in Practice: A Five-Step Recipe to Input Views on Non-Normal Markets». 2006. Доступно в SSRN: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=872577.

  4. Ульф, Х. «Вычисление подразумевает возвраты в значимом смысле». Журнал управления активами. Том 6, Номер 1, 2005, стр. 53-64.

См. также

| | | | | | | | |

Похожие примеры

Подробнее о

Внешние веб-сайты