addEquality

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

Синтаксис

obj = addEquality(obj,AEquality,bEquality)

Описание

пример

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

Учитывая линейную матрицу ограничений равенства 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

Для просмотра документации необходимо авторизоваться на сайте