波動率

如何應用“背包問題”來最小化投資組合的波動性?

  • September 8, 2019

假設我有 100 隻股票的選股範圍。

我估計了這 100 隻股票的共變異數矩陣。

我想創建一個由 5 隻股票組成的等權重的籃子,它們的波動性可能最低。

我如何修改背包算法來解決這個問題?

我不能只使用標準算法,因為總波動率不是成分波動率的總和,但也涉及考慮相關性。

這個問題不夠有趣,因為將錢存入銀行可以保證零波動(以及零投資回報)。在實踐中,無論您選擇哪一組資產,您都會得到一個非常極端的解決方案(例如,100% 權重在一個波動性非常低的資產上。)

稍加調整,您就會得到一個非常有趣的問題。你可以限制你的投資組合至少有一個預期回報 $ R $ . 現在你得到一個均值變異數優化問題,具有基數約束:

$$ min ,,, w^TCw $$ 受制於$$ r^Tw = R $$ $$ w \ge 0 $$ $$ \Sigma w_i = 1 $$ 並且受制於“不超過 5 個權重非零(正)”。 在哪裡 $ C $ 是共變異數矩陣和 $ w $ 你的權重向量。有一種方法可以使用指示整數變數正式定義最後一個約束,但為了簡單起見,我在這裡不這樣做。

現在,問題的第二部分:這就是為什麼背包問題不是解決這個問題的合適方法。背包問題真的很難,因為它不允許分數解決方案。在投資組合優化中,您通常假設您可以擁有一小部分資產。

均值變異數優化是一個凸二次規劃(QP) 優化問題,可以使用許多廣泛可用的求解器快速求解。具有基數約束的均值變異數優化(例如,您必須在投資組合中恰好有 5 個資產)是一個更難的問題,即混合整數實數優化問題。

您可以使用啟發式方法獲得非常滿意的解決方案。這是一個策略:

  1. 解決沒有基數約束的均值變異數問題。解決方案通常是極端的,因為無論如何都有少量非零資產。
  2. 然後,您可以通過基數約束或使用啟發式方法(例如,可以基於銳化比率的排名——我相信這也是對偶變數的值)來獲得令人滿意的解決方案。

如果您想查看有關具有基數約束的均值變異數優化的論文,這裡是引用最多的論文之一:

基數約束投資組合優化的啟發式(T.-J. Chang, N. Meade, Beasley)

請注意,諸如遺傳算法之類的元啟發式在很大程度上是黑匣子,通過實施它們,您不會獲得有關基礎證券的太多教育價值。

如果您對相同的股票權重感到滿意,那麼這當然可以迭代地完成。我不知道任何封閉形式的方程。它適用於 100 隻股票的宇宙,但如果你想增加你的選擇宇宙,計算顯然會成倍增長。

隨機挑選五隻股票。

計算投資組合變異數。

然後有 4 * 95 = 380 種可能的替代投資組合,用您不擁有的 95 種中的一種替換目前的 5 種。其中每一個都有 25 個相關的共變異數(所有權重為 4%)= 9500 個數據點。大,但可行(並且很容易從完整的 covar 表中查找)

計算這些的變異數,並用 380 中的最低值替換目前。沖洗並重複,直到沒有一個變異數低於目前。這是從您的“背包”中取出並替換一個,直到您無法做得更好為止。

如果您允許不同的庫存重量,類似的過程將允許您執行相同的操作。您需要計算與上述相同的 380 個組合的最小變異數組合。由於這需要在每種情況下計算相關的 5x5 共變異數矩陣的逆矩陣,因此您必須循環直到完成整個循環而無需任何替換。

引用自:https://quant.stackexchange.com/questions/16507