Этот пример показывает рабочий процесс, чтобы реализовать модель Black-Litterman с Portfolio
класс. Модель Black-Litterman является подходом распределения активов, который позволяет инвестиционным аналитикам соединяться, субъективные представления (на основе оценок инвестиционного аналитика) в равновесие рынка возвращается. Путем смешивания представлений аналитика и равновесия возвращается вместо того, чтобы положиться только на исторический актив, возвращается, модель Black-Litterman обеспечивает систематический способ оценить среднее значение, и ковариация актива возвращается.
В модели Black-Litterman смешанный ожидаемый доход и неопределенность оценки . Чтобы использовать модель Black-Litterman, необходимо подготовить входные параметры: и . Входные параметры для и связаны с представлением и заданы инвестиционным аналитиком. равновесие, возвращаются и неопределенность в предшествующей вере. Этот пример ведет, вы, чтобы задать эти входные параметры и использовать смешанное получившееся возвращаетесь в оптимизации портфеля. Для получения дополнительной информации о концепции и деривации модели 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);
Представления представляют субъективные представления инвестиционного аналитика относительно будущих изменений рынка, выраженных как , где 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
набор данных является ежедневной газетой, возвращается, и представления находятся по ежегодным возвратам, необходимо преобразовать представления, чтобы быть на ежедневной газете, возвращается.
bizyear2bizday = 1/252; q = q*bizyear2bizday; Omega = Omega*bizyear2bizday;
ковариация исторического актива, возвращается.
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://papers.ssrn.com/sol3/papers.cfm? abstract_id=1314585.
Kolm, P. N. и Риттер, G. "На Байесовой Интерпретации Черного-цвета-Litterman цвета". Европейский Журнал Исследования операций. Издание 258, Номер 2, 2017, стр 564-572.
Attilio, M. "Вне Черного-цвета-Litterman на практике: Рецепт С пятью шагами, чтобы Ввести Представления о Ненормальных Рынках". 2006. Доступный в SSRN: https://papers.ssrn.com/sol3/papers.cfm? abstract_id=872577.
Ulf, H. "Подразумеваемое вычисление возвращается значимым способом". Журнал Управления активами. Vol 6, Номер 1, 2005, стр 53-64.