From fb47d36048e94b9a506d5c153e3dd19a01e37df1 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期一, 30 十月 2023 16:30:27 +0800
Subject: [PATCH] bug修复

---
 l2/l2_data_manager_new.py |   30 ++++++++++++++++--------------
 1 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py
index 9ca3fe1..943967d 100644
--- a/l2/l2_data_manager_new.py
+++ b/l2/l2_data_manager_new.py
@@ -1,4 +1,5 @@
 import logging
+import random
 import time as t
 
 from code_attribute import big_money_num_manager, code_volumn_manager, code_data_util, industry_codes_sort, \
@@ -215,7 +216,6 @@
     __SecondCancelBigNumComputer = SecondCancelBigNumComputer()
     __HourCancelBigNumComputer = HourCancelBigNumComputer()
     __LCancelBigNumComputer = LCancelBigNumComputer()
-    __DCancelBigNumComputer = DCancelBigNumComputer()
     __TradeStateManager = trade_manager.TradeStateManager()
     __CodesTradeStateManager = trade_manager.CodesTradeStateManager()
     __PauseBuyCodesManager = gpcode_manager.PauseBuyCodesManager()
@@ -283,13 +283,14 @@
                 cls.unreal_buy_dict.pop(code)
 
     @classmethod
-    def set_real_place_order_index(cls, code, index, buy_single_index):
-        trade_record_log_util.add_real_place_order_position_log(code, index, buy_single_index)
-        need_cancel = FastCancelBigNumComputer().set_real_order_index(code, index)
-        if need_cancel:
-            cls.cancel_buy(code, msg="F鎾や笉澶�2绗旇Е鍙戞挙鍗�")
-        else:
-            cancel_buy_strategy.set_real_place_position(code, index, buy_single_index)
+    def set_real_place_order_index(cls, code, index, order_begin_pos:OrderBeginPosInfo):
+        trade_record_log_util.add_real_place_order_position_log(code, index, order_begin_pos.buy_single_index)
+        if order_begin_pos.mode == OrderBeginPosInfo.MODE_FAST:
+            need_cancel = FastCancelBigNumComputer().set_real_order_index(code, index)
+            if need_cancel:
+                cls.cancel_buy(code, msg="F鎾や笉澶�2绗旇Е鍙戞挙鍗�")
+                return
+        cancel_buy_strategy.set_real_place_position(code, index, order_begin_pos.buy_single_index)
 
     # 澶勭悊鍗庨懌L2鏁版嵁
     @classmethod
@@ -349,7 +350,7 @@
                         if place_order_index:
                             order_begin_pos = cls.__get_order_begin_pos(
                                 code)
-                            cls.set_real_place_order_index(code, place_order_index, order_begin_pos.buy_single_index)
+                            cls.set_real_place_order_index(code, place_order_index, order_begin_pos)
                             async_log_util.info(logger_l2_process, "code:{} 鑾峰彇鍒颁笅鍗曠湡瀹炰綅缃細{}", code, place_order_index)
                 except:
                     async_log_util.error(logger_l2_error, f"{code} 澶勭悊鐪熷疄涓嬪崟浣嶇疆鍑洪敊")
@@ -599,6 +600,7 @@
                     jx_blocks, jx_blocks_by = KPLCodeJXBlockManager().get_jx_blocks_cache(
                         code), KPLCodeJXBlockManager().get_jx_blocks_cache(code, by=True)
                     info = cls.__trade_log_placr_order_info_dict[code]
+                    info.mode = order_begin_pos.mode
                     info.set_buy_index(order_begin_pos.buy_single_index, order_begin_pos.buy_exec_index)
                     if jx_blocks:
                         info.set_kpl_blocks(list(jx_blocks))
@@ -1226,19 +1228,19 @@
     @classmethod
     def __compute_fast_order_begin_pos(cls, code, start_index, end_index):
         limit_up_price = gpcode_manager.get_limit_up_price(code)
-        if float(limit_up_price) >= 10:
-            return False, -1, "鑲′环澶т簬10鍧�"
+        # if float(limit_up_price) >= 10:
+        #     return False, -1, "鑲′环澶т簬10鍧�"
         total_datas = local_today_datas[code]
         start_time_str = total_datas[start_index]["val"]["time"]
-        if tool.trade_time_sub(start_time_str, "10:00:00") > 0:
-            return False, -1, "瓒呰繃瑙勫畾鏃堕棿"
+        # if tool.trade_time_sub(start_time_str, "13:00:00") > 0:
+        #     return False, -1, "瓒呰繃瑙勫畾鏃堕棿"
         refer_sell_data = cls.__L2MarketSellManager.get_refer_sell_data(code, start_time_str)
         if refer_sell_data is None:
             return False, -1, "鎬诲崠涓虹┖"
         if cls.__L2MarketSellManager.is_refer_sell_time_used(code, refer_sell_data[0]):
             return False, -1, "鎬诲崠缁熻鏃堕棿宸茶浣跨敤"
         # 鏄惁澶т簬500涓�
-        if refer_sell_data[1] < 500 * 10000:
+        if refer_sell_data[1] <= 500 * 10000:
             return False, -1, "鎬诲崠灏忎簬鎸囧畾閲戦"
         # 缁熻涔嬪墠鐨勫崠
         threshold_money = refer_sell_data[1]

--
Gitblit v1.8.0