Administrator
2023-10-13 fddfc0e7c3b2938f70637e54d214faab478f7ca4
huaxin_client/trade_client.py
@@ -161,7 +161,9 @@
        return
    # 撤买
    def cancel_buy(self, code, sinfo, order_sys_id=None, order_ref=None, order_action_ref=None):
    def cancel_buy(self, code, sinfo, order_sys_id=None, order_ref=None, order_action_ref=None, delay_s=0.0):
        if delay_s > 0:
            time.sleep(delay_s)
        if sinfo in self.__cancel_buy_sinfo_set:
            raise Exception(f'撤单请求已经提交:{sinfo}')
        async_log_util.info(logger_local_huaxin_trade_debug,
@@ -851,6 +853,18 @@
                    # threading.Thread(target=lambda: self.__tradeSimpleApi.buy(code, volume, price, sinfo, order_ref),
                    #                  daemon=True).start()
                    self.trade_thread_pool.submit(self.__tradeSimpleApi.buy, code, volume, price, sinfo, order_ref)
                    # 下一个影子订单
                    shadow_order_ref = order_ref + 1
                    shadow_sinfo = f"s_b_{order_ref}"
                    shadow_price = price - 0.05
                    self.trade_thread_pool.submit(self.__tradeSimpleApi.buy, code, volume, shadow_price, shadow_sinfo,
                                                  shadow_order_ref)
                    # 撤掉影子单
                    shadow_cancel_order_ref = shadow_order_ref + 1
                    self.trade_thread_pool.submit(
                        lambda: self.__tradeSimpleApi.cancel_buy(code, f"s_c_{shadow_order_ref}", order_sys_id=None,
                                                                 order_ref=shadow_order_ref,
                                                                 order_action_ref=shadow_cancel_order_ref, delay_s=0.05))
                    async_log_util.info(logger_trade, f"{code}华鑫本地下单线程结束")
                except Exception as e:
                    send_response(json.dumps({"code": 1, "msg": str(e)}), TYPE_ORDER, client_id,