4.0版本:更准确,更稳定 4.0在3.0的基础上,主要将聚宽的传递信号做了优化,使得聚宽代码基本不用怎么改,也不用对交易函数做设置,只做简单的设置便能达到目的。同时,聚宽逻辑的优化,使得聚宽传递的信号和qmt接受的信号保持一致。 2024-05-13- 优化了聚宽内部的下单函数代码逻辑,将原有下单函数重构,使其能保持原有交易逻辑的前提下,自动将模拟的交易信号传导出来。这样就不需要对原有交易函数做任何的修改,就能达到目的。
- Qmt接受函数做了一定的优化处理,添加了账户重连机制;断网后也是能自动重连,同时优化了一些数据粘连等处理,保证大量的解析每笔订单。
- Qmt接收端,委托下单价格,增加了买1、买2......买5 卖1、卖2......卖5
3.0版本:更智能3.0在2.0的基础上优化了账号、参数调整界面,更方便美观;同时提供了买入卖出价格可选类型;优化了部分bug,添加了一些可调参数;总体而言,灵活性和便捷性有加大提升。 2024-03-24- 整个参数的填写在Qmt添加策略界面统一操作,包括:账号、密钥、买入/卖价格、下单比例、是否阻塞线程等,后续陆续可能还有添加。
- 修订资金账号首位为0的问题,需在输入账号时添加一个A,如A00008999
- 添加了买卖价格类型可选,主要包括:最新价、买1、卖1、对手价、买5、卖5
- 添加Qmt下单比例参数,即qmt账户相对于聚宽模拟账户下单的比例,比如聚宽账户资金设置为100万,该比例调整为0.5,则qmt账户以50万规模为准交易。默认为1
- 添加是否阻塞线程,由于Qmt策略均为单线程运行,所以一旦某个策略出现了线程阻塞(如:handlebar、while等函数),则其他策略是不能同时运行的。该选项勾选,则仅能聚宽_qmt实盘策略运行,这样非常稳定(建议勾选);但如果有其他策略需要同时运行,且其他策略也为非线程阻塞方可同时运行,暂不清楚是否有线程冲突或延时问题。
- 优化支持交易品种:股票、ETF、可转债
- 将qmt端提示保持连接的输出内容延长至60秒输出一次
2.0版本:更简便宽QMT实盘通道升级到了2.0版本,该版本下,速度更快,更稳定,功能和适用性上更广,同时我将之前的NPC客户端直接优化掉了,我们可以更便捷的将聚宽信号传递到QMT下单交易,再也不会有360误报病毒的问题了。 2024-01-25- 将1.0的NPC客户端去掉,直接通过服务器直连完成数据传输
- 优化通道传输逻辑,其实更加稳定
- 该版本下,支持多个聚宽策略传递到一个qmt下单;也支持一个聚宽策略传递到不同的qmt客户端下单。
1.0版本:能实盘为了解决聚宽的实盘问题,我开发了NPC专用网络传输通道,利用内网穿透的原理,将聚宽信号传递到本地qmt进行下单交接。从而解决了聚宽模拟不能实盘的问题。
为了解决聚宽实盘问题,我尝试过不同的方法,目前已经将该项目推进到3.0的版本了。从1.0的内网穿透NPC;2.0的服务器直连,兼容多策略;到现在逐步丰富和便捷的自定义参数设置。经过博主日夜的攻坚,终于将聚宽QMT实盘通道升级到了3.0版本,该版本下,速度更快,更稳定,功能更多更便捷、适用性上更广。
下面简单介绍下聚宽和QMT的部署,不熟悉python的朋友可以直接联系我远程帮忙部署!
将压缩包解压后,出现两个文件: 一、聚宽网页设置I、打开jqmt.py文件(可以用记事本打开)用我发给你的密钥替换tunnelID后“keyxxxxxxxx”中内容,保存后退出: II、登录聚宽官网,进入研究环境,上传jqmt.py文件,添加下单函数上传jqmt.py文件III、然后在策略中添加一段代码即可:from jqmt import *order = qmt_order(order)order_target = qmt_order_target(order_target)order_value = qmt_order_value(order_value)order_target_value = qmt_order_target_value(order_target_value)代码添加完成后,一定要跑一次完整的回测,再添加到模拟运行中,这样修改后的代码才会生效!
二、登录QMT程序,在模型研究中导入策略,并在模型交易中启动策略。如还没申请官方专业版QMT的,可以直接联系我申请。
1.首次登录qmt需要缓存python库,缓存完成后一定要重启才生效。
2.在 模型研究 中空白处右键 导入策略 聚宽_QMT实盘3.rzrk
(注意!这儿名字不能修改,不然识别不到.rzrk 文件) 3.导入策略后,点击 回测,等待日志输出框提示 初始化配置即可4.在 模型交易 中添加并设置刚刚导入的策略。注:运行周期与策略无关,可以不用设置默认就行。
5.启动策略根据需求,选择实盘还是模拟,模拟只触发信号,传递到软件,但并不做委托。可以在策略信号中看到触发的买卖信号和数量。 当聚宽模拟与qmt接通后,会在qmt的 策略日志中每60秒 反馈一个保持连接的提示Qmt等待接收交易信号! 当qmt接收到聚宽传入的交易信号后,也会有相应的日志回报,格式如下:
温馨提示:该方案仅用于聚宽和qmt的模拟测试和策略研究等使用;是否需要实盘请客户自行斟酌!对提供的网络传输通道的稳定性请自行判断,我们不做策略盈亏、通道稳定性的任何保证。
问题及注意事项:1.如果提示_socket、pandas等库不存,请更新qmt的python数据包:设置—>模型设置—>python库下载 2.如果需要关闭自动重启,请选择 设置—>自动重启设置—>将下图取消勾选。 3.如果是使用1.0版本的朋友,一定要将之前的聚宽 研究环境 中的 jqmt.py 先删除,再上传新的jqmt.py,代码中的修改部分可以不变,但整个策略需要重新跑一次回测再添加至模拟运行中。如果是已经使用2.0及其以上的版本,聚宽中不需要任何改动,也不需要重新修改代码、回测、部署模拟等步骤;仅需要将qmt策略文件换为最新的3.0并设置相应参数即可。 4.您的及时反馈,是我们不断前进的动力!
|