setBudget

Настройка бюджетных ограничений

Описание

пример

obj = setBudget(obj,LowerBudget) настраивает бюджетные ограничения для Portfolio, PortfolioCVaR, или PortfolioMAD объекты. Для получения дополнительной информации о соответствующих рабочих процессах при использовании этих различных объектов смотрите Рабочий процесс объекта портфеля, Рабочий процесс объекта PortfolioCVaR и Рабочий процесс объекта PortfolioMAD.

пример

obj = setBudget(obj,LowerBudget,UpperBudget) настраивает бюджетные ограничения для объектов портфеля с дополнительной опцией для UpperBudget.

Примеры

свернуть все

Предположим, что у вас есть фонд, который позволяет до 10% плеча, что означает, что ваш портфель может быть от 100% до 110% вложен в рисковые активы. Задан объект Portfolio p, установите ограничение бюджета.

p = Portfolio;
p = setBudget(p, 1, 1.1);
disp(p.LowerBudget);
     1
disp(p.UpperBudget);
    1.1000

Предположим, что у вас есть фонд, который позволяет до 10% плеча, что означает, что ваш портфель может быть от 100% до 110% вложен в рисковые активы. Задан объект портфеля CVaR p, установите ограничение бюджета.

p = PortfolioCVaR;
p = setBudget(p, 1, 1.1);
disp(p.LowerBudget);
     1
disp(p.UpperBudget);
    1.1000

Предположим, что у вас есть фонд, который позволяет до 10% плеча, что означает, что ваш портфель может быть от 100% до 110% вложен в рисковые активы. Заданный объект PortfolioMAD p, установите ограничение бюджета.

p = PortfolioMAD;
p = setBudget(p, 1, 1.1);
disp(p.LowerBudget);
     1
disp(p.UpperBudget);
    1.1000

Определите среднее значение и ковариацию возвратов активов риска.

m = [ 0.05; 0.1; 0.12; 0.18; ];
C = [ 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];

Создайте Portfolio объект, определяющий безрисковую ставку.

p = Portfolio('RiskFreeRate',0.03, 'assetmean', m, 'assetcovar', C, ...
'lowerbudget', 1, 'upperbudget', 1, 'lowerbound', 0);

Создайте несколько Portfolio объекты с различными бюджетами на рискованных активах. Определяя рисковые активы, можно контролировать, сколько вложено в безрисковый актив.

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

plotFrontier(p); hold on; 
plotFrontier(p1);hold on;
plotFrontier(p2);
legend('Without risk-free asset', 'With risk-free asset in range [0,1]', 'With risk-free asset in range [0, 0.3]', 'location', 'best');

Figure contains an axes. The axes with title \bfEfficient Frontier contains 3 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].

setBudget определяет границу для общих весов для распределенных рискованных активов, а оставшаяся часть автоматически является границей для безрискового актива. Использование setBudget для контроля уровня разрешенного распределения в безрисковый актив. Для получения дополнительной информации об использовании setBudget с безрисковым активом см. «Кредитное плечо в Оптимизации портфеля с безрисковым активом».

Входные параметры

свернуть все

Объект для портфеля, заданный с помощью Portfolio, PortfolioCVaR, или PortfolioMAD объект. Для получения дополнительной информации о создании объекта портфеля см.

Типы данных: object

Нижняя граница для ограничения бюджета, заданная как скаляр для Portfolio, PortfolioCVaR, или PortfolioMAD входной объект (obj).

Примечание

Заданные ограничения для ограничения бюджета в любом из LowerBudget или UpperBudgetбюджетные ограничения требуют любого портфеля в Port чтобы удовлетворить:

LowerBudget <= sum(Port) <= UpperBudget

Одно или оба ограничения могут быть заданы. Обычное бюджетное ограничение для полностью инвестированного портфеля состоит в том, чтобы иметь LowerBudget = UpperBudget = 1. Однако, если портфель имеет распределение наличными, бюджетные ограничения могут использоваться для определения ограничений наличности. Например, если портфель может удерживать от 0% до 10% наличными, бюджетное ограничение будет настроено с

obj = setBudget(obj, 0.9, 1)

Типы данных: double

Верхняя граница для ограничения бюджета, заданная как скаляр для Portfolio, PortfolioCVaR, или PortfolioMAD входной объект (obj).

Примечание

Заданные ограничения для ограничения бюджета в любом из LowerBudget или UpperBudgetбюджетные ограничения требуют любого портфеля в Port чтобы удовлетворить:

LowerBudget <= sum(Port) <= UpperBudget

Одно или оба ограничения могут быть заданы. Обычное бюджетное ограничение для полностью инвестированного портфеля состоит в том, чтобы иметь LowerBudget = UpperBudget = 1. Однако, если портфель имеет распределение наличными, бюджетные ограничения могут использоваться для определения ограничений наличности. Например, если портфель может удерживать от 0% до 10% наличными, бюджетное ограничение будет настроено с

obj = setBudget(obj, 0.9, 1)

Типы данных: double

Выходные аргументы

свернуть все

Обновленный объект портфеля, возвращенный как Portfolio, PortfolioCVaR, или PortfolioMAD объект. Для получения дополнительной информации о создании объекта портфеля см.

Совет

Можно также использовать запись через точку для настройки бюджетных ограничений.

obj = obj.setBudget(LowerBudget, UpperBudget);

Введенный в R2011a