Черная-Litterman оптимизация портфеля

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

В модели 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 неопределенность в предшествующей вере. Этот пример ведет, вы, чтобы задать эти входные параметры и использовать смешанное получившееся возвращаетесь в оптимизации портфеля. Для получения дополнительной информации о концепции и деривации модели Black-Litterman, смотрите раздел Appendix Черная-Litterman Модель под Байесовой Средой.

Задайте вселенную активов

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 является общим количеством представлений. Для получения дополнительной информации смотрите Предположения раздела Appendix и Представления. С представлениями v и k активами, P v-by-k матрица, q v-1 вектор, и Ω v-by-v диагональная матрица (представление независимой неопределенности в представлениях). Представления должны не обязательно быть независимыми между собой и структура Ω может быть выбран, чтобы составлять неопределенность инвестиционного аналитика в представлениях [4]. Меньшее ωi \in Ω, меньшее отклонение в распределении представления ith, и более сильное или более определенное представление ith инвестора. Этот пример принимает три независимых представления.

  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

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

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

Рынок подразумеваемое равновесие возвращается

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

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

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

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

Можно вычислить μ- и 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));

Сравнение смешанного ожидаемого дохода от модели Black-Litterman до предшествующей веры ожидаемого дохода π, вы находите, что ожидаемый доход из модели Black-Litterman является действительно смесью и предшествующей веры и представлений инвестора. Например, как показано в приведенной ниже таблице, предшествующая вера принимает подобные возвраты для 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                

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

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

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

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

  • Портфель со смешанным активом возвращается и ковариация из модели Black-Litterman

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"         5.9959e-11                     0.1115             
     "AIG"        5.2256e-12                    0.23314             
     "WMT"          1.69e-12                   0.098048             
     "MSFT"         0.059393                    0.15824             
     "BA"            0.32068                    0.10748             
     "GE"          6.827e-10                     0.1772             
     "IBM"           0.61993                    0.11439             

Когда вы используете значения в смешанном активе, возвращаются и ковариация из модели Black-Litterman в оптимизации среднего отклонения, оптимальные выделения отражают представления инвестиционного аналитика непосредственно. Выделение из модели Black-Litterman более разнообразно, когда круговая диаграмма показывает. Кроме того, веса среди активов в модели Black-Litterman соглашаются с представлениями инвестиционного аналитика. Например, когда вы сравниваете Черный-Litterman результат с простым результатом оптимизации среднего отклонения, вы видите, что Черный-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.

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

Чтобы вычислить подразумеваемый ожидаемый доход, вам нужно Σ,ω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) Вычислите подразумеваемый ожидаемый доход.

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

PI = delta*Sigma*wtsMarket;
end

Приложение: черная-Litterman модель под байесовой средой

Предположения и представления

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

Кроме того, примите предварительные знания это μ нормально распределенная случайная переменная μ~N(π,C) [1, 2]. В отсутствие любых представлений (наблюдения), предшествующее среднее значение π вероятно, будет равновесие, возвращается, подразумеваемый от содержания портфеля равновесия. На практике применимое содержание портфеля равновесия является не обязательно портфелем равновесия, а скорее целевым оптимальным портфелем, который инвестиционный аналитик использовал бы в отсутствие дополнительных представлений о рынке, таких как сравнительный тест портфеля, индекс, или даже текущий портфель. C представляет неопределенность в предшествующем, и модель Black-Litterman делает предположение что структура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).

Байесово определение черной-Litterman модели

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

В контексте модели Black-Litterman,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. Уолтерс, J. "Черная-Litterman Модель подробно". 2014. Доступный в SSRN: https://papers.ssrn.com/sol3/papers.cfm? abstract_id=1314585.

  2. Kolm, P. N. и Риттер, G. "На Байесовой Интерпретации Черного-цвета-Litterman цвета". Европейский Журнал Исследования операций. Издание 258, Номер 2, 2017, стр 564-572.

  3. Attilio, M. "Вне Черного-цвета-Litterman на практике: Рецепт С пятью шагами, чтобы Ввести Представления о Ненормальных Рынках". 2006. Доступный в SSRN: https://papers.ssrn.com/sol3/papers.cfm? abstract_id=872577.

  4. Ulf, H. "Подразумеваемое вычисление возвращается значимым способом". Журнал Управления активами. Vol 6, Номер 1, 2005, стр 53-64.

Для просмотра документации необходимо авторизоваться на сайте