Как численно решить максимальный вектор с ограничениями?

#r #finance #numerical-methods #portfolio

Вопрос:

Я занимаюсь финансовым инжинирингом в R и хочу создать портфель, нейтральный к рынку. В моем портфеле 10 активов, бета-версии которых известны (обозначаются b1,b2,…b10), и доходность также известна (r1, r2,…r10). Моя цель-оптимизировать доходный портфель путем корректировки весов, которые могут быть положительными или отрицательными. У меня есть 2 веса, которые уже известны: w1=2 и w10=-1 (короткие). Ограничения заключаются в следующем :

 2*b1 w2*b2 w3*b3 w4*b4 w5*b5 w6*b6 w7*b7 w8*b8 w9*b9-b10=0  

и

 2 w2 w3 w4 w5 w6 w7 w8 w9-1 = 1 (The sum of weights equal 1)  

уравнение для максимизации таково :

 max(R = 2r1 w2r2 w3r3 w4r4 w5r5 w6r6 w7r7 w8r8 w9r9-r10)  

Я хотел решить численно с assignining матрицы весов со значением от (-10 до 10) по каждому из 8 неизвестный w2 to w9 и назначение другого цвета, если combinaison не соответствует ограничениям, но мне было интересно, если есть пакет, который позволит мне вычислить его, не пройти мимо сложная матрица формирования.

 betas=c(0.6118876,0.7376193,0.8401905,0.9746638,1.022843,1.097142,1.166615,1.274656,1.389989,1.604495) returns = c(1.103170e-01,1.054401e-01,1.140598e-01,1.243254e-01,1.100530e-01,1.188003e-01,1.008402e-01,1.215204e-01,1.040005e-01,9.985965e-02) w1=2 w10=-1