01
引言
qstock量化分析库和教程自发布以来已经有一段时间了。收到不少读者的反馈,希望在qstock上添加更多的实用功能和案例研究。在回应这些反馈的同时,公众号也一直在努力改进现有的功能和教程内容。我们的目标是为用户提供更全面、更实用、更易于理解的量化分析工具和教程,以满足他们不断变化的需求。相信在不久的将来,qstock将会成为您的最佳选择。
下面将为大家分享如何利用qstock进行量化复盘分析和实时自动化盯盘。
02
量化复盘
开市前或收盘后了解一下可能影响当日走势的重大利好和利空,比如外围涨跌,大宗商品、原油等等,下面结合qstock的数据接口,为大家提供一个量化复盘的思路框架。
择时跟踪:期指、指数(沪深300和创业板等)、全球股市(标普和纳斯达克等)、商品期货等;
板块跟踪:持仓个股所在板块、热点板块、权重板块;
消息跟踪:持股跟踪、关注个股、板块龙头跟踪;
资金流跟踪:查看个股和行业板块资金流向;
涨跌停和龙虎榜数据:查看涨跌停个股,了解涨跌停原因,分析市场赚钱效应、进一步挖掘龙虎榜数据。
导入qstock包
import qstock as qs
01
财经新闻
新闻资讯数据
qs.news_data(news_type=None,start=None,end=None,code=None):
news_type:新闻类型:cctv'或'新闻联播';'js'或'金十数据';'stock' 或'个股新闻' 不输入参数,默认输出财联社电报新闻数据。
start:起始日期,如'20220930',不输入默认当前最新日期
end:结束日期,如'20221001',不输入默认当前最新日期
stock:个股代码,个股新闻时需输入该参数
财联社电报新闻
#默认参数输出财联社电报新闻数据
txt=qs.news_data('js')
txt_list=''.join(list(txt.content.apply(lambda s:str(s))))
txt_list=txt_list.replace('金十数据','').replace('据联合声明:','').replace('表示','')
#使用jieba处理分词并转为词云格式数据
c_data=qs.cloud_data(txt_list)
qs.chart_wordcloud(c_data)
新闻热点关键词是“油气”,而近期油气板块启动,特别是原油期货疯涨。
个股新闻
#使用个股新闻接口
df=qs.stock_news('福晶科技')
df.head()
02
市场整体走势
指数跟踪一方面是确认市场整体趋势,行情向好时操作概率更高;另一方面是防止大跌,出现系统性风险。
A股指数
A股指数沪深300和创业板指数即可,二者分别代表了大盘蓝筹和中小成长股整体走势。在指数趋势向上时,重仓持有少操作,在指数趋势向下时,重个股,清仓。下面给出的是修正K线图,连续红色代表上涨趋势,连续绿色代表下跌趋势。
qs.HA_kline(qs.get_data('hs300')[-250:])
沪深300指数修正K线图
qs.HA_kline(qs.get_data('cyb')[-250:])
创业板指数修正K线图
外盘指数
外盘指数一般看美股,主要是标普500和纳斯达克指数。
qs.HA_kline(qs.get_data('标普500')[-250:])
qs.HA_kline(qs.get_data('纳斯达克')[-250:])
全球指数涨跌幅对比
#常见的全球指数名称
global_indexs=['sh','cyb','恒生指数','道琼斯','标普500','纳斯达克','英国富时100','法国CAC40','德国DAX30','日经225','韩国KOSPI',
'澳大利亚标普200','印度孟买SENSEX','台湾加权','俄罗斯RTS','加拿大S&P/TSX','巴西BOVESPA']
index_data=qs.get_price(global_indexs)[-250:].dropna()
start_date=index_data.index[0].strftime('%Y年%m月%d日')
end_date=index_data.index[-1].strftime('%Y年%m月%d日')
rets=(index_data/index_data.iloc[0]-1).iloc[-1].sort_values(ascending=False)
title='全球指数最近250日累计涨幅'
print(f'期间统计:{start_date}至{end_date}')
#qs.bar(rets,title=title)
期间统计:2022年04月20日至2023年03月31日
期货行情
关注期货行情,一个是关注当前经济发展情况(尤其是大宗商品),另一个是查看关联概念个股。
#获取期货最新行情
df=qs.realtime_data('期货')[['名称','涨幅']][:20]
qs.bar(df,x='名称',y='涨幅')
#获取期货最新行情
df=qs.realtime_data('期货')[['名称','涨幅']][-10:]
qs.bar(df,x='名称',y='涨幅')
ETF基金涨跌情况
#获取ETF最新行情指标
df=qs.realtime_data('ETF')
#查看前几行
df.head(15)
03
资金流情况
资金流看个股和板块,值得注意的是不同交易软件对资金流入流出的计算存在一定差异,这里所谓的资金流入数据也是滞后的,仅供参考,需要结合个股和板块走势来看,一般一两天的资金流动噪音较大,持续几天或几周的资金净流入才参考价值。
#个股20日资金流数据
df=qs.ths_money('个股',n=20).sort_values('净额(万)',ascending=False)
df
#行业板块10日资金流数据
df=qs.ths_money('行业',n=10).sort_values('净额(亿)',ascending=False)
df
04
涨跌停情况
z
涨跌停板数据反映的是市场的赚钱效应或恐慌情绪,具有助涨助跌的功能,也常成为主力操作个股的借力的工具。经过长时间盘整后放量涨停的个股值得关注。
#获取当前最新交易日
latest_date=qs.latest_trade_date().replace('-','')
#涨停个股
up_df=qs.limit_pool('u',latest_date)
print(f'涨停板个股数量:{len(up_df)}')
if len(up_df)<1:
print('今日没有涨停个股,市场赚钱效应较差,请保持高度谨慎!')
#跌停个股
down_df=qs.limit_pool('d',latest_date)
print(f'跌停板个股数量:{len(down_df)}')
if len(down_df)>10:
print('当前跌停个股很多,请保持高度谨慎!')
elif len(down_df)>5:
print('当前跌停个股较多,请保持谨慎')
涨停板个股数量:24
跌停板个股数量:1
up_df.head()
05
股票龙虎榜数据
qs.stock_billboard()
龙虎榜数据与涨跌板数据类似,是短期炒作个股的风向标,短线爱好者可以深入挖掘龙虎榜的信息。
03
盘中看盘
借助qstock的数据接口,可以对全市场个股进行扫描,通过量比排行,量比和涨幅靠前的具有突破形态的加入自选准备跟踪。观察北向资金流向,涨停板家数,涨跌比家数,以及板块与板块之间的联动情况,前一日的热点是否有持续性等。
01
个股量比榜
按照量比进行排名,查看涨幅介于3%-9%之间的个股,还可以加入其他条件进行筛选,如市盈率和最新价格等。
df=qs.realtime_data()
df=df.dropna().sort_values('量比',ascending=False)
df[(df['量比']>5)&(df['涨幅']>3)&(df['涨幅']<9.7)&(df['最新']<30)&(df['市盈率']>0)]
02
行业概念板块
#获取东方财富行业板块实时涨跌幅数据
data=qs.realtime_data('行业板块')[['名称','涨幅']]
data['权重']=abs(data['涨幅'])
#注意去掉涨幅为0的值,否则会报错
data=data[data['涨幅']!=0]
params={'data':data,'label':['名称'],'weight':'权重','value':'涨幅'}
qs.treemap(**params)
#获取东方财富概念板块实时涨跌幅数据
data=qs.realtime_data('概念')[['名称','涨幅']]
data['权重']=abs(data['涨幅'])
data=data[data['涨幅']!=0]
params={'data':data,'label':['名称'],'weight':'权重','value':'涨幅'}
qs.treemap(**params)
03
实时交易盘口异动数据
获取交易日实时盘口异动数据,相当于盯盘小精灵。realtime_change(flag=None):
flag:盘口异动类型,默认输出全部类型的异动情况。可选:['火箭发射', '快速反弹','加速下跌', '高台跳水', '大笔买入', '大笔卖出', '封涨停板','封跌停板', '打开跌停板','打开涨停板','有大买盘','有大卖盘', '竞价上涨', '竞价下跌','高开5日线','低开5日线', '向上缺口','向下缺口', '60日新高','60日新低','60日大幅上涨', '60日大幅下跌'] 上述异动类型分别可使用1-22数字代替。
df=qs.realtime_change('60日新高')
#查看前几行
df
04
自动盯盘
假设要对自选股和指数进行盯盘,又不想一直盯着交易软件,我们可以使用python编程,基于qstock的实时数据接口构建一个盯盘脚本文件,然后使用windows系统的任务计划程序,实现在交易日的交易时间进行自动化盯盘和提醒。由于篇幅所限,代码此处省略, 完整代码分享在Python金融量化知识星球上。
while True:
pass
#代码此处省略,
#具体看Python金融量化知识星球
# 休眠10秒,再次获取数据
time.sleep(10)
实现交易日时间自动打开并运行盯盘脚本文件,当触发设置条件时会发出语言提醒。
关于Python金融量化
专注于分享Python在金融量化领域的应用。加入知识星球,可以免费获取qstock源代码、30多g的量化投资视频资料、量化金融相关PDF资料、公众号文章Python完整源码、与博主直接交流、答疑解惑等。添加个人微信sky2blue2可获取八五折优惠。