1,价差的净仓的计算逻辑
程序中是先根据主动腿的净仓,再根据被动腿的净仓计算的。这样计算出来是 “净仓的价差” 的仓位。但是,这在实际交易中是有问题的。比如:
我同时交易原油SC78, SC89的正套,那么SC8月这条腿的净仓就会对这两个价差的净仓都有影响
价差的仓位,应该也是有多头和空头,净仓的话应该等价差的多头减去价差的空头。那么就不会相互影响了。这样就可以进行更加复杂的套利,比如共用某一合约的套利、碟式套利等。价差的仓位在很多价差策略中都会用到,正套的时候会用到多头,反套的时候会用到空头。
2,couter
这个设计的初衷我理解是当预设的价差值触发之后,一条腿成交之后或者委托发出之后开始COUNT。比如10秒内要把价差的仓位建好的,否则就全部撤回,并报错。
但是实际上这个COUNTER,在价差算法一启动时就在COUNT, 不管有没触预定的价差。
3,撤单失败
2020-04-27 11:13:45,613 INFO: 交易撤单失败,代码:26,信息:CTP:报单已全成交或已撤销,不能再撤
2020-04-27 11:13:51,555 INFO: 交易撤单失败,代码:26,信息:CTP:报单已全成交或已撤销,不能再撤
像这种情况它会一连发出好几十个。
我尝试查了一下,可以是COUNTER的问题,因为如果正好在counter=2时,那么下秒就要撤回。但是修改了不用counter后还是会出现这种问题。
目前没找出具体的原因。如果成交了那为什么还要撤?
能不能一收到CTP这种报错就停止策略和算法。请问一下在哪里改.
谢谢!