141 views
0

在本地运行正常,但放到云服务器后有时就会有这种现象,都是平仓时显示的(可能是行情接收延迟更少导致)。一般都是平仓单自动撤单后,新的重新平仓单导致这个错误。

是否是CTP反应过慢导致。即之前虽然已经撤单,但CTP没有返回已经撤单的信息。导致以为重复下单。如何解决呢?

2020-11-19T09:04:01.985540+08:00 – INFO – 通知: 下单成功,合约代码:DCE.b2101,下单方向:买,开平标志:平仓,委托价格:5366,委托手数:1
2020-11-19T09:04:02.575378+08:00 – WARNING – 通知: 下单失败,CTP:平仓量超过持仓量
2020-11-19T09:04:02.622253+08:00 – INFO – 通知: 撤单成功,合约代码:DCE.b2101,下单方向:买,开平标志:平仓,委托价格:5366,委托手数:1

Answered question

今天又试了一下,本地没有这种错误。但两台云服务器上,且为天勤2.1和1.8.3都有这个现象。我猜测是否是因为虽然PY程序已经撤单,而我的程序发现撤单后,符合条件又下单。但CTP服务器返回过慢(不排除是期货架设的TQ交易服务器反应过慢)导致,它还在挂单状态。然后我下单显示重复下单呢?我这还不算是高频,这应该是有办法解决的吧。

执行api.cancel_order(myorder_id)
后(这个之间应该还有信号延迟的问题)
insert_order 导致了这个问题

0

有这种可能,所以在 cancel_order 之后需要听一下 TqChan的消息,直到对应的请求被服务器接收返回之后再处理新的 insert_order 逻辑

Answered question