exponenta event banner

addEquality

Добавление ограничений линейного равенства для весов портфеля к существующим ограничениям

Описание

пример

obj = addEquality(obj,AEquality,bEquality) добавляет ограничения линейного равенства для весов портфеля к существующим ограничениям для Portfolio, PortfolioCVaR, или PortfolioMAD объекты. Для получения подробной информации о соответствующих рабочих процессах при использовании этих различных объектов см. Workflow-процесс объекта портфеля, Workflow-процесс объекта Portfolio CVaR и Workflow-процесс объекта Portfolio MAD.

Задана матрица ограничений линейного равенства AEquality и вектор bEquality, каждый вес в портфеле Port должны удовлетворять следующим требованиям:

AEquality * Port = bEquality

Эта функция «укладывает» дополнительные линейные ограничения равенства в любые существующие линейные ограничения равенства, которые существуют в объекте входного портфеля. Если ограничений не существует, этот метод аналогичен setEquality.

Примеры

свернуть все

Используйте addEquality метод создания линейных ограничений равенства. Добавьте еще одно линейное ограничение равенства для обеспечения того, чтобы последние три актива составляли 50% портфеля.

p = Portfolio;
A = [ 1 1 1 0 0 ];    % First equality constraint
b = 0.5;
p = setEquality(p, A, b);

A = [ 0 0 1 1 1 ];    % Second equality constraint
b = 0.5;
p = addEquality(p, A, b);

disp(p.NumAssets);
     5
disp(p.AEquality);
     1     1     1     0     0
     0     0     1     1     1
disp(p.bEquality);
    0.5000
    0.5000

Используйте addEquality метод создания линейных ограничений равенства. Добавьте еще одно линейное ограничение равенства для обеспечения того, чтобы последние три актива составляли 50% портфеля.

p = PortfolioCVaR;
A = [ 1 1 1 0 0 ];    % First equality constraint
b = 0.5;
p = setEquality(p, A, b);

A = [ 0 0 1 1 1 ];    % Second equality constraint
b = 0.5;
p = addEquality(p, A, b);

disp(p.NumAssets);
     5
disp(p.AEquality);
     1     1     1     0     0
     0     0     1     1     1
disp(p.bEquality);
    0.5000
    0.5000

Используйте addEquality метод создания линейных ограничений равенства. Добавьте еще одно линейное ограничение равенства для обеспечения того, чтобы последние три актива составляли 50% портфеля.

p = PortfolioMAD;
A = [ 1 1 1 0 0 ];    % First equality constraint
b = 0.5;
p = setEquality(p, A, b);

A = [ 0 0 1 1 1 ];    % Second equality constraint
b = 0.5;
p = addEquality(p, A, b);

disp(p.NumAssets);
     5
disp(p.AEquality);
     1     1     1     0     0
     0     0     1     1     1
disp(p.bEquality);
    0.5000
    0.5000

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

свернуть все

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

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

Линейные ограничения равенства, заданные как матрица.

Примечание

Ошибка возникает, если AEquality пуст и bEquality является непустым.

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

Линейные ограничения равенства, заданные как вектор.

Примечание

Ошибка возникает, если bEquality пуст и AEquality является непустым.

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

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

свернуть все

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

Совет

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

    obj = obj.addEquality(AEquality, bEquality)

  • Можно также удалить ограничения линейного равенства из объекта портфеля с помощью точечной нотации.

    obj = obj.setEquality([ ], [ ])

Представлен в R2011a