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