From 14117f79cdcb0edcac199f27f169d77f9ea5358a Mon Sep 17 00:00:00 2001
From: admin <admin@example.com>
Date: 星期四, 06 三月 2025 18:23:11 +0800
Subject: [PATCH] 日志调整

---
 strategy/kpl_api.py |  115 ++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 68 insertions(+), 47 deletions(-)

diff --git a/strategy/kpl_api.py b/strategy/kpl_api.py
index cc0c457..c608c2b 100644
--- a/strategy/kpl_api.py
+++ b/strategy/kpl_api.py
@@ -6,6 +6,7 @@
 import time
 import datetime
 
+import dask
 import requests
 
 import constant
@@ -35,7 +36,7 @@
 DABAN_TYPE_EVER_LIMIT_DOWN = 5
 
 
-def __base_request(url, data,  timeout=10):
+def __base_request(url, data, timeout=10):
     DELEGATE = True
     if not DELEGATE:
         headers = {
@@ -116,7 +117,6 @@
 def getCodesByPlate(plate_code):
     data = f"Order=1&a=ZhiShuStockList_W8&st=30&c=ZhiShuRanking&PhoneOSNew=1&old=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&IsZZ=0&Token=0&Index=0&apiv=w32&Type=6&IsKZZType=0&UserID=0&PlateID={plate_code}&"
     return __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data)
-
 
 
 # 鑾峰彇姒傚康涓殑鏉垮潡涓殑瀛愭澘鍧�
@@ -217,6 +217,52 @@
 
 # 鑾峰彇琛屾儏绮鹃�夋澘鍧� 寮哄害鎺掑悕
 def get_market_sift_plate_its_stock_power():
+    @dask.delayed
+    def batch_get_plate_codes(fs):
+        return fs
+
+    @dask.delayed
+    def request_plate_codes(i):
+        plate_name = i[1]
+        # 灏濊瘯杩囨护鎺夋棤鎰忎箟鐨勬蹇垫澘鍧�(plate_name not in ['绉戝垱鏉�', '鍖椾氦鎵�', '娆℃柊鑲�', '鏃�', 'ST鏉垮潡', 'ST鎽樺附', '骞惰喘閲嶇粍', '鍥戒紒鏀归潻','瓒呰穼', '澹宠祫婧�', '鑲℃潈杞', '閫佽浆濉潈']) and '澧為暱' in plate_name
+        if (plate_name not in ['绉戝垱鏉�', '鍖椾氦鎵�', '娆℃柊鑲�', '鏃�', 'ST鏉垮潡', 'ST鎽樺附', '骞惰喘閲嶇粍', '鍥戒紒鏀归潻', '瓒呰穼',
+                               '澹宠祫婧�', '鑲℃潈杞', '閫佽浆濉潈']) or ('澧為暱' in plate_name):
+            # print(f"{i[1]} 寮哄害:{i[2]}")
+            # 閫氳繃鏉垮潡ID鑾峰彇鍏朵笅闈㈢殑涓偂寮哄害鍒楄〃
+            its_stock = getCodesByPlate(i[0])
+            print(f"======={i[0]}=======")
+            its_stock = json.loads(its_stock)
+            # print(f"its_stock['list']  ===  {its_stock['list']}")
+            # print(f"its_stock['list'][0]  ===  {its_stock['list'][0]}")
+            # 鑾峰彇璇ユ蹇垫澘鍧楃殑鐨勫瓙鐗堝潡
+            # its_son_plate = json.loads(getSonPlate(i[0]))
+            # logger.info(f"its_son_plate=={its_son_plate['List']}")
+            # if its_son_plate['List'][0][2] > 0:
+            #     print(f"its_son_plate=={its_son_plate['List'][0]}")
+            # for son in its_son_plate['List']:
+            #     if son[2] > 0:
+            #         print(f"son===={son}")
+            # 鍒濆鍖栬偂绁ㄥ己搴﹀垪琛�
+            stock_power_list = []
+            for s in its_stock['list']:
+                # 杩囨护鎺夋定骞呭ぇ浜�  and s[6] < 6.5 涓斿皬浜�0%鐨� 鍜� 鍚嶇О涓寘鍚玈T鐨� 鍜� 娑ㄩ�熷皬浜庣瓑浜�0%鐨� 鍜� 鍙鏄ㄦ棩鏈定鍋� 鍜� 涓婅瘉鎴栨繁璇佺殑姝h偂    and s[9] > 0.0025
+                if s[6] > 0 and s[1].find("ST") < 0 and s[1].find("XD") < 0 and s[23].find("鏉�") < 0 and s[24].find(
+                        "鏉�") < 0 and (s[0].startswith('60') or s[0].startswith('00')) and s[9] > 1:
+                    # print(f"{s[1]}锛屼釜鑲′唬鐮侊細{s[0]}锛�   娑ㄥ箙锛歿s[6]}%   娑ㄩ�燂細{s[9]}%   姒傚康锛歿s[4]}   涓诲姏璧勯噾鎺ㄦ祴锛歿s[2]}   棰嗘定娆℃暟锛歿s[40]}  浠婃棩绗嚑鏉匡細{s[23]} 鏄惁鐮寸増{s[24]}")
+                    # 瀵逛釜鑲″己搴﹀睘鎬у垪琛ㄨ繘琛屽垵濮嬪寲
+                    its_stock_power = [s[1], s[0], s[6], s[9], s[4], s[2], s[40]]
+                    # 閫愪釜閫夋嫨鎬ф坊鍔爄ts_stock涓殑鍏冪礌鍒颁釜鑲″己搴﹀垪琛ㄤ腑
+                    # print(f"its_stock_power===={its_stock_power}")
+                    # 鏁翠綋灏嗘坊鍔犲畬鍠勭殑涓偂寮哄害鍒楄〃娣诲姞鍒拌偂绁ㄥ垪琛ㄤ腑
+                    stock_power_list.append(its_stock_power)
+            # print(f"stock_power_list===={stock_power_list}")
+            # 杩囨护鎺夋病鏈夌灛鏃堕珮寮哄害涓偂鐨勭┖姒傚康
+            if len(stock_power_list) != 0:
+                # 灏嗗搴旀澘鍧楃殑鑲$エ寮哄害鍒楄〃鏂板缓涓�涓瓧鍏�
+                stock_power_item = {i[1]: stock_power_list}
+                # 骞舵洿鏂板埌绮鹃�夋澘鍧椾釜鑲″瓧鍏镐腑
+                market_sift_plate_stock_dict.update(stock_power_item)
+
     data = (getMarketJingXuanRealRankingInfo())
     market_sift_plate = json.loads(data)
     # logger_kpl_jingxuan_in 鎵撳嵃鐨勬棩蹇椾笓鐢ㄤ簬寮�鐩樹簡鏁版嵁鐨勫瓨鍌ㄥ垎鏋愶紝涓嶈兘杞绘槗鍒犻櫎
@@ -226,45 +272,11 @@
     # 鍒濆鍖栫簿閫夋澘鍧楀搴斾釜鑲″瓧鍏�
     market_sift_plate_stock_dict = {}
     if 'list' in market_sift_plate:
-        for i in market_sift_plate['list']:
-            plate_name = i[1]
-            # 灏濊瘯杩囨护鎺夋棤鎰忎箟鐨勬蹇垫澘鍧�(plate_name not in ['绉戝垱鏉�', '鍖椾氦鎵�', '娆℃柊鑲�', '鏃�', 'ST鏉垮潡', 'ST鎽樺附', '骞惰喘閲嶇粍', '鍥戒紒鏀归潻','瓒呰穼', '澹宠祫婧�', '鑲℃潈杞', '閫佽浆濉潈']) and '澧為暱' in plate_name
-            if (plate_name not in ['绉戝垱鏉�', '鍖椾氦鎵�', '娆℃柊鑲�', '鏃�', 'ST鏉垮潡', 'ST鎽樺附', '骞惰喘閲嶇粍', '鍥戒紒鏀归潻', '瓒呰穼',
-                                   '澹宠祫婧�', '鑲℃潈杞', '閫佽浆濉潈']) or ('澧為暱' in plate_name):
-                # print(f"{i[1]} 寮哄害:{i[2]}")
-                # 閫氳繃鏉垮潡ID鑾峰彇鍏朵笅闈㈢殑涓偂寮哄害鍒楄〃
-                its_stock = getCodesByPlate(i[0])
-                its_stock = json.loads(its_stock)
-                # print(f"its_stock['list']  ===  {its_stock['list']}")
-                # print(f"its_stock['list'][0]  ===  {its_stock['list'][0]}")
-                # 鑾峰彇璇ユ蹇垫澘鍧楃殑鐨勫瓙鐗堝潡
-                # its_son_plate = json.loads(getSonPlate(i[0]))
-                # logger.info(f"its_son_plate=={its_son_plate['List']}")
-                # if its_son_plate['List'][0][2] > 0:
-                #     print(f"its_son_plate=={its_son_plate['List'][0]}")
-                # for son in its_son_plate['List']:
-                #     if son[2] > 0:
-                #         print(f"son===={son}")
-                # 鍒濆鍖栬偂绁ㄥ己搴﹀垪琛�
-                stock_power_list = []
-                for s in its_stock['list']:
-                    # 杩囨护鎺夋定骞呭ぇ浜�  and s[6] < 6.5 涓斿皬浜�0%鐨� 鍜� 鍚嶇О涓寘鍚玈T鐨� 鍜� 娑ㄩ�熷皬浜庣瓑浜�0%鐨� 鍜� 鍙鏄ㄦ棩鏈定鍋� 鍜� 涓婅瘉鎴栨繁璇佺殑姝h偂    and s[9] > 0.0025
-                    if s[6] > 0 and s[1].find("ST") < 0 and s[1].find("XD") < 0 and s[23].find("鏉�") < 0 and s[24].find(
-                            "鏉�") < 0 and (s[0].startswith('60') or s[0].startswith('00')) and s[9] > 1:
-                        # print(f"{s[1]}锛屼釜鑲′唬鐮侊細{s[0]}锛�   娑ㄥ箙锛歿s[6]}%   娑ㄩ�燂細{s[9]}%   姒傚康锛歿s[4]}   涓诲姏璧勯噾鎺ㄦ祴锛歿s[2]}   棰嗘定娆℃暟锛歿s[40]}  浠婃棩绗嚑鏉匡細{s[23]} 鏄惁鐮寸増{s[24]}")
-                        # 瀵逛釜鑲″己搴﹀睘鎬у垪琛ㄨ繘琛屽垵濮嬪寲
-                        its_stock_power = [s[1], s[0], s[6], s[9], s[4], s[2], s[40]]
-                        # 閫愪釜閫夋嫨鎬ф坊鍔爄ts_stock涓殑鍏冪礌鍒颁釜鑲″己搴﹀垪琛ㄤ腑
-                        # print(f"its_stock_power===={its_stock_power}")
-                        # 鏁翠綋灏嗘坊鍔犲畬鍠勭殑涓偂寮哄害鍒楄〃娣诲姞鍒拌偂绁ㄥ垪琛ㄤ腑
-                        stock_power_list.append(its_stock_power)
-                # print(f"stock_power_list===={stock_power_list}")
-                # 杩囨护鎺夋病鏈夌灛鏃堕珮寮哄害涓偂鐨勭┖姒傚康
-                if len(stock_power_list) != 0:
-                    # 灏嗗搴旀澘鍧楃殑鑲$エ寮哄害鍒楄〃鏂板缓涓�涓瓧鍏�
-                    stock_power_item = {i[1]: stock_power_list}
-                    # 骞舵洿鏂板埌绮鹃�夋澘鍧椾釜鑲″瓧鍏镐腑
-                    market_sift_plate_stock_dict.update(stock_power_item)
+        ds = []
+        for d in market_sift_plate['list']:
+            ds.append(request_plate_codes(d))
+        dask_result = batch_get_plate_codes(ds)
+        dask_result.compute()
         logger.info(f"绮鹃�夋澘鍧楄偂绁ㄥ己搴︽暟鎹洿鏂� == {market_sift_plate_stock_dict}")
     return market_sift_plate_stock_dict
 
@@ -307,6 +319,7 @@
                             f"a=DiskReview&apiv=w35&c=HomeDingPan&VerSion=5.13.0.0&PhoneOSNew=1&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&")
     data = json.loads(result)
     return int(data["info"]["strong"])
+
 
 # market_strong = get_market_strong()
 # print(f"market_strong==={market_strong}")
@@ -383,7 +396,8 @@
                         # 灏嗘棩鏈熷拰data_to_append杞崲涓篔SON鏍煎紡鐨勫瓧绗︿覆
                         json_line = json.dumps({current_date: data_to_append}, ensure_ascii=False) + '\n'
                         # 鎵撳紑鏂囦欢骞惰拷鍔燡SON琛�
-                        with open(self.file_path, 'a', encoding='utf-8') as file:file.write(json_line)
+                        with open(self.file_path, 'a', encoding='utf-8') as file:
+                            file.write(json_line)
                     else:
                         logger.info(f"锛堝綋鏃ユ棩鏈熷凡瀛樺湪浜庢枃浠剁殑鏈�鍚庝竴琛屼簡锛屼笉鍐嶉噸澶嶈拷鍔犲啓鍏ワ級")
                 else:
@@ -444,7 +458,6 @@
     data_cache.daily_limit_up_info = history_limit_up_info.arrange_limit_up_info()
     # logger.info(f"璇绘湰鍦扮殑鏃ユ洿鐨勫巻鍙叉定鍋滄暟鎹�=={data_cache.daily_limit_up_info}")
 
-
     # print(f"daily_limit_up_info  绫诲瀷==={type(data_cache.daily_limit_up_info)}")
     # 缁熻姣忔棩涓荤嚎
     daily_limit_up_info_len = len(data_cache.daily_limit_up_info)
@@ -488,6 +501,7 @@
                 sorted_plate_ranking_list = sorted(plate_ranking_list, key=lambda x: list(x.values())[0], reverse=True)
                 # logger.info(f"{key}=====>>>>{sorted_plate_ranking_list}")
                 history_sorted_plate_ranking_list.append(sorted_plate_ranking_list)
+
     # print(f"history_sorted_plate_ranking_list={history_sorted_plate_ranking_list}")
     # for ranking_list in history_sorted_plate_ranking_list:
     #     print(f"ranking_list={ranking_list}")
@@ -592,6 +606,7 @@
         # the_same_class_amount = pre_trading_day_limit_up_info[0][20]
         # logger.info(f"鍚屾蹇垫定鍋滄暟閲�=={the_same_class_amount}")
 
+
 # get_handling_limit_up_info()
 
 
@@ -654,9 +669,6 @@
                 plate_are_null_list.append(sec_name)
     logger.info(f"鏈墈have_no_plate_num}鍙偂绁ㄦ蹇典负绌�")
     logger.info(f"涓偂鏈夊巻鍙睰绾夸絾姒傚康涓虹┖鐨勬湁锛歿plate_are_null_list}")
-
-
-
 
 
 # 鑾峰彇鍏ㄩ儴涓偂鐨勭簿閫夋澘鍧楀苟瀛樺偍鐨勫嚱鏁�
@@ -723,12 +735,15 @@
                     if Unfinished_opening_plan_number != 0:
                         # 鏍规嵁璐︽埛鍙敤閲戦 璁$畻浠婃棩璁″垝涓嬪崟閲戦
                         # (璐︽埛鍙敤閲戦/浠婃棩鏈�澶ф柊澧炴寔浠撶エ鏁�) * 锛堝ぇ鐩樼患鍚堝己搴﹀垎鏁� * 0.01锛�
-                        data_cache.today_planned_order_amount = (usefulMoney * low_emotion_mood_emotion / Unfinished_opening_plan_number) * (data_cache.real_time_market_strong * 0.01)
+                        data_cache.today_planned_order_amount = (
+                                                                        usefulMoney * low_emotion_mood_emotion / Unfinished_opening_plan_number) * (
+                                                                        data_cache.real_time_market_strong * 0.01)
 
         except Exception as error:
             logger.error(f"鑾峰彇瀹炴椂澶х洏琛屾儏鎯呯华缁煎悎寮哄害[鍒嗘暟] 鍑芥暟鎶ラ敊: {error}")
         finally:
             time.sleep(3)
+
 
 # kpl_stocks_list_selected_blocks_process()   #鍦� kpl_api.py涓彲浠ヨ皟鐢�
 
@@ -737,3 +752,9 @@
 # list = ['SHSE.600805','SHSE.600804']
 #
 # all_stocks_plate_dict(list)
+
+
+if __name__ == "__main__":
+    start_time = time.time()
+    get_market_sift_plate_its_stock_power()
+    print("鑰楁椂锛�", time.time() - start_time)

--
Gitblit v1.8.0