From 2c707e6083d8d60b088a7f91a0020370e65c8c7f Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期二, 29 十月 2024 17:10:24 +0800 Subject: [PATCH] 昨日跌幅过大不扫入/添加日志记录 --- l2/l2_data_manager_new.py | 75 +++++++++++++++++++------------------ 1 files changed, 39 insertions(+), 36 deletions(-) diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py index a93f09d..1f6c604 100644 --- a/l2/l2_data_manager_new.py +++ b/l2/l2_data_manager_new.py @@ -724,7 +724,8 @@ return False, True, f"14:57鍚庝笉鑳戒氦鏄�", True if cls.__TradeTargetCodeModeManager.get_mode_cache() == TradeTargetCodeModeManager.MODE_ONLY_BUY_WANT_CODES: - if not cls.__WantBuyCodesManager.is_in_cache(code) and not gpcode_manager.GreenListCodeManager().is_in_cache(code): + if not cls.__WantBuyCodesManager.is_in_cache( + code) and not gpcode_manager.GreenListCodeManager().is_in_cache(code): return False, True, f"鍙拱鎯充拱锛氭病鍦ㄦ兂涔板崟鍜岀豢鍗�", True return True, False, f"", False @@ -1156,10 +1157,7 @@ k_format = code_nature_analyse.CodeNatureRecordManager().get_k_format_cache(code) # 鏄惁鏈夎鲸璇嗗害 is_special = True if k_format and k_format[8][0] else False - # 涓�5涓氦鏄撴棩鏈夌偢鏉夸箣鍚� - has_open_limit_up_in_5 = True if k_format and len(k_format) >= 11 and k_format[10] else False - # 涓�5涓氦鏄撴棩鏈夎穼鍋� - has_limit_down_in_5 = True if k_format and len(k_format) >= 13 and k_format[12] else False + # 鏄惁鏄己鍔�10鍒嗛挓 is_in_strong_time = now_timestamp <= int("094000") # 鏄惁鏄己鍔�30鍒嗛挓 @@ -1519,7 +1517,7 @@ max_num_set=set(), buy_volume_rate=buy_volume_rate, mode=OrderBeginPosInfo.MODE_RADICAL, - mode_desc="鎬绘姏鍘嬪皬鎵叆", + mode_desc=f"鎬绘姏鍘嬪皬鎵叆", sell_info=sell_info, threshold_money=threshold_money) order_begin_pos_info.at_limit_up = cls.__is_at_limit_up_buy(code) @@ -1933,43 +1931,48 @@ @param end_index: @return: (鏄惁鑾峰彇鍒颁俊鍙�, 淇″彿浣嶇疆, 娑堟伅) """ + # 婵�杩涗拱淇″彿鐨勬椂闂� + + def __can_order(): + # 鍒ゆ柇鏄惁鏄澘涓婃斁閲� + if cls.__is_at_limit_up_buy(code, start_index): + return False, None, "鏉夸笂鏀鹃噺" + total_datas = local_today_datas[code] + min_num = int(29900 / gpcode_manager.get_limit_up_price_as_num(code)) + # 濡傛灉鏈夊ぇ鍗曟垚浜ゅ氨涓嶉渶瑕佺湅澶у崟 + deal_money_list = BigOrderDealManager().get_total_buy_money_list(code) + if deal_money_list: + for m in deal_money_list: + if m >= 2990000: + min_num = int(5000 / gpcode_manager.get_limit_up_price_as_num(code)) + break + + single_index = None + for i in range(start_index, end_index + 1): + data = total_datas[i] + val = data["val"] + if not L2DataUtil.is_limit_up_price_buy(val): + continue + if val["num"] < min_num: + continue + if int(val["orderNo"]) <= radical_data[1]: + # 涓诲姩涔板崟鍚庣殑鏁版嵁涓嶇畻 + continue + single_index = i + break + if single_index is not None: + return True, single_index, "鏈夊ぇ鍗�" + return False, None, "鏃犲ぇ鍗�" radical_data = RadicalBuyDealCodesManager.buy_by_l2_delegate_expire_time_dict.get(code) if not radical_data: return False, None, "涓嶆弧瓒虫縺杩涗拱鐨勬潯浠�" if t.time() > radical_data[0]: return False, None, "瓒呰繃鐢熸晥鏃堕棿" - - # 鍒ゆ柇鏄惁鏄澘涓婃斁閲� - if cls.__is_at_limit_up_buy(code, start_index): - return False, None, "鏉夸笂鏀鹃噺" - total_datas = local_today_datas[code] - min_num = int(29900 / gpcode_manager.get_limit_up_price_as_num(code)) - # 濡傛灉鏈夊ぇ鍗曟垚浜ゅ氨涓嶉渶瑕佺湅澶у崟 - deal_money_list = BigOrderDealManager().get_total_buy_money_list(code) - if deal_money_list: - for m in deal_money_list: - if m >= 2990000: - min_num = int(5000 / gpcode_manager.get_limit_up_price_as_num(code)) - break - - single_index = None - for i in range(start_index, end_index + 1): - data = total_datas[i] - val = data["val"] - if not L2DataUtil.is_limit_up_price_buy(val): - continue - if val["num"] < min_num: - continue - if int(val["orderNo"]) <= radical_data[1]: - # 涓诲姩涔板崟鍚庣殑鏁版嵁涓嶇畻 - continue - single_index = i - break - if single_index is not None: - return True, single_index, "鏈夊ぇ鍗�" - return False, None, "鏃犲ぇ鍗�" + result = __can_order() + l2_log.debug(code, f"L2鎵叆鍒ゆ柇锛歿result}") + return result @classmethod def test__compute_active_order_begin_pos(cls, code, continue_count, start_index, end_index): -- Gitblit v1.8.0