Administrator
2023-01-13 48dcb788e821d40be37fa05c9789b751a6e2a69b
trade_manager.py
@@ -244,14 +244,40 @@
    try:
        logger_trade.info("{}开始撤单".format(code))
        set_trade_state(code, TRADE_STATE_BUY_CANCEL_ING)
        logger_trade.info("{}撤单方法开始".format(code))
        guiTrade.cancel_buy(code)
        logger_trade.info("{}撤单方法结束".format(code))
        __cancel_success(code)
        try:
            cancel_buy_again(code)
        except Exception as e1:
            pass
    except Exception as e:
        # 状态还原
        set_trade_state(code, trade_state)
        logger_trade.error("{}撤单异常:{}".format(code, str(e)))
        raise e
    logger_trade.info("{}撤单完毕".format(code))
# 再次撤单,防止没有撤掉
@tool.async_call
def cancel_buy_again(code):
    time.sleep(0.1)
    for i in range(0, 5):
        # 如果时
        trade_state = get_trade_state(code)
        if trade_state != TRADE_STATE_BUY_CANCEL_ING and trade_state != TRADE_STATE_BUY_CANCEL_SUCCESS:
            return
        try:
            logger_trade.info("{}:开始再次撤单", code)
            guiTrade.cancel_buy_again(code)
            logger_trade.info("{}:再次撤单成功", code)
            break
        except Exception as e:
            logger_trade.error("{}再次撤单异常:{}".format(code, str(e)))
            time.sleep(0.1+0.05*i)
            pass
# 取消委托成功
def __cancel_success(code):
@@ -338,7 +364,4 @@
if __name__ == "__main__":
    # time_str = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    # print(time_str)
    # __clear_big_data()
    pass
    cancel_buy_again("000637")