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