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

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

Установка линейных ограничений неравенства с помощью PortfolioCVaR Функция

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

A = [ 1 1 1 0 0 ];
b = 0.5;
p = PortfolioCVaR('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% вашего портфеля. Учитывая PortfolioCVaR p объекта, использование setInequality чтобы задать линейные ограничения неравенства:

A = [ 1 1 1 0 0 ];
b = 0.5;
p = PortfolioCVaR;
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 = 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)
disp(p.AInequality)
disp(p.bInequality)
5

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

0.5000
-0.5000

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

См. также

| | | | | | | | |

Похожие примеры

Подробнее о

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