From b855b811e3753ffcb35f145c985bb32f4b550038 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 31 十月 2024 18:11:40 +0800
Subject: [PATCH] 排1之前的数据准备

---
 servers/huaxin_trade_server.py |   49 +++++++++++++++++++++++++++++++++++++------------
 1 files changed, 37 insertions(+), 12 deletions(-)

diff --git a/servers/huaxin_trade_server.py b/servers/huaxin_trade_server.py
index 74a1671..a9a82fa 100644
--- a/servers/huaxin_trade_server.py
+++ b/servers/huaxin_trade_server.py
@@ -55,7 +55,7 @@
 from trade.sell.sell_rule_manager import TradeRuleManager
 from trade.trade_data_manager import RadicalBuyDealCodesManager
 from trade.trade_manager import CodesTradeStateManager
-from utils import socket_util, middle_api_protocol, tool, huaxin_util, global_util, trade_util
+from utils import socket_util, middle_api_protocol, tool, huaxin_util, global_util, trade_util, init_data_util
 
 trade_data_request_queue = queue.Queue()
 
@@ -354,6 +354,21 @@
             L1DataManager.set_l1_current_price(code, price)
             huaxin_l1_data_manager.set_buy1_data(code, d[5], d[6])
 
+    @classmethod
+    def __process_buy_open_limit_up_datas(cls, datas):
+        """
+        澶勭悊鎺�1鐨勬暟鎹�
+        @param datas: [(浠g爜, 鐜颁环, 娑ㄥ箙, 閲�, 褰撳墠鏃堕棿, 涔�1浠�, 涔�1閲�, 涔�2浠�, 涔�2閲�, 鏇存柊鏃堕棿)]
+        @return:
+        """
+        # 9:25涔嬪悗涓嶅啀澶勭悊
+        if tool.get_now_time_as_int() > int("092500"):
+            return
+        for d in datas:
+            if gpcode_manager.BuyOpenLimitUpCodeManager().is_in_cache(d[0]):
+                #09:19:50 鍒� 09:20:00鍒ゆ柇鏄惁瑕佹挙鍗�
+                if int("09:19:50") <=tool.get_now_time_as_int()<int("09:20:00"):
+                    async_log_util.info(logger_debug, f"鎺�1鎾ゅ崟锛歿d}")
     # 鑾峰彇L1鐜颁环
     @classmethod
     def get_l1_current_price(cls, code):
@@ -366,6 +381,7 @@
         request_id = data_json["request_id"]
         datas = data["data"]
         cls.__save_l1_current_price(datas)
+        cls.__process_buy_open_limit_up_datas(datas)
         # 9:30涔嬪墠閲囩敤闈炵嚎绋�
         if int(tool.get_now_time_str().replace(":", "")) < int("093000"):
             HuaXinL1TargetCodesManager.set_level_1_codes_datas(datas, request_id=request_id)
@@ -896,17 +912,26 @@
 # 棰勫煁鍗�
 def __test_pre_place_order():
     logger_debug.info("杩涘叆棰勫煁鍗曟祴璇�")
-    price = round(21.98*1.1, 2)
-    code = "002253"
-    shadow_price = tool.get_shadow_price(price)
-    if not constant.TRADE_ENABLE:
-        return
-    try:
-        result = huaxin_trade_api.order(1, code, 100, price, blocking=True,
-                                        shadow_price=shadow_price)
-        async_log_util.info(logger_trade, f"{code}涓嬪崟缁撴潫锛歿result}")
-    except Exception as e:
-        pass
+    codes = gpcode_manager.BuyOpenLimitUpCodeManager().get_codes()
+    if codes:
+        for code in codes:
+            # 鑾峰彇鏄ㄦ棩鏀剁洏浠锋牸
+            limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
+            if not limit_up_price:
+                init_data_util.re_set_price_pre(code)
+                limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
+            if not limit_up_price:
+                logger_debug.info(f"娌℃湁鑾峰彇鍒版定鍋滀环:{code}")
+                continue
+            shadow_price = tool.get_shadow_price(limit_up_price)
+            if not constant.TRADE_ENABLE:
+                return
+            try:
+                result = huaxin_trade_api.order(1, code, 100, limit_up_price, blocking=True,
+                                                shadow_price=shadow_price)
+                async_log_util.info(logger_trade, f"{code}涓嬪崟缁撴潫锛歿result}")
+            except Exception as e:
+                pass
 
 
 # 鍋氫竴浜涘垵濮嬪寲鐨勬搷浣�

--
Gitblit v1.8.0