From b01a946cdbd1adc0f25d2d1899ea7802ff13b13d Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期五, 29 十二月 2023 17:48:35 +0800 Subject: [PATCH] 选票需求修改 --- l2/l2_data_manager_new.py | 73 +++++++++++++++++++++--------------- 1 files changed, 43 insertions(+), 30 deletions(-) diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py index faefdb7..d085e0e 100644 --- a/l2/l2_data_manager_new.py +++ b/l2/l2_data_manager_new.py @@ -240,7 +240,7 @@ __L2LimitUpSellManager = L2LimitUpSellManager() __PlaceOrderCountManager = PlaceOrderCountManager() __CodeNatureRecordManager = code_nature_analyse.CodeNatureRecordManager() - __MarketSituationManager=MarketSituationManager() + __MarketSituationManager = MarketSituationManager() # 鑾峰彇浠g爜璇勫垎 @classmethod @@ -1002,23 +1002,31 @@ if can_buy_result is None: return False, True, "灏氭湭鑾峰彇鍒版澘鍧椾俊鎭�" # -------閲忕殑绾︽潫-------- + volume_rate_thresholds = buy_condition_util.get_volume_rate_by_level( + 1), buy_condition_util.get_volume_rate_by_level(2) + k_format = code_nature_analyse.CodeNatureRecordManager().get_k_format_cache(code) 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] < 0.6: - return False, True, f"鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮涓�30澶╁唴鏈夋定鍋�,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬0.6" + 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]}" - # 涓�5涓氦鏄撴棩鏈夌偢鏉�/璺屽仠涔嬪悗 + # 涓�5涓氦鏄撴棩鏈夌偢鏉夸箣鍚� if k_format and len(k_format) >= 11 and k_format[10]: - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.6: - return False, True, f"涓�5涓氦鏄撴棩鐐告澘/璺屽仠,閲忔湭杈惧埌60%({cls.volume_rate_info[code][0]})" + if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: + return False, True, f"涓�5涓氦鏄撴棩鐐告澘,閲忔湭杈惧埌{volume_rate_thresholds[1]}({cls.volume_rate_info[code][0]})" + + # 涓�5涓氦鏄撴棩鏈夎穼鍋� + if k_format and len(k_format) >= 13 and k_format[12]: + if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.29: + 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.6: - return False, True, f"鍙傝�冮噺鍦ㄦ渶杩�5澶�,閲忔湭杈惧埌60%({cls.volume_rate_info[code][0]})" + if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[1]: + return False, True, f"鍙傝�冮噺鍦ㄦ渶杩�5澶�,閲忔湭杈惧埌{volume_rate_thresholds[1]}({cls.volume_rate_info[code][0]})" # 鑾峰彇甯傚満琛屾儏 situation = cls.__MarketSituationManager.get_situation_cache() zylt_threshold = buy_condition_util.get_zyltgb_threshold(situation) @@ -1028,7 +1036,7 @@ zyltgb = zylt_threshold[1] + 1 if zyltgb >= zylt_threshold[0]: - return False, True, f"{zylt_threshold[0]//100000000}浜夸互涓婄殑閮戒笉涔帮紙{zyltgb}锛�" + return False, True, f"{zylt_threshold[0] // 100000000}浜夸互涓婄殑閮戒笉涔帮紙{zyltgb}锛�" if HighIncreaseCodeManager().is_in(code): if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.8: @@ -1041,26 +1049,31 @@ if not can_buy_result[0] and can_buy_result[1]: msg_list.append("鐙嫍") if zyltgb < zylt_threshold[1] or zyltgb > zylt_threshold[2]: - return False, True, f"寮哄娍10鍒嗛挓锛岀嫭鑻楋紙{can_buy_result[4]}锛変笉涓嬪崟锛坽can_buy_result[4]}锛夎嚜鐢辨祦閫氬競鍊硷紙{zyltgb}锛変笉婊¤冻鏉′欢" + # 濡傛灉娌℃湁杈ㄨ瘑搴︽墠涓嶄拱 + if k_format and k_format[8][0]: + # 鏈夎鲸璇嗗害 + pass + else: + return False, True, f"寮哄娍10鍒嗛挓锛岀嫭鑻楋紙{can_buy_result[4]}锛変笉涓嬪崟锛坽can_buy_result[4]}锛夎嚜鐢辨祦閫氬競鍊硷紙{zyltgb}锛変笉婊¤冻鏉′欢" 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] < 0.6: - return False, True, f"寮哄娍10鍒嗛挓锛岀嫭鑻楋紙{can_buy_result[4]}锛夛紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬0.6" + 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] < 0.3: - return False, True, f"寮哄娍10鍒嗛挓锛岀嫭鑻楋紙{can_buy_result[4]}锛�,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬0.3" + if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < volume_rate_thresholds[0]: + return False, True, f"寮哄娍10鍒嗛挓锛岀嫭鑻楋紙{can_buy_result[4]}锛�,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" else: msg_list.append("闈炵嫭鑻�") if zyltgb < zylt_threshold[1] or zyltgb > zylt_threshold[2]: 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] < 0.6: - return False, True, f"寮哄娍10鍒嗛挓锛屽悗鎺掞紝涓嶆弧瓒宠嚜鐢卞競鍊硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬0.6" + 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] < 0.3: - return False, True, f"寮哄娍10鍒嗛挓锛屽悗鎺�,涓嶆弧瓒宠嚜鐢卞競鍊硷紝褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬0.3" + 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: msg_list.append("婊¤冻鑷敱娴侀��") # 鍚庢帓锛屾弧瓒宠嚜鐢辨祦閫氬競鍊奸渶瑕佷笅鍗� @@ -1075,28 +1088,28 @@ if zyltgb < zylt_threshold[1] or zyltgb > zylt_threshold[2]: 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] < 0.6: - return False, True, f"闈炲己鍔�10鍒嗛挓锛屽己鍔夸富绾垮悗鎺掞紝涓嶆弧瓒宠嚜鐢卞競鍊硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬0.6" + 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] < 0.3: - return False, True, f"闈炲己鍔�10鍒嗛挓锛屽己鍔夸富绾垮悗鎺�,涓嶆弧瓒宠嚜鐢卞競鍊硷紝褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬0.3" + 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 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] < 0.3: - return False, True, f"闈炲己鍔�10鍒嗛挓锛屽己鍔夸富绾垮悗鎺�,婊¤冻鑷敱甯傚�硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮, 褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬0.3" + 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 zyltgb < zylt_threshold[1] or zyltgb > zylt_threshold[2]: - if code in cls.volume_rate_info and cls.volume_rate_info[code][0] < 0.6: - return False, True, f"闈炲己鍔�10鍒嗛挓锛岄潪寮哄娍涓荤嚎鍚庢帓锛屼笉婊¤冻鑷敱甯傚��, 褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬0.6" + 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 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] < 0.6: - return False, True, f"闈炲己鍔�10鍒嗛挓锛岄潪寮哄娍涓荤嚎鍚庢帓锛屾弧瓒宠嚜鐢卞競鍊硷紝鑲′环鍒涙柊楂樻垨鑰呴�艰繎鍓嶉珮, 褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬0.6" + 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] < 0.3: - return False, True, f"闈炲己鍔�10鍒嗛挓锛岄潪寮哄娍涓荤嚎鍚庢帓, 婊¤冻鑷敱甯傚�硷紝褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬0.3" + 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]}" return True, False, can_buy_result[2] @classmethod -- Gitblit v1.8.0