数据探索性分析的一般操作及流程

题材概念一直是A股市场投机炒作的主旋律。大多数散户都在复杂的理论、财务指标、技术图形和消息上折腾,缺乏从实践上去认识和把握市场。概念板块是市场资金达成共识的重要介质,主力资金凭借热点题材形成赚钱效应,热点炒作驱动资金与赚钱效应形成正向反馈环,推动热点板块个股上涨,而热点题材的级别大小和想象力大小则决定了股票上涨的空间。热点题材与板块主要来自经济、政策、情绪、资金、技术和外围环境。同花顺软件提供了各种热点题材和概念指数数据,为我们分析热点题材板块动向提供了依据。那么如何利用板块指数行情监测领涨板块,寻找板块龙头股呢?本文利用Python从tushare上获取同花顺概念板块行业指数行情数据和个股交易数据,分析板块及个股的动量走向,为构建热点题材和龙头股(强势股)监测系统提供参考依据。

数据获取与探索性分析

下面利用tushare pro获取同花顺概念板块行业指数相关数据,tushare pro需到其官网注册获取token才能使用,某些数据提取有积分限制,下面使用到的数据可以通过在WX公众号后台reply “20220210”或“同花顺概念”获取。

首先导入需要用到的Python库/模块。

import pandas as pdimport numpy as np#可视化:matplotlib、seaborn、pyechartsimport matplotlib.pyplot as pltimport seaborn as sns#正确显示中文和负号plt.rcParams[‘font.sans-serif’]=[‘SimHei’]plt.rcParams[‘axes.unicode_minus’]=False#这里的pyecharts使用的是0.5.11版本from pyecharts import Bar,HeatMap#导入时间处理模块from dateutil.parser import parsefrom datetime import datetime,timedelta#pandas赋值老提升警告import warningswarnings.filterwarnings(‘ignore’)#使用tushare pro获取数据,需要到官网注册获取相应的tokenimport tushare as ts token=’输入你的token’pro=ts.pro_api(token)获取同花顺概念和行业列表。

index_list=pro.ths_index()#查看数据前几行index_list.head() 数据探索性分析的一般操作及流程

#数据保存本地#index_list.to_csv(‘index_list.csv’)#读取本地数据#index_list=pd.read_csv(‘index_list.csv’,index_col=0)

其中,ts_code:代码;name:名称;count:成分个数;exchange:交易所,包括A股、港股(H)和美股(US);list_date:上市日期;type:指数类型N-板块指数,I-行业指数,S-同花顺特色指数。

def plot_bar(data,title,label=True,zoom=False): bar=Bar(”) attr=list(data.index) v=list(data.values) bar.add(title,attr,v,is_label_show=label, is_splitline_show=False, is_datazoom_show=zoom) return bar

data=index_list.groupby(‘exchange’)[‘name’].count()title=’同花顺概念和行业指数nA股港股美股’plot_bar(data,title) 数据探索性分析的一般操作及流程

概念或行业成分股中平均有53只个股,当然,每只个股可能分属不同的概念板块行业,如果某个概念板块所含个股数量太多或太少,相当于涵盖面太宽泛或代表性不足,分析起来意义不大。下面删除重复项和剔除成份个股数量低于12大于52(相当于取25%到75%分位数)。

#删除代码重复项,#保留type为N板块的指数final_index_list=(A_index_list .drop_duplicates(subset=[‘ts_code’], keep=’first’) .query(“12<nums<52”) .query(“type==’N'”))#去掉样本股或成份股指数final_index_list=final_index_list[-final_index_list.name.apply(lambda s:s.endswith(‘样本股’)or s.endswith(‘成份股’))]final_index_list.sort_values(‘nums’) 数据探索性分析的一般操作及流程

data=(final_index_list.sort_values(‘nums’,ascending=False) .set_index(‘name’)[‘nums’])title=’同花顺概念和行业指数成分股个数’plot_bar(data,title,False,True) 数据探索性分析的一般操作及流程

#删除重复缺失值、将代码使用概念中文名代替final_data=(all_data.sort_values([‘ts_code’,’trade_date’]) .drop_duplicates() .set_index([‘trade_date’,’ts_code’])[‘close’].unstack() .dropna(axis=1) .rename(columns=dict(index_list[[‘ts_code’,’name’]].values)))final_data.tail() 数据探索性分析的一般操作及流程

#近20个交易日out_chart(20) 数据探索性分析的一般操作及流程

#近120个交易日out_chart(120) 数据探索性分析的一般操作及流程

实际上钾肥这个概念所含个股较少,且盐湖股份由于中间停牌复牌后短期暴涨(实际上是盐湖提锂概念在驱动),因此该概念指数120日涨幅最大。一起看下近期较热门的数字货币概念。翠微股份120日涨幅高达314%,可以说是近期接替妖股九安医疗的一大热门股。妖股是主力资金博弈到极致之物,与基本面与价值投资没有任何干系

stock_rets_rank(‘数字货币’) 数据探索性分析的一般操作及流程

结语

本文使用Python对同花顺概念板块指数及个股进行数据探索性分析,试图从动量的角度捕捉热门题材的走向,构建强势板块和个股的监测系统。利用板块和个股监测系统可以构建动量(强者恒强)或动量反转(物极必反)的量化交易策略。本文的数据挖掘存在一定的局限性,只考虑了某些时间周期内板块和个股的收益率表现(技术面)。关于概念板块行业的分析,还可以结合财经文本分析做深度挖掘,实际上热点题材最好是结合基本面与技术面的深入分析,技术面正如温度计一样只能告诉你当前的冷热,而基本面可以推断为啥上涨的原因,未来持续性如何,这个基本逻辑非常重要。金融市场上的交易,没有完全不变和百分之百确定的东西,任何分析和决策都是一种概率,而量化为我们多维度分析市场提供一种工具,实际上实战才是唯一能快速提升交易能力的方法。

本文来自作者:zz1080,不代表小新网立场!

转载请注明:https://www.xiaoxinys.cn/447657.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。