大まかな目標は、50 のプールの中から相互の相関が最も低い 10 銘柄を選択して、十分に分散されたポートフォリオを持つことができるようにすることです。
過去 3 年間の毎日の価格データを Yahoo ファイナンスからダウンロードする VBA マクロを作成し、毎日の終値をデータとして使用して (Correl 関数を使用して) 50x50 相関行列を計算することができました。
私がこれまでに試したことは、局所最大ヒューリスティックです。
- 相互に最も高い相関を持つ 2 つの株式について、そのうちの 1 つを削除します。2 つのうち、他のすべての株式との平均相関がより高い方を削除します。
- プールから株式を削除するときは、対応する行と列を削除して、より小さな行列を作成します。
- 在庫が 10 個になるまで繰り返します (10x10 の行列)。
このような問題をすでに解決し、最適な解決策を提供するアルゴリズムがあるかどうか疑問に思っていましたか?