期货量化交易为什么会重复下单?

背景

近期有客户遇到这样一个问题:他的期货量化策略出现重复下单的情况,导致原本只交易1手股指期货,却买了三四手。

这个问题比较常见,很多用户有遇到,特别是期货用户遇到的多,为此这里记录一下。

问题分析

首先,这个策略的信号是持续性;像有些策略做突破,策略信号只在突破那一瞬间产生,突破后是不会产生信号的;但客户的这个策略信号是持续性的,只要还处在突破后的状态,他就会产生交易信号。

其次,在代码的设计上,他的策略是有持仓判断的,有持仓的时候是不会开新仓的,没有持仓的情况下才会触发下单委托。但为什么这个设计没有生效呢?

这主要是因为行情速度远快于持仓信息的更新。

先来补充一些行情知识。

知识点1:股票的tick行情是3秒一个数据,但期货的tick行情是0.5秒一个数据。

知识点2:下单委托从终端发出,会到券商/期货商,再传到交易所柜台,交易所进行撮合后,再将撮合结果推送到券商/期货商,最后由券商/期货商将撮合结果推送到我们的终端。这需要一个时间,要是网络慢一点,或者成交不活跃的,可能需要几秒钟时间甚至更长。

而这个客户用的就是期货的tick行情,行情推送的速度太快了,下单委托的结果还没收到就遇到了新的行情,而这个交易信号还是满足的,所以就会导致重复下单。

所以期货高频策略可能比较常遇到,股票策略比较少,毕竟3秒才一个tick数据,这个时间往往能够收到委托信号了,持仓也就更新了。

解决方法

那期货高频策略该怎么处理这个问题呢?创建一个变量,来控制交易进程,实现交易锁的功能。

这个变量可以通过字典数据来实现,初始化时,将每个标的,每个开仓方向作为一个关键词,False为值,创建一组键值对;触发信号时,同时判断这个键的值,False时允许开仓,True时不允许开仓;当下单之后,这个值就修改为True,等下单委托返回时才重新赋值为False。

效果

帮客户优化了策略一周多以来,再也没有遇到重复下单的问题了。完美解决问题~

策略遇到了什么问题,需要优化的,或者需要代写策略的,私聊我哈~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值