Этот пример показывает рабочий процесс для реализации модели Black-Litterman с Portfolio
класс. Модель Блэка-Литтермана является подходом к распределению активов, который позволяет инвестиционным аналитикам включать субъективные взгляды (основанные на оценках инвестиционного аналитика) в рыночные равновесные возвраты. Путем смешения аналитических взглядов и равновесных возвратов вместо того, чтобы полагаться только на исторические возвраты активов, модель Блэка-Литтермана предоставляет систематический способ оценки среднего и ковариационного значения возвратов активов.
В модели Black-Litterman смешанный ожидаемый возврат и оценка неопределенности . Чтобы использовать модель Black-Litterman, вы должны подготовить входы: и . Входы для и связаны с представлением и определены инвестиционным аналитиком. является равновесным возвратом и - неопределенность в предварительном убеждении. В этом примере приведены руководства для определения этих входов и использования полученных смешанных возвратов в оптимизации портфеля. Для получения дополнительной информации о концепции и выведении модели Блэка-Литтермана, смотрите раздел Приложения Модель Блэка-Литтермана в Байесовской среде.
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);
Мнения представляют субъективные взгляды инвестиционного аналитика на будущие изменения рынка, выраженные как , где v - общее количество просмотров. Для получения дополнительной информации см. раздел «Допущения и представления» Приложения. С v видами и k активами, является v-на-k матрицей, является вектором v-на-1, и является диагональной матрицей v на v (представляющей независимую неопределенность во взглядах). Взгляды не обязательно должны быть независимыми между собой и структурой может быть выбран для учета неопределенности инвестиционного аналитика во взглядах [4]. Чем меньше, тем в , чем меньше отклонение в распределении i-го представления и тем более или более определенно i-й взгляд инвестора. Этот пример принимает три независимых представления.
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);
Модель Блэка-Литтермана делает предположение, что структура пропорционально ковариации . Поэтому, , где является малой константой. Меньшее указывает на более высокое доверие в предыдущем убеждении . В работе Хэ и Литтермана используется значение 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);
Используйте и входы для вычисления возврата и отклонения смешанных активов с помощью модели Блэка-Литтермана.
Вы можете вычислить и непосредственно при помощи этой матричной операции:
,
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.
Подразумеваемый возврат вычисляется обратной оптимизацией. Безрисковая ставка принята нулевой. Общая формулировка оптимизации портфеля задается задачей оптимизации Марковица: . Здесь - N-вектор активов N-элемента, - N-вектор возвратов активов N-элемента, является N-на-N ковариационной матрицей возвратов активов, и является положительным параметром отвращения к риску. Данный в отсутствие ограничений решение этой проблемы в закрытой форме . Поэтому с рыночным портфелем подразумеваемая ожидаемый возврат .
Чтобы вычислить подразумеваемый ожидаемый возврат, вам нужно .
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) Вычислите подразумеваемый ожидаемый возврат.
Принимая, что рыночный портфель максимизирует коэффициент Шарпа, подразумеваемый возврат, без эффектов от ограничений, вычисляется непосредственно как .
PI = delta*Sigma*wtsMarket;
end
Предположим, что инвестиционная вселенная состоит из k активов и вектора возвратов активов моделируется как случайная переменная, следуя многомерному нормальному распределению . - ковариация от исторических возвратов активов. Неизвестный параметр модели - ожидаемый возврат . С точки зрения байесовской статистики, модель Блэка-Литтермана пытается оценить путем объединения инвестиционных аналитических взглядов (или «наблюдений будущего») и некоторых предварительных знаний о .
В сложение примите предшествующее знание, что является обычно распределенной случайной переменной [1, 2]. При отсутствии каких-либо взглядов (наблюдений) априорное среднее вероятно, это будет равновесные возвраты, подразумеваемая из балансового портфеля. На практике применимым балансовым портфельным холдингом является не обязательно равновесный портфель, а, скорее, целевой оптимальный портфель, который инвестиционный аналитик использовал бы при отсутствии дополнительных мнений на рынке, таких как базовый показатель портфеля, индекс или даже текущий портфель. представляет неопределенность в предыдущей и модели Блэка-Литтермана делает предположение, что структура является . является небольшой константой, и многие авторы используют различные значения. Подробное обсуждение можно найти в [3].
Наблюдения необходимы, чтобы выполнить статистический вывод на . В модели Black-Litterman наблюдения представляют собой представления о будущих возвратах активов, выраженные на уровне портфеля. Точка зрения - ожидаемый возврат портфеля, состоящего из вселенной k активов. Обычно возврат портфеля имеет неопределенность, поэтому добавляется термин ошибки, чтобы поймать вылет. Предположим, что существует в общей сложности v представлений. Для представления , является вектором-строкой с размерностью 1 x k, и является скаляром [2].
=
Вы можете сложить v-образные представления вертикально, и - ковариация неопределенностей со всех точек зрения. Предположим, что неопределенности независимы.
.
Обратите внимание, что не обязательно должна быть матрицей диагонали. Инвестиционный аналитик может выбрать структуру для учета их неопределенности в мнениях [4].
При предыдущем допущении , из этого следует, что
.
На основе байесовской статистики известно, что:.
В контексте модели Блэка-Литтермана, выражается как * где каждый байесовский термин определяется следующим образом [2]:
Вероятность того, насколько вероятно, что эти взгляды произойдут и выражается как
Предыдущий принимает предшествующее знание, что и выражается как
Апостериор является распределением заданные взгляды и выражается как
Как указывалось ранее, апостериорное распределение также является нормальным распределением. Выполняя квадраты, можно вывести апостериорное среднее и ковариационное как , .
Наконец, путем объединения байесовского апостериорного распределения и модель возвратов активов , затем у вас есть апостериорное предсказание возвратов активов как .
Уолтерс, Дж. «The Black-Litterman Model in Details». 2014. Доступно в SSRN: https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1314585.
Кольм, П. Н., и Риттер, Г. «О байесовской интерпретации чёрно-литтермана». Европейский журнал операционных исследований. Том 258, № 2, 2017, с. 564-572.
Аттилио, М. «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.
Ульф, Х. «Вычисление подразумевает возвраты в значимом смысле». Журнал управления активами. Том 6, Номер 1, 2005, стр. 53-64.
addGroups
| estimateAssetMoments
| estimateBounds
| estimateFrontierByRisk
| estimateFrontierLimits
| estimatePortRisk
| plotFrontier
| Portfolio
| setAssetMoments
| setBounds