В этом примере показано, как использовать setBudget для функции Portfolio для определения пределов на sum(AssetWeight_i) в рискованных активах.
Если sum(AssetWeight_i) меньше, чем 1дополнительные денежные средства инвестируются в безрисковый актив. Если sum(AssetWeight_i) больше, чем 1, что означает, что общие инвестиции в рискованные активы больше, чем первоначальные доступные денежные средства, безрисковые активы сокращаются (заимствуются) для финансирования дополнительных инвестиций в рискованные активы. Стоимость, связанная с заимствованием безрискового актива, автоматически фиксируется в модели оптимизации среднего отклонения для Portfolio класс. Поэтому вы можете использовать setBudget непосредственно контролировать уровень левериджа денежных средств для портфеля.
Рассмотрим следующий пример, который не использует безрисковый актив.
assetsMean = [ 0.05; 0.1; 0.12; 0.18; ];
assetCovar = [ 0.0064 0.00408 0.00192 0;
0.00408 0.0289 0.0204 0.0119;
0.00192 0.0204 0.0576 0.0336;
0 0.0119 0.0336 0.1225];
riskFreeRate = 0.03;
% create a portfolio and define risk-free rate.
p = Portfolio('RiskFreeRate', riskFreeRate, 'assetmean', assetsMean, 'assetcovar', assetCovar, 'lowerbound', 0);
Создание нескольких портфелей с различными бюджетами на рискованные активы для контроля пределов инвестиций в безрисковые активы.
p = setBudget(p, 1, 1); % allow 0% risk free asset allocation, meaning fully invested in risky assets p1 = setBudget(p, 0, 1); % allow 0% to 100% risk free asset allocation p2 = setBudget(p, 0.7, 1); % allow 0% to 30% risk free asset allocation [risk, retn] = estimatePortMoments(p, estimateMaxSharpeRatio(p)); figure; plotFrontier(p); hold on; plotFrontier(p1);hold on; plotFrontier(p2); hold on; plot(risk, retn, 'g*'); hold off; legend('without risk-free asset', ... 'with risk-free asset in range [0,1]', ... 'with risk-free asset in range [0, 0.3]', ... 'Max Sharpe Ratio', 'location','southeast');
![Figure contains an axes. The axes with title \bfEfficient Frontier contains 4 objects of type line. These objects represent without risk-free asset, with risk-free asset in range [0,1], with risk-free asset in range [0, 0.3], Max Sharpe Ratio.](../examples/finance/win64/LeverageInPortfolioOptimWithRiskFreeAssetExample_01.png)
В эффективных границах на приведенном выше рисунке нижняя левая часть красной эффективной границы для портфеля с безрисковым активом находится в диапазоне [0,1] и фактически является линией распределения капитала (CAL). Наклон этой линии является максимальным соотношением Шарпа в портфеле, что демонстрирует, как отдача лучше всего присуждается, принимая на себя дополнительный риск. Верхняя правая часть красной эффективной линии границы аналогична полностью инвестированному портфелю (синяя линия). Как только портфель пересекает точку коэффициента Шарпа, портфель полностью инвестируется, и больше нет наличных средств, чтобы позволить высокую доходность с учетом риска после прямого CAL. Однако, если заимствование безрискового актива разрешено, можно эффективно использовать средства от заимствования безрискового актива для инвестирования в более рискованные активы, как показано в разделе «Портфель с левереджем».
Чтобы финансировать инвестиции в рискованные активы, рассмотрите возможность использования левереджа путем заимствования безрискового актива. Portfolio класс позволяет использовать леверидж при распределении основных средств, когда в портфеле доступно безрисковое основное средство.
Сначала проверьте, RiskFreeRate для свойства Portfolio объект ненулевой.
p
p =
Portfolio with properties:
BuyCost: []
SellCost: []
RiskFreeRate: 0.0300
AssetMean: [4x1 double]
AssetCovar: [4x4 double]
TrackingError: []
TrackingPort: []
Turnover: []
BuyTurnover: []
SellTurnover: []
Name: []
NumAssets: 4
AssetList: []
InitPort: []
AInequality: []
bInequality: []
AEquality: []
bEquality: []
LowerBound: [4x1 double]
UpperBound: []
LowerBudget: 1
UpperBudget: 1
GroupMatrix: []
LowerGroup: []
UpperGroup: []
GroupA: []
GroupB: []
LowerRatio: []
UpperRatio: []
MinNumAssets: []
MaxNumAssets: []
BoundType: []
В этом Portfolio объект, нижний и верхний бюджеты оба 1. Должны быть установлены лимиты на общий объем инвестиций в рискованные активы. Заимствование безрискового актива финансирует дополнительные инвестиции в рискованные активы. Использовать setBudget установить нижнюю и верхнюю границы для установки пределов заемных безрисковых активов.
p = setBudget(p, 1, 1); % allow 0% risk free asset allocation, meaning fully invested in risky assets p3 = setBudget(p, 1, 1.3); % allow 0% risk free asset allocation, and allow borrowing of risk free asset to reach up to 30% leverage p4 = setBudget(p, 1.3, 2); % allow 0% risk free asset allocation, and allow borrowing of risk free asset to have at least 30% leverage and max 100% leverage [risk, retn] = estimatePortMoments(p, estimateMaxSharpeRatio(p)); figure plotFrontier(p); hold on; plotFrontier(p1);hold on; plotFrontier(p3); hold on; plotFrontier(p4); hold on; plot(risk, retn, 'g*'); hold off; legend('without risk free asset', ... 'with risk free asset in range [0,1]', ... 'with risk free asset in range [-0.3, 0]', ... 'with risk free asset in range [-1.0, -0.3]',... 'Max Sharpe Ratio', 'location','southeast');
![Figure contains an axes. The axes with title \bfEfficient Frontier contains 5 objects of type line. These objects represent without risk free asset, with risk free asset in range [0,1], with risk free asset in range [-0.3, 0], with risk free asset in range [-1.0, -0.3], Max Sharpe Ratio.](../examples/finance/win64/LeverageInPortfolioOptimWithRiskFreeAssetExample_02.png)
На этом рисунке верхняя правая часть как оранжевой, так и фиолетовой эффективной границы простирается от CAL (нижняя левая красная линия) из-за влияния безрискового актива. Получаются те же самые уровни доходности, присуждаемой за риск. Как только портфель исчерпает максимально допустимый леверидж, эффективная граница снова начинает опускаться ниже CAL, что приводит к портфелям с более низкими коэффициентами Шарпа.
addGroups | estimateAssetMoments | estimateBounds | estimateFrontierByRisk | estimateFrontierLimits | estimatePortRisk | plotFrontier | Portfolio | setAssetMoments | setBounds