返回目录:经济新闻
指数分类的标准有很多,比如说按市场分、按投资标的分、按指数代表性分。从代表性来分类的话,一般可以分为有三类:综合指数、宽基指数、窄基指数。
综合指数是指成分股包含所有上市的股票,以反映全市场的状况,最典型的就是我们所熟知的上证指数、深证指数,其是观察市场整体走势的一个重要指标。我们国内的中证指数公司,就是专门构建各类指数,为投资者提供新的分析工具和投资标的。
今天的文章就集中在对于沪深 300、中证 500、中证 1000指数的量化解读方面,既然是量化,那么可视化必须是其中很重要一个组成部分,我们的文章会提供数据调取和可视化代码,供各位更好理解指数构成以及特性。
一、综合走势与波动率
>>> 沪深300指数
它以规模和流动性作为选样的两个根本标准,并赋予流动性更大的权重,符合该指数定位于交易指数的特点。300 指数反映的是流动性强和规模大的代表性股票的股价的综合变动,可以给投资者提供权威的投资方向,也便于投资者进行跟踪和进行投资组合,保证了指数的稳定性、代表性和可操作性。
>>> 中证500指数
该指数又称中证小盘 500 指数(CSI Smallcap 500 index),简称中证 500(CSI 500),上海行情代码为 000905,深圳行情代码为 399905。中证 500 指数有 3 个构建步骤。
步骤1. 样本空间内股票扣除沪深300指数样本股即最近一年日均总市值排名前300名的股票;
步骤2. 将步骤1中剩余股票按照最近一年(新股为上市以来)的日均成交金额由高到低排名,剔除排名后20%的股票;
步骤3. 将步骤2中剩余股票按照日均总市值由高到低进行排名,选取排名在前500名的股票作为中证500指数样本股。
>>> 中证1000指数
根据金融界网站提供的资料,中证 1000 指数编制方法采用较为普遍的自由流通市值加权法,指数成分股从全部A股中剔除沪深 300、中证 500 指数成分股后,结合流动性标准选取过去一年日均总市值最大的 1000 只股票,综合反映中国 A 股市场中小市值公司的股票价格表现,是中证核心市值指数体系的重要组成部分。
我们通过聚宽研究平台,首先构建一个 list 名单“index_list”,然后通过 get_price 函数调取数据,然后将数据处理成净值,绘制出来,得到以下效果:
我们定日期 2019-04-18 为截止日期,向前推 1000 天,发现最近 4 年来,表现最差的其实是中证 1000 指数,说明了在市场长期价值筛选中,小盘股出现了显著的估值下滑和资金流出。而之前大家对于小盘股的印象则是高波动率和高回报率。
上图就是三大指数的波动率情况,还是同一个时间段,我们使用移动窗口标准差,再除以该窗口期内的价格均值,去价格量纲得到这个曲线,通过研究平台文件我们输出波动率具体值为:
000852.XSHG 0.034911
000905.XSHG 0.030969
000300.XSHG 0.023826
这表示 000852.XSHG 中证 1000 指数在全段时间的波动率是最高的,通过蓝线也可以清晰看出。而沪深 300 由于大盘股较多,波动率偏低,中证 500 居中。
这三大指数之间有何种相关关系呢?实际上从走势看,它们毕竟都属于中国股票市场,应该非常相关,我们抱着这个疑问,绘制了全段价格相关性和全段波动率相关性,试图寻找答案。
绘制相关性矩阵需要导入 seaborn 包,其 heatmap 函数就是专门用于热力标色的矩阵图绘制的。分析结果显示,三大指数的走势相关性并不十分高,特别是沪深 300 和中证 1000 差异最大。而波动率相关性分析则体现出更高的结果,说明在出现较大波动时刻,指数的共振还是很明显的,这表现出较高的系统性风险。
二、指数成分股市值特性分析
我们进入所有聚宽的老用户们最熟悉的 get_fundamentals 函数,通过调取 valuation.code、valuation.market_cap 这两项数值,获得股票代码和市值数据,并打印前5行,获得以下效果:
然后我们分别绘制了沪深 300、中证 500、中证 1000 的市值分布,得到以下效果:
我们得到一个直观上很显著的统计特性——中证 1000 的分布最为均匀,首尾差异较小,沪深 300 的市值分布很不均匀,有部分股票市值极大。
通过绘制直方图,可以看到指数成分股(以沪深 300 为例)的市值分布情况:
这里显示出仅有少量样本分布在市值极大的区间,而大部分有统计意义的样本集中在市值 1000 亿元左右的区间。这样的数据分布形态很容易扭曲均值的表达能力,所以针对这类样本,我们应该多用中位数而非均值表达整体特征。
接下来我们使用 4 个简单的统计指标完成对沪深 300 为例的指数的特性描述,分别是:均值、中位数、标准差、极差。
# 均值
market_cap_mean_50 = mean(list(df_50.market_cap))
# 中位数
market_cap_median_50 = median(list(df_50.market_cap))
# 标准差
market_cap_std_50 = std(list(df_50.market_cap))
# 极差
market_cap_ptp_50 = ptp(list(df_50.market_cap))
经过计算得到:沪深300样本的成分股市值
均值:979.8816889999999
中位数:381.9389
标准差:2070.650186717265
极差:18721.7925
依然是围绕市值,我们分引入箱体图Boxplot,它是一种表示数据分布的方法,一个基本的箱体图从上到下分别表示最大值,上四分位,均值,下四分位,最小值。有的箱体图中还会加入异常值等。
箱体图有以下几个优点:
1. 可以直观明了地识别数据中的异常值
2. 利用箱体图可以判断数据的偏态和尾重
3. 利用箱体图可以比较不同批次的数据形状
通过python的pandas包提供的boxplot()函数即可绘制得到效果。
通过分析三大指数的箱体图,我们看到沪深 300 的样本离群情况最为严重,箱体图主体部分(25%分位到75%分位)被离群点严重压缩。中证 500 表现较好,离群点并不很多。中证 1000 也包含了部分市值较大的股票,主要原因是从 100 亿元到 300 亿元的某些股票可能由于市值上升过快,没能及时被编制更新到中证 500 指数中。
了解一个指数的行业构成也非常关键,我们可以看到其成分股是否在行业方面有过度集中。通过聚宽提供的 get_industry 函数可以获得行业数据。
具体代码为:
industry = get_industry(list(df_50.code))
stock_dict={}
for stock in industry.keys():
try:
# 取到每个股票的【申万一级】行业名称
stock_dict[stock] = industry[stock]['sw_l1']['industry_name']
except:
pass
然后我们导入 import matplotlib.pyplot as plt,通过其 pie 函数,可以实现对饼图的绘制。
代码如下:
tt = DFindustry.groupby(['industry_name']).size()
tt1 = list(tt.index.values)
tt2 = list(tt.values)
labels = tt1
fracs = tt2
plt.figure(figsize=(10,8))
plt.axes(aspect=1) # set this , Figure is round, otherwise it is an ellipse
plt.pie(x=fracs, labels=labels, explode=None,autopct='%3.1f %%',shadow=True)
plt.title('成分股行业分布饼图')
plt.show()
上图显示的是中证1000指数的行业分布,我们还辅助计算了分布的均匀性,得到结论:
行业数量:28
平均个股数量:35.714285714285715
个股数量标准差:23.84452189685916
个股分布变异系数:0.6676466131120564
结论显示中证 1000 指数在各行业分布均匀,平均每个行业 35 只个股。如果到了沪深 300 领域,这个分布情况发生了如下变化:
可以看到,银行和非银金融占据了非常大的比重,资产较重的交通运输、化工、有色金属和房地产也有较大提升。说明了沪深 300 指数对于金融行业的风险暴露比较大。这里仅展示了上市公司家数分布,如果按照市值展示,情况会更加显著。
我们还可以深入到指数内部去挖掘一个因子——两两相关系数平均值,并通过 for 循环,实现对于每个日期截面的该因子值计算。
程序设计方面,首先通过 get_trade_days 获得一个日期序列,用于循环。然后通过 get_price 提取 20 日价格 DataFrame,再通过 corr().mean().mean() 实现相关系数计算、每个标的相关系数、均值的均值,获得每个日期截面一个值。我们将指数净值化处理,和这个指标绘制在一起,可以看到如图效果:
指数成分股两两相关性均值是一个风险指标,当该值达到较高区间时,说明成分股同向波动显著,一般是市场极度活跃的区间。统计绘图和计算,我们得到:
中证1000:0.36256388612173046
中证500:0.36003023746871143
沪深300:0.3196961076040989
说明指数内部,随着股票数量的增加特别是高 beta 股票的增加,这种风险更加加剧。本次我们仅展示部分简单的统计指标计算,核心都是通过图形化方式,解读指数内部特征,希望读者们也能补充思路,进一步挖掘指数特性,在深刻熟悉指数构成的基础上,即可熟悉alpha因子的挖掘。
相关阅读
上证指数与中证500指数关系_中证500和上证指数有什么区别
- 百色金融新闻网经济新闻
- 指数分类的标准有很多,比如说按市场分、按投资标的分、按指数代表性分。从代表性来分类的话,一般可以分为有三类:综合指数、宽基指数、窄基指数。 综合指数是指成分股包含所
基金招商中证白酒今天的走势_招商中证白酒股票行情
- 百色金融新闻网经济新闻
- A股市场让越来越多的人信奉价值投资。 中小盘股不断出现闪崩的同时,白马股今年表现越来越好。数据显示,今年以来,申万28个一级行业中,表现最好的是家用电器、食品饮料(白马
银华季季红债券000286_
- 百色金融新闻网经济新闻
- 重要提示 本基金经中国证券监督管理委员会(以下简称“中国证监会”)于2013年6月14日证监许可2013【781】号文核准募集。 本基金基金合同生效日期为2013年
谈谈你会不会购买指数基金 为什么_指数基金真的那么好吗
- 百色金融新闻网经济新闻
- 不管是海外还是A股,主动管理的基金经理作为一个整体难以战胜指数是个不争的事实,从下图可以看出,例如07、09、10、13、14、15、17这些年份基金整体跑输指数,在07年和09年的牛市中
国泰tmt50基金160224_中证500指数对应的ETF
- 百色金融新闻网经济新闻
- 各会员单位:?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" / 根据《国泰深证TMT50指数分级证券投资基金份额发售公告》(以下简称《公告》),为保证上网发售顺利进行,现
分级基金上折后马上买入_分级基金下折对母基金影响
- 百色金融新闻网经济新闻
- 记者孙晓辉 昨日上证指数一举突破3200点,创近一年以来新高。伴随互联网金融板块的高歌猛进,交银中证互联网金融指数分级基金也触发上折,成为今年以来第8只触发上折的分级基金