上篇文章:《可视化股票市场结构||沪深300股票聚类可视化》逐行代码解释了sklearn中的一个案例:可视化股票市场结构。案例中采用的数据是美股。这篇文章将其移植到A股市场,看看我们的沪深300股票市场结构如何。采用的分类及可视化手段与sklearn案例完全一样。
沪深300指数1是由上海和深圳证券市场中选取市值大、流动性好的300支A股作为样本编制而成的成份股指数。沪深300指数样本覆盖了沪深市场六成左右的市值,具有良好的市场代表性。由中证指数有限公司2编制负责。
可以通过tushare获取:
- 首先获取沪深300成分列表
- 再获取个股历史纪录,只保留时间、开盘价、收盘价,截取2017年到2019年间数据
import numpy as np
import matplotlib.pyplot as plt
import tushare as ts
hs_datas = ts.get_hs300s()
symbols_name = np.array(hs_datas['name'])
symbols_code = np.array(hs_datas['code'])
quotes = []
for index, code in enumerate(symbols_code):
stock_data = ts.get_hist_data(code, start='2017-01-01', end='2019-01-01')
stock_data.sort_values(by=['date'], inplace=True)
stock_data.reset_index(inplace=True)
stock_data = stock_data[['date', 'open', 'close']]
quotes.append(stock_data)
row_now = hs_datas[hs_datas['code'] == code]
name = row_now.iloc[0]['name']
print('已获取第', index + 1, '只股:', code, name, '2017-01-01 到 2019-01-01的历史数据&