大綱:
1.為什麼要計算股票相關性?
2.相關性計算實例怎麼用?
3.程式的流程與設計邏輯
4.相關性計算語法
5.範例下載與抓取原始報價
6.股價的每日漲跌幅怎麼計算?
7.對齊數據時間
8.計算相關性係數
9.畫出相關性點陣圖
10.數據與圖形怎麼解讀?
11.可能遇到的問題
為什麼要計算股票相關性?
有沒有想過怎麼觀察股票的相關性如何?例如手上有四檔股票,如果都是相同產業類型過相似的股票特性,當盤勢變動的時候,很有可能四檔股票都遇到走跌的情況,這樣帳面上的跌幅總讓人看了心情難過想哭。
一般人如果要算不同的個股跟ETF搭配的效果就不好計算了,應該沒有網站在提供這個計算數據。
例如有人喜歡台積電配聯電的投資組合,或是有人喜歡台積電配中華電的投資組合,甚至是有些人喜歡0056配0050 有些人喜歡00878配00692, 哪一種的投資搭配起來相關性較低?遇到大幅的系統跌幅時可以更抗跌?
通過計算就可以回測觀察出來,因為這個就是統計數據,一種歸納。只要公司產業、營收方向或ETF的篩選方法沒有大幅改變,可以合理推測未來的結果也會相近。
如果可以稍微做個組合搭配一下該有多好?也許尋找幾個相關性較低的股票來搭配一下,可以有效降低投資組合的波動程度。
很多網友在討論,中華電信很像是債券的特性,並不是說中華電信就是債券,而是指它跟大盤的相關性較低,通常跟大盤的相關性可以使用Beta值來判斷,Beta值的計算是比較複雜一點,有興趣的朋友可以參考Money DJ
網頁的介紹。
這篇就單純針對計算相關係數來看相關性,也透過簡單的範例來動手做個計算。這次一起學程式系列,就來計算一下股票的相關性係數。
關於有哪些投資組合,可以做搭配的討論,會另外放在【真定存股尋找之旅】中討論。
相關性計算實例怎麼用?
「相關性」這個名詞可能大家以前讀書有念過,基本的簡單定義就是用計算的方式算出兩組變量之間的關係,參考Investopedia的
定義,相關性是衡量兩種證券相互關聯程度的統計數據,相關性係數,其值必須介於 -1.0 和 +1.0。
不過這樣解釋起來太學術性,用簡單例子說明,參考spreadsheetpoint的
文章中有例子討論到員工週薪與員工滿意度的小例子,用這個範例來延伸講解一下。
一共有幾個情況,大家看圖跟說明,就可以理解相關性係數的計算應用,相信比起用生硬數學更容易理解,科學的統計不是只是考試用,而是可以真實應用在生活中,亦可以用來投資使用。
以下的情況是一間公司的統計數據,員工們都發的滿意度問卷,請大家填完後,做統計起來做分析,給公司經營者一個客觀數據做未來營運調整之用,我們用相關性計算來分析。
情況1跟情況2,從上面看起來,大多員工,薪水越多越滿意,但是工時越多越不開心。
情況三,OOOOOOOOOOOOOOOOOOO,本來付出越多就應該給更多報酬。
情況四,OOOOOOOOOOOOOOOOOOO哪個才是員工滿意度的關鍵?如果要留住人才應該要怎麼分析?
分別將不同的變數互相做相關性計算,就可以得知,員工對於工時還有薪水來說,因為OOOOOOOOOOOOOOOOOOO的相關性較OOOOOOOOOOOOOOOOOOO的相關性來的高,代表員工比較在乎月薪,工時反而次之。
聰明的老闆當你想要留住員工,你應該知道怎麼做了吧?當然真實的工作環境還要計算員工的實質產出能力,才會對於月薪該給多少,更能得到客觀的數據。
程式的流程與設計邏輯
1.抓取到股價原始資料
2.計算每日的漲跌幅
3.將兩檔股票的時間對齊
4.將相關性係數計算出來
5.繪製相關性圖形
6.數據與圖形怎麼解讀?
相關性計算語法
OOOOOOOOOOOOOOOOOOO
使用範本
OOOOOOOOOOOOOOOOOOO
語法
OOOOOOOOOOOOOOOOOOO
資料_y 代表相依資料陣列或矩陣的範圍。 data.
資料_x 代表獨立資料陣列或矩陣的範圍。 data.
如果當使用在股票上就可以對應如下:
OOOOOOOOOOOOOOOOOOO
範例下載與抓取原始報價
請參考範例下載,請記得另存副檔,勿修改內容
OOOOOOOOOOOOOOOOOOO
在上圖B1跟E1填上股票代號與B2跟E2填上觀察天數範圍,通過函數就可以抓取到。
在範例中,B2跟E2填上觀察天數範圍,請填上相同天數,B1跟E1當股號填完後,觀察G1跟G2的數值。為了後面抓取VLOOKUP 校正天數方便,請將B1填入數量數值較小的股號。
抓到股票的原始資料後,就可以接著後續的計算。
股價的每日漲跌幅怎麼計算?
OOOOOOOOOOOOOOOOOOO
將公式填好後下面的計算用滑鼠拉一下就可以複製公式。
對齊數據時間
為什麼要做數據時間的對齊?OOOOOOOOOOOOOOOOOOO
=IFERROR(VLOOKUP(A6,D$5:F$2000,1,0),"")
如此依此類推就可以將L欄跟M欄的資料都在D5到F2000這個資料面積中取出來。
計算相關性係數
在S2這格中,輸入計算相關性係數的函數
OOOOOOOOOOOOOOOOOOO
資料列式M列跟Q列,如此就可以計算出相關性係數0.87。
畫出相關性點陣圖
通過將簡單的等號,將左邊的資料放到T欄到V欄,接著使用畫圖的功能。就可以畫出如下的圖形,再加上自己喜歡的美編型式即可完工。
數據與圖形怎麼解讀?
接著藉由範例讓大家可以感受一下數據跟圖形的意義
從上面圖形可以明顯發現
1.觀察的時間週期有OOOOOOOOOOOOOOOOOOO年的時間,OOOOOOOOOOOOOOOOOOO,一般來說長期回測繪希望跨越至少過OOOOOOOOOOOOOOOOOOO,因此要客觀的分析的話,建議回測的時間框架至少大於這個時間範圍。
2.台積電與0050的相關性是0.86遠大於OOOOOOOOOOOOOOOOOOO。
若以0050當作大盤的代表,OOOOOOOOOOOOOOOOOOO。
3.相關性係數是一種OOOOOOOOOOOOOOOOOOO,可以通過這個計算結果比較一下不同組合之間的相關程度。
例如0050跟006208都是追蹤台灣五十指數,因此相關係數0.87。
而0056跟0050追蹤的指數不同,因此相關係數相較於0050與006208的係數來看,相關度較低也屬合理。
OOOOOOOOOOOOOOOOOOO
4.當比較的時候可以OOOOOOOOOOOOOOOOOOO,如此通過這個計算才能配出波動性較穩定或可靠的投資組合。
上面兩圖可知OOOOOOOOOOOOOOOOOOO抗跌效果會更好。
5.除了係數的計算外,圖形上也可以作為一種判讀標準
從上圖比對可以發現,對照組都是0050,此時OOOOOOOOOOOOOOOOOOO。可以通過圖形一目了然兩個標的之間的相關程度。
可能遇到的問題
1.日期要不要對的很準?
OOOOOOOOOOOOOOOOOOO。
2.除權息非還原股價可以計算嗎?
OOOOOOOOOOOOOOOOOOO
3.觀察的時間要多久?
OOOOOOOOOOOOOOOOOOO,只要抓得到收盤價來源資料一樣可以分析。
4.畫圖的時候,單日漲跌幅觀察的區間要設定多少?
台股一天的漲跌幅限制就是10%,因此圖形的觀察區間設定正負0.1就可以。若要套用到美股或其他市場則需要再做微調,以觀察的清楚圖形變化為主。
----
威利投資生活事Line社群,歡迎版友&聽友&程式用戶&育兒爸媽加入。