From fddfc0e7c3b2938f70637e54d214faab478f7ca4 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期五, 13 十月 2023 12:54:20 +0800
Subject: [PATCH] 测试影子订单

---
 huaxin_client/trade_client.py |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/huaxin_client/trade_client.py b/huaxin_client/trade_client.py
index 2999033..d6404da 100644
--- a/huaxin_client/trade_client.py
+++ b/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,

--
Gitblit v1.8.0