量化系统QTYX使用攻略|“盘中战法”篇——监测交易信号触发,机器人自动下单同花顺(更新2.8.1)...

588354965f72643373852cb14647b14c.png

QTYX系统简介

0644048369ab5442bb26fc93a7891aae.png

股票量化交易系统QTYX是一个即可以用于学习,也可以用于实战炒股分析的系统。

分享QTYX系统目的是提供给大家一个搭建量化系统的模版,最终帮助大家搭建属于自己的系统。因此我们提供源码,可以根据自己的风格二次开发。

关于QTYX的使用攻略可以查看链接:QTYX使用攻略

QTYX一直迭代更新,当前版本V2.8.1。后续升级版本会同步更新文档内容。

星球下载位置如下:

7ae9120e0f8a12b3c2135bced7778379.png

7d87cdd2cddc6b4e462fa7b138144ae8.png

功能概览

3abcfe644083841a3e0bea5d1aeb09d2.png

股票量化交易系统QTYX最终形态是一款全自动化的量化交易系统。

于是,QTYX推出了“下单机器人”功能。

在实盘时“下单机器人”会读取实盘设置参数,以及个股买入/卖出条件单,周期获取全市场最新数据,当判断到个股符合条件就触发报警并执行交易。

这样一来,我们可以把QTYX部署在云服务器上,让QTYX帮我们实时盯盘,当到达我们设定的目标时,通过邮箱、微信或者钉钉等即时聊天工具通知我们,同时也可以委托“下单机器人”自动下单。

d63006d313a8e3b956616c62b55fb8f6.png

配置实盘参数

faa49ca3a1e16a8fd701745ca1cb8594.png

点击QTYX“交易”后进入子页面。

dd9f23bb12424d0726758e255695d43c.png

点击“查看配置参数”按钮后,左边日志栏显示当前实盘配置参数。

a9d924e98b4d5b3f65cbdd4fc387026d.png

如果要更改参数,可以打开trade_para.json文件手动更改。

fe84068098d5b68cb623d46642dd7417.png

在实盘阶段,监测时间段在9:25--11:31和12:59--15:01,如果要测试功能,可以使能“测试模式”,并且模拟当前时间为交易时间。

107cb0f249e4a5802d12783cdd238393.png

添加交易条件单

c492e0a171258c50e5ebae16fb3d2ce2.png

“交易条件单”中记录的是实盘中需要交易的股票信息,比如买卖的股票、数量、价格、盘中执行的策略等。如何生成“交易条件单”呢?

交易条件单分为买入(准备买入)条件单和持有(准备卖出)条件单。

点击“导入股票池”后会把自选股中的股票最新行情数据加载到界面中(用于建立条件单)。

点击股票代码后会出现买入/持有单配置界面。

0dfb18dbae736b7f784367d3d931e383.png

我们根据自己策略分析的结果填写交易方向(买入)、买入的价格、买入的股票数量。如下所示填写“洪涛股份”的交易配置参数:

7a0756d330738ba6ba7bfe29d362b4a7.png

配置完成后点击确认,就添加到了左侧的“交易股票池”中了。

3fdca665ae0f54611e1b41efe0630528.png

“持有股票池”中记录的是已持有股票的止盈止损设定值。

盘中触发到止盈止损值时会触发卖出信号。

同样,点击“导入股票池”后会把自选股中的股票最新行情数据加载到界面中。点击股票代码,然后选择“持有股票池”会出现配置界面。

902277ffc2401ffb685cd371ca475bcf.png

我们可以更改止盈止损的模式和幅度,同时配置界面也会显示买入的价格和持有后最高的价格。

目前我们支持的止盈模式是固定比例的,比如买入后涨幅达到10%止盈。止损模式是动态回撤止损,比如买入后股价从最高价下跌5%后就止损退出。

如下所示填写“福蓉科技”的止盈止损配置参数。

3401a90ddcd4518a837d43305f009244.png

点击确认后会添加到“持有股票池”中。

d14b18414a886d298762c3e85ce8529a.png

如果要删除该股,更改交易参数,或者更改止盈止损参数的话,双击对应股票池中的股票代码进行选择即可。

另外,当触发“买入条件单”中的股票后,会自动更新至“持有股票池”中。

如果有单独手动下单买入的股票,也可以通过在ConfigFiles/trade_para.json中添加信息方式更新“持有股票池”

e53f4a9ba5c58c3d3541ef60e134498d.png

启动下单机器人

3fbcd8c372cfac289af11a981b0292b0.png

单独运行QTYX工程下的文件“TradeRobot.py”即可启动“下单机器人”。

d301c7f6089de07ea0c4beccf7ace366.png

在下单机器人TradeRobot.py中有一个TimeTrigger类,可以在其中的trigger_run中添加自己要定时执行的任务:

def trigger_run(self):


    while True:
        if self.in_trade_time(cur_time):
            # 9:25--11:31 12:59--15:01 时段获取数据
            print(u"当前时间{0}".format(cur_time.strftime("%Y-%m-%d_%H:%M:%S")))
        elif self.before_trade_time(cur_time):
            print(u"开始时间{0}--未开盘".format(self.start_time.strftime("%Y-%m-%d_%H:%M:%S")))
        elif self.after_trade_time(cur_time):
            print(u"结束时间{0}--已收盘".format(self.end_time.strftime("%Y-%m-%d_%H:%M:%S")))
        else:
            print(u"休息时间-- 11:30至13:00")
        time.sleep(CONF_SCAN_TIME)  # 3秒采集一次, 执行时间在2秒内, 等待1秒

比如我们在交易时间段三秒周期调用了实时行情获取类RealTimeData的get_daily_thread()接口,也可以在收盘的时候调用这个接口,并且把数据以csv格式存储到本地,或者存到本地的数据库。

2c048111174a0982b413b12f3d525b8c.png

远程发送分析报告

6b80d21115892fbaf04c07f4b94c3ccd.png

实盘时发现该股已经到了买入或者卖出价位时,或者符合止盈止损交易条件时,会远程发送信息提醒。(要记得在ConfigFiles/sys_para.json中填写邮箱信息,在微信上开启QQ邮箱提醒功能,效果如同微信提醒)

cf65a1257e950e11b573ae8ed836f6c5.jpeg

如何填写邮箱信息:

发送邮件和核心是SMTP(Simple Mail Transfer Protocol)协议,它是一组用于由源地址到目的地址的邮件传输规则。

Python真的是什么都能做,它对SMTP进行了简单的封装,只需用到两个模块,就可以轻松实现发送纯文本邮件、HTML邮件以及带附件的邮件。

哪两个模块呢?Python内置的email模块负责构建邮件,另一个smtplib模块负责发送邮件。

常规的流程,先把涉及到的模块全部导入进来,如下所示:

fd1b6f223f1161bffe949fcbf1413550.png

首先用MIMEText()构造一个最简单的纯文本邮件,其中第一个参数是邮件正文,第二个参数是内容的类型,比如'plain'表示纯文本邮件,'html'表示HTML邮件。

创建的邮件对象中,要添加From、To和Subject这些属性,否则就不是一封完整的邮件,比如会出现邮件没有主题,发件人的名称为匿名,明明收到了邮件却提示不在收件人中这些情况。

典型的例程如下所示:

fa512cb50f4a9addb2fba193bd1d01da.png

再来说说负责发送邮件的smtplib模块,这个模块主要是用smtplib.SMTP()类去连接SMTP服务器,然后发送邮件。

例程中我们会用到几个常用的方法,比如set_debuglevel(1)打印和SMTP服务器交互的所有信息。login()登录SMTP服务器,sendmail()方法发邮件。

典型例程如下所示:

385f282740e5014b65aebd2f662aaf9e.png

这里的password是个比较容易混淆的地方。不是邮箱登陆的密码,而是授权码。

第三方客户端登录QQ邮箱时是需要授权码的,包括其他邮箱也都一样,比如126、163邮箱等等。授权码可以认为是一个专用密码,适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。

如何设置呢?以QQ邮箱为例,我们在QQ邮件的帮助中心找到了方法。

在个人邮箱页面进入[设置] -> [帐户] 页面找到入口,然后把POP3/IMAP/SMTP这几个服务开启。

892d2ea9a7a52f955554325fc95e374e.png

开启的时候有验证密保环节,需要发送短信,接着就获取到授权码,在第三方客户端的密码栏里面输入这16位授权码进行验证即可。

1be1932be7ff49ba9595b9c13fd307bb.png

87d637406af455ea87c0b2b74938844b.png

这样一来邮件就发送成功了!

62eefc302dd42d2433e4285cefec8875.png

自动交易接口‍

ffd17e01ab5316b3ac390bdb95f72eaf.png

在配置参数对话框中,如果勾选自动交易的话,系统会根据设置的参数自动执行买卖操作。

8f7ab4424d404e9d9d9cd40d8f81889f.png

需要注意的是,QTYX支持接入第三方库easytrader执行自动交易,使用之前在自己的环境上调试好easytrader库即可。

acbf02771dee2a48595864c13868a344.png

具体可以参考以下公众号文章:

股票量化系统QTYX开启全自动实盘之路——第一弹easytrader库搭建本地自动交易环境

如果大家把自动交易调试稳定的话,可以把自动交易的函数添加到以下代码处,这样就完成了自动交易这个末端环节。

if val['auto_trade'] == True:
    print("自动交易需调试交易环境,查看公众号《小散量化炒股记|要克服人性弱点?激活股票全自动化交易!》")

bd35de198164c267ba2162c2b85be83f.png

服务器部署下单机器人

6825b376cf45fe55f383b5fb2df02591.png

我们已经准备好了下单机器人的Python脚本(QTYX目录下的TradeRobot.py),能达到定时执行Python程序的本质还是用到Windows下的任务计划,在日常工作中这个功能经常用于提高工作效率的。

接下来创建一个定时任务来执行这个脚本。

第一步,右键我的电脑,点击管理。在弹出的计算机管理对话框点击任务计划程序—>创建基础任务。

9f433ebd639dd0d386dc96d017404f12.jpeg

第二步,在弹出的创建基本任务向导输入名称和描述,然后点击下一步。

4332ec3c2ffc83583e44e6273c631f34.jpeg

第三步,在触发器页面设置脚本执行的时间计划,选择每天,点击下一步。

73d044ad3a6929b1acf9d679fc60c81b.jpeg

第四步,设置每天触发的时间,点击下一步。

25acb3f10a9c86762d69f14da9825292.jpeg

第五步,在操作页面,选择启动程序,点击下一步。

554fe92392be2402dd7086080135fdd9.jpeg

第六步,此处程序或脚本中填写的一般是编译器的名称,一般对Python来说就是Python.exe(找到你的安装路径),添加参数就是你所要执行的Python文件(完整路径),这样填写的本质其实就是在命令行中执行Python一样。

a645d6532ca7d6025a227a34a5e75e1b.jpeg

第七步,设置到这里已经算是完成了,接着就是等待它自动执行了。

9371955435702f76653c7acc9c5f4ad2.jpeg

255115b96fcfa61418fef67fa6bd7a1d.jpeg

72ecd3cc0c30cdd61ab8c357a2e07152.png

总结

0dafe44bd6d5caa30657c32f58902093.png

有了这个框架后,我们就打通了QTYX的下单环节了。QTYX用于选出强势股,下单机器人实盘监测,找到合适的机会下单。

接下去大家可以在这个基础上结合自己的风格进行二次开发。比如盘中根据题材热度实时选股,叠加其他条件进行分析,符合要求直接自动下单等等。

说明

想要加入知识星球《玩转股票量化交易》的小伙伴记得先微信call我获取福利!

知识星球介绍点击:知识星球《玩转股票量化交易》精华内容概览

0f3e6884a1a329d38bc88ebcb6785b41.jpeg

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值