addInequality

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

Описание

пример

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

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

AInequality * Port = bInequality

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

Примеры

свернуть все

Установите линейное ограничение неравенства гарантировать, что первые три актива составляют самое большее 50% портфеля. Затем добавьте другое линейное ограничение неравенства, чтобы гарантировать, что последние три актива составляют по крайней мере 50% портфеля.

p = Portfolio;
A = [ 1 1 1 0 0 ];    % first inequality constraint
b = 0.5;
p = setInequality(p, A, b);

A = [ 0 0 -1 -1 -1 ];    % second inequality constraint
b = -0.5;
p = addInequality(p, A, b);

disp(p.NumAssets);
     5
disp(p.AInequality);
     1     1     1     0     0
     0     0    -1    -1    -1
disp(p.bInequality);
    0.5000
   -0.5000

Установите линейное ограничение неравенства гарантировать, что первые три актива составляют самое большее 50% портфеля. Затем добавьте другое линейное ограничение неравенства, чтобы гарантировать, что последние три актива составляют по крайней мере 50% портфеля.

p = PortfolioCVaR;
A = [ 1 1 1 0 0 ];    % first inequality constraint
b = 0.5;
p = setInequality(p, A, b);

A = [ 0 0 -1 -1 -1 ];    % second inequality constraint
b = -0.5;
p = addInequality(p, A, b);

disp(p.NumAssets);
     5
disp(p.AInequality);
     1     1     1     0     0
     0     0    -1    -1    -1
disp(p.bInequality);
    0.5000
   -0.5000

Установите линейное ограничение неравенства гарантировать, что первые три актива составляют самое большее 50% портфеля. Затем добавьте другое линейное ограничение неравенства, чтобы гарантировать, что последние три актива составляют по крайней мере 50% портфеля.

p = PortfolioMAD;
A = [ 1 1 1 0 0 ];    % first inequality constraint
b = 0.5;
p = setInequality(p, A, b);

A = [ 0 0 -1 -1 -1 ];    % second inequality constraint
b = -0.5;
p = addInequality(p, A, b);

disp(p.NumAssets);
     5
disp(p.AInequality);
     1     1     1     0     0
     0     0    -1    -1    -1
disp(p.bInequality);
    0.5000
   -0.5000

Входные параметры

свернуть все

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

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

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

Примечание

Ошибка заканчивается если AInequality пусто и bInequality непусто.

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

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

Примечание

Ошибка заканчивается если bInequality пусто и AInequality непусто.

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

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

свернуть все

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

Советы

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

    obj = obj.addInequality(AInequality, bInequality)

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

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

Введенный в R2011a