已解决2.47K 浏览
0

当程序运行后第一次下单时报这个错,然后后面的指令都不会执行,请问怎么解决?

wss://otg-gtjaqh.shinnytech.com/trade,当前时间 1630675808.666475, 开始从网络层收取数据时间 1630675342.9413931,已收取数据大小 144
2021-09-03 21:30:08 – WARNING – 通知: 与 wss://otg-gtjaqh.shinnytech.com/trade 的网络连接断开,请检查客户端及网络是否正常
2021-09-03 21:30:08 – WARNING – 通知: 开始与 wss://otg-gtjaqh.shinnytech.com/trade 的重新建立网络连接
2021-09-03 21:30:09 – INFO – 通知: 登录成功
2021-09-03 21:30:09 – WARNING – 通知: 与 wss://otg-gtjaqh.shinnytech.com/trade 的网络连接已恢复
2021-09-03 21:30:09 – WARNING – 通知: 撤单指定的order_id不存在,不能撤单,撤单信息,用户名:xxxx,报单编号:PYSDK_target_ae3c508c9ed69e5b80d205c98fdb7672

代码如下

klines = api.get_kline_serial(SYMBOL, duration_seconds=CYCLE, data_length=data_length)
target_pos = TargetPosTask(api, SYMBOL)
target_pos.set_target_volume(0)
account = api.get_account()
position = api.get_position(SYMBOL,account=TQACCOUNT)
order = api.get_order(SYMBOL,account=TQACCOUNT)
while True:
    api.wait_update()
    close = klines[“close”]

    if api.is_changing(klines.iloc[-1], “datetime”):
        KAMA = talib.KAMA(close, timeperiod = N)
        klines[“KAMA_MAIN”] = KAMA
        klines[“KAMA_MAIN.color”] = 0xFF000000
        klines[“KAMA_MAIN.width”] = 3

        if position.pos == 0 or order == “”:
            # 均线下穿,做空
            if KAMA.values[-1] < KAMA.values[-2]:
                target_pos.set_target_volume(SELL)
                print(“空头”)
            # 均线上穿,做多
            if KAMA.values[-1] > KAMA.values[-2]:
                target_pos.set_target_volume(BUY)
                print(“多头”)

cornerman 已回答的问题 2021年9月14日
0

如果只是报要撤销的单不存在是不会导致程序崩溃的,可以将报错信息帖完整看看

mojiabin 编辑评论 2021年9月12日

运行的结果是这样的,按理説出现一次空头提示就会下一次单的,但报了撤单失败后后面的空头提示再也不下单了。

空头

2021-09-07 21:32:59 – WARNING – 通知: 与 wss://otg-gtjaqh.shinnytech.com/trade 的网络连接断开,请检查客户端及网络是否正常
2021-09-07 21:33:06 – WARNING – 通知: 开始与 wss://otg-gtjaqh.shinnytech.com/trade 的重新建立网络连接
2021-09-07 21:33:06 – INFO – 通知: 登录成功
2021-09-07 21:33:06 – WARNING – 通知: 与 wss://otg-gtjaqh.shinnytech.com/trade 的网络连接已恢复
空头

空头

空头

空头

2021-09-07 21:33:43 – WARNING – 通知: 撤单指定的order_id不存在,不能撤单,撤单信息,用户名:纟,报单编号:PYSDK_target_5e734dd716f62565a8629fc32898f681
空头

空头

空头

空头

这个代码最上面有一个volume=0,sell的数量也不清楚是多少,看起来是交易逻辑判断你的持仓达到要求了,所以没有继续执行了,最上面那个volume=0并不会循环,建议再优化下代码,目前看逻辑有点乱

但重点是这个为什么会出现撤单失败?就算那条volume=0的去掉也会有这样的提示,而且volume=0没在循环里按理説之后也不会执行吧,而且也跟volume=0没多大关系,因为出现下单条件时才会出现这些提示信息,还有volume=-1不是下空单吗?为什么发出指令后却不是显示委托而是显示撤单?而且第一单委托为什么总会提示恢复连接之类的提示然后就提示撤单呢?我一直没搞明白

0

order == “”是啥?有点迷惑

判断当前无订单,不应该是 if not order 或者 order == {}吗?

cornerman 已回答的问题 2021年9月14日