引言

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

数据获取与探索性分析

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

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

import pandas as pd
import numpy as np
#可视化:matplotlib、seaborn、pyecharts
import matplotlib.pyplot as plt
import 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 parse
from datetime import datetime,timedelta
#pandas赋值老提升警告
import warnings
warnings.filterwarnings('ignore')
#使用tushare pro获取数据,需要到官网注册获取相应的token
import 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)

上图显示,A股概念和行业指数高达939个,下面主要分析A股上的同花顺概念和行业指数做进一步考察。

A_index_list=index_list.query("exchange=='A'")
A_index_list=A_index_list.copy()
A_index_list['nums']=pd.to_numeric(A_index_list['count'])
#去掉缺失值
A_index_list.dropna(inplace=True)
A_index_list['nums'].describe()

概念或行业成分股中平均有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)

获取概念行业指数行情

下面通过日期循环获取某时间段所有概念行业指数的行情数据。使用tushare在线获取代码由于篇幅所限,此处略,完整代码见Python金融量化知识星球。数据也可以通过公众号上获取(回复“20220210”或“同花顺概念”)后导入。

#获取股票交易日历
def get_cals():#获取交易日历pass
#获取某段时间内的交易日期(如200个交易日)
def get_trade_date(n):#获取当天日期时间pass
#获取某段时间内的概念指数行情数据
def get_index_data(n=200):pass

查看数据前几行。后续分析只需要使用指数的收盘价、交易代码和交易日期。

#通过tushare在线获取数据
#all_data=get_index_data(n=200)
#数据保存本地
#all_data.to_csv('all_data.csv')
#通过本地导入数据
all_data=pd.read_csv('all_data.csv',index_col=0)
all_data.head()

#删除重复缺失值、将代码使用概念中文名代替
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()

到这一步已获取到所需数据并做了规整处理。下面对板块和相关个股涨跌幅进行分析,并构建函数用于监测板块热点和强势个股的轮动走向。

板块热点与个股涨跌监测分析

要分析板块热点的走向,首先是计算板块指数在不同时间周期下的收益率(动量)。下面以1日、5日、20日、60日和120日作为时间窗口计算概念指数的收益率。

def date_ret(data,w_list=[1,5,20,60,120]):df=pd.DataFrame()for w in w_list:df[str(w)+'日收益率%']=(((data/data.shift(w)-1)*100).round(2).iloc[w:].fillna(0).T.iloc[:,-1])return df
date_ret(final_data).sort_values('120日收益率%',ascending=False)

120日涨幅居前板块指数。

date_ret(final_data).sort_values('120日收益率%',ascending=False)[:10]

120日跌幅最多的前五个板块指数。

date_ret(final_data).sort_values('120日收益率%',ascending=True)[:5]

概念板块指数周期涨跌幅可视化

#使用pyecharts0.5.11版本可视化
def out_chart(w=120):col=str(w)+'日收益率%'ddd=date_ret(final_data).sort_values(col,ascending=False)[col]x=list(ddd.index)y=list(ddd.values)bar=Bar(f"同花顺概念指数{w}日收益率(%)",title_text_size=15,title_pos='center')bar.add("", x,y,is_label_show=False, is_datazoom_show=True)return bar
#最近一个交易日
#图形为html动态交互式,可通过拖曳查看所有概念指数的详细涨跌幅
out_chart(1)

#近5个交易日
out_chart(5)

#近20个交易日
out_chart(20)

#近120个交易日
out_chart(120)

除了使用pyecharts对板块不同周期下的动量进行监测(动态交互式),还可以使用热力图监测最近交易日各板块指数的轮动走向。图片输出可以使用网页显示更全面。

#由于同花顺指数行情数据获取不到下面概念,需剔除
xx=['华为汽车', '盐湖提锂', '鸿蒙概念', '共同富裕示范区', 'MCU芯片', '牙科医疗', 'CRO概念', '钠离子电池', '工业母机', '北交所概念', 'NFT概念', '抽水蓄能', '换电概念', '海峡两岸', 'WiFi 6', '智能制造', 'EDR概念', '动力电池回收', '汽车芯片', '传感器', '柔性直流输电', '虚拟数字人', '预制菜', '幽门螺杆菌概念']
sss=final_data[set(final_index_list.name.values)-set(xx)]
import seaborn as sns
pt = ((sss/sss.shift(1)-1)*100).round(2)[-10:]
plt.figure(figsize=(25,5))
sns.heatmap(pt, linewidths = 0.05,cmap='Reds');

一旦出现赚钱效应,首先看的是哪个整体板块在领涨,这个板块是什么概念,是不是当下的大热点?选股就是先看热点板块,龙头股与题材有关,题材代表了一个板块,不会是单打独斗,关注热点板块,在板块中选股非常重要。发现最大题材板块后,核心是找板块龙头股。在整个板块中最先上涨,涨势最强的个股就一定要关注并分析。

热点板块成分股龙头股监测

#受篇幅所限,以下代码略,完整代码分享在Python金融量化知识星球中。
#注意,写作本文时交易日期为20220209,即默认end='20220209'.
def get_stock_price(code,start='20200101'):pass
def all_stock_price(name):pass
def stock_rets_rank(name,p=120):pass
def stock_heat(name='数字货币'):pass
stock_rets_rank('钾肥')

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

stock_rets_rank('数字货币')

随着数字货币财经新闻的持续发酵,2022年2月09日数字货币板块单日暴涨9%,板块内近20只个股涨停,四只创业板20cm。值得注意的是,板块的短期暴涨也是风险集聚的表现,特别是碰上那些跟风上涨的个股,当板块整体进入回调时往往一地鸡毛。

stock_rets_rank('数字货币',p=1)[:20]

使用热力图监测热点板块个股。

stock_heat('数字货币')

结语

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

关于Python金融量化

专注于分享Python在金融量化领域的应用。加入知识星球,可以免费获取30多g的量化投资视频资料、量化金融相关PDF资料、公众号文章Python完整源码、量化投资前沿分析框架,与博主直接交流、结识圈内朋友等。

【Python量化】如何监测领涨板块,挖掘题材龙头股?相关推荐

  1. 【2022·合辑】Python量化从入门到精通

    引言 Annual work summary LOREM IPSUM 春去秋来,"Python金融量化"已坚持了四个年头,全网关注量10万+.在公众号阅读量急剧下降,短视频盛行的当 ...

  2. python统计套利_清华编程高手尹成带你基于算法实践python量化交易

    清华编程高手尹成带你基于算法实践python量化交易 量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策 ...

  3. python一元线性回归算法_6一元线性回归_清华编程高手尹成带你基于算法实践python量化交易_其他视频-51CTO学院...

    清华编程高手尹成带你基于算法实践python量化交易 量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策 ...

  4. python算法交易工程师_清华编程高手尹成带你基于算法实践python量化交易

    清华编程高手尹成带你基于算法实践python量化交易 量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种"大概率"事件以制定策 ...

  5. python量化投资培训清华大学深研院_GitHub - CatsJuice/quantitative-investment-learning: 使用Python进行量化投资的学习报告...

    quantitative-investment-learning 使用Python进行量化投资的学习报告 Python量化投资学习报告 CatsJuice 编辑于 2019-4-26 上一次更新: 2 ...

  6. 可转债交易薅羊毛策略 — Python 量化投资实战教程(10)

    往期推荐 量化投资原来这么简单(1) 量化投资原来这么简单(2)-MACD策略(+26.9%) 量化投资原来这么简单(3) -A股回测MACD策略 Python 量化投资原来这么简单(4) -KDJ ...

  7. python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据

    python量化分析系列之---5行代码实现1秒内获取一次所有股票的实时分笔数据 最近工作太忙了,有一个星期没有更新文章了,本来这一期打算分享一些对龙虎榜数据的分析结果的,现在还没有把数据内的价值很好 ...

  8. Python 量化投资原来这么简单(5) — A股回测KDJ策略

    许多技术投资方面的教材,经常会用几幅上涨的图来表明某些指标的用处,实际上那些上涨的图很可能只是假象.作者为了证明他所强调的指标的作用,选定了符合该指标策略的股票上升趋势图,但实际上这些策略并不一定适合 ...

  9. Python 量化投资实战教程(6) — 交易平均收益率

    量化投资系列文章: Backtrader 教程 - Python 量化投资实战教程(1) Python 量化投资实战教程(2) -MACD策略 Python 量化投资实战教程(3) -A股回测MACD ...

最新文章

  1. 类似百度输入框自动完成
  2. 第一个 PyQt5程序
  3. 计算机英语 自我介绍,计算机面试英文自我介绍范例
  4. linux窗帘文件夹命令,窗帘面板和电机 · 控客智能家居 Linux SDK 使用手册 · 看云...
  5. tf.nn 和tf.layers以及tf.contrib.layers的简单区别(转)
  6. RHEL7/CentOS7在线和离线安装GitLab配置使用实践
  7. 20190910每日一句 你有勇气直面自己的恐惧吗?
  8. J2EE框架(StrutsHibernateSpring)的理解
  9. 如何区分手机端 APP 是原生 APP 还是 H5?H5 和原生 APP 之间的区别
  10. 流风ASP.NET框架企业版试用地址公布
  11. Php session_start错误,PHP 解决错误:Warning: session_start()... 的方法
  12. 数据库-jdbc、spring-jdbc、spring-boot-starter-jdbc
  13. Spring整合swagger
  14. 灰流丽能无效融合么_游戏王:史上最强融合卡片,不可阻挡,无法逆转!
  15. UISearchBar背景色及边框修改
  16. 泉州php编程学校,泉州五中校园网络平台【Moodle平台与校园网络整合】...
  17. 创业故事:记YouTube创始人陈士骏,选择满意工作,让自己人生无悔
  18. 基于异常注入(混沌工程)的测试思考
  19. Leet Code知识点总结 - 594
  20. win10计算机点对点连接,win10如何建立点对点网络连接?

热门文章

  1. 黑马程序员————高新技术————反射
  2. mysql 多个主码_数据库中几个基本概念 主码 外码
  3. 收集的css动画效果
  4. element-table表格分页多选
  5. WebRTC Video JitterBuffer
  6. java 定时器 倒计时_定时器倒计时demo
  7. 计算机专业英语学术能力培养任伟课后题答案,北京航空航天大学任伟教授学术讲座在我院成功举办...
  8. 10-3 查找王姓同学不学的课程的课程号
  9. 俄罗斯一家庭与世隔绝40年 不知有二战(图)
  10. 计算机共享不了,电脑的共享开不了怎么办