From 09f84c4ecae2a71e07f6dd64e6066563599a62b6 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: 星期二, 17 六月 2025 17:59:40 +0800
Subject: [PATCH] ‘功能完善

---
 strategy/strategy_manager.py |   28 +++++++++++++++++++++-------
 1 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/strategy/strategy_manager.py b/strategy/strategy_manager.py
index c2c8ca5..0f2d336 100644
--- a/strategy/strategy_manager.py
+++ b/strategy/strategy_manager.py
@@ -7,6 +7,8 @@
 from db import redis_manager_delegate as redis_manager
 from db.mysql_data_delegate import Mysqldb
 from db.redis_manager_delegate import RedisUtils
+from log_module import async_log_util
+from log_module.log import logger_trade
 from strategy.data_analyzer import KPLLimitUpDataAnalyzer
 from strategy.low_suction_strategy import LowSuctionOriginDataExportManager
 from strategy.strategy_params_settings import StrategyParamsSettingsManager
@@ -101,7 +103,9 @@
     """
     浣庡惛绛栫暐
     """
-    def __init__(self, day, script_name="strategy_script_v6.py", settings=StrategyParamsSettingsManager().get_settings()):
+
+    def __init__(self, day, script_name="strategy_script_v6.py",
+                 settings=StrategyParamsSettingsManager().get_settings(), need_load_data = False):
         self.now_day = day
         # 涔板ぇ鍗曪細{浠g爜:[澶у崟鏁版嵁]}
         self.big_order_buy = {}
@@ -135,7 +139,8 @@
         self.current_block_in_datas = []
 
         # 鍔犺浇绛栫暐鑴氭湰鏂囦欢
-        with open(script_name if constant.is_windows() else f'{constant.get_path_prefix()}/{script_name}', mode='r', encoding='utf-8') as f:
+        with open(script_name if constant.is_windows() else f'{constant.get_path_prefix()}/{script_name}', mode='r',
+                  encoding='utf-8') as f:
             lines = f.readlines()
             scripts = "\n".join(lines)
             # 娉ㄩ噴鎺夐噷闈㈢殑import涓庡彉閲�
@@ -146,9 +151,10 @@
             self.scripts = scripts
         self.settings = settings
 
-        self.data_loader = DataLoader(self.now_day, cache_path=f"{constant.get_path_prefix()}/datas")
+        self.data_loader = DataLoader(self.now_day)
         self.__LowSuctionOriginDataExportManager = LowSuctionOriginDataExportManager(self.now_day)
-        self.load_data()
+        if need_load_data:
+            self.load_data()
 
     def load_data(self):
         # 鍔犺浇鍘嗗彶鏁版嵁
@@ -225,7 +231,6 @@
         """
         if code_ in self.stock_variables_dict:
             return
-
         stock_variables = StrategyVariableFactory.create_from_history_data(
             self.kline_data.get(code_), None,
             self.limit_up_record_data.get(code_), self.data_loader.trade_days)
@@ -269,6 +274,7 @@
         @param big_orders: [(浠g爜, 涔�/鍗�, [璁㈠崟鍙�,閲�,閲戦,鏈�鍚庢椂闂存埑,鏈�鍚庝环鏍�, 鍒濆鏃堕棿鎴�, 鍒濆浠锋牸])] 濡傦細[ ('002741', 0, [475820, 91600, 1610328, 92500000, 17.58, 92500000, 17.58])]
         @return:
         """
+        codes = []
         for d in big_orders:
             code = d[0]
             if d[1] == 0:
@@ -281,7 +287,11 @@
                 if code not in self.big_order_sell:
                     self.big_order_sell[code] = []
                 self.big_order_sell[code].append(d[2])
-        # 椹卞姩涓嬪崟
+                if code not in codes:
+                    codes.append(code)
+            # 椹卞姩涓嬪崟
+        for code in codes:
+            self.__run(code, self.stock_variables_dict.get(code))
 
     def add_ticks(self, ticks):
         """
@@ -355,6 +365,8 @@
         self.current_block_in_datas = _block_in_datas
 
     def __run(self, code, sv: StockVariables):
+        if not sv:
+            return
         # 杩愯浠g爜
         # 娉ㄥ叆澶у崟
         sv.浠婃棩澶у崟鏁版嵁 = self.big_order_buy.get(code)
@@ -382,6 +394,8 @@
             # 鍒ゆ柇鏄惁鍙互涔�
             for b in compute_result[3]:
                 DealCodesManager().place_order(b, code)
+                async_log_util.info(logger_trade, f"{code}涓嬪崟锛屾澘鍧楋細{compute_result[3]}")
+
 
 # 褰撳墠鐨勪綆鍚哥瓥鐣ュ璞�
-low_suction_strtegy = None
\ No newline at end of file
+low_suction_strtegy = None

--
Gitblit v1.8.0