qstock简介

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 实时行情数据

获取指定市场所有标的或单个或多个证券最新行情指标realtime_data(market='沪深A', code=None)

(1)某市场所有标的最新行情

#获取沪深A股最新行情指标 df=qs.realtime_data() #查看前几行 df.head()

交易行情回测:数据篇之行情交易数据(1)

#获取可转债最新行情指标 df=qs.realtime_data('可转债') #查看前几行 df.head()

交易行情回测:数据篇之行情交易数据(2)

#获取期货最新行情指标 df=qs.realtime_data('期货') #查看前几行 df.head()

交易行情回测:数据篇之行情交易数据(3)

#获取美股最新行情指标 df=qs.realtime_data('美股') #查看前几行 df.head()

交易行情回测:数据篇之行情交易数据(4)

#获取港股最新行情指标 df=qs.realtime_data('港股') #查看前几行 df.head()

交易行情回测:数据篇之行情交易数据(5)

#获取行业板块最新行情指标 df=qs.realtime_data('行业板块') #查看前几行 df.head()

交易行情回测:数据篇之行情交易数据(6)

#获取概念板块最新行情指标 df=qs.realtime_data('概念板块') #查看前几行 df.head()

交易行情回测:数据篇之行情交易数据(7)

#获取ETF最新行情指标 df=qs.realtime_data('ETF') #查看前几行 df.head()

交易行情回测:数据篇之行情交易数据(8)

(2)个股最新行情指标

qs.realtime_data(code=['中国平安','300684','锂电池ETF','BK0679','上证指数'])

交易行情回测:数据篇之行情交易数据(9)

(3)日内成交数据

intraday_data(code)

#股票日内交易数据 df=qs.intraday_data('中国平安') df.head()

交易行情回测:数据篇之行情交易数据(10)

#基金日内交易数据 df=qs.intraday_data('有色50ETF') df.head()

交易行情回测:数据篇之行情交易数据(11)

(4)获取个股实时交易快照

stock_snapshot(code):

qs.stock_snapshot('中国平安')

交易行情回测:数据篇之行情交易数据(12)

(5)实时交易盘口异动数据

获取交易日实时盘口异动数据,相当于盯盘小精灵。realtime_change(flag=None):

df=qs.realtime_change('60日新高') #查看前几行 df.head()

交易行情回测:数据篇之行情交易数据(13)

#异动类型:火箭发射 df=qs.realtime_change(1) #查看前几行 df.head()

交易行情回测:数据篇之行情交易数据(14)

#快速反弹 df=qs.realtime_change(2) #查看前几行 df.head()

交易行情回测:数据篇之行情交易数据(15)

02 历史行情数据

(1)历史K线

获取单只或多只证券(股票、基金、债券、期货)的历史K线数据。可以根据realtime_data实时行情接口获取相应金融市场交易标的的代码或简称,用于获取其历史K线数据。

获取股票、指数、债券、期货、基金等历史K线行情。参数说明:

个股数据

#默认日频率、前复权所有历史数据 #open:开盘价,high:最高价,low:最低价,close:收盘价 #vol:成交量,turnover:成交金额,turnover_rate:换手率 #在notebook上输入"qs.get_data?"可查看数据接口的相应参数 df=qs.get_data('601318') df.tail()

#个股code_list可以输入代码或简称或多个股票的list #获取中国平安2022年9月28日至今的5分钟数据,默认前复权 df=qs.get_data('中国平安',start='20220928',freq=5) df.tail()

交易行情回测:数据篇之行情交易数据(16)

#后复权数据,频率为周 df=qs.get_data('中国平安',fqt=2,freq='w') df.tail()

交易行情回测:数据篇之行情交易数据(17)

获取美股数据#获取苹果公司股票数据df=qs.get_data('AAPL')df.tail()

交易行情回测:数据篇之行情交易数据(18)

获取期货历史K线数据df=qs.get_data('棕榈油2210')df.tail()

交易行情回测:数据篇之行情交易数据(19)

指数

注意上证指数代码'000001'与平安银行股票代码相同,为避免代码相同引起的混乱,获取指数数据,要输入指数的中文简称或拼音缩写。如'sh'代表'上证指数','sz'代表'深证综指','cyb'代表‘创业板指','zxb'代表'中小100'(原来的中小板指数),'hs300'代表'沪深300','sz50'代表'上证50','zz500'代表'中证500'等等。

code_list=['sh','sz','cyb','zxb','hs300','sz50','zz500'] df=qs.get_data(code_list) df

交易行情回测:数据篇之行情交易数据(20)

#全球指数可参见:https://quote.eastmoney.com/center/qqzs.html global_indexs=['道琼斯','标普500','纳斯达克','恒生指数','英国富时','法国CAC40','德国DAX', '日经225','韩国KOSPI','澳大利亚标普200','印度孟买SENSEX','俄罗斯RTS','加拿大S&P', '台湾加权','美元指数','路透CRB商品指数']

qs.get_data(global_indexs)

交易行情回测:数据篇之行情交易数据(21)

(2)多只证券的历史价格数据

获取单只或多只证券(股票、基金、债券、期货)的收盘价格dataframe

code_list输入股票list列表如code_list=['中国平安','贵州茅台','工业富联']

code_list=['中国平安','300684','锂电池ETF','BK0679','上证指数'] df=qs.get_price(code_list) df.tail()

交易行情回测:数据篇之行情交易数据(22)

global_indexs=['道琼斯','标普500','纳斯达克','恒生指数','英国富时','法国CAC40','德国DAX', '日经225','韩国KOSPI','澳大利亚标普200','印度孟买SENSEX','俄罗斯RTS','加拿大S&P', '台湾加权','美元指数','路透CRB商品指数'] #全球指数价格数据 df=qs.get_price(global_indexs) df.tail()

交易行情回测:数据篇之行情交易数据(23)

03 股票龙虎榜数据

起始和结束日期默认为None,表示最新,日期格式'2021-08-21'

df=qs.stock_billboard('20220901','20221011') df

交易行情回测:数据篇之行情交易数据(24)

后续推文将进一步介绍qstock数据模块、可视化、选股和回测等功能。

参考资料:

1. https://efinance.readthedocs.io/en/latest/

2. https://akshare.akfamily.xyz/data/stock/stock.html#a

3. https://www.tushare.pro/document/2

,