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