優化
具有最大交易數量限制的投資組合優化
我目前正在執行線性優化並最大化每個資產的(權重*分數)總和。
我在難以交易的資產上執行它,而宇宙每個月很容易大約有 2000 個。我的公司有能力交易其中只有大約 100 個。
我如何為資產引入最大數量的交易限制?我正在考慮引入二進制變數來指示是否為每種資產進行交易,但我不確定如何將其連結回原始目標函式
問候詹姆斯
這是一類稱為混合整數線性規劃 (MILP) 的問題。您可以通過權重的邊界約束將資產數量(基數)的限制連結回目標函式。
讓 $ w_i $ 是權重和 $ s_i $ 分數。讓 $ w_i^{max} $ 和 $ w_i^{min} $ 是資產的最大和最小允許重量 $ i $ . 引入變數 $ z_i\in{0,1} $ 表明資產是否 $ i $ 在投資組合中,讓 $ K $ 是投資組合中資產的最大數量。
最大化目標是
$$ max(w_i) \sum_i w_is_i $$ 在權重約束下 $$ z_iw_i^{min}\leq w_i \leq z_iw_i^{max} $$ 和基數約束 $$ \sum_i z_i \leq K $$ 權重約束保證 $ w_i $ 為零時 $ z_i $ 為零。有幾個數值包可用於解決此類優化,例如 Python 中的 CVXOPT 或 Matlab 中的 intlinprog。