我有一个Portfolio,几百个股票,现在要max return
subject to:
0-1% 权重内的股票数要在50-100个之间
1%-3%的在20-50个之间
3%-5%的在10-15个之间
(这里的数字都是假设)
怎么做?
我想出一种做法,就是max y, y = A*x - 1000*变量m, A是return, x是需要求的
allocation
然后sub function里面m就是indicator, 目的是得到这个么矩阵
0-1 1-3 3-5
1 0 0
1 0 0
1 0 0
0 1 0
0 1 0
0 1 0
0 0 1
0 0 1
0 0 1
。。。。。。。
然后列相加,如果每一列都在给定范围内,这列=0,不然=1
变量m = 3列数据的总和,这样optimizor就是尽量让m=0。
但是老板说我这个求法不一定global optimal。一定要用linprog,让我在A和x里面直接动手脚,不要在加
Integer变量,有解么?