3.35K 浏览
0

如题所述,网络波动在所难免,导致程序延后运行,原本开仓命令已经提交,但是在未成交前另个一命令再次发出,导致命令重复一次或者多次,总共也就在十几秒内。有没有什么办法使得wait_update()的数据更新是以最新数据的方式进行而不是排队模式?

ringo 已回答的问题 2020年11月26日
1

听你的描述这个并不是因为wait_update延迟导致,而是在你发出交易指令之后没有考虑交易指令到交易所再到成交会有一段等待时间,然后这段时间内程序是处于循环报单的状态

可以在发单条件上再加一个本地参数变量,这样发单出去后改变本地参数,即不会重复发出交易指令

陈 陈 发表新评论 2020年11月26日

多谢
已经加了本地变量。没有重复订单了

另外需要请教api.cancel_order()的问题
while True:
api.wait_update()
if ma > 0:
执行开仓
if ma < 0:
执行平仓
if order['status'] == 'ALIVE':
api.cancel_order()
api.close()
代码类似这种形式,cancel_order放在while循环内部会取消掉提交的订单,使得订单提交不上去。这种情况该怎么处理