From fa585f59d291097b1cefb2f58cead999f042d169 Mon Sep 17 00:00:00 2001 From: Administrator <admin@example.com> Date: 星期三, 10 一月 2024 17:42:40 +0800 Subject: [PATCH] 添加推送消息/有辨识度的选票逻辑更改/自由市值条件修改 --- l2/l2_data_manager_new.py | 62 +++++++++++++++--------------- 1 files changed, 31 insertions(+), 31 deletions(-) diff --git a/l2/l2_data_manager_new.py b/l2/l2_data_manager_new.py index 7306d55..2ebafa6 100644 --- a/l2/l2_data_manager_new.py +++ b/l2/l2_data_manager_new.py @@ -1021,54 +1021,53 @@ 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]})" - + is_special = True if k_format and k_format[8][0] else False # 鑾峰彇甯傚満琛屾儏 situation = cls.__MarketSituationManager.get_situation_cache() zylt_threshold = buy_condition_util.get_zyltgb_threshold(situation) zyltgb = global_util.zyltgb_map.get(code) - if k_format and k_format[8][0]: + if is_special: # 鍏锋湁杈ㄨ瘑搴� - zyltgb = zylt_threshold[1] + 1 + zyltgb = zylt_threshold[2] + 1 - if zyltgb >= zylt_threshold[0]: - return False, True, f"{zylt_threshold[0] // 100000000}浜夸互涓婄殑閮戒笉涔帮紙{zyltgb}锛�" + if zyltgb >= zylt_threshold[1]: + return False, True, f"{zylt_threshold[1] // 100000000}浜夸互涓婄殑閮戒笉涔帮紙{zyltgb}锛�" + + if zyltgb < zylt_threshold[0]: + 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: return False, True, f"5澶╁唴3娆℃定鍋滐紝閲忔湭杈惧埌80%锛坽cls.volume_rate_info[code][0]}锛�" - msg_list = [] if now_timestamp <= int("094000"): msg_list.append("寮哄娍10鍒嗛挓") # 鐙嫍 if not can_buy_result[0] and can_buy_result[1]: msg_list.append("鐙嫍") - if zyltgb < zylt_threshold[1] or zyltgb > zylt_threshold[2]: + if zyltgb < zylt_threshold[2] or zyltgb > zylt_threshold[3]: # 濡傛灉娌℃湁杈ㄨ瘑搴︽墠涓嶄拱 - 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 not is_special: + 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] < 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]: - return False, True, f"寮哄娍10鍒嗛挓锛岀嫭鑻楋紙{can_buy_result[4]}锛�,褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" + 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 zyltgb < zylt_threshold[1] or zyltgb > zylt_threshold[2]: + if zyltgb < zylt_threshold[2] or zyltgb > zylt_threshold[3]: 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]: - return False, True, f"寮哄娍10鍒嗛挓锛屽悗鎺�,涓嶆弧瓒宠嚜鐢卞競鍊硷紝褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" + 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("婊¤冻鑷敱娴侀��") # 鍚庢帓锛屾弧瓒宠嚜鐢辨祦閫氬競鍊奸渶瑕佷笅鍗� @@ -1079,39 +1078,40 @@ 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] < volume_rate_thresholds[1]: - return False, True, f"鍙傝�冮噺鍦ㄦ渶杩�5澶�,閲忔湭杈惧埌{volume_rate_thresholds[1]}({cls.volume_rate_info[code][0]})" + 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"鍙傝�冮噺鍦ㄦ渶杩�5澶╋紝鏃犺鲸璇嗗害锛岄噺鏈揪鍒皗volume_rate_thresholds[1]}({cls.volume_rate_info[code][0]})" # 闈炲己鍔�10鍒嗛挓鍙拱涓荤嚎 if not can_buy_result[0] and can_buy_result[1]: - return False, True, f"闈炲己鍔�10鍒嗛挓锛岀嫭鑻楋紙{can_buy_result[4]}锛変笉涓嬪崟" + if not is_special: + return False, True, f"闈炲己鍔�10鍒嗛挓锛屾棤杈ㄨ瘑搴︼紝鐙嫍锛坽can_buy_result[4]}锛変笉涓嬪崟" if can_buy_result[3]: # 寮哄娍涓荤嚎 - if zyltgb < zylt_threshold[1] or zyltgb > zylt_threshold[2]: + if zyltgb < zylt_threshold[2] or zyltgb > zylt_threshold[3]: 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]: - return False, True, f"闈炲己鍔�10鍒嗛挓锛屽己鍔夸富绾垮悗鎺�,涓嶆弧瓒宠嚜鐢卞競鍊硷紝褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" + 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 zyltgb < zylt_threshold[1] or zyltgb > zylt_threshold[2]: - 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]}" + if zyltgb < zylt_threshold[2] or zyltgb > zylt_threshold[3]: + 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]: - return False, True, f"闈炲己鍔�10鍒嗛挓锛岄潪寮哄娍涓荤嚎鍚庢帓銆愪富绾垮悗鎺掋��, 婊¤冻鑷敱甯傚�硷紝褰撴棩閲忔瘮({cls.volume_rate_info[code][0]})灏忎簬{volume_rate_thresholds[0]}" + 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 @@ -1247,7 +1247,7 @@ trade_index, is_default = TradeBuyQueue().get_traded_index(code) if trade_index and not is_default: m_base_val = l2_trade_factor.L2PlaceOrderParamsManager.get_base_m_val(code) - thresh_hold_num = m_base_val * 3 // (float(gpcode_manager.get_limit_up_price(code)) * 100) + thresh_hold_num = m_base_val * 4 // (float(gpcode_manager.get_limit_up_price(code)) * 100) # 鐪熷疄涓嬪崟浣嶅埌鎴愪氦浣嶇疆鐨勭函涔伴 * 3 total_num = 0 for i in range(trade_index + 1, buy_single_index): @@ -1264,7 +1264,7 @@ total_num += left_count * val["num"] if total_num > thresh_hold_num: break - if total_num > thresh_hold_num and False: + if total_num > thresh_hold_num: # 璺濈鎴愪氦杩涘害浣嶇疆杩囪繙 l2_log.debug(code, f"鑾峰彇鐨勪俊鍙蜂綅鏃犳晥锛堟澘涓婁拱锛岃寖鍥达細{trade_index + 1}-{order_begin_pos.buy_single_index} 鏈垚浜ゆ�绘墜{total_num}/闃堝�納thresh_hold_num}锛�") @@ -1759,7 +1759,7 @@ l2_log.buy_debug(code, "浣嶇疆-{}锛屾�绘墜鏁帮細{}锛岀洰鏍囨墜鏁帮細{}", i, buy_nums, threshold_num) # 绾拱棰濊冻澶燂紝涓旂瑪鏁板ぇ浜�5绗� - if buy_nums >= threshold_num and trigger_buy and buy_count>=5: + if buy_nums >= threshold_num and trigger_buy and buy_count >= 5: try: info = cls.__trade_log_placr_order_info_dict[code] info.set_trade_factor(threshold_money, 0, []) -- Gitblit v1.8.0