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