From 7a25ab250084c544d58c3c8dedc55dfd62241e1c Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 16 一月 2025 01:14:04 +0800 Subject: [PATCH] L后撤修改/不看板块流入优化 --- cancel_strategy/s_l_h_cancel_strategy.py | 34 +++++++++++++++++++++++++++++----- 1 files changed, 29 insertions(+), 5 deletions(-) diff --git a/cancel_strategy/s_l_h_cancel_strategy.py b/cancel_strategy/s_l_h_cancel_strategy.py index 1cf1cd3..b73982b 100644 --- a/cancel_strategy/s_l_h_cancel_strategy.py +++ b/cancel_strategy/s_l_h_cancel_strategy.py @@ -566,7 +566,7 @@ # 鑾峰彇鎾ゅ崟姣斾緥,杩斿洖锛堟挙鍗曟瘮渚�,鏄惁蹇呬拱锛� @classmethod - def get_cancel_rate(cls, code, buy_exec_time, is_up=False, is_l_down_recomputed=False, buy_mode = None): + def get_cancel_rate(cls, code, buy_exec_time, is_up=False, is_l_down_recomputed=False, buy_mode=None): try: must_buy = cls.__MustBuyCodesManager.is_in_cache(code) if buy_mode == OrderBeginPosInfo.MODE_RADICAL: @@ -577,8 +577,8 @@ deal_big_order_info = radical_buy_data_manager.get_total_deal_big_order_info(code, gpcode_manager.get_limit_up_price_as_num( code)) - deal_rate = round(deal_big_order_info[1]/deal_big_order_info[2], 2) - threshold_rate = 0.5*deal_rate+0.35 + deal_rate = round(deal_big_order_info[1] / deal_big_order_info[2], 2) + threshold_rate = 0.5 * deal_rate + 0.35 threshold_rate = max(threshold_rate, 0.375) threshold_rate = min(threshold_rate, 0.95) return threshold_rate, False @@ -980,8 +980,10 @@ ##鍒ゆ柇鐩戝惉鐨勬暟鎹腑鏄惁鏈夊ぇ鍗�## # 涔嬪墠鐨勫ぇ鍗曚负100w锛岀幇鍦ㄦ敼涓烘甯稿ぇ鍗� has_big_num = False - BIG_ORDER_NUM_THRESHOLD = l2_data_util.get_big_money_val(gpcode_manager.get_limit_up_price_as_num(code), tool.is_ge_code(code)) - BIG_ORDER_NUM_THRESHOLD = int(round(BIG_ORDER_NUM_THRESHOLD/(gpcode_manager.get_limit_up_price_as_num(code)*100))) + BIG_ORDER_NUM_THRESHOLD = l2_data_util.get_big_money_val( + gpcode_manager.get_limit_up_price_as_num(code), tool.is_ge_code(code)) + BIG_ORDER_NUM_THRESHOLD = int( + round(BIG_ORDER_NUM_THRESHOLD / (gpcode_manager.get_limit_up_price_as_num(code) * 100))) for i in watch_indexes: # 鏄惁鏈夊ぇ鍗� data = total_datas[i] @@ -1014,6 +1016,28 @@ cancel_data['val'])) <= 0: watch_indexes.add(i) break + + # 璁$畻鐪熷疄涓嬪崟浣嶇疆鍒版垚浜よ繘搴︿綅鐨勬渶澶ф湭鎾ゅぇ鍗曞墠2 + big_order_list = [] + for i in range(start_index, end_index): + data = total_datas[i] + val = data['val'] + # 娑ㄥ仠涔帮紝涓旀湭鎾ゅ崟 + if not L2DataUtil.is_limit_up_price_buy(val): + continue + # 灏忛噾棰濊繃婊� + if val['num'] < BIG_ORDER_NUM_THRESHOLD: + continue + cancel_data = l2_data_source_util.L2DataSourceUtils.get_limit_up_buy_canceled_data_v2(code, + i, + total_datas, + local_today_canceled_buyno_map.get( + code)) + if not cancel_data: + big_order_list.append((i, val['num'])) + if big_order_list: + big_order_list.sort(key=lambda x: x[1], reverse=True) + watch_indexes |= set([x[0] for x in big_order_list[:2]]) # 鑾峰彇鐪熷疄涓嬪崟浣嶅悗闈�10绗斿ぇ鍗� watch_indexes_after = self.__compute_l_down_watch_index_after_real_place_order_index(code) if watch_indexes_after: -- Gitblit v1.8.0