Administrator
10 天以前 622d2ebab2f86482e84a54e36dce09dc6162e613
third_data/kpl_api.py
@@ -5,7 +5,7 @@
import constant
from third_data import kpl_util
from utils import middle_api_protocol
from utils import middle_api_protocol, tool
# 竞价
DABAN_TYPE_BIDDING = 8
@@ -125,6 +125,13 @@
    return result
def getMarketJingXuanRealRankingInfoByTimeRange(startTime, endTime, date, orderJingE_DESC=True):
    data = f"Order={1 if orderJingE_DESC else 0}&st=30&a=RealRankingInfo&apiv=w35&Type=5&Index=0&RStart={startTime}&c=ZhiShuRanking&VerSion=5.13.0.0&REnd={endTime}&Date={date}&PhoneOSNew=1&ZSType=7&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&"
    result = __base_request("https://apphq.longhuvip.com/w1/api/index.php",
                            data=data)
    return result
# 获取代码的板块
def getStockIDPlate(code):
    data = f"a=GetStockIDPlate_New&apiv=w32&c=StockL2Data&StockID={code}&PhoneOSNew=1&UserID=0&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Token=0&"
@@ -138,6 +145,30 @@
# 获取概念代码
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)
def getCodesByPlateOrderByLZCS(plate_code):
    """
    根据领涨次数排序
    @param plate_code:
    @return:
    """
    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=27&IsKZZType=0&UserID=0&PlateID={plate_code}&"
    return __base_request("https://apphq.longhuvip.com/w1/api/index.php",
                          data=data)
def getHistoryCodesByPlateOrderByLZCS(plate_code, date, time_str):
    """
    根据领涨次数排序
    @param date: 2025-05-25
    @param time_str: 1025
    @param plate_code: 110505
    @return:
    """
    data = f"Order=1&a=ZhiShuStockList_W8&st=30&c=ZhiShuRanking&PhoneOSNew=1&RStart=0925&old=1&DeviceID=b692e51c-1bc4-3e8c-a01b-620aa6240e28&VerSion=5.8.0.4&IsZZ=0&Token=0&Index=0&Date={date}&REnd={time_str}&apiv=w33&Type=1&IsKZZType=0&UserID=0&PlateID={plate_code}&"
    return __base_request("https://apphq.longhuvip.com/w1/api/index.php",
                          data=data)
@@ -269,13 +300,70 @@
    return None
if __name__ == "__main__":
    print(getLimitUpInfoNew())
def getZLJECodesRank(index):
    """
    获取主力金额的排行
    @return:
    """
    data = f"Order=1&a=RealRankingInfo_W8&st=50&c=NewStockRanking&PhoneOSNew=1&RStart=0925&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&VerSion=5.13.0.0&Isst=0&index={index}&Date=&REnd=1420&apiv=w35&Type=1&FilterMotherboard=0&Filter=0&Ratio=6&FilterTIB=1&FilterGem=0&"
    result = __base_request("https://apphwhq.longhuvip.com/w1/api/index.php", data=data, timeout=3)
    result = json.loads(result)
    return result
    # __getConceptBK("300564")
    data = (getMarketJingXuanRealRankingInfo(False))
    print(data)
    # data=json.loads(data)
    # print(len(data["list"]))
    # data = json.loads(getCodesByPlate("801235"))
    # print(data)
def getMarketStrong():
    """
    获取市场强度
    :return:
    """
    result = __base_request("https://apphwhq.longhuvip.com/w1/api/index.php",
                            data=f"a=DiskReview&apiv=w35&c=HomeDingPan&VerSion=5.13.0.0&PhoneOSNew=1&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&",
                            timeout=3)
    data = json.loads(result)
    return int(data["info"]["strong"])
def request_new_blocks_codes(blocks_info):
    """
    请求新板块的代码
    @param blocks_info:[(板块名称,板块代码)]
    @return:
    """
    yesterday_codes = set()
    for bi in blocks_info:
        result = getCodesByPlate(bi[1])
        result = json.loads(result)
        code_info_list = []
        for d in result["list"]:
            if d[0] in yesterday_codes:
                continue
            # 涨幅要大于5%
            rate = d[6] / int(round((tool.get_limit_up_rate(d[0]) - 1) * 10))
            if rate < 5:
                continue
            # 格式:(代码,涨幅)
            code_info_list.append((d[0], d[6]))
        if code_info_list:
            # 将代码加入新题材
            for x in code_info_list:
                print("添加", x)
if __name__ == "__main__":
    # result = getCodesByPlateOrderByLZCS("801074")
    # result = json.loads(result)
    # result = result["list"]
    # for r in result:
    #     print(r)
    # result = getCodeJingXuanBlocks("000756", True)
    # for x in result:
    result = getHistoryCodesByPlateOrderByLZCS("801074", "2025-05-16", "1025")
    print(result)
    # request_new_blocks_codes([("机器人", "801159")])
    # result = getCodesByPlate("801159")  # getHistoryLimitUpInfo("2024-02-19")
    # result = json.loads(result)
    # for d in result["list"]:
    #     print(d)
    #
    # print(result)