粉丝服务

【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

涨跌停股票池
01

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


参数说明

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

date:日期如\'20220916\'


涨停股


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


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


#连续涨停次数排名前十个股
df.sort_values(\'连板数\',ascending=False)[:10]


跌停股

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


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


强势股

获取东方财富强势股列表


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


同花顺技术选股池
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

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

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

连续上涨


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


量价齐升


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


突破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\')


热点板块选股
03

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


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

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

价格数据

ths_price



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

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

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

热点板块成分股

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


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


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


东方财富热门板块


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()


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

计算板块收益率

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)

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


关于Python金融量化








专注于分享Python在金融量化领域的应用。加入知识星球,可以免费获取qstock源代码、30多g的量化投资视频资料、量化金融相关PDF资料、公众号文章Python完整源码、与博主直接交流、答疑解惑等。添加个人微信sky2blue2可获取相关优惠。

本栏目精选

热门推荐

频道导航