基于qstock的量化复盘与自动盯盘


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)

e155920e0fd3ab6bb65ca9c693b86408.jpeg

新闻热点关键词是“油气”,而近期油气板块启动,特别是原油期货疯涨。

个股新闻

#使用个股新闻接口
df=qs.stock_news('福晶科技')
df.head()

c7e57d8b6ed59ebb7f300a983c08d6d0.jpeg

02

市场整体走势

指数跟踪一方面是确认市场整体趋势,行情向好时操作概率更高;另一方面是防止大跌,出现系统性风险。

A股指数

A股指数沪深300和创业板指数即可,二者分别代表了大盘蓝筹和中小成长股整体走势。在指数趋势向上时,重仓持有少操作,在指数趋势向下时,重个股,清仓。下面给出的是修正K线图,连续红色代表上涨趋势,连续绿色代表下跌趋势。

qs.HA_kline(qs.get_data('hs300')[-250:])

沪深300指数修正K线图

b3ed96ff901b5ab89d36e7a40b3e3dcf.jpeg

qs.HA_kline(qs.get_data('cyb')[-250:])

创业板指数修正K线图

15378e40f0d948142216efc9dd8f7882.jpeg


外盘指数

外盘指数一般看美股,主要是标普500和纳斯达克指数。

qs.HA_kline(qs.get_data('标普500')[-250:])

e8ad84d9eeaab4256f0cb9aac125ca0c.jpeg

qs.HA_kline(qs.get_data('纳斯达克')[-250:])

9a21a685faef928747c9f04347440bde.jpeg

全球指数涨跌幅对比

#常见的全球指数名称
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日

2734a0475a970b155487dc5af221fe45.jpeg


期货行情

关注期货行情,一个是关注当前经济发展情况(尤其是大宗商品),另一个是查看关联概念个股。

#获取期货最新行情
df=qs.realtime_data('期货')[['名称','涨幅']][:20]
qs.bar(df,x='名称',y='涨幅')

c9adeecb541badb9dfd9edb7a92d93f3.jpeg

#获取期货最新行情
df=qs.realtime_data('期货')[['名称','涨幅']][-10:]
qs.bar(df,x='名称',y='涨幅')

00b52e1aee9a97b62836a6e373b38505.jpeg

ETF基金涨跌情况

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

5a6a8d6567fda788bda2b7ce73100b98.jpeg

03

资金流情况

资金流看个股和板块,值得注意的是不同交易软件对资金流入流出的计算存在一定差异,这里所谓的资金流入数据也是滞后的,仅供参考,需要结合个股和板块走势来看,一般一两天的资金流动噪音较大,持续几天或几周的资金净流入才参考价值。

#个股20日资金流数据
df=qs.ths_money('个股',n=20).sort_values('净额(万)',ascending=False)
df

2a9e289b3398ec97769169f5b97066d6.jpeg

#行业板块10日资金流数据
df=qs.ths_money('行业',n=10).sort_values('净额(亿)',ascending=False)
df

ec12b6d9379f3715c4387201049fdc04.jpeg

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

ac3181c4bf4e35d9ef52bcebeb04508e.jpeg

05

股票龙虎榜数据

qs.stock_billboard()

0c7e59d0cdf4c5e10503aca518b06675.jpeg

龙虎榜数据与涨跌板数据类似,是短期炒作个股的风向标,短线爱好者可以深入挖掘龙虎榜的信息。

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

59c4685ea293da62d3d0f97bfabab8ab.jpeg

02

行业概念板块

#获取东方财富行业板块实时涨跌幅数据
data=qs.realtime_data('行业板块')[['名称','涨幅']]
data['权重']=abs(data['涨幅'])
#注意去掉涨幅为0的值,否则会报错
data=data[data['涨幅']!=0]
params={'data':data,'label':['名称'],'weight':'权重','value':'涨幅'}
qs.treemap(**params)

ff25d5cd07e00514ec3e73dd9e5e0cde.jpeg

#获取东方财富概念板块实时涨跌幅数据
data=qs.realtime_data('概念')[['名称','涨幅']]
data['权重']=abs(data['涨幅'])
data=data[data['涨幅']!=0]
params={'data':data,'label':['名称'],'weight':'权重','value':'涨幅'}
qs.treemap(**params)

e8e42e7002d460b68428f81d8e50b58e.jpeg

03

实时交易盘口异动数据

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

flag:盘口异动类型,默认输出全部类型的异动情况。可选:['火箭发射', '快速反弹','加速下跌', '高台跳水', '大笔买入', '大笔卖出', '封涨停板','封跌停板', '打开跌停板','打开涨停板','有大买盘','有大卖盘', '竞价上涨', '竞价下跌','高开5日线','低开5日线', '向上缺口','向下缺口', '60日新高','60日新低','60日大幅上涨', '60日大幅下跌'] 上述异动类型分别可使用1-22数字代替。

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

445a296a62b48b8e5655efe4ccbb18c8.jpeg

04

自动盯盘

假设要对自选股和指数进行盯盘,又不想一直盯着交易软件,我们可以使用python编程,基于qstock的实时数据接口构建一个盯盘脚本文件,然后使用windows系统的任务计划程序,实现在交易日的交易时间进行自动化盯盘和提醒。由于篇幅所限,代码此处省略, 完整代码分享在Python金融量化知识星球上。

while True:
    pass
    #代码此处省略,
    #具体看Python金融量化知识星球
    # 休眠10秒,再次获取数据
    time.sleep(10)

实现交易日时间自动打开并运行盯盘脚本文件,当触发设置条件时会发出语言提醒。

c03a755288f0cbe8972e534bc4efa122.png

3e1beecfc6ddc8973197e1e3883c0233.png

关于Python金融量化

4f82971b4161a39f808ef5ff6f624a46.png

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

66efb7d161933c465d77523dd2a073d8.jpeg

猜你喜欢

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