vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 14
声望: 0

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这种报错就停止策略和算法。请问一下在哪里改.

谢谢!

Administrator
avatar
加入于:
帖子: 4214
声望: 241
  1. 基于数量最少的那条腿来计算
  2. 算法中的timer_count确实没用到,改为在算法模板中自动实现了,每隔一段时间调用on_interval函数
  3. 确实可能遇到下单后立即需要撤回的情况,如果出现较多这种报错,可能因为网络问题没有收到该委托的回报
© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3