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

国金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()处增加判断,不可相信系统推送。可以考虑自己搭建小数据库,记录自己的下单和成交记录,基于自己的数据库数据进行买卖。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/7435.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前置声明、源文件include、编译链接顺序问题

TestB.h (前置声明,无需在源文件include)重点: 1.前置声明用在指针变量使用,无需在头文件或源文件include 2.继承或者普通变量在头文件使用的时候(除非所有的编译顺序都正确,才能在源文件include),最好不要在源文件i…

vue项目使用自定义域名开启本地服务(ip地址和域名映射)

前言 有的时候,我们直接用script请求需要在同一个顶级(一级)域名下才可以拿到数据。 本地服务在开启时一般都是localhost,或者带ip。如果想要自定义域名访问本地服务,需要做以下配置。 ip地址和域名映射 在域名请求…

Java面试Day16

1.Dubbo 是什么?是否了解过它的架构设计? Dubbo官网:Apache Dubbo Dubbo是一个高性能、轻量级的开源Java RPC框架,它提供了完整的RPC协议栈,包括服务发布、服务引用、负载均衡、容错、服务治理和服务监控等功能&#…

Linux 学习记录45(C++篇)

Linux 学习记录45(C篇) 本文目录 Linux 学习记录45(C篇)一、纯虚函数和抽象类1. 纯虚函数2. 抽象类 二、C中的异常处理1. 抛出异常2. 处理/捕获异常 三、模板(template)1. 模板函数(1. 模板函数的定义和调用(2. 模板函数需要显性调用的时机 2. 模板类3. 模板函数和模板类实现的…

只出现一次的数字

题目链接 只出现一次的数字 题目描述 注意点 1 < nums.length < 30000-30000 < nums[i] < 30000除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次 解答思路 最初想到使用一种数据结构将元素存储起来&#xff0c;但是空间复杂度为O(n)&#xff0…

kafka的broker和replica和文件存储

zookeeper中存储的kafka信息 /brokers/ids&#xff0c;记录存在的服务器id/brokers/topics/test/partitions/0/state&#xff0c;记录leader和可用副本服务器/comsumers&#xff0c;0.9版本之前存储消费者的offset信息&#xff0c;但是会产生zookeeper和broker的跨节点通信/co…

MyBatis—操作数据库

MyBatis &#x1f50e;前置铺垫创建数据库MyBatis 的执行流程创建对应流程 &#x1f50e;MyBatis—查询查询用户信息执行流程创建实体类创建 Interface 与 xml在 xml 中编写 SQL 语句模拟执行流程 &#x1f50e;单元测试定义优点执行单元测试引入依赖生成单元测试编写代码Asser…

计讯物联5G数采仪助力打造化工园区企业工况监测系统

项目背景 随着我国化工行业的快速发展&#xff0c;化工园区已成为化工行业发展的重要阵地&#xff0c;化工企业聚集&#xff0c;危险化学品安全风险集中&#xff0c;安全规范问题逐渐成为行业关注的焦点。然而&#xff0c;我国化工园区发展水平发展参差不齐&#xff0c;尤其是…

吴恩达ChatGPT《Building Systems with the ChatGPT API》笔记

1. 课程介绍 使用ChatGPT搭建端到端的LLM系统 本课程将演示使用ChatGPT API搭建一个端到端的客户服务辅助系统&#xff0c;其将多个调用链接到语言模型&#xff0c;根据前一个调用的输出来决定使用不同的指令&#xff0c;有时也可以从外部来源查找信息。 课程链接&#xff1a…

SpringBoot整合RabbitMQ实现消息延迟队列(含源码)

环境依赖 SpringBoot 3.1.0 JDK 17 前期准备 安装MQ: liunxdockerrabbitmq安装延迟队列插件 实例 实现延迟队列的一种方式是在 RabbitMQ 中使用消息延迟插件&#xff0c;这个插件可以让你在消息发送时设置一个延迟时间&#xff0c;超过这个时间后消息才会被消费者接收到…

【Squid 代理服务器应用】

目录 一、Squid 代理服务器1、代理的工作机制2、代理服务器的概念及其作用3、Squid 代理的类型 二、安装 Squid 服务1&#xff0e;编译安装 Squid2&#xff0e;修改 Squid 的配置文件3&#xff0e;Squid 的运行控制1、检查配置文件语法是否正确2、启动 Squid&#xff0c;第一次…

Spring Boot中的Elasticsearch自动配置:原理与使用

Spring Boot中的Elasticsearch自动配置&#xff1a;原理与使用 简介 在Spring Boot中&#xff0c;Elasticsearch是非常流行的搜索引擎。为了方便开发人员使用Elasticsearch&#xff0c;Spring Boot提供了Elasticsearch自动配置功能。本文将介绍Elasticsearch自动配置的原理与…