| | |
| | | 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): |
| | |
| | | |
| | | |
| | | 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") |