новичок в форуме, поэтому, надеюсь, этот вопрос объяснен правильно.
Я пытаюсь создать оптимизированный портфель, используя Scipy, импортировав таблицу Excel (пример ниже). Цель состоит в том, чтобы минимизировать отрицательное отношение ожидаемой доходности к фактору риска (т. Е. - ожидаемая доходность / фактор риска).
+-------------+--------------+-----------------+-------------+
| Asset_Class | Asset_Class2 | Expected Return | Risk Factor |
+-------------+--------------+-----------------+-------------+
| Govt | Sov | 0.6% | 0.5% |
| Govt | Muni | 1.3% | 0.5% |
| Govt | Supra | 1.5% | 0.5% |
| Corp | HY | 10.0% | 20.0% |
| Corp | Financials | 1.6% | 5.0% |
| Corp | Industrials | 1.3% | 5.0% |
| Corp | Utilites | 1.8% | 5.0% |
| Corp | EM | 6.0% | 10.0% |
| Equity | Growth | 8.0% | 30.0% |
| Equity | Value | 6.0% | 20.0% |
+-------------+--------------+-----------------+-------------+
Проблема, с которой я столкнулся, заключается в том, что мне нужно наложить ограничения на портфель на Уровень «Asset_Class», поэтому, например, сумма весов, применяемых к ковшу Sov, Muni & Supra, должна составлять> 10% и <100%. Ниже приведен пример таблицы пределов. </p>
+-------------+-----------+------------+
| Asset_Class | Low_Limit | High_Limit |
+-------------+-----------+------------+
| Govt | 10% | 100% |
| Corp | 10% | 60% |
| Equity | 0% | 10% |
+-------------+-----------+------------+
Есть идеи, как можно ограничить веса на сгруппированном уровне? Спасибо за вашу помощь!
Редактировать: ожидаемый результат будет кадром данных, сгруппированным по 'Asset_Class2' (или 'Asset_Class'), пример ниже, с ожидаемым доходом и риском, также выводимым.
+--------------+--------+
| Asset_Class2 | Weight |
+--------------+--------+
| Sov | 0.2 |
| Supra | 0.1 |
| HY | 0.15 |
| Financials | 0.2 |
| Industrials | 0.015 |
| Utilities | 0.1 |
| EM | 0.185 |
| Growth | 0.02 |
| Value | 0.03 |
+--------------+--------+
+--------------------------+-------+
| Weighted Expected Return | 0.041 |
| Weighted Risk Factor | 0.112 |
+--------------------------+-------+