简介
qstock由“Python金融量化”公众号开发,试图打造成个人量化投研分析开源库,目前包括数据获取(data)、可视化(plot)、选股(stock)和量化回测(backtest)四个模块。其中数据模块(data)数据来源于东方财富网、同花顺、新浪财经等网上公开数据,数据爬虫部分参考了现有金融数据包tushare、akshare和efinance。qstock致力于为用户提供更加简洁和规整化的金融市场数据接口。可视化模块基于plotly.express和pyecharts包,为用户提供基于web的交互图形简单操作接口;选股模块提供了同花顺的技术选股和公众号策略选股,包括RPS、MM趋势、财务指标、资金流模型等,回测模块为大家提供向量化(基于pandas)和基于事件驱动的基本框架和模型。
qstock目前在pypi官网上发布,开源版本为1.1.0,意味着读者直接“pip install qstock ”安装即可使用。GitHub地址:https://github.com/tkfy920/qstock。
目前部分策略选股和策略回测功能仅供知识星球会员使用,会员可在知识星球置顶帖子上上获取qstock-1.1.1.tar.gz (强化版)安装包,进行离线安装。
下面为大家介绍qstock数据模块(data)中行业、概念板块数据和资金流数据的调用方法。
#导入qstock模块
import qstock as qs
01
指数成分股
00
获取常见指数的成分股
index_member(code)
code : 指数名称或者指数代码
#上证50成份股
df=qs.index_member('sz50')
#查看前几行数据
df.head()
#沪深300成分股
qs.index_member('hs300')
02
概念板块数据
获取同花顺概念板块名称、成分股、和行情数据
01
获取同花顺概念板块名称
ths_index_name(flag='概念')
flag='概念板块' or '行业板块'
#行业板块名称
name_list=qs.ths_index_name('行业')
#查看5个
name_list[:5]
['种植业与林业', '养殖业', '农产品加工', '农业服务', '煤炭开采加工']
#概念板块名称
name_list=qs.ths_index_name('概念')
#查看5个
name_list[:5]
['信创', '有机硅概念', '空气能热泵', '先进封装(Chiplet)', '减速器']
02
概念板块成分股
获取同花顺概念板块成分股
注意,同花顺数据接口不太稳定,如报错过一段时间再试。
ths_index_member(code=None)
code:输入板块行业或概念代码或简称
#比如种植业与林业成分股
df=qs.ths_index_member('种植业与林业')
#查看前几行
df.head()
#比如有机硅概念
df=qs.ths_index_member('有机硅概念')
#查看前几行
df.head()
03
概念指数行情数据
获取同花顺概念或行业板块指数行情数据(开盘、最高、最低、收盘和成交量)
ths_index_data(code=None)
code:输入板块行业或概念代码或简称
df=qs.ths_index_data('有机硅概念')
df.head()
03
资金流数据
04
日内资金流数据
intraday_money(code)
code : 股票、债券代码
获取单只股票最新交易日的日内分钟级单子流入流出数据
#注意要在交易日交易时段才能获取到相应数据
df=qs.intraday_money('中国平安')
df.head()
05
历史资金流向数据
hist_money(code)
code : 股票、债券代码
获取股票、债券、期货等的历史单子流入流出数据
df=qs.hist_money('中国平安')
df.tail()
06
个股n日资金流
stock_money(code, ndays=[3, 5, 10, 20])
stock可以为股票简称或代码,如晓程科技或300139
ndays为时间周期或list,如3日、5日、10日等
#默认ndays=[3, 5, 10, 20]
df=qs.stock_money('中国平安')
df
df=qs.stock_money('中国平安',[10,30,60])
df.tail()
07
同花顺资金流数据
获取同花顺个股、行业、概念资金流数据
ths_money(flag=None,n=None):
flag:'个股','概念','行业'
n=1,3,5,10,20分别表示n日资金累计净额
#个股20日资金流数据
df=qs.ths_money('个股',n=20)
df.tail()
#行业板块10日资金流数据
df=qs.ths_money('行业',n=10)
df.tail()
#概念板块5日资金流数据
df=qs.ths_money('概念',n=5)
df.tail()
04
北向资金
08
北向资金数据
north_money(flag=None,n=1)
flag=None,默认返回北上资金总体每日净流入数据
flag='行业',代表北向资金增持行业板块排行
flag='概念',代表北向资金增持概念板块排行
flag='个股',代表北向资金增持个股情况
n: 代表n日排名,n可选1、3、5、10、‘M’,‘Q','Y'
即 {'1':"今日", '3':"3日",'5':"5日", '10':"10日",'M':"月", 'Q':"季", 'Y':"年"}
北向资金每日净流入
#北向资金每日净流入数据
df=qs.north_money()
df.tail()
北向资金增持行业板块
#北向资金增持行业板块5日排名
df=qs.north_money('行业',5)
df.tail()
北向资金增持概念板块
#北向资金增持概念板块
df=qs.north_money('概念',5)
df.tail()
北向资金增持个股情况
#北向资金增持个股情况
#有个小bug,列名没有对应起来,该函数调用将报错,将在新版本中修正。
df=qs.north_money('个股',5)
df.tail()
后续推文将进一步分享qstock数据模块中关于基本面数据、宏观数据、财经新闻数据等的调用方法。