国金QMT量化交易系统的Bug及应对策略

国金QMT量化交易平台的deal_callback函数在系统重连时会重复推送当天所有成交记录,导致用户策略错误执行。工程师建议用户在deal_callback中增加判断,并自建数据库记录交易状态以避免依赖系统推送。
摘要由CSDN通过智能技术生成

国金QMT量化交易系统中的 账号成交状态变化主推 deal_callback() , 当账号成交状态有变化时,这个函数被客户端调用。

我的策略是,在handlebar()里面挂单,等待成交,而判断成交的方式是根据系统主推deal_callback()通知。收到系统通知后,经过一系列的计算再次挂单,把成交反向操作,相应的买入或卖出。

第一次发现系统的BUG是在某交易日的晚上八九点钟,我正在调试策略代码,突然间我发现deal_callback()被调用了几十次,当时我以为是系统在清算,就没有在意,就默默的在我的策略的deal_callback()里面增加了一个时间判断,下午3点后,直接return。我还把这个发现的问题,跟我的国金客户经理讲了一下,他在公司内部反馈了一下之后,让提供截图,我没有截图,就过去了。

今天,这个Bug再次出现,导致我出现了亏损。在下午2点45左右,突然出现了十几个挂单,成交了好几个。我看着非常奇怪,一直在查代码的问题,最后才发现,是因为系统在这个时间点,把今天已经成交的十几条交易记录,在几秒内又重新发送给了deal_callback(),我的代码认为有新的成交,就相应的进行了买入卖出挂单。造成了实质性的亏损。我立刻联系了我的客户经理,进行了反馈,希望这个Bug可以被快速的修复。

我的客户经理还是比较给力的,直接给我拉了一个群,以下是券商的工程师给我的回复

基本的逻辑就是QMT在使用的过程中,可能会存在网络连接问题,系统重新进行连接。每当系统重新进行连接的时候,QMT就会把当天的所有的交易成交重新推送一次给deal_callback(),而且这个逻辑未来也会是这样。

大家一定要注意在deal_callback()处增加判断,不可相信系统推送。可以考虑自己搭建小数据库,记录自己的下单和成交记录,基于自己的数据库数据进行买卖。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值