【qstock量化】技术形态与概念热点选股池

qstock简介

qstock由“Python金融量化”开发,试图打造成个人量化投研分析开源库,目前包括数据获取(data)、可视化(plot)、选股(stock)和量化回测(backtest)四个模块。其中数据模块(data)数据来源于东方财富网、同花顺、新浪财经等网上公开数据。qstock致力于为用户提供更加简洁和规整化的金融市场数据接口。可视化模块基于plotly.express和pyecharts包,为用户提供基于web的交互图形简单操作接口;选股模块提供了同花顺的技术选股和公众号策略选股,包括RPS、MM趋势、财务指标、资金流模型等,回测模块为大家提供向量化(基于pandas)和基于事件驱动的基本框架和模型。

qstock目前在pypi官网上发布,开源第一版本为1.1.0,目前更新至1.3.1。读者直接通过“pip install qstock ”安装,通过’pip install –upgrade qstock’进行更新。

GitHub地址:https://github.com/tkfy920/qstock

目前部分策略选股和策略回测功能仅供知识星球会员使用,会员可在知识星球置顶帖子上上获取qstock-vip-1.3.1.tar.gz (强化版)安装包,将安装包放在工作路径下输入’pip install qstock-vip-1.3.1.tar.gz’进行离线安装。

更新后的最新版本qstock 1.3.1,所有接口函数(包括可视化plot、选股stock)均可通过qstock调用,即先导入import qstock as qs,然后使用qs.xxx,xxx为对应接口函数,如qs.kline(df)画K线图,qs.get_data(‘代码’)获取数据。

qstock 相关教程

【qstock开源了】数据篇之行情交易数据

【qstock数据篇】行业概念板块与资金流

【qstock量化】数据篇之股票基本面数据

【qstock量化】数据篇之宏观指标和财经新闻文本

【qstock量化】动态交互数据可视化

import qstock as qs

015ce7d7471665c18f61071eae4ca6f9.png

涨跌停股票池

01

limit_pool(flag='u',date=None)

参数说明

flag='u'代表涨停板,'d'代表跌停,'s'代表强势股

date:日期如'20220916'

涨停股

获取2022年11月04日涨停板数据

df=qs.limit_pool('u','20221104')
#查看前几行
df.head()

d8b14e71e613094345093a35c672936f.jpeg

#连续涨停次数排名前十个股

df.sort_values('连板数',ascending=False)[:10]

2ee279cc8631e69ef64609ce0bb50b03.jpeg

跌停股

获取2022年11月04日跌停板数据

df=qs.limit_pool('d','20221104')
#查看前几行
df.head()

47e97c10a074c631f4f741dc5c13168a.jpeg

强势股

获取东方财富强势股列表

df=qs.limit_pool('s','20221104')
df

229d2a82e7decfc2c78e9ddb863dc2b2.jpeg

d0d181a9e8639a5e0089dd75919443d0.png

同花顺技术选股池

02

ths_pool(ta=None)

参数说明:

ta:输入技术形态选股,可选:"创月新高", "半年新高", "一年新高", "历史新高","创月新低", "半年新低", "一年新低", "历史新低",'连续上涨','持续放量','量价齐升','强势股',f'u{n}',f'd{n}',n=10、20、30、60、90、250、500,突破n日均线;如'u20'代表向上突破20日均线,'d10':跌破10日均线;'险资举牌'。

注意,同花顺数据接口不太稳定,建议隔几秒再访问一次,如出现报错:No tables found,可能因访问过于频繁被禁,请稍后再试。后续新版本就不断改进数据接口。

创新高/低股票池

ta="创月新高", "半年新高", "一年新高", "历史新高","创月新低", "半年新低", "一年新低", "历史新低"。如果返回空值代表没有股票满足该要求。

#"创月新高", "半年新高", "一年新高", "历史新高"
df=qs.ths_pool('一年新高')
df

927320835a10a46e29ea7a39809183d5.jpeg

最近一年来市场大多数个股处于下跌趋势,因此当ta="半年新高", "一年新高", "历史新高"时,返回空值,表明找不到满足条件的个股。

#"一年新低"
df=qs.ths_pool('半年新低')
df

451fc8819457f788a82541e66e0b63c2.jpeg

连续上涨

#连续上涨个股
df=qs.ths_pool('连续上涨')
df

1afb376a60c382891ddd52257fbec304.jpeg

量价齐升

import qstock as qs
df=qs.ths_pool('量价齐升')
df

c9f60c3dffbc7cf68f452acdbb1b7e3c.jpeg

突破n日均线

f'u{n}',f'd{n}',n=10、20、30、60、90、250、500,突破n日均线;
    如'u20'代表向上突破20日均线,'d10':跌破10日均线。

#向上突破20日均线
qs.ths_pool('u20')

ee46362d8c5e14f3d3f10f2b22fe2c9a.jpeg

50fee25784846df7891c3563619e117e.png

热点板块选股

03

获取同花顺和东方财富热门概念板块,通过阶段动量排名进行选股,追踪短线热点。

注意,同花顺数据接口不太稳定,建议隔几秒再访问一次,如出现数据获取卡死或报错:No tables found,可能因访问过于频繁被禁,请稍后再试。后续新版本就不断改进数据接口。

#获取同花顺概念板块收盘价数据
ths_price=qs.ths_index_price('概念')

价格数据

ths_price

dac9dfd54fed09666fc93a221a79c907.jpeg

#概念板块[1,5,20,60,120]日收益率排名,c=2代表以第三列即20日收益率排名
qs.ret_rank(ths_price,w_list=[1,5,20,60,120],c=3)[:10]

3f2db8d3b2ec2733125b451a658f4683.jpeg

#计算对应周期收益率
ths_rets=qs.ret_date(ths_price,w_list=[1,5,20,60,120])
qs.ret_top(ths_rets,10)

ee7240f874d00b583b0c7eef97ce7b46.jpeg

w_data=qs.ret_top_list(qs.ret_top(ths_rets,20))
qs.chart_wordcloud(w_data,title=None)

79c92528979a95a6f740e8fc9f48ac8e.jpeg

热点板块成分股

import qstock as qs
#获取氟化工概念板块成分股
member_df=qs.ths_index_member('白酒概念')
#查看前几行数据
member_df.head()

89653acbc3eb1f8bbe31c827210e2cdf.jpeg

member_price=qs.get_price(list(member_df['代码']),start='2021-01-01')
member_price

7a169b4430c268842652db86c490677b.jpeg

#默认按最后一列排名
qs.ret_rank(member_price,w_list=[3,5,10,20,30])

1b9116ded9367aabf652c3e55c230f4a.jpeg

东方财富热门板块

import qstock as qs
code_list=list(qs.realtime_data('概念')['名称'])
#排除涨停概念(买不到)
del_code=['昨日连板_含一字','昨日涨停_含一字','昨日涨停','昨日连板']
for code in del_code:
    code_list.remove(code)
print(len(code_list))
389
all_price=qs.get_price(code_list,start='20220101')
all_price.tail()

c56da13d90f4fff2e943e3c03096facc.jpeg

#概念板块[1,5,20,60,120]日收益率排名,c=2代表以第三列即20日收益率排名
qs.ret_rank(all_price,w_list=[1,5,20,60,120],c=3)[:10]

71a9724ce979148ecca22802e5a476a8.jpeg

计算板块收益率

all_rets=qs.ret_date(all_price,w_list=[1,5,20,60,120])
#分别按[1,5,20,60,120]收益率排序前10
qs.ret_top(all_rets,10)

f967319c3a452df03261d45351599f88.jpeg

w_data=qs.ret_top_list(qs.ret_top(all_rets,50))
qs.chart_wordcloud(w_data,title=None)

b81d5a9d821d1ce2186b9d1a2ad0989e.jpeg

猜你喜欢

转载自blog.csdn.net/ndhtou222/article/details/127742554