From 24483098305c456c37d0dab1bc7b6908e55af11b Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 29 八月 2025 16:52:05 +0800 Subject: [PATCH] D撤重新生效 --- cancel_strategy/s_l_h_cancel_strategy.py | 61 +++++++++++++++++++++++++++++- 1 files changed, 59 insertions(+), 2 deletions(-) diff --git a/cancel_strategy/s_l_h_cancel_strategy.py b/cancel_strategy/s_l_h_cancel_strategy.py index 8f19fa1..812e288 100644 --- a/cancel_strategy/s_l_h_cancel_strategy.py +++ b/cancel_strategy/s_l_h_cancel_strategy.py @@ -15,9 +15,9 @@ from log_module import async_log_util from third_data import code_plate_key_manager from trade.buy_radical import radical_buy_data_manager -from utils import tool +from utils import tool, trade_util from l2.transaction_progress import TradeBuyQueue -from trade import l2_trade_factor, trade_record_log_util, trade_constant +from trade import l2_trade_factor, trade_record_log_util, trade_constant, trade_manager from l2 import l2_log, l2_data_source_util from l2.l2_data_util import L2DataUtil, local_today_datas, local_today_canceled_buyno_map, local_today_buyno_map from log_module.log import logger_l2_s_cancel, logger_debug, logger_l2_l_cancel, logger_l2_h_cancel @@ -2886,5 +2886,62 @@ self.__compute_watch_index(code, buy_single_index) + +# ---------------------------------D鎾�------------------------------- +# 璁$畻 鎴愪氦浣�->鐪熷疄涓嬪崟浣嶇疆 鎬诲叡杩樺墿涓嬪灏戞墜娌℃湁鎾ゅ崟 +# 鎴愪氦浣嶅彉鍖栦箣鍚庨噸鏂拌绠� +class DCancelBigNumComputer: + __db = 0 + __redis_manager = redis_manager.RedisManager(0) + __instance = None + + def __new__(cls, *args, **kwargs): + if not cls.__instance: + cls.__instance = super(DCancelBigNumComputer, cls).__new__(cls, *args, **kwargs) + return cls.__instance + + def need_cancel(self, code, buy1_info, limit_up_price, time_str): + """ + 鏄惁闇�瑕佹挙鍗� + @param limit_up_price: + @param code: + @param buy1_info:(涔�1浠�, 涔�1閲�) + @param time_str: 鏃堕棿瀛楃涓� + @return: + """ + # 鑾峰彇鏄惁澶勪簬涓嬪崟鐘舵�� + trade_state = trade_manager.CodesTradeStateManager().get_trade_state_cache(code) + if not trade_util.is_delegated(trade_state): + return False, "灏氭湭涓嬪崟" + + if abs(limit_up_price - buy1_info[0]) >= 0.001: + return False, "闈炴定鍋滀环" + + # 鏄惁灏忎簬3000w + if buy1_info[0] * buy1_info[1] > 3000e4: + return False, "灏佸崟棰濆ぇ浜�3000w" + + # 鑾峰彇涓嬪崟鏃堕棿 + place_order_index = SCancelBigNumComputer().get_real_place_order_index_cache(code) + if not place_order_index: + return False, "娌¤幏鍙栧埌鐪熷疄涓嬪崟浣嶇疆" + total_datas = local_today_datas.get(code) + # 涔�1鏃堕棿瑕佸ぇ浜庝笅鍗曟椂闂� + if total_datas[place_order_index]['val']['time'] >= time_str: + return False, "L1鏃堕棿<=涓嬪崟鏃堕棿" + human_rate = CancelRateHumanSettingManager().get_l_down(code) + if human_rate and human_rate > 0.7: + return False, "浜轰负璁剧疆鎾ゅ崟姣斾緥澶т簬0.7" + + volume_rate = code_volumn_manager.CodeVolumeManager().get_volume_rate(code) + if volume_rate <= 0.4 and tool.trade_time_sub(time_str, total_datas[place_order_index]['val']['time']) <= 6: + return True, f"閲忔瘮({volume_rate})<=40%涓斿湪鎸傚崟6s鍐咃紝灏佸崟棰濃墹3000涓�" + + if 6 < tool.trade_time_sub(time_str, total_datas[place_order_index]['val']['time']) <= 10*60: + return True, f"涓嬪崟鍚�10鍒嗛挓鍐咃紝灏佸崟棰濃墹3000涓�" + + return False, '鏃犳挙鍗曟潯浠�' + + if __name__ == "__main__": CancelRateHumanSettingManager() -- Gitblit v1.8.0