addEquality

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

Описание

пример

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