From 365491c1fcf523994035e4bd28d8b5872dd6ec98 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 31 七月 2025 14:47:48 +0800
Subject: [PATCH] 除权采用掘金更新K线

---
 output/code_info_output.py |   80 +++++++++++++++++++++++++--------------
 1 files changed, 51 insertions(+), 29 deletions(-)

diff --git a/output/code_info_output.py b/output/code_info_output.py
index ebef414..c4b5844 100644
--- a/output/code_info_output.py
+++ b/output/code_info_output.py
@@ -15,14 +15,16 @@
 from l2.l2_data_manager import OrderBeginPosInfo
 from l2.l2_data_util import L2DataUtil
 from third_data.code_plate_key_manager import KPLCodeJXBlockManager
+from third_data.kpl_data_constant import LimitUpCodesBlockRecordManager
+from trade.buy_radical.block_special_codes_manager import BlockSpecialCodesManager
 from utils import global_util, tool
 from log_module import log, log_export
 from l2 import l2_data_manager, l2_data_util, transaction_progress, l2_data_manager_new, code_price_manager
-from l2.cancel_buy_strategy import HourCancelBigNumComputer
+from cancel_strategy.s_l_h_cancel_strategy import HourCancelBigNumComputer
 import l2.l2_data_manager_new
 from third_data import kpl_data_manager, kpl_api
 from third_data.kpl_data_manager import KPLLimitUpDataRecordManager
-from trade import l2_trade_factor, trade_manager, l2_trade_util, trade_record_log_util
+from trade import l2_trade_factor, trade_manager, l2_trade_util, trade_record_log_util, trade_constant
 from trade.l2_trade_factor import L2TradeFactorUtil
 
 base_output_content = {}
@@ -32,7 +34,6 @@
 
 
 def __get_base_html_content():
-    print("璺緞", sys.path[0])
     if base_output_content.get('css') is None:
         __base_html_content = ""
         with open("./output/css/style.css", mode='r') as f:
@@ -80,15 +81,15 @@
         code_extra_infos.append("鏆備笉涔�")
     params["code"] = code
     params["code_name"] = f"{gpcode_manager.get_code_name(code)} {code}  锛坽','.join(code_extra_infos)}锛�"
-
     total_datas = l2_data_util.local_today_datas.get(code)
     if total_datas is None:
-        l2_data_util.load_l2_data(code)
-        total_datas = l2_data_util.local_today_datas.get(code)
+        total_datas = []
+        # l2_data_util.load_l2_data(code)
+        # total_datas = l2_data_util.local_today_datas.get(code)
     if is_target_code:
         limit_up_price = gpcode_manager.get_limit_up_price(code)
         limit_up_time = limit_up_time_manager.LimitUpTimeManager().get_limit_up_time_cache(code)
-        volume_rate, volume_info = code_volumn_manager.get_volume_rate(code, with_info=True)
+        volume_rate, volume_info = code_volumn_manager.CodeVolumeManager().get_volume_rate(code, with_info=True)
 
         ################################涔板墠璇勫垎################################
 
@@ -102,19 +103,20 @@
 
         # 鑾峰彇涔板叆鎰忔効
         __L2PlaceOrderParamsManager = l2_trade_factor.L2PlaceOrderParamsManager(code, True, volume_rate,
-                                                                                code_volumn_manager.get_volume_rate_index(
+                                                                                code_volumn_manager.CodeVolumeManager().get_volume_rate_index(
                                                                                     volume_rate),
                                                                                 None)
         # 鏄惁鍙互涔板叆鐨勪俊鎭�
         try:
-            can_buy_info = l2.l2_data_manager_new.L2TradeDataProcessor.can_buy_first(code, limit_up_price)
+            can_buy_info = l2.l2_data_manager_new.L2TradeDataProcessor.can_buy_first_new(code, limit_up_price)
             params["trade_data"]["can_buy_info"] = can_buy_info
         except:
             pass
 
         # 鑾峰彇閲忓弬鑰冩棩鏈�
         try:
-            volume_refer_date, volume_refer_date_distance = code_volumn_manager.get_volume_refer_date(code)
+            volume_refer_date, volume_refer_date_distance = code_volumn_manager.CodeVolumeManager().get_volume_refer_date(
+                code)
             params["trade_data"]["volume_refer_date"] = volume_refer_date
         except:
             pass
@@ -125,7 +127,7 @@
             params["trade_data"]["special_info"] = k_format[8]
 
         __base_L2PlaceOrderParamsManager = l2_trade_factor.L2PlaceOrderParamsManager(code, False, volume_rate,
-                                                                                     code_volumn_manager.get_volume_rate_index(
+                                                                                     code_volumn_manager.CodeVolumeManager().get_volume_rate_index(
                                                                                          volume_rate),
                                                                                      None)
         if -1 < __L2PlaceOrderParamsManager.score_index < 3:
@@ -207,25 +209,25 @@
                                                     data['val']['price']) * 100 / 10000, 1)}
         params["trade_data"]["trade_state"] = {}
         trade_state = trade_manager.CodesTradeStateManager().get_trade_state_cache(code)
-        if trade_state == trade_manager.TRADE_STATE_BUY_PLACE_ORDER or trade_state == trade_manager.TRADE_STATE_BUY_DELEGATED:
+        if trade_state == trade_constant.TRADE_STATE_BUY_PLACE_ORDER or trade_state == trade_constant.TRADE_STATE_BUY_DELEGATED:
             params["trade_data"]["trade_state"]["order"] = True
             params["trade_data"]["trade_state"]["desc"] = "宸蹭笅鍗�"
         else:
             params["trade_data"]["trade_state"]["order"] = False
-            if trade_state == trade_manager.TRADE_STATE_NOT_TRADE:
+            if trade_state == trade_constant.TRADE_STATE_NOT_TRADE:
                 params["trade_data"]["trade_state"]["desc"] = "鏈氦鏄�"
-            elif trade_state == trade_manager.TRADE_STATE_BUY_CANCEL_ING:
+            elif trade_state == trade_constant.TRADE_STATE_BUY_CANCEL_ING:
                 params["trade_data"]["trade_state"]["desc"] = "鎾ゅ崟涓�"
-            elif trade_state == trade_manager.TRADE_STATE_BUY_CANCEL_SUCCESS:
+            elif trade_state == trade_constant.TRADE_STATE_BUY_CANCEL_SUCCESS:
                 params["trade_data"]["trade_state"]["desc"] = "鎾ゅ崟鎴愬姛"
-            elif trade_state == trade_manager.TRADE_STATE_BUY_SUCCESS:
+            elif trade_state == trade_constant.TRADE_STATE_BUY_SUCCESS:
                 params["trade_data"]["trade_state"]["desc"] = "宸叉垚浜�"
 
         # log.logger_debug.info(f"涓嬪崟淇℃伅鑰楁椂锛歿time.time() - __start_time}")
         __start_time = time.time()
 
         # H鎾ょ洃鍚寖鍥�
-        if trade_state == trade_manager.TRADE_STATE_BUY_PLACE_ORDER or trade_state == trade_manager.TRADE_STATE_BUY_DELEGATED or trade_state == trade_manager.TRADE_STATE_BUY_SUCCESS:
+        if trade_state == trade_constant.TRADE_STATE_BUY_PLACE_ORDER or trade_state == trade_constant.TRADE_STATE_BUY_DELEGATED or trade_state == trade_constant.TRADE_STATE_BUY_SUCCESS:
             hcancel_datas_dict, cancel_indexes_set = HourCancelBigNumComputer().get_watch_index_dict(code)
             # 鏍规嵁鏃ュ織璇诲彇瀹炴椂鐨勮绠楁暟鎹�
             h_cancel_latest_compute_info = log_export.get_h_cancel_compute_info(code)
@@ -300,6 +302,13 @@
     if code_records:
         code_records = [(format_plate_output(k[0]), k[1], [format_plate_output(k1) for k1 in k[2].split("銆�")]) for k in
                         code_records]
+    # 淇敼鍘嗗彶
+    # code_records = LimitUpCodesBlockRecordManager().get_radical_buy_blocks_origin_data(code)
+    # if code_records:
+    #     code_records = [(f"{x[0]}x{x[1]}", x[2], '') for x in code_records]
+    # else:
+    #     code_records = []
+
     params["kpl_code_info"]["code_records"] = code_records
 
     if not KPLLimitUpDataRecordManager.total_datas:
@@ -409,23 +418,35 @@
                                                      f"鐙嫍",
                                                      None))
                     extra_datas = []
-                    if data['big_num_indexes']:
+                    if data.get('big_num_indexes'):
                         big_num_desc = []
                         for i in data['big_num_indexes']:
                             big_num_desc.append(format_l2_data(total_datas[i]))
                         extra_datas.append(f"鍖呭惈澶у崟锛歿' & '.join(big_num_desc)}")
-                    extra_datas.append(f"M鍊硷細{money_desc(data['m_val'])}")
-                    extra_datas.append(f"瀹夊叏绗旀暟锛歿data['safe_count']}")
+                    if data.get('m_val'):
+                        extra_datas.append(f"M鍊硷細{money_desc(data['m_val'])}")
+                    if data.get('safe_count'):
+                        extra_datas.append(f"瀹夊叏绗旀暟锛歿data['safe_count']}")
+                    extra_datas.append(f"鎬诲崠棰濓細{data.get('sell_info')}")
 
                     records_new_data.append((time_, "", "-------------------------", []))
                     mode = data.get('mode')
-                    if mode == OrderBeginPosInfo.MODE_FAST:
+                    mode_desc = data.get('mode_desc')
+                    if mode == OrderBeginPosInfo.MODE_ACTIVE:
+                        records_new_data.append((time_, "绉瀬涓嬪崟",
+                                                 mode_desc,
+                                                 extra_datas))
+                    elif mode == OrderBeginPosInfo.MODE_FAST:
                         records_new_data.append((time_, "闂數涓嬪崟",
-                                                 f"銆恵format_l2_data(total_datas[data['buy_single_index']])}銆�-銆恵format_l2_data(total_datas[data['buy_exec_index']])}銆�",
+                                                 mode_desc,
+                                                 extra_datas))
+                    elif mode == OrderBeginPosInfo.MODE_RADICAL:
+                        records_new_data.append((time_, "鎵叆涓嬪崟",
+                                                 mode_desc,
                                                  extra_datas))
                     else:
-                        records_new_data.append((time_, "涓嬪崟",
-                                                 f"銆恵format_l2_data(total_datas[data['buy_single_index']])}銆�-銆恵format_l2_data(total_datas[data['buy_exec_index']])}銆�",
+                        records_new_data.append((time_, "甯歌涓嬪崟",
+                                                 mode_desc,
                                                  extra_datas))
                 elif type == trade_record_log_util.TYPE_REAL_PLACE_ORDER_POSITION:
                     _datas = []
@@ -473,6 +494,8 @@
                 elif type == trade_record_log_util.TYPE_CANCEL:
                     load_cancel_watch_index(latest_cancel_watch_index_dict)
                     records_new_data.append((time_, "鎾ゅ崟", f"鍘熷洜锛歿data['msg']}", []))
+                elif type == trade_record_log_util.TYPE_ACTION:
+                    records_new_data.append((time_, data['type'], f"{data['msg']}", []))
             load_cancel_watch_index(latest_cancel_watch_index_dict)
             records_new_data.sort(key=lambda x: x[0])
             if records_new_data:
@@ -486,7 +509,7 @@
 
 
 # 杩斿洖鍐呭[锛堢被鍨�,buy_single_index,indexes锛塢
-def load_trade_record_cancel_watch_indexes(code, cancel_type=None, date=None):
+def load_trade_record_cancel_watch_indexes(code, cancel_type=None, date=tool.get_now_date_str()):
     fresults = []
     records = []
     try:
@@ -508,7 +531,6 @@
 
 
 if __name__ == '__main__':
-    code = '600713'
-    l2_data_util.load_l2_data(code)
-    fresults = load_trade_record(code, l2_data_util.local_today_datas.get(code))
-    print(fresults)
+    code = '603616'
+    records = load_trade_record_cancel_watch_indexes(code,
+                                                     trade_record_log_util.CancelWatchIndexesInfo.CANCEL_TYPE_H)

--
Gitblit v1.8.0