投資組合優化
維護投資組合權重的優化算法
我正在編寫一個算法,輸出我必須為每種產品購買的股票數量,以便盡可能接近我的目標權重。
我在考慮這個最小化問題:
$$ \min_{x_i}\sum_{i=0}^n (x_i - \frac{T * W_i}{P_i})^2 $$
帶約束:
- $ \sum_{i=0}^n x_i * P_i < T $
- $ x_0, x_1, …,x_n $ 是非負整數
在哪裡:
- 有 $ n $ 不同的產品
- $ x_i $ 是(非負)整數,表示持有的數量(不允許小數股票)
- $ T $ 是我此時可以投資的(非負)總金額
- $ W_i $ 是我對每種產品的(非負)目標重量
- $ P_i $ 是產品的(非負)最後收盤價
我想知道是否有一個封閉的公式來解決這樣的問題,或者我應該研究什麼樣的數值技術。
現在我不考慮暴力解決方案。
(如果您提到可以在這裡提供幫助的輕量級 C++ 庫,則可以加分)
您建議的問題使共享數量的差異最小化。如果您正在考慮的產品的股價差異很大,這可能會導致不良結果。我建議您盡量減少投資美元的差異,這將為您提供最接近您的目標的投資組合。
所以目標函式將變為:
$ x_i * P_i - T * W_i $
這是一個混合整數優化問題。你可以使用: