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