2010-04-15 22 views
0

高級目標是選擇10只彼此具有最低相關性的股票, ,這樣我可以有一個多元化的投資組合。使用Excel VBA,考慮到50只股票的每日價格,選擇10只股票以使它們具有最小相關性

我已經設法編寫了一些VBA宏從雅虎財務下載過去3年的每日價格數據,然後使用每日收盤數據計算50x50相關矩陣(使用Correl函數)。

我迄今試圖只是一些局部的最大啓發:

  • 對於具有相互的相關性最高的兩隻股票,刪除其中的一個。在兩者之間,刪除與所有其他股票的平均相關性更高的股票。
  • 當我從池中刪除一個股票,我只是刪除相應的行和列,給一個更小的矩陣。
  • 重複,直到我剩下10個股票(10x10矩陣)。

我想知道是否有一些算法,已經解決了這樣的問題,並給出了最佳的解決方案?

+0

沒有什麼比用你的儲蓄信任VBA腳本... – 2010-04-15 15:55:36

+1

好吧,嘿,VBA確實使用銀行家的舍入...... :) – 2010-04-15 16:01:22

回答

0

我不完全確定你的描述,但我想你想看看STDEV函數的幫助。更多信息還有here。大多數人使用它來篩選畸變,而你將篩選出非畸變(這也是一種非常常見的用法,例如在一批中識別「問題病例」)。

+0

我正在使用CORREL函數,而不是STDEV:http://office.microsoft .COM/EN-US/EXCEL/HP052090231033.aspx 假設A列有股票A的價格,塔B股票B的價格,我會使用計算相關: = CORREL(A:A,B:B) – correl 2010-04-15 18:08:16

+0

好的。對不起,我的無知,並感謝您的耐心! – Smandoli 2010-04-15 18:40:49

0

MATRIX包有一些有用的功能,這將讓你做的主成分分析(PCA),甚至獨立成分分析(ICA)做了較爲全面和有原則的辦法。