From 5724dc30a98d0fe00f93e9f71c5901216d506eb6 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 04 十一月 2024 15:12:56 +0800
Subject: [PATCH] 策略修改

---
 l2/l2_data_manager_new.py |   39 ++++++++++++++++++++++++++++-----------
 1 files changed, 28 insertions(+), 11 deletions(-)

diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py
index 72a7891..d4ccca1 100644
--- a/l2/l2_data_manager_new.py
+++ b/l2/l2_data_manager_new.py
@@ -13,7 +13,7 @@
 from l2.huaxin import l2_huaxin_util, huaxin_delegate_postion_manager
 from l2.l2_limitup_sell_data_manager import L2LimitUpSellDataManager
 from l2.l2_sell_manager import L2MarketSellManager, L2LimitUpSellManager
-from l2.l2_transaction_data_manager import HuaXinSellOrderStatisticManager, BigOrderDealManager
+from l2.l2_transaction_data_manager import HuaXinSellOrderStatisticManager, BigOrderDealManager, HuaXinBuyOrderManager
 from l2.place_order_single_data_manager import L2TradeSingleDataProcessor
 from log_module import async_log_util, log_export
 from third_data import kpl_data_manager, block_info
@@ -1555,7 +1555,7 @@
                                                      max_num_set=set(),
                                                      buy_volume_rate=buy_volume_rate,
                                                      mode=OrderBeginPosInfo.MODE_RADICAL,
-                                                     mode_desc=f"鎬绘姏鍘嬪皬鎵叆",
+                                                     mode_desc=f"鎬绘姏鍘嬪皬鎵叆:{radical_result[2]}",
                                                      sell_info=sell_info,
                                                      threshold_money=threshold_money)
             order_begin_pos_info.at_limit_up = cls.__is_at_limit_up_buy(code)
@@ -1977,14 +1977,14 @@
             if cls.__is_at_limit_up_buy(code, start_index):
                 return False, None, "鏉夸笂鏀鹃噺"
             total_datas = local_today_datas[code]
-            min_num = int(29900 / gpcode_manager.get_limit_up_price_as_num(code))
+            limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
+            bigger_money = l2_data_util.get_big_money_val(limit_up_price, tool.is_ge_code(code))
+            min_num = int(bigger_money / limit_up_price / 100)
             # 濡傛灉鏈夊ぇ鍗曟垚浜ゅ氨涓嶉渶瑕佺湅澶у崟
-            deal_money_list = BigOrderDealManager().get_total_buy_money_list(code)
-            if deal_money_list:
-                for m in deal_money_list:
-                    if m >= 2990000:
-                        min_num = int(5000 / gpcode_manager.get_limit_up_price_as_num(code))
-                        break
+            total_deal_money = BigOrderDealManager().get_total_buy_money(code)
+            THRESHOLD_MONEY = 2990000
+            if total_deal_money >= THRESHOLD_MONEY:
+                min_num = int(5000 / limit_up_price)
 
             single_index = None
             for i in range(start_index, end_index + 1):
@@ -1994,11 +1994,26 @@
                     continue
                 if val["num"] < min_num:
                     continue
+                # 涓婅瘉鏈夊彲鑳芥槸閮ㄥ垎鎴愪氦鐨勫ぇ鍗�
+                if i == start_index and tool.is_sh_code(code):
+                    dealing_active_order_info = HuaXinBuyOrderManager().get_dealing_active_order_info(code)
+                    if dealing_active_order_info and dealing_active_order_info[0] == int(val["orderNo"]):
+                        # 鍒ゆ柇鏄惁涓哄ぇ鍗�
+                        order_money = dealing_active_order_info[2] + round(val["price"], 2) * val["num"] * 100
+                        if order_money >= bigger_money:
+                            total_deal_money += order_money
+                if total_deal_money >= THRESHOLD_MONEY:
+                    single_index = i
+                    break
+
                 if int(val["orderNo"]) <= radical_data[1]:
                     # 涓诲姩涔板崟鍚庣殑鏁版嵁涓嶇畻
                     continue
-                single_index = i
-                break
+
+                total_deal_money += round(val["price"], 2) * val["num"] * 100
+                if total_deal_money >= THRESHOLD_MONEY:
+                    single_index = i
+                    break
             if single_index is not None:
                 return True, single_index, "鏈夊ぇ鍗�"
             return False, None, "鏃犲ぇ鍗�"
@@ -2010,6 +2025,8 @@
             return False, None, "瓒呰繃鐢熸晥鏃堕棿"
         result = __can_order()
         l2_log.debug(code, f"L2鎵叆鍒ゆ柇锛歿result}")
+        if result[0]:
+            return True, result[1], f"鎵叆鏉垮潡锛歿radical_data[2]}"
         return result
 
     @classmethod

--
Gitblit v1.8.0