股票量化分析工具QTYX使用攻略系列——双底形态选股

前言

自从股票量化分析工具QTYX新增双底形态选股功能以来,大家的反响一直很热烈。很多星球会员利用这个功能帮助自己抓到了大牛股。

确实,双底形态是由市场力量形成的,我们只需顺势而为即可,特别是大周期、多K线形成的双底形态,它的效果更好!

因此利用双底形态可以帮助大家快速过滤出符合大牛股上涨初期特征的股票。

在使用上,我们识别出来的股票池,是一个“大概率”会产生牛股的股票池。然后再叠加自己其他维度的分析因子,进一步缩小到几只股票作为自己交易目标。同时设置好止盈止损的点位,保证整体的盈亏比,亏的时候亏一点就止损,赚的时候赚个盆满钵满。这就是双底形态的核心玩法!

交易其实很简单,有时候亏钱是我们把它想得太复杂了!​​​​​​​

什么是双底形态

双重底也称“W底”,是指股票的价格经过一段下跌后,形成一个低点后展开反弹,随后再次回落,在上一个低点附近形成新的低点,此后股价再次往上运行,这样就形成了两个底部,成为双重底。

两个跌至最低点的连线称为“支撑线”。

两个低点之间的高点价格称为“颈线”价格。

通常放量突破颈线时是一个不错的买点。

突破后会有两种形态:第一种是突破后直接快速拉升;第二种是突破之后缩量回踩颈线位置附近,确认突破有效后再快速拉升。

938097e62e711638e404f1277fd4e35c.png

识别双底形态算法

49cf0da6cc750a4a0cb29ce8b040baf0.png

如上图所示,我们以个股的收盘价时间序列为分析数据。当前交易日期为终点,往前从历史交易日中选择两个连续区间。

这两个区间先按完全相等的范围设定,然后增加一个区间叠加变量,这个变量的作用是可以进一步去过滤像头肩底或者V型底的形态。

当然也可以动态去划分,划分的规则可以根据市场的整体走势来设定。

然后按以下步骤分析:

  • 找区间1的极小值,为左底

  • 找区间2的极小值,为右底

  • 找左底与右底之间区域的极大值

  • 比较左底与右底的涨幅,是否相差<3%

  • 当前日期收盘价是否突破颈线位>3%

识别形态的源代码存放在StrategyGath/PattenGath.py中,感兴趣的朋友可以研究下。

更新高速版行情数据

首先要在QTYX\DatazFiles路径下创建一个文件夹,用于存储股票数据文件,每个股票一个csv文件。代码中变量data_path默认的是stock_history/,当然大家可以随意更改。

如果stock_history目录下已经存在csv格式的股票数据,那么工具会自动加载到界面中。双击股票文件名称后,股票数据就会在界面右边表格中显示。

5f4ce6f24cf5ad3afd2c3ae489da1099.png

数据内容包含收盘价、开盘价、最高价、最低价、成交量外,还包含了涨跌幅、换手率、总市值等等,还是比较丰富的。

三个按钮的功能如下:

  • “开始下载”:工具开始增量下载股票从上市至最新交易日的全部数据

  • “刷新文件”:目前预留,个人觉得是景上添花的功能,后续有需要再增加

  • “补全下载”:在使用过程中如果触及了网站反扒机制,可以把未下载成功的股票名单记录下来,手动方式二次下载。

下载过程中会有“进度条”提供进度:

d0baab3796c551d112fbf79f6560967e.png

下载完成后在“日志区”会统计下载的情况。

f1afe9f925d85797d5314e08a2d09c0e.png

因为我本地已经有历史数据了,所以只更新了最近的三天数据。如果是第一次使用本工具,则会下载全部的股票数据。

日志上显示:共更新4368支股票,4368支股票增加数据,0支股票更新失败。共耗时515秒(每天花10分钟左右更新下数据,非常能接受了!)

如果有股票下载失败,我们可以等待一会再点击“补全下载”按钮进行二次下载。

存储了全市场的股票数据之后,针对于全市场的选股和回测就可以展开了!

8504303e4231ec0f72f5f5dedc0bf3dd.png

最新版界面如下所示:

db0b3b7b2d6ac6fd732854a343f752ef.png

f2e31f3abcd8e77f95dd6afa4556271f.png

选股数据参数说明

在“形态选股”页面,点击“开始选股”后会出现相应的控件选择参数:

  • 【开始日期-结束日期】设置形态选股的行情数据范围

  • 【股票周期】包含30分钟、60分钟、日线、周线

  • 【股票复权】包含前复权、后复权、不复权

  • 【股票池选取】包含自选股票池、全市场股票、“概念股票池”和“板块股票池”。

95182315b2b74b47802ba701a7318042.png

对于自选股票池的形态分析,我们默认使用Baostock数据源,因为这个数据源是支持多周期K线数据的。

比如选择参数“自选股票池”“30分钟”,点击“确认”后,出现如下页面:

efb31248f7b49418ce44a5662ac125ac.png

不过Baostock数据源的缺点是数据获取比较慢,因此全市场4000多只股票需要花1-2个小时。为了弥补这个缺陷,全市场选股时我们使用本地csv数据源,需要先下载行情数据。

因此,全市场选股只支持日线级别K线数据,自选股票池选股支持多周期K线数据。常用的场景是,全市场下快速选出日线级别符合双底形态的股票,作为自选股票池。对于自选股票池,可以根据自己的操作风格,在不同K线周期下去识别双底形态。

其实很多时候我们更关注的是市场当前热门板块的股票。

因此,我们在QTYX系统全市场选股功能中增加了概念板块和行业板块的分类选择。这样一来,我们可以针对性地选取自己关注板块的个股,同时选股也变得非常快速。

b914e0f81f261fac27128245bab9a74c.png

选择“概念股票池”后,出现列表对话框。左边是未选择的概念板块,右边是已经选择的。点击左边列表的板块会加入到右边选股列表中,点击右边选股列表的板块则取消,会返回到左边。“行业股票池”同理。

c7244ab19cb7a1c2b01797413123acf2.png

2af21aa3ea3ca0f7050390419c481086.png

关闭板块选取对话框后,股票池生效。然后就可以开始选股了。

312196b705486c632a3fe2a5244b46ad.png

形态算法参数说明

选股数据对话框点击“确认”,会出现形态识别算法相关参数的配置界面。

总共开放了这些参数:选取K线范围、选取中间区域误差、双底低点之间误差、有效突破确认的幅度、有效突破当天涨跌幅、有效突破成交量阈值、检测双底突破是否带跳空缺口。

注:开始选股后,再次点击按钮会紧急停止,比如发现参数配置不对时,可以停下来修改参数,然后重新开始。

4a6347429b87761b89393d03dda9a107.png

大部分参数的含义可以结合算法原理去理解。部分特殊参数的含义说明如下:

“是否为首次突破的判断”。比如我们今天使用工具QTYX去全市场寻找符合形态条件的股票,发现了以下这只股票。这只股票符合双底形态,但是已经突破好几天了(注:如果每天都使用工具筛选一遍是可以发掘到首次突破当天的),现在买入位置并不是非常合适。

ca27eda0ec11d27786b350656644c8de.png

我们更倾向于选择那些首次突破颈线的个股,这个时候买入的时机恰到好处。

比如像华数传媒,离突破当天已经有5个交易日了,属于非首次突破!

6045f45dde63552bb0d118e32f702f23.png

比如像通程控股,由于我们设置了有效突破的幅度是大于颈线3%以上,因此今天属于首次突破的日子!

95524b9a135c48df00a8df5d44e54a82.png

f1e0bbab13518efc78f926aab7887dcc.png

此外我们还结合成交量及当日涨跌幅去叠加判断,毕竟底部出现放量跳空上涨时,说明该股更加强势,使双底形态突破后的上涨成功率更大。

(1)比如双底形态突破时结合成交量是否放大,来判断是否为有效突破。有效突破成交量阈值表明,在突破当天的成交量要高于“选取K线范围”内成交量均值的百分之X以上。

(2)比如在双底形态识别的同时判断该股近期是否有向上跳空缺口配合出现,如果有的话可以侧面说明该股的强势。

双底形态选股回测

买入符合双底形态的股票后,到底是亏损还是盈利呢,我们增加了回测功能就能一目了然。比如在持有的时间内,盈利可以超过10%,而亏损只有3%,那么就能从盈亏比角度去设计我们的策略。

接下来,我们主要介绍下回测功能的用法。

回测功能在原理上是取两段数据,一段数据用于识别形态(符合形态条件时买入),另一段数据用于计算买入该股后盈亏的情况。

b19ece4cd8d4e7a05d681b4ec0e7b3b0.png

比如我们取识别形态的数据段的开始时间至结束时间是2021年4月4日—2022年2月4日。当前日期是2022年4月4日,那么评估盈亏数据段的开始时间至结束时间2022年2月4日至2022年4月4日。

eb5b24df1b80ded1279b5b1fc4393bcf.png

在双底形态的配置参数界面有这么一个参数【设置使能回测所需交易日数量】,当配置成40天时,需要保证“评估盈亏数据段”至少要大于40天才会使能回测功能(数据量太小无计算的意义)。

点击“开始选股”按钮后开始识别双底形态,当出现符合条件的个股时,打印日志如下所示:

6e7443555791f5289020c5c9eec3457f.png

在“双底形态分析结果-高速版.csv”中可以发现多了最大盈利id(发生最大盈利的时间)、最大盈利价格、最大盈利比例%、最大亏损id(发生最大亏损的时间)、最大亏损价格、最大亏损比例%这几列。

d87a2c07e88a23a8b241f9587ea1a251.png

特别是“最大盈利比例%”和“最大亏损比例%”这两列,我们可以客观地评估双底策略的效用。

我们选其中一只股票,比如证通电子,打开行情软件验证一下识别出来的结果准确度是否在可接受范围内。 

e0d1e992132fa3880fa059eecb1120f4.png

计算得到盈利和亏损的比例之后,我们可以设计策略的赔率。不少交易者容易走入胜率的误区,总觉得策略的胜率要很高才能盈利,其实设置好止损点后,让利润奔跑,这样的策略也是可以长期盈利的。

形成双底形态的个股不一定会开启一轮上涨趋势,但是很多大牛股在启动前会出现双底形态。我们的目的是抓住大牛股,因此即使双底形态的胜率不高,但是在低胜率时如果能够抓住大牛股每次赚的时候赚很多,而亏的时候亏一点就止损(建议使用动态止损,比固定止损效果更佳),这样就能保证策略的盈亏比。

选股结果输出

点击确认后,正式启动程序,开始自动识别,当前分析产生的结果有以下几种:

形态无效: 滤除股票 东方生物,代码 sh.688298
形态有效: 股票中红医疗, 代码sz.300981 分析结果如下:
a) 双底形态判断有效:左底 2021-06-22/102.6元; 右底 2021-07-26/101.63元; 中顶 2021-07-15/116.18元;
b) 未形成有效突破幅度!
形态有效: 股票辉煌科技, 代码sz.002296 分析结果如下:
a) 双底形态判断有效:左底 2021-07-01/6.72元; 右底 2021-07-28/6.62元; 中顶 2021-07-22/7.16元;
b) 双底形态突破幅度有效:当前收盘价 7.39元; 颈线价格 7.16元; 
c) 双底形态突破放量有效:当前成交量 87619.64手; 平均成交量 62783.05307692308手;
形态有效: 股票民生控股, 代码sz.000416 分析结果如下:
a) 双底形态判断有效:左底 2021-07-28/3.5元; 右底 2021-10-20/3.53元; 中顶 2021-09-13/4.04元;
b) 双底形态突破幅度有效:当前收盘价 4.27元; 颈线价格 4.04元; 
c) 当日为首次突破!!!--双底形态突破涨幅有效:当前涨幅 0.1005%; 
d) 双底形态突破放量有效:当前成交量 174243手; 平均成交量 51667.8813559322手; 
e) 检测[sz.000416 民生控股]近期向上跳空缺口
f) 检测到2021-10-22出现向上跳空缺口, 跳空能量为4.23!

我们会把符合条件的股票及分析的结果存在ConfigFiles路径下的双底形态分析结果.csv中。分析结果的日志会自动存入txt格式的本文中。

48bd6b0828d5fd6f81c235bac75d72ac.png

选股结果包括:股票名称;股票代码;形态识别结果;出现左底的日期和价格;出现右底的日期和价格;出现中间顶部日期和价格;是否满足突破幅度,如果满足突破幅度时当前收盘价格和颈线价格分别是多少;是否满足放量突破,如果满足放量突破时当前成交量和平均成交量分别是多少。

377a61cb124cf42c6b113299d15eb0e3.png

由于界定一种形态本身就比较宽泛,所以我们的目的更多的是提高选股的效率。只需十几分钟,从4000多个股票中快速筛选出10几只符合要求的股票。

为了保险起见,大家筛选出来的股票尽量人工确认一番。

在实际应用中,我们还需要进一步结合基本面的指标去加以判断,来得到更加可靠的买入信号。

导入自选股票池

在新版本中增加了批量导入股票功能。以“双底形态分析结果-高速版.csv”文件为例介绍下如何使用。

csv文件的关键点是要有“股票代码”和“股票名称”这两列。股票代码的格式可以是sh.xxxxx或sz.xxxxxx,也可以是xxxxxx.SH或xxxxxx.SZ。如下所示。

9960a9579bead810b61e780a27819543.png

运行QTYX工具之后,点击主菜单的【量化】按钮进入界面,选择菜单栏的“股票池管理”,可以选择“增量更新”和“完全替换”两种更新方式。

99569e0045e3c1a330a935b3f14480e9.png

比如我们选择“完全替换”方式,然后选择“双底形态分析结果-高速版.csv”,点击确认后即可将csv文件中的自选股完全替换至QTYX中的自选股票池中。

这样一来我们可以把双底形态选出来的股票导入到自选股票池中了。然后就可以使用各种量化的分析功能了!比如查看该股不同周期的走势、查看K线形态、衍生技术指标等等,或者加入到“组合分析池”后激活到“投资组合分析”,进行“收益率/波动率”分析、“投资组合分析”以及“财务报表”分析等等。

1f5141a05dbc1bb867e0d948f7735f51.png

4662b5348443b1afa0a3c517f99008aa.png

0be08346f291a6aab7eca6af02d3422d.png

远程提醒

由于筛选全市场4000多只股票耗时比较长,通常我是让服务器自动运行的,运行完成后,以邮件方式通知到我手机微信上(只需要在微信上开启QQ邮箱提醒功能即可),让我去看查看分析结果。

c2866bb9a13be3f46aff22d38308a060.png

关于邮箱发送的一些参数设置,在ConfigFiles的sys_para.json文件中的mailbox键对应的数值,包括to_address收件箱地址;from_address发件箱地址;password授权码,需要在qq邮箱中设置;server_address服务器地址。

比如我用我搭建的云服务器,每天20点远程推送双底形态识别结果到我的手机QQ邮箱。

使用小技巧

首先建议大家尽量把参数设置得苛刻一点,宁缺毋滥一点。

比如【有效突破当天涨跌幅%】【有效突破偏差】设置得低一点,会出现很多以下走势的个股,虽然也是双底突破,但是非常弱。

80a430347a455359e3f9d7fd50506804.png

比如【有效突破当天涨跌幅%】【有效突破偏差】设置得高一点,可以过滤掉很多假突破真诱多的股票,选出来的强势股概览会大幅提高。

15df898c724204a5e5840430de2d1176.png

7a43b10455b30e9812fe83fd041d906c.png

主要原因是出现双底走势是强势股的必要条件,而不是充分条件,所以尽量利用苛刻的参数去由形态反向搜索强势股,这样选中的概率更高。

另外也要配合一定的仓位管理和止损策略,当出现判断失误的时候一定要果断止损。

未完待续

不少星友在使用过程中根据实战应用中的一些经验反馈给我了不少需求,我觉得非常好,大家一起来完善这个策略体系,同时也能帮助大家一起赚钱,一举两得!

目前这个选股思路在实战中效果整体不错,我打算沿着这个策略逐步深入优化。这个过程中是一种持续迭代的过程,我们会不断地调整策略算法的细节。

股票量化分析工具QTYX使用攻略系列——双底形态选股QTYX股票量化系统使用攻略集合——双底形态使用https://mp.weixin.qq.com/s?__biz=MzUxMjU4NDAwNA==&mid=2247489028&idx=1&sn=b4739bc25d761734718f95ed3f499699&chksm=f963662fce14ef39209d39b3fa60fdcad5435cc84fd1e5f68422fdaa5e81b2047a71fc9f23ab&token=12980582&lang=zh_CN#rd

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DevilYuan股票量化系统 简介 DevilYuan股票量化系统由python编写,支持python3.4+,有如下功能: 可视化(基于PyQT的界面) 多线程事件引擎 四大功能 股票数据 选股 策略回测 实盘交易 历史数据均免费来自于网络 Wind免费个人接口 TuShare 实盘微信提醒及交互 一键挂机 全自动交易 模拟交易,支持9个模拟账号 实盘和回测共用同一策略代码 实盘策略编写模板 选股策略编写模板 自动下载历史数据到MongoDB数据库 股票代码表 交易日数据 个股,指数和ETF历史日线数据 个股和ETF历史分笔数据 集成基本的统计功能 实盘单账户多策略 运行后的界面 image 运行前的准备 支持的操作系统:Windows 7/8/10 安装Anaconda,python3.4+ 64位版本 安装MongoDB,并将MongoDB配置为系统服务 由于个股历史分笔数据比较大,建议配备1T以上的硬盘 MogonDB客户端 实盘交易现在支持的是银河证券,请安装对应的PC客户端 银河证券的客户端需要做如下配置,不然会导致下单时价格出错以及客户端超时锁定 系统设置 > 界面设置: 界面不操作超时时间设为 0 系统设置 > 交易设置: 默认买入价格/买入数量/卖出价格/卖出数量 都设置为 空 同时客户端不能最小化也不能处于精简模式 安装Wind个人免费Python接口 (可选) 若不安装Wind接口,股票代码表,交易日数据和历史日线数据将使用TuShare接口。TuShare这一块的数据更新速度比较慢。并且Wind的复权因子数据比较准确,建议安装Wind。但Wind的接口对数据流量有限制。 到Server酱注册一个SCKEY,这样实盘时的信号可以铃声通知 (可选) 安装Vistual Studio社区版,并勾选Python插件 (可选) 本项目是用VS2017开发的。你可以选择是用VS2017,或者用其他IDE 需要安装的Python包 tushare pymongo qdarkstyle pytesseract pywinauto talib,请到这儿安装对应的whl版本 aiohttp pyqrcode mpl_finance pip install https://github.com/matplotlib/mpl_finance/archive/master.zip pypng VS调试时报异常的包,不调试时不会报错,可选安装 datrie crypto gunicorn 运行 python DyMainWindow.py 运行后的步骤 配置DeviYuan系统 下载历史数据 写一个实盘策略

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值