Работа с линейными ограничениями неравенства Используя объект портфеля

Линейные ограничения неравенства являются дополнительными линейными ограничениями, которые налагают системы неравенств на весах портфеля (см. Линейные Ограничения неравенства). Линейные ограничения неравенства имеют свойства AInequality для матрицы ограничения неравенства и bInequality для вектора ограничения неравенства.

Установка линейных ограничений неравенства Используя функцию Portfolio

Свойства для линейных ограничений неравенства установлены с помощью объекта Portfolio. Предположим, что у вас есть портфель пяти активов, и вы хотите гарантировать, что первые три актива - не больше, чем 50% вашего портфеля. Настраивать эти ограничения:

A = [ 1 1 1 0 0 ];
b = 0.5;
p = Portfolio('AInequality', A, 'bInequality', b);
disp(p.NumAssets);
disp(p.AInequality);
disp(p.bInequality);
5

1     1     1     0     0

0.5000

Установка линейных ограничений неравенства Используя setInequality и функции addInequality

Можно также установить свойства для линейных ограничений неравенства с помощью setInequality. Предположим, что у вас есть портфель пяти активов, и вы хотите гарантировать, что первые три актива составляют не больше, чем 50% вашего портфеля. Учитывая объект Portfolio p, используйте setInequality, чтобы установить линейные ограничения неравенства:

A = [ 1 1 1 0 0 ];
b = 0.5;
p = Portfolio;
p = setInequality(p, A, b);
disp(p.NumAssets);
disp(p.AInequality);
disp(p.bInequality);
5

1     1     1     0     0

0.5000

Предположим, что вы хотите добавить другое линейное ограничение неравенства, чтобы гарантировать, что последние три актива составляют по крайней мере 50% вашего портфеля. Можно настроить увеличенную систему линейных неравенств или использовать функцию addInequality, чтобы создать линейные ограничения неравенства. В данном примере создайте другую систему неравенств:

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);
disp(p.AInequality);
disp(p.bInequality);
5

1     1     1     0     0
0     0    -1    -1    -1

0.5000
-0.5000

Объект Portfolio, setInequality и addInequality реализуют скалярное расширение на свойстве bInequality на основе размерности матрицы в свойстве AInequality.

Смотрите также

| | | | | | | | | | |

Связанные примеры

Больше о

Внешние веб-сайты

Для просмотра документации необходимо авторизоваться на сайте