From 9ec7d91a46bad23927a84bb6355e8766ecdb9d24 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期四, 17 八月 2023 12:28:58 +0800
Subject: [PATCH] ++++++++++++++++ bug修复

---
 code_attribute/first_target_code_data_processor.py |   62 +++++++++++++++++--------------
 1 files changed, 34 insertions(+), 28 deletions(-)

diff --git a/code_attribute/first_target_code_data_processor.py b/code_attribute/first_target_code_data_processor.py
index ec08354..73f34c4 100644
--- a/code_attribute/first_target_code_data_processor.py
+++ b/code_attribute/first_target_code_data_processor.py
@@ -34,7 +34,7 @@
             codes.append(code)
 
     # ---鏌ヨ鎯充拱鍗曪紝濡傛灉娌℃湁鍦ㄥ垪琛ㄤ腑灏遍渶瑕佸己琛屽姞鍏ュ垪琛�
-    want_codes = gpcode_manager.WantBuyCodesManager.list_code()
+    want_codes = gpcode_manager.WantBuyCodesManager().list_code_cache()
     if want_codes:
         # 娌℃湁鍦ㄧ幇浠烽噰闆嗕腑鐨勬兂涔颁唬鐮�
         diff_codes = set(want_codes) - set(codes)
@@ -105,37 +105,43 @@
         need_get_volumn = False
         if code not in global_util.max60_volumn or global_util.max60_volumn.get(code) is None:
             need_get_volumn = True
-        if not need_get_volumn and code_nature_analyse.CodeNatureRecordManager.get_nature(
+        if not need_get_volumn and code_nature_analyse.CodeNatureRecordManager.get_nature_cache(
                 code) is None:
             need_get_volumn = True
         if need_get_volumn:
-            volumes_data = inited_data.get_volumns_by_code(code, 150)
-            volumes = inited_data.parse_max_volume(volumes_data[:90],
-                                                   code_nature_analyse.is_new_top(
-                                                       gpcode_manager.get_limit_up_price(code),
-                                                       volumes_data[:90]))
-            logger_first_code_record.info("{} 鑾峰彇鍒伴鏉�60澶╂渶澶ч噺锛歿}", code, volumes)
-            code_volumn_manager.set_histry_volumn(code, volumes[0], volumes[1], volumes[2])
-            # 鍒ゆ柇K绾垮舰鎬�
-            # is_has_k_format, msg = code_nature_analyse.is_has_k_format(
-            #     gpcode_manager.get_limit_up_price(code), volumes_data)
-            # if not is_has_k_format:
-            #     logger_first_code_record.info("{}棣栨澘K绾垮舰鎬佷笉濂�,{}", code, msg)
-            #     # 鑲℃�т笉濂斤紝灏变笉瑕佸姞鍏�
-            #     bad_codes.add(code)
-            #     # 鍔犲叆绂佹浜ゆ槗浠g爜
-            #     l2_trade_util.forbidden_trade(code)
-            code_nature_analyse.set_record_datas(code,
-                                                 gpcode_manager.get_limit_up_price(code),
-                                                 volumes_data)
-    gpcode_manager.FirstCodeManager.add_record(codes)
+            limit_up_price = gpcode_manager.get_limit_up_price(code)
+            if limit_up_price is None:
+                continue
+            try:
+                volumes_data = inited_data.get_volumns_by_code(code, 150)
+                volumes = inited_data.parse_max_volume(volumes_data[:90],
+                                                       code_nature_analyse.is_new_top(
+                                                           limit_up_price,
+                                                           volumes_data[:90]))
+                logger_first_code_record.info("{} 鑾峰彇鍒伴鏉�60澶╂渶澶ч噺锛歿}", code, volumes)
+                code_volumn_manager.set_histry_volumn(code, volumes[0], volumes[1], volumes[2])
+                # 鍒ゆ柇K绾垮舰鎬�
+                # is_has_k_format, msg = code_nature_analyse.is_has_k_format(
+                #     gpcode_manager.get_limit_up_price(code), volumes_data)
+                # if not is_has_k_format:
+                #     logger_first_code_record.info("{}棣栨澘K绾垮舰鎬佷笉濂�,{}", code, msg)
+                #     # 鑲℃�т笉濂斤紝灏变笉瑕佸姞鍏�
+                #     bad_codes.add(code)
+                #     # 鍔犲叆绂佹浜ゆ槗浠g爜
+                #     l2_trade_util.forbidden_trade(code)
+                code_nature_analyse.set_record_datas(code,
+                                                     gpcode_manager.get_limit_up_price(code),
+                                                     volumes_data)
+            except Exception as e:
+                logger_first_code_record.error(f"{code}:{str(e)}")
+    gpcode_manager.FirstCodeManager().add_record(codes)
     # 鍒濆鍖栨澘鍧椾俊鎭�
     for code in codes:
         block_info.init_code(code)
 
     if new_add_codes:
-        gpcode_manager.set_first_gp_codes_with_data(HistoryKDatasUtils.get_gp_latest_info(codes,
-                                                                                          fields="symbol,sec_name,sec_type,sec_level"))
+        gpcode_manager.FirstGPCodesManager().set_first_gp_codes_with_data(HistoryKDatasUtils.get_gp_latest_info(codes,
+                                                                                                                fields="symbol,sec_name,sec_type,sec_level"))
         # 鍔犲叆棣栨澘鍘嗗彶璁板綍
         logger_first_code_record.info("鏂板棣栨澘锛歿}", new_add_codes)
 
@@ -184,8 +190,8 @@
             limit_up_time = tool.get_now_time_str()
         if is_limit_up:
             # 鍔犲叆棣栨澘娑ㄥ仠
-            gpcode_manager.FirstCodeManager.add_limited_up_record([code])
-        pricePre = gpcode_manager.get_price_pre(code)
+            gpcode_manager.FirstCodeManager().add_limited_up_record([code])
+        pricePre = gpcode_manager.CodePrePriceManager.get_price_pre_cache(code)
         if pricePre is None:
             inited_data.re_set_price_pres([code])
 
@@ -195,10 +201,10 @@
              "limit_up": is_limit_up})
         if code in new_add_codes:
             if is_limit_up:
-                place_order_count = trade_data_manager.placeordercountmanager.get_place_order_count(
+                place_order_count = trade_data_manager.PlaceOrderCountManager().get_place_order_count(
                     code)
                 if place_order_count == 0:
-                    trade_data_manager.placeordercountmanager.place_order(code)
+                    trade_data_manager.PlaceOrderCountManager().place_order(code)
 
     gpcode_first_screen_manager.process_ticks(prices)
 

--
Gitblit v1.8.0