exponenta event banner

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

Линейные ограничения неравенства являются необязательными линейными ограничениями, которые накладывают системы неравенства на веса портфеля (см. Линейные ограничения неравенства). Линейные ограничения неравенства имеют свойства 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

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

См. также

| | | | | | | | |

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

Подробнее

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