From e14478c628ebb3fdbd4d9f651be3d976f7dc8fb7 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期四, 28 三月 2024 15:36:18 +0800 Subject: [PATCH] 代码成交之后不移除L2监听/删除量对买不买的影响/S撤bug修复 --- l2/l2_data_manager_new.py | 177 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 92 insertions(+), 85 deletions(-) diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py index 2cbbc1e..969e498 100644 --- a/l2/l2_data_manager_new.py +++ b/l2/l2_data_manager_new.py @@ -1055,34 +1055,36 @@ if is_in_strong_time_30 and is_best_zylt: # 寮哄娍30鍒嗛挓锛屾渶浼樺競鍊�, 鏈夊彲浠ヤ笅鍗曠殑鏉垮潡锛屼笉鐪嬮噺 return True, False, can_buy_result[2] + # 娉ㄩ噴閲忕殑褰卞搷 + # if k_format and (k_format[1][0] or k_format[3][0]) and len(k_format) >= 12 and k_format[11]: + # # 鐮村墠楂�/鎺ヨ繎鍓嶉珮涓�30澶╁唴鏈夋定鍋� + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: + # return False, True, f"鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮涓�30澶╁唴鏈夋定鍋�,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" - if k_format and (k_format[1][0] or k_format[3][0]) and len(k_format) >= 12 and k_format[11]: - # 鐮村墠楂�/鎺ヨ繎鍓嶉珮涓�30澶╁唴鏈夋定鍋� - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: - return False, True, f"鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮涓�30澶╁唴鏈夋定鍋�,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" - - if HighIncreaseCodeManager().is_in(code): - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.59: - return False, True, f"5澶╁唴3娆℃定鍋滐紝閲忔湭杈惧埌59%锛坽cls.volume_rate_info[code][0]}锛�" + # 娉ㄩ噴閲忕殑褰卞搷 + # if HighIncreaseCodeManager().is_in(code): + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.59: + # return False, True, f"5澶╁唴3娆℃定鍋滐紝閲忔湭杈惧埌59%锛坽cls.volume_rate_info[code][0]}锛�" msg_list = [] if is_in_strong_time: msg_list.append("寮哄娍10鍒嗛挓") # 涓�5涓氦鏄撴棩鏈夌偢鏉夸箣鍚� - if has_open_limit_up_in_5: - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.15: - return False, True, f"寮哄娍10鍒嗛挓,涓�5涓氦鏄撴棩鐐告澘,閲忔湭杈惧埌{0.15}({cls.volume_rate_info[code][0]})" - - # 涓�5涓氦鏄撴棩鏈夎穼鍋� - if has_limit_down_in_5: - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.15: - return False, True, f"寮哄娍10鍒嗛挓,涓�5涓氦鏄撴棩璺屽仠,閲忔湭杈惧埌{0.15}({cls.volume_rate_info[code][0]})" - - # 鑾峰彇閲忕殑鍙傝�冩棩鏈� - if code in global_util.max60_volumn: - day = global_util.max60_volumn[code][1] - if day in HistoryKDatasUtils.get_latest_trading_date_cache(5): - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.15 and not is_special: - return False, True, f"寮哄娍10鍒嗛挓锛屽弬鑰冮噺鍦ㄦ渶杩�5澶╋紝鏃犺鲸璇嗗害锛岄噺鏈揪鍒�0.15({cls.volume_rate_info[code][0]})" + # 娉ㄩ噴閲忕殑褰卞搷 + # if has_open_limit_up_in_5: + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.15: + # return False, True, f"寮哄娍10鍒嗛挓,涓�5涓氦鏄撴棩鐐告澘,閲忔湭杈惧埌{0.15}({cls.volume_rate_info[code][0]})" + # + # # 涓�5涓氦鏄撴棩鏈夎穼鍋� + # if has_limit_down_in_5: + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.15: + # return False, True, f"寮哄娍10鍒嗛挓,涓�5涓氦鏄撴棩璺屽仠,閲忔湭杈惧埌{0.15}({cls.volume_rate_info[code][0]})" + # + # # 鑾峰彇閲忕殑鍙傝�冩棩鏈� + # if code in global_util.max60_volumn: + # day = global_util.max60_volumn[code][1] + # if day in HistoryKDatasUtils.get_latest_trading_date_cache(5): + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.15 and not is_special: + # return False, True, f"寮哄娍10鍒嗛挓锛屽弬鑰冮噺鍦ㄦ渶杩�5澶╋紝鏃犺鲸璇嗗害锛岄噺鏈揪鍒�0.15({cls.volume_rate_info[code][0]})" # 鐙嫍 if not can_buy_result[0] and can_buy_result[1]: @@ -1091,27 +1093,29 @@ # 濡傛灉娌℃湁杈ㄨ瘑搴︽墠涓嶄拱 if not is_special: return False, True, f"寮哄娍10鍒嗛挓锛屾棤杈ㄨ瘑搴︼紝 鐙嫍锛坽can_buy_result[4]}锛変笉涓嬪崟锛坽can_buy_result[4]}锛夎嚜鐢辨祦閫氬競鍊硷紙{zyltgb_as_yi}锛変笉鏄壒浼樺競鍊�" - if k_format and (k_format[1][0] or k_format[3][0]): - msg_list.append("鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮") - # 鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮 - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: - return False, True, f"寮哄娍10鍒嗛挓锛岀嫭鑻楋紙{can_buy_result[4]}锛夛紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" - else: - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[ - 0] and not is_special: - return False, True, f"寮哄娍10鍒嗛挓锛屾棤杈ㄨ瘑搴︼紝鐙嫍锛坽can_buy_result[4]}锛�,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" + # 娉ㄩ噴閲忕殑褰卞搷 + # if k_format and (k_format[1][0] or k_format[3][0]): + # msg_list.append("鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮") + # # 鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮 + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: + # return False, True, f"寮哄娍10鍒嗛挓锛岀嫭鑻楋紙{can_buy_result[4]}锛夛紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" + # else: + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[ + # 0] and not is_special: + # return False, True, f"寮哄娍10鍒嗛挓锛屾棤杈ㄨ瘑搴︼紝鐙嫍锛坽can_buy_result[4]}锛�,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" else: msg_list.append("闈炵嫭鑻�") if not is_better_zylt: msg_list.append("涓嶆弧瓒宠嚜鐢辨祦閫�") - if k_format and (k_format[1][0] or k_format[3][0]): - # 鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮 - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: - return False, True, f"寮哄娍10鍒嗛挓锛屽悗鎺掞紝涓嶆弧瓒宠嚜鐢卞競鍊硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" - else: - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[ - 0] and not is_special: - return False, True, f"寮哄娍10鍒嗛挓锛屽悗鎺�,鏃犺鲸璇嗗害锛屼笉婊¤冻鑷敱甯傚�硷紝褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" + # 娉ㄩ噴閲忕殑褰卞搷 + # if k_format and (k_format[1][0] or k_format[3][0]): + # # 鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮 + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: + # return False, True, f"寮哄娍10鍒嗛挓锛屽悗鎺掞紝涓嶆弧瓒宠嚜鐢卞競鍊硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" + # else: + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[ + # 0] and not is_special: + # return False, True, f"寮哄娍10鍒嗛挓锛屽悗鎺�,鏃犺鲸璇嗗害锛屼笉婊¤冻鑷敱甯傚�硷紝褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" else: msg_list.append("婊¤冻鑷敱娴侀��") # 鍚庢帓锛屾弧瓒宠嚜鐢辨祦閫氬競鍊奸渶瑕佷笅鍗� @@ -1119,57 +1123,60 @@ return True, False, can_buy_result[2] else: - # 涓�5涓氦鏄撴棩鏈夌偢鏉夸箣鍚� - if has_open_limit_up_in_5: - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.29: - return False, True, f"闈炲己鍔�10鍒嗛挓,涓�5涓氦鏄撴棩鐐告澘,閲忔湭杈惧埌{0.29}({cls.volume_rate_info[code][0]})" + # 娉ㄩ噴閲忕殑褰卞搷 + # # 涓�5涓氦鏄撴棩鏈夌偢鏉夸箣鍚� + # if has_open_limit_up_in_5: + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.29: + # return False, True, f"闈炲己鍔�10鍒嗛挓,涓�5涓氦鏄撴棩鐐告澘,閲忔湭杈惧埌{0.29}({cls.volume_rate_info[code][0]})" + # + # # 涓�5涓氦鏄撴棩鏈夎穼鍋� + # if has_limit_down_in_5: + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.29: + # return False, True, f"闈炲己鍔�10鍒嗛挓,涓�5涓氦鏄撴棩璺屽仠,閲忔湭杈惧埌{0.29}({cls.volume_rate_info[code][0]})" - # 涓�5涓氦鏄撴棩鏈夎穼鍋� - if has_limit_down_in_5: - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.29: - return False, True, f"闈炲己鍔�10鍒嗛挓,涓�5涓氦鏄撴棩璺屽仠,閲忔湭杈惧埌{0.29}({cls.volume_rate_info[code][0]})" - - # 鑾峰彇閲忕殑鍙傝�冩棩鏈� - if code in global_util.max60_volumn: - day = global_util.max60_volumn[code][1] - if day in HistoryKDatasUtils.get_latest_trading_date_cache(5): - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.29 and not is_special: - return False, True, f"鍙傝�冮噺鍦ㄦ渶杩�5澶╋紝鏃犺鲸璇嗗害锛岄噺鏈揪鍒�0.29({cls.volume_rate_info[code][0]})" + # 娉ㄩ噴閲忕殑褰卞搷 + # # 鑾峰彇閲忕殑鍙傝�冩棩鏈� + # if code in global_util.max60_volumn: + # day = global_util.max60_volumn[code][1] + # if day in HistoryKDatasUtils.get_latest_trading_date_cache(5): + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.29 and not is_special: + # return False, True, f"鍙傝�冮噺鍦ㄦ渶杩�5澶╋紝鏃犺鲸璇嗗害锛岄噺鏈揪鍒�0.29({cls.volume_rate_info[code][0]})" # 闈炲己鍔�10鍒嗛挓鍙拱涓荤嚎 if not can_buy_result[0] and can_buy_result[1]: if not is_special and not is_best_zylt: return False, True, f"闈炲己鍔�10鍒嗛挓锛屾棤杈ㄨ瘑搴︼紝闈炵壒浼樺競鍊�,鐙嫍锛坽can_buy_result[4]}锛変笉涓嬪崟" - if can_buy_result[3]: - # 寮哄娍涓荤嚎 - if not is_better_zylt: - if k_format and (k_format[1][0] or k_format[3][0]): - # 鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮 - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: - return False, True, f"闈炲己鍔�10鍒嗛挓锛屽己鍔夸富绾垮悗鎺掞紝涓嶆弧瓒宠嚜鐢卞競鍊硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" - else: - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[ - 0] and not is_special: - return False, True, f"闈炲己鍔�10鍒嗛挓锛屽己鍔夸富绾垮悗鎺�,涓嶆弧瓒宠嚜鐢卞競鍊硷紝鏃犺鲸璇嗗害锛屽綋鏃ラ噺姣�({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" - else: - if k_format and (k_format[1][0] or k_format[3][0]): - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[0]: - return False, True, f"闈炲己鍔�10鍒嗛挓锛屽己鍔夸富绾垮悗鎺�,婊¤冻鑷敱甯傚�硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮, 褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" - else: - # 闈炲己鍔夸富绾� - if not is_better_zylt: - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[ - 1] and not is_special: - return False, True, f"闈炲己鍔�10鍒嗛挓锛岄潪寮哄娍涓荤嚎鍚庢帓銆愪富绾垮悗鎺掋�戯紝涓嶆弧瓒宠嚜鐢卞競鍊�,鏃犺鲸璇嗗害锛� 褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" - else: - if k_format and (k_format[1][0] or k_format[3][0]): - # 鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮 - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: - return False, True, f"闈炲己鍔�10鍒嗛挓锛岄潪寮哄娍涓荤嚎鍚庢帓銆愪富绾垮悗鎺掋�戯紝婊¤冻鑷敱甯傚�硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮, 褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" - else: - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[ - 0] and not is_special: - return False, True, f"闈炲己鍔�10鍒嗛挓锛岄潪寮哄娍涓荤嚎鍚庢帓銆愪富绾垮悗鎺掋��, 婊¤冻鑷敱甯傚�硷紝鏃犺鲸璇嗗害锛屽綋鏃ラ噺姣�({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" + # 娉ㄩ噴閲忕殑褰卞搷 + # if can_buy_result[3]: + # # 寮哄娍涓荤嚎 + # if not is_better_zylt: + # if k_format and (k_format[1][0] or k_format[3][0]): + # # 鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮 + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: + # return False, True, f"闈炲己鍔�10鍒嗛挓锛屽己鍔夸富绾垮悗鎺掞紝涓嶆弧瓒宠嚜鐢卞競鍊硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" + # else: + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[ + # 0] and not is_special: + # return False, True, f"闈炲己鍔�10鍒嗛挓锛屽己鍔夸富绾垮悗鎺�,涓嶆弧瓒宠嚜鐢卞競鍊硷紝鏃犺鲸璇嗗害锛屽綋鏃ラ噺姣�({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" + # else: + # if k_format and (k_format[1][0] or k_format[3][0]): + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[0]: + # return False, True, f"闈炲己鍔�10鍒嗛挓锛屽己鍔夸富绾垮悗鎺�,婊¤冻鑷敱甯傚�硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮, 褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" + # else: + # # 闈炲己鍔夸富绾� + # if not is_better_zylt: + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[ + # 1] and not is_special: + # return False, True, f"闈炲己鍔�10鍒嗛挓锛岄潪寮哄娍涓荤嚎鍚庢帓銆愪富绾垮悗鎺掋�戯紝涓嶆弧瓒宠嚜鐢卞競鍊�,鏃犺鲸璇嗗害锛� 褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" + # else: + # if k_format and (k_format[1][0] or k_format[3][0]): + # # 鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮 + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: + # return False, True, f"闈炲己鍔�10鍒嗛挓锛岄潪寮哄娍涓荤嚎鍚庢帓銆愪富绾垮悗鎺掋�戯紝婊¤冻鑷敱甯傚�硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮, 褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[1]}" + # else: + # if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[ + # 0] and not is_special: + # return False, True, f"闈炲己鍔�10鍒嗛挓锛岄潪寮哄娍涓荤嚎鍚庢帓銆愪富绾垮悗鎺掋��, 婊¤冻鑷敱甯傚�硷紝鏃犺鲸璇嗗害锛屽綋鏃ラ噺姣�({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" return True, False, can_buy_result[2] @classmethod -- Gitblit v1.8.0