From 70b51a2636858fb8cfbf39d3764d88d07286d8ad Mon Sep 17 00:00:00 2001
From: admin <admin@example.com>
Date: 星期二, 08 四月 2025 11:27:42 +0800
Subject: [PATCH] 增加并行数量

---
 strategy/kpl_api.py |  298 ++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 151 insertions(+), 147 deletions(-)

diff --git a/strategy/kpl_api.py b/strategy/kpl_api.py
index d74b76b..cd91466 100644
--- a/strategy/kpl_api.py
+++ b/strategy/kpl_api.py
@@ -6,19 +6,22 @@
 import time
 import datetime
 
+import dask
 import requests
 
 import constant
+from log_module import async_log_util
+from log_module.log import logger_common, logger_kpl_jingxuan_in, logger_Overall_market_strength_score, \
+    logger_stock_of_markets_plate, logger_debug
 # import requests
 from strategy import data_cache
 from strategy import basic_methods
-
-from strategy.logging_config import get_logger
+from strategy.kpl_data_manager import KPLStockOfMarketsPlateLogManager
 from trade import middle_api_protocol
-from utils import hx_qc_value_util
+from utils import hx_qc_value_util, tool
 
 # 鑾峰彇logger瀹炰緥
-logger = get_logger()
+logger = logger_common
 
 now = time.time()
 print(f"kpl_api寮�濮嬭繍琛�--{now}")
@@ -35,7 +38,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 = {
@@ -118,7 +121,6 @@
     return __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data)
 
 
-
 # 鑾峰彇姒傚康涓殑鏉垮潡涓殑瀛愭澘鍧�
 def getSonPlate(plate_code):
     data = f"a=SonPlate_Info&apiv=w32&c=ZhiShuRanking&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&PlateID={plate_code}&"
@@ -183,88 +185,149 @@
     return json.dumps({"errcode": 0, "list": fresults})
 
 
-# if __name__ == "__main__":
 
 
-# print(f"鎵撴澘鍒楄〃t(pidType)====={daBanList(2)}")
-# print(f"鑾峰彇涓偂浠g爜鐨勬澘鍧�==={getStockIDPlate('002766')}")
-# print((f"鑾峰彇涓偂浠g爜鐨勭簿閫夋澘鍧�==={getCodeJingXuanBlocks('002878')}"))
-# print(f"鑾峰彇璇ユ蹇典笅鐨勪釜鑲′唬鐮佸強鍏朵粬====={getCodesByPlate(885500)}")   銆娿�娿�娿�娿�娿�娿�娿�娿�娿��
-# print(f"鑾峰彇姒傚康涓殑鏉垮潡涓殑瀛愭澘鍧�====={json.loads(getSonPlate(801085))}")
+# 鑾峰彇娑ㄥ仠淇℃伅鏁版嵁
+def get_limit_up_info():
+    # 鑾峰彇娑ㄥ仠淇℃伅鍒楄〃
+    limit_up_info = json.loads(getLimitUpInfoNew())['list']
+    return limit_up_info
 
-# print(f"鑾峰彇姒傚康涓殑鏉垮潡寮哄害====={getSonPlate(getCodesByPlate(getCodeJingXuanBlocks('002452')[2][0]))}")
-# print(f"甯傚満琛屾儏-琛屼笟鏉垮潡 鏁�==={len(getMarketIndustryRealRankingInfo(True))}")
-# print(f"甯傚満琛屾儏-琛屼笟鏉垮潡==={json.loads(getMarketIndustryRealRankingInfo(True))}")
 
-# 杩斿洖鏍煎紡锛歔'鏉垮潡ID','鏉垮潡鍚嶇О','寮哄害','娑ㄥ箙','鏈煡','鎴愪氦棰�','''''''''寮哄害','鏈煡']
-# print(f"甯傚満琛屾儏-绮鹃�夋澘鍧� 鏁�==={getMarketJingXuanRealRankingInfo(True)}")
-# print(f"甯傚満琛屾儏-绮鹃�夋澘鍧�==={json.loads(getMarketJingXuanRealRankingInfo(True))}")
-# print(f"鑲$エ浠g爜锛歿Market_situation_selected_sectors_No1[0]}")
-# jingxuanbankuai = json.loads(getMarketJingXuanRealRankingInfo(True))
-# print(f"jingxuanbankuai==={type(jingxuanbankuai)}")
-# print(f"鏉垮潡浠g爜锛歿jingxuanbankuai['list'][0][0]}锛屾澘鍧楀悕绉帮細{jingxuanbankuai['list'][0][1]}锛屽己搴︼細{jingxuanbankuai['list'][0][2]}锛屾定骞咃細{jingxuanbankuai['list'][0][3]}锛屾湭鐭ワ細{jingxuanbankuai['list'][0][4]}锛屾垚浜ら锛歿round(jingxuanbankuai['list'][0][5]/100000000)}浜匡紝涓诲姏鍑�棰濓細{round(jingxuanbankuai['list'][0][6]/100000000,2)}浜匡紝涓讳拱锛歿round(jingxuanbankuai['list'][0][7]/100000000,2)}浜匡紝涓诲崠锛歿round(jingxuanbankuai['list'][0][8]/100000000,2)}浜匡紝鏈煡锛歿jingxuanbankuai['list'][0][9]}锛屾祦閫氬�硷細{round(jingxuanbankuai['list'][0][10]/100000000,2)}浜匡紝鏈煡/鎴栦负鏈�澶ф定璺屽箙锛歿round(jingxuanbankuai['list'][0][11],2)}锛屾湭鐭ワ細{round(jingxuanbankuai['list'][0][12]/100000000,2)}浜匡紝鎬诲競鍊硷細{round(jingxuanbankuai['list'][0][13]/100000000,2)}浜匡紝绗竴瀛e害鏈烘瀯鎸佷粨锛歿round(jingxuanbankuai['list'][0][14]/100000000,2)}浜匡紝鏈煡锛歿round(jingxuanbankuai['list'][0][15],2)}锛屾湭鐭ワ細{round(jingxuanbankuai['list'][0][16],2)}锛屽己搴︼細{round(jingxuanbankuai['list'][0][17],2)}")
-# # 閮ㄥ垎鏉垮潡娌℃湁瀛愭澘鍧�
-# print(f"鑾峰彇姒傚康涓殑鏉垮潡涓殑瀛愭澘鍧�====={json.loads(getSonPlate(801248))}")
+# 鑾峰彇甯傚満鎯呯华缁煎悎寮哄害銆愬畬鏁淬��
+def changeStatistics():
+    """
+    鑾峰彇甯傚満寮哄害
+    :return:
+    """
+    result = __base_request("https://apphwhq.longhuvip.com/w1/api/index.php",
+                            f"a=ChangeStatistics&apiv=w35&c=HomeDingPan&PhoneOSNew=1&UserID=0&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9774&VerSion=5.13.0.0&Token=0&")
+    # data = result.text
+    data = json.loads(result)
+    return data["info"][0]
 
-# print(f"鑷敱娴侀�氬競鍊�==={getZYLTAmount('603319')}")
-# print((f"鑾峰彇涓偂浠g爜鐨勭簿閫夋澘鍧楀垪琛�==={getCodeJingXuanBlocks('002452')}"))
-# print((f"鑾峰彇涓偂浠g爜鐨勭簿閫夌涓�鏉垮潡浠g爜==={getCodeJingXuanBlocks('002452')[0][0]}"))
-# print(f"鑾峰彇璇ユ蹇典笅鐨勪釜鑲′唬鐮佸強鍏朵粬====={json.loads(getCodesByPlate(getCodeJingXuanBlocks('002452')[0][0]))}")
-# print(f"鑾峰彇璇ユ蹇典笅鐨勪釜鑲′唬鐮佸強鍏朵粬dddddd====={json.loads(its_strongest_sector_situation)}")
-# print(f"娑ㄥ仠鍒楄〃鍙婃蹇垫澘鍧�={json.loads(getLimitUpInfoNew())['list']}")
 
-########################################################################################################################################################################################################################
+# 鑾峰彇甯傚満鎯呯华缁煎悎寮哄害
+def get_market_strong():
+    """
+    鑾峰彇甯傚満寮哄害
+    :return:
+    """
+    result = __base_request("https://apphwhq.longhuvip.com/w1/api/index.php",
+                            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"])
+
+
+# 甯傚満鎯呯华--娑ㄨ穼缁熻
+# 鏁版嵁鏍煎紡锛�
+# SJZT:瀹為檯娑ㄥ仠  SJDT:瀹為檯璺屽仠 SZJS:娑ㄦ暟閲� ZT:娑ㄥ仠 DT:璺屽仠  XDJS:璺屾暟閲�  sign:浜烘皵姒傝堪
+def getMarketFelling():
+    result = __base_request("https://apphwhq.longhuvip.com/w1/api/index.php",
+                            f"a=ZhangFuDetail&apiv=w35&c=HomeDingPan&PhoneOSNew=1&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9774&VerSion=5.13.0.0&")
+    data = json.loads(result)
+    return data["info"]
+# market_strong = get_market_strong()
+# print(f"market_strong==={market_strong}")
+
+
+if __name__ == "__main__":
+    MarketFelling = getMarketFelling()
+    print(f"MarketFelling==={MarketFelling}")
+    changeStatistics = changeStatistics()
+    print(f"changeStatistics==={changeStatistics}")
+
+# --------------------------------------------------------------------------------------------------------------------------------------------------------------
+
 
 # 鑾峰彇琛屾儏绮鹃�夋澘鍧� 寮哄害鎺掑悕
 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]
+        log_data = None
+        its_stock = json.loads(getCodesByPlate(i[0]))
+        now_time_str = tool.get_now_time_str()
+        if data_cache.OPENING_TIME < now_time_str < data_cache.NOON_MARKET_TIME:
+            log_data = {plate_name: its_stock['list']}
+        # 灏濊瘯杩囨护鎺夋棤鎰忎箟鐨勬蹇垫澘鍧�(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鑾峰彇鍏朵笅闈㈢殑涓偂寮哄害鍒楄〃
+            # print(f"======={i[0]}=======")
+
+            # its_stock_list_info = its_stock['list']
+            # logger.info(f"its_stock_list_info==={its_stock_list_info}")
+            # 灏嗘澘鍧楀己搴︿笅闈㈠搴旂殑涓偂鍒楄〃鎵撳嵃鍒版棩蹇椾腑
+            # for i in its_stock_list_info:
+            #     if i[0] != 1:
+            #         logger.info(
+            #             f"l === 涓偂浠g爜锛歿i[0]}锛屽叕鍙稿悕绉帮細{i[1]}锛屼富鍔涜祫閲戞帹娴嬶細{i[2]}锛屾湭鐭�0鍊硷細{i[3]}锛屾蹇碉細{i[4]}锛屾渶鏂颁环锛歿i[5]}锛屽綋鏃ュ綋鏃舵定骞咃細{i[6]}%锛�"
+            #             f"鎴愪氦棰濓細{round(i[7] / 100000000, 2)} 浜匡紝瀹為檯鎹㈡墜鐜囷細{i[8]}%锛屾湭鐭�0鍊硷細{i[9]}锛屽疄闄呮祦閫氾細{round(i[10] / 100000000, 2)}浜匡紝"
+            #             f"涓诲姏涔帮細{round(i[11] / 100000000, 2)}浜匡紝"
+            #             f"涓诲姏鍗栵細{round(i[12] / 100000000, 2)}浜匡紝"
+            #             f"涓诲姏鍑�棰濓細{round(i[13] / 10000, 2)}涓囷紝涔版垚鍗犳瘮锛歿i[14]}%锛屽崠鎴愬崰姣旓細{i[15]}%锛屽噣鎴愬崰姣旓細{i[16]}%锛屼拱娴佸崰姣旓細{i[17]}%锛屽崠娴佸崰姣旓細{i[18]}%锛屽噣娴佸崰姣旓細{i[19]}%锛�"
+            #             f"鍖洪棿娑ㄥ箙锛歿i[20]}%锛岄噺姣旓細{i[21]}锛屾湭鐭�0锛歿i[22]}锛屼笂鏉挎儏鍐碉細{i[23]}锛屼笂鏉挎帓鍚嶏細{i[24]}锛屾崲鎵嬬巼锛歿i[25]}%锛�"
+            #             f"鏈煡绌哄�硷細{i[26]}锛屾湭鐭ラ浂鍊硷細{i[27]}锛屾敹鐩樺皝鍗曪細{i[28]}锛屾渶澶у皝鍗曪細{i[29]}锛屾湭鐭ョ┖鍊硷紵锛歿i[30]}锛�"
+            #             f"锛燂細{i[30]}%锛岋紵锛歿i[31]}锛岋紵锛燂細{i[32]}锛屾尟骞咃細{i[33]}%锛屾湭鐭�0锛燂紵锛燂紵锛歿i[34]}锛屾湭鐭�0锛燂紵锛燂紵锛燂細{i[35]}锛�"
+            #             f"锛�=锛歿i[36]}锛岋紵鎬诲競鍊硷細{i[37]}锛岋紵娴侀�氬競鍊硷細{i[38]}锛屾渶缁堝綊灞炴蹇碉紙鏀剁洏鍚庡嚭鏁版嵁锛燂級锛歿i[39]}锛岄娑ㄦ鏁帮細{i[40]}锛�"
+            #             f"41鏈煡1鍊硷細{i[41]}锛岀涓夊搴︽満鏋勬寔浠撱�恠tr鏁版嵁鍕跨敤杩愮畻绗︺�戯細{i[42]}涓囷紝锛熷勾棰勬祴鍑�鍒╂鼎锛歿i[43]}锛屼笂骞撮娴嬪噣鍒╂鼎锛歿i[44]}锛屽勾鍐呴娴嬪噣鍒╂鼎锛歿i[45]}"
+            #         )
+
+            # 鍒濆鍖栬偂绁ㄥ己搴﹀垪琛�
+            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)
+        return log_data
+
     data = (getMarketJingXuanRealRankingInfo())
     market_sift_plate = json.loads(data)
+    # logger_kpl_jingxuan_in 鎵撳嵃鐨勬棩蹇椾笓鐢ㄤ簬寮�鐩樹簡鏁版嵁鐨勫瓨鍌ㄥ垎鏋愶紝涓嶈兘杞绘槗鍒犻櫎
     # print(f"market_sift_plate 鏁� ======{len(market_sift_plate['list'])}")
+    # 琛屾儏銆嬬簿閫夋澘鍧椼�嬫帓鍚嶅墠20涓�嬪搴斾釜鑲°�嬬鍚堟潯浠剁殑涓偂
     # logger.info(f"market_sift_plate['list']======{market_sift_plate['list']}")
     # logger.info(f"market_sift_plate['list'][0]  ======{market_sift_plate['list'][0]}")
     # 鍒濆鍖栫簿閫夋澘鍧楀搴斾釜鑲″瓧鍏�
     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)
-        logger.info(f"绮鹃�夋澘鍧楄偂绁ㄥ己搴︽暟鎹洿鏂� == {market_sift_plate_stock_dict}")
+        ds = []
+        for d in market_sift_plate['list']:
+            ds.append(request_plate_codes(d))
+        dask_result = batch_get_plate_codes(ds)
+        compute_results = dask_result.compute()
+        log_datas = {}
+        for r in compute_results:
+            if not r:
+                continue
+            for b in r:
+                log_datas[b] = r[b]
+        now_time = tool.get_now_time_str()
+        if data_cache.L1_DATA_START_TIME < now_time < data_cache.NOON_MARKET_TIME:
+            # logger.info(f"绮鹃�夋澘鍧楄偂绁ㄥ己搴︽暟鎹洿鏂� == {market_sift_plate_stock_dict}")
+            # 鍙湪鐩樹腑鏃堕棿鑾峰彇
+            KPLStockOfMarketsPlateLogManager().add_log(market_sift_plate['list'], log_datas)
+
     return market_sift_plate_stock_dict
 
 
@@ -276,43 +339,28 @@
         try:
             # now = time.time()
             # print(f"kpl_limit_up_process寮�濮嬩簡{now}")
-            its_stock_power = get_market_sift_plate_its_stock_power()
-            callback(its_stock_power)
-            # print(f"绮鹃�夋澘鍧楁媺鍗囦釜鑲℃洿鏂�===={its_stock_power}")
+            start_time = time.time()
+            now_time = tool.get_now_time_str()
+            if data_cache.L1_DATA_START_TIME < now_time < data_cache.CLOSING_TIME:
+                its_stock_power = get_market_sift_plate_its_stock_power()
+                time_str = datetime.datetime.now().strftime("%H%M%S")
+                if 92900 < int(time_str) < 95000:
+                    logger_kpl_jingxuan_in.info(f"鑰楁椂锛歿time.time() - start_time}  鏁版嵁锛歿its_stock_power}")
+                callback(its_stock_power)
+                # print(f"绮鹃�夋澘鍧楁媺鍗囦釜鑲℃洿鏂�===={its_stock_power}")
         except Exception as e:
+            logger_debug.exception(e)
             logger.error(f"寮�鐩樺暒鏉垮潡寮哄害绾跨▼鎶ラ敊An error occurred: {e}")
         finally:
             time.sleep(2)
 
 
-# 鑾峰彇娑ㄥ仠淇℃伅鏁版嵁
-def get_limit_up_info():
-    # 鑾峰彇娑ㄥ仠淇℃伅鍒楄〃
-    limit_up_info = json.loads(getLimitUpInfoNew())['list']
-    return limit_up_info
-
-
-# 鑾峰彇甯傚満琛屾儏鎯呯华缁煎悎寮哄害
-def get_market_strong():
-    """
-    鑾峰彇甯傚満寮哄害
-    :return:
-    """
-    result = __base_request("https://apphwhq.longhuvip.com/w1/api/index.php",
-                            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}")
-
-
 # 鑾峰彇娑ㄥ仠鏉垮潡鍚嶇О鍒楄〃骞跺瓨鍌ㄦ湰鍦扮殑鍑芥暟
 def get_limit_up_block_names():
     # 璁惧畾褰撳墠鏃堕棿鐐�
-    now_time = datetime.datetime.now().strftime("%H:%M:%S")
+    now_time = tool.get_now_time_str()
     # print(f"now_time===={now_time}")
-    if data_cache.opening_time < now_time < data_cache.update_data_time:
+    if data_cache.SERVER_RESTART_TIME < now_time < data_cache.UPDATE_DATA_TIME:
         # print(f"鍦ㄦ椂闂村唴浣跨敤--------------------------")
         # 鑾峰彇娑ㄥ仠淇℃伅鍒楄〃
         limit_up_info = get_limit_up_info()
@@ -378,7 +426,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:
@@ -439,7 +488,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)
@@ -483,6 +531,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}")
@@ -587,6 +636,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()
 
 
@@ -651,9 +701,6 @@
     logger.info(f"涓偂鏈夊巻鍙睰绾夸絾姒傚康涓虹┖鐨勬湁锛歿plate_are_null_list}")
 
 
-
-
-
 # 鑾峰彇鍏ㄩ儴涓偂鐨勭簿閫夋澘鍧楀苟瀛樺偍鐨勫嚱鏁�
 def stocks_list_selected_blocks(min_stocks):
     stocks_selected_block_data = []
@@ -693,52 +740,9 @@
     print(f"鍐欏叆绮鹃�夋澘鍧楁枃浠跺畬鎴愶紒::{now_time}")
 
 
-# 鑾峰彇瀹炴椂澶х洏琛屾儏鎯呯华缁煎悎寮哄害 [鍒嗘暟] 鍑芥暟
-def get_real_time_market_strong():
-    while True:
-        try:
-            if data_cache.position_automatic_management_switch is True:
-                # 鍒濆鍖栧垎鏃跺競鍦烘儏缁垎鏁板垪琛ㄦ暟鎹垪琛�
-                time_sharing_market_strong_dirt = {}
-                now = datetime.datetime.now()  # 鑾峰彇鏈満鏃堕棿
-                data_cache.real_time_market_strong = get_market_strong()
-                # data_cache.time_sharing_market_strong_dirt = time_sharing_market_strong_dirt.update({now: data_cache.real_time_market_strong})
-                logger.info(f"澶х洏琛屾儏鎯呯华缁煎悎寮哄害 [鍒嗘暟]==={data_cache.real_time_market_strong}鍒�")
-                usefulMoney = data_cache.account_finance_dict[0].get('usefulMoney', 0)
-                logger.info(f"璐︽埛鍙敤璧勯噾==={usefulMoney}鍏�")
-                # 鏈烘鐗�
-                # if data_cache.real_time_market_strong >= 70:
-                #     data_cache.have_plate_buy_money = 30000
-                #     data_cache.have_strength_buy_money = 30000
-                # elif 60 <= data_cache.real_time_market_strong < 70:
-                #     data_cache.have_plate_buy_money = 20000
-                #     data_cache.have_strength_buy_money = 20000
-                # elif 50 <= data_cache.real_time_market_strong < 60:
-                #     data_cache.have_plate_buy_money = 10000
-                #     data_cache.have_strength_buy_money = 10000
-                # elif 30 <= data_cache.real_time_market_strong < 50:
-                #     data_cache.have_plate_buy_money = 3000
-                #     data_cache.have_strength_buy_money = 3000
-                # elif data_cache.real_time_market_strong < 30:
-                #     data_cache.have_plate_buy_money = 1000
-                #     data_cache.have_strength_buy_money = 1000
-
-                # 鑾峰彇璁$畻浠婂ぉ鏂板鐨勬寔浠撴暟閲�
-                addition_position_number = len(data_cache.addition_position_symbols_set)
-                # 瀹氫箟涓�涓粖鏃ョ殑鍓╀綑鏂板鎸佷粨鏁伴噺鐨勫彉閲�
-                Unfinished_opening_plan_number = 3 - addition_position_number
-                # 鏍规嵁璐︽埛鍙敤閲戦 璁$畻浠婃棩璁″垝涓嬪崟閲戦
-                # (璐︽埛鍙敤閲戦/浠婃棩鏈�澶ф柊澧炴寔浠撶エ鏁�) * 锛堝ぇ鐩樼患鍚堝己搴︿唤鏁� * 0.01锛�
-                data_cache.today_planned_order_amount = (usefulMoney / 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涓彲浠ヨ皟鐢�
-
 # stocks_list_selected_blocks(min_stocks)   #鍦� kpl_api.py涓彲浠ヨ皟鐢�
-
 # list = ['SHSE.600805','SHSE.600804']
 #
 # all_stocks_plate_dict(list)
+

--
Gitblit v1.8.0