Этот пример показывает рабочий процесс, чтобы реализовать модель Black-Litterman с классом Portfolio
. Модель Black-Litterman является подходом распределения активов, который позволяет инвестиционным аналитикам соединяться, субъективные представления (на основе оценок инвестиционного аналитика) в равновесие рынка возвращается. Путем смешивания представлений аналитика и равновесия возвращается вместо того, чтобы положиться только на исторический актив, возвращается, модель Black-Litterman обеспечивает систематический способ оценить среднее значение, и ковариация актива возвращается.
В модели Black-Litterman смешанный ожидаемый доход и неуверенность оценки . Чтобы использовать модель Black-Litterman, необходимо подготовить входные параметры: и . Входные параметры для и связаны с представлением и заданы инвестиционным аналитиком. равновесие, возвращаются и неуверенность в предшествующей вере. Этот пример ведет, вы, чтобы задать эти входные параметры и использовать смешанное получившееся возвращаетесь в оптимизации портфеля. Для получения дополнительной информации о концепции и деривации модели Black-Litterman, смотрите раздел Appendix "Черная-Litterman Модель под Байесовой Средой".
Набор данных dowPortfolio.xlsx
включает тридцать активов и 1 сравнительный тест. Семь активов от этого набора данных включают инвестиционную вселенную в этом примере. Безрисковый уровень принят, чтобы быть нулем.
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);
Представления представляют субъективные представления инвестиционного аналитика относительно будущих изменений рынка, выраженных как , где v является общим количеством представлений. Для получения дополнительной информации смотрите предположения "Раздела Appendix и Представления". С представлениями v и k активами, v-by-k матрица, v-1 вектор, и v-by-v диагональная матрица (представление независимой неуверенности в представлениях). Представления должны не обязательно быть независимыми и структура может быть выбран, чтобы составлять неуверенность инвестиционного аналитика в представлениях [4]. Меньшее \in , меньшее отклонение в распределении неуверенности ith представления и более сильное представление ith инвестора. Этот пример принимает три независимых представления.
Слабое представление, которое предсказывает AIG, будет иметь 5%-й ежегодный возврат с неуверенностью 1e-3.
Слабое представление, которое предсказывает WMT, будет иметь 3%-й ежегодный возврат с неуверенностью 1e-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
являются ежедневной газетой, возвращается, и представления находятся по ежегодным возвратам, необходимо преобразовать представления, чтобы быть на ежедневной газете, возвращается.
q = q/252; Omega = Omega/252;
ковариация исторического актива, возвращается.
Sigma = cov(assetRetns.Variables);
Модель Black-Litterman делает предположение что структура пропорционально ковариации . Поэтому , где маленькая константа. Меньшее указывает на более высокую уверенность в предшествующей вере . Работа Он и Литтермен используют значение 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);
Используйте и входные параметры, чтобы вычислить смешанный актив возвращаются и отклонение с помощью модели Black-Litterman.
Можно вычислить и непосредственно при помощи этой операции над матрицей:
,
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: . Здесь вектор N-элемента весов актива, вектор N-элемента ожидаемого актива, возвращается, N на n ковариационная матрица актива, возвращается, и положительный параметр нерасположенности к риску. Данный , в отсутствие ограничений закрытое решение для формы этой проблемы . Поэтому с портфелем рынка, подразумеваемый ожидаемый доход . Для получения дополнительной информации о вычислении подразумеваемого возвращаются с ограничениями (например, ограничение бюджета), относятся к работе Херолда [5].
Чтобы вычислить подразумеваемый ожидаемый доход, вам нужно .
1) Найти .
вычисляется от исторического актива, возвращается.
Sigma = cov(assetRetn);
2) Найдите портфель рынка.
Чтобы найти портфель рынка, регрессируйте против DJI. Наложенные ограничения полностью инвестируют и долго только:
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) Найти .
Умножьте обе стороны с выводить . Здесь, Сравнительный тест принят, чтобы быть максимизацией отношения Шарпа, и это используется в качестве рынка отношение Шарпа. Также можно калибровать пересчитанное на год отношение Шарпа, чтобы быть 0.5, который приводит к shpr
=0.5/sqrt
(252) [1]. стандартное отклонение портфеля рынка.
shpr = mean(benchRetn)/std(benchRetn); delta = shpr/sqrt(wtsMarket'*Sigma*wtsMarket);
4) Вычислите подразумеваемый ожидаемый доход.
Предположение, что портфель рынка максимизирует отношение Шарпа, подразумеваемый возврат, без эффектов от ограничений, вычисляется непосредственно как [5].
PI = delta*Sigma*wtsMarket;
end
Примите, что инвестиционная вселенная состоит из k активов, и вектор актива возвращается моделируется как случайная переменная, после многомерного нормального распределения . ковариация от исторического актива, возвращается. Неизвестный параметр модели является ожидаемым доходом . С точки зрения Байесовой статистики модель Black-Litterman пытается оценить путем объединения представлений инвестиционного аналитика (или "наблюдения за будущим") и некоторые предварительные знания о .
Кроме того, примите предварительные знания это нормально распределенная случайная переменная [1, 2]. В отсутствие любых представлений (наблюдения), предшествующее среднее значение вероятно, будет равновесие, возвращается, подразумеваемый от содержания портфеля равновесия. На практике применимое содержание портфеля равновесия является не обязательно портфелем равновесия, а скорее целевым оптимальным портфелем, который инвестиционный аналитик использовал бы в отсутствие дополнительных представлений о рынке, таких как сравнительный тест портфеля, индекс, или даже текущий портфель. представляет неуверенность в предшествующем, и модель Black-Litterman делает предположение что структура . маленькая константа, и многие авторы используют различные значения. Детальное обсуждение о может быть найден в [3].
Наблюдения необходимы, чтобы выполнить статистический вывод на . В модели Black-Litterman наблюдения являются представлениями о будущем активе, возвращается выраженный по поводу уровня портфеля. Представление является ожидаемым доходом портфеля, состоявшего из вселенной k активов. Обычно, портфель возвращаются, имеет неуверенность, таким образом, остаточный член добавляется, чтобы отловить отъезд. Примите, что существует в общей сложности v представления. Для представления , вектор - строка с размерностью 1 x k, и скаляр [2].
=
Можно сложить представления v вертикально, и ковариация неуверенности от всех представлений. Примите, что неуверенность независима.
.
Обратите внимание на то, что должна не обязательно быть диагональная матрица. Инвестиционный аналитик может выбрать структуру составлять их неуверенность в представлениях [4].
Под предыдущим предположением , из этого следует, что
.
На основе Байесовой статистики известно что:.
В контексте модели Black-Litterman, выражается как * где каждый Байесов термин задан можно следующим образом [2]:
Вероятность - то, как, вероятно, это для представлений, чтобы произойти данное и выражается как
Предшествующее принимает предварительные знания это и выражается как
Следующим является распределение высказанное мнение и выражено как
Как ранее утверждено, апостериорное распределение также нормальное распределение. Путем завершения квадратов можно вывести следующее среднее значение и ковариацию как , .
Наконец, путем объединения Байесового апостериорного распределения и модель актива возвращается , у вас затем есть следующий прогноз актива, возвращается как .
Уолтерс, J. "Черная-Litterman модель подробно". 2014. Доступный в SSRN: https://ssrn.com/abstract=1314585.
Kolm, P. N. и Риттер, G. "На Байесовой Интерпретации Черного-цвета-Litterman цвета". Европейский Журнал Исследования операций. Издание 258, Номер 2, 2017, стр 564-572.
Уолтерс, J. "Обсуждение \tau (http://www.blacklitterman.org/tau.html).
Attilio, M. "Вне черного-цвета-Litterman на практике: рецепт с пятью шагами, чтобы ввести представления о ненормальных рынках". 2006. Доступный в SSRN: https://ssrn.com/abstract=872577 или http://dx.doi.org/10.2139/ssrn.872577.
Ulf, H. "Подразумеваемое вычисление возвращается значимым способом". Журнал Управления активами. Vol 6, Номер 1, 2005, стр 53-64.