Ограничения группового отношения являются необязательными линейными ограничениями, которые поддерживают границы пропорциональных отношений между группами активов (см. раздел Ограничения группового отношения). Хотя ограничения реализуются как общие ограничения, обычное соглашение заключается в определении пары матриц групп, которые идентифицируют членство каждого актива в определенных группах с булевыми индикаторами (либо true или false или с 1 или 0) для каждого элемента в каждой из групповых матриц. Цель состоит в обеспечении того, чтобы отношение базовой группы к группе сравнения находилось в пределах заданных границ. Ограничения группового отношения имеют свойства:
GroupA для базовой матрицы членства
GroupB для матрицы членства сравнения
LowerRatio для ограничения нижней границы отношения групп
UpperRatio для ограничения верхней границы отношения групп
PortfolioMAD ФункцияСвойства ограничений группового отношения задаются с помощью PortfolioMAD объект. Например, предположим, что соотношение финансовых и нефинансовых компаний в портфелях никогда не должно превышать 50%. Предположим, что у вас есть шесть активов с тремя финансовыми компаниями (активы 1-3) и три нефинансовые компании (активы 4-6). Для установки ограничений группового отношения:
GA = [ 1 1 1 0 0 0 ]; % financial companies GB = [ 0 0 0 1 1 1 ]; % nonfinancial companies p = PortfolioMAD('GroupA', GA, 'GroupB', GB, 'UpperRatio', 0.5); disp(p.NumAssets) disp(p.GroupA) disp(p.GroupB) disp(p.UpperRatio)
6 1 1 1 0 0 0 0 0 0 1 1 1 0.5000
Групповые матрицы GA и GB в этом примере могут быть логические матрицы с true и false элементы, которые дают одинаковый результат:
GA = [ true true true false false false ]; % financial companies GB = [ false false false true true true ]; % nonfinancial companies p = PortfolioMAD('GroupA', GA, 'GroupB', GB, 'UpperRatio', 0.5); disp(p.NumAssets) disp(p.GroupA) disp(p.GroupB) disp(p.UpperRatio)
6 1 1 1 0 0 0 0 0 0 1 1 1 0.5000
setGroupRatio и addGroupRatio ФункцииМожно также задать свойства для ограничений группового отношения с помощью setGroupRatio. Например, предположим, что соотношение финансовых и нефинансовых компаний в портфелях никогда не должно превышать 50%. Предположим, что у вас есть шесть активов с тремя финансовыми компаниями (активы 1-3) и три нефинансовые компании (активы 4-6). Дано PortfolioMAD объект p, использовать setGroupRatio для установки групповых ограничений:
GA = [ true true true false false false ]; % financial companies GB = [ false false false true true true ]; % nonfinancial companies p = PortfolioMAD; p = setGroupRatio(p, GA, GB, [], 0.5); disp(p.NumAssets) disp(p.GroupA) disp(p.GroupB) disp(p.UpperRatio)
6 1 1 1 0 0 0 0 0 0 1 1 1 0.5000
LowerRatio свойство должно быть пустым ([]).Предположим, что вы хотите добавить еще одно ограничение группового соотношения, чтобы гарантировать, что веса в нечетных активах составляют не менее 20% весов в нефинансовых активах вашего портфеля. Можно настроить матрицы дополненных групповых соотношений и ввести бесконечные границы для неограниченных групповых соотношений или использовать addGroupRatio функция для создания ограничений группового отношения. В этом примере создайте другую матрицу группы для второго ограничения группы:
p = PortfolioMAD; GA = [ true true true false false false ]; % financial companies GB = [ false false false true true true ]; % nonfinancial companies p = setGroupRatio(p, GA, GB, [], 0.5); GA = [ true false true false true false ]; % odd-numbered companies GB = [ false false false true true true ]; % nonfinancial companies p = addGroupRatio(p, GA, GB, 0.2); disp(p.NumAssets) disp(p.GroupA) disp(p.GroupB) disp(p.LowerRatio) disp(p.UpperRatio)
6 1 1 1 0 0 0 1 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1 -Inf 0.2000 0.5000 Inf
addGroupRatio определяет неограниченные границы, поэтому необходимо сосредоточиться только на ограничениях, которые требуется задать.PortfolioMAD объект, setGroupRatio, и addGroupRatio реализовать скалярное расширение для LowerRatio или UpperRatio свойства, основанные на размерности матриц группы в GroupA и GroupB свойства.
PortfolioMAD | setBounds | setBudget | setDefaultConstraints | setEquality | setGroupRatio | setGroups | setInequality | setOneWayTurnover | setTurnover