其实投资股票分两种,一种是技术分析,一种是基本面分析(这不是废话吗?)。 在做基本面分析的时候除了要了解和分析报表外,还要计算各股票间的相关性和波动率。为啥?根据美国大牛学者研究得出,投资组合间的个股相关性越低,抵抗风险能力越强。记得我看到一篇56年发表的论文,大概20只股票就可以达到“相同的收益,更低的风险”的效果。
废话少说,TuShare是一个免费、开源的python财经数据接口包,有兴趣的童稚可以到www.tushare.org了解更多。
下面直接附上代码:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sun May 28 07:47:14 2017
@author: 分c君_BingWong
"""
import tushare as ts
from pandas import DataFrame
#先建立一个字典,用来存储股票对应的价格
all_data = {}
#遍历list里面的股票,可以写入多个股票
for ticker in ['601398', '601939', '601857', '600028']:
#获取各股票某时段的价格
all_data[ticker] = ts.get_k_data(ticker, '2015-01-01', '2017-05-26')
#用for循环遍历股票价格并转换为dataframe的形式
price = DataFrame({tic: data['close']
for tic, data in all_data.items()})
#计算股票价格每日变化
returns = price.pct_change()
#计算相关性
corr=returns.corr()
#计算协方差
cov=returns.cov()
print(corr)
print(con)