Administrator
2024-01-02 1634b99a1cb08372623f9a34658cfc281cdd5bf4
开盘啦涨停列表修改
5个文件已修改
63 ■■■■ 已修改文件
third_data/data_server.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
third_data/kpl_api.py 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
third_data/kpl_data_manager.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
third_data/kpl_util.py 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_api_server.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
third_data/data_server.py
@@ -712,7 +712,7 @@
                self.__kplDataManager.save_data(type_, result_list)
        elif type_ == KPLDataType.LIMIT_UP.value:
            result_list = kpl_util.parseDaBanData(data["data"], kpl_util.DABAN_TYPE_LIMIT_UP)
            result_list = kpl_util.parseLimitUpData(data["data"])
            self.__data_process_thread_pool.submit(lambda: do_limit_up(result_list))
            # 记录涨停日志
            logger_kpl_limit_up.info(result_list)
third_data/kpl_api.py
@@ -4,6 +4,7 @@
import requests
import constant
from third_data import kpl_util
from utils import middle_api_protocol
# 竞价
@@ -38,16 +39,44 @@
def daBanList(pidType, page_size=50, index=0):
    data = f"Order=1&a=DaBanList&st={page_size}&c=HomeDingPan&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23" \
    data = f"Order=1&a=DaBanList&st={page_size}&c=HomeDingPan&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e24" \
           f"&VerSion=5.8.0.2&Index={index}&Is_st=1&PidType={pidType}&apiv=w32&Type=4&FilterMotherboard=0&Filter=0&FilterTIB=0" \
           "&FilterGem=0"
    result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data)
    return result
def __getLimitUpInfo(pidType, page, pageSize):
    data = f"Order=0&a=DailyLimitPerformance&st={pageSize}&apiv=w35&Type=4&c=HomeDingPan&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.13.0.0&Index={(page - 1) * pageSize}&PidType={pidType}&"
    result = __base_request("https://apphq.longhuvip.com/w1/api/index.php", data=data)
    return result
def getLimitUpInfoNew():
    pids = [(1, "首板"), (2, "2连板"), (3, "3连板"), (4, "4连板"), (5, "")]
    fresults = []
    for pid_info in pids:
        results = []
        for i in range(10):
            result = __getLimitUpInfo(pid_info[0], i + 1, 20)
            result = json.loads(result)
            datas = result["info"][0]
            results.extend(datas)
            day = result["info"][1]
            print(datas)
            if len(datas) < 20:
                break
        for r in results:
            if not r[18] and pid_info[1]:
                r[18] = pid_info[1]
        fresults.extend(results)
    return json.dumps({"errcode": 0, "list": fresults})
def getLimitUpInfo():
    list_ = []
    page_size = 50
    page_size = 20
    MAX_SIZE = 150
    for i in range(0, 10):
        result_str = daBanList(DABAN_TYPE_LIMIT_UP, page_size=page_size, index=len(list_))
@@ -223,5 +252,6 @@
if __name__ == "__main__":
    results = getHistoryLimitUpInfo("2023-12-26")
    results = kpl_util.parseLimitUpData(getLimitUpInfoNew())
    print(results)
third_data/kpl_data_manager.py
@@ -403,7 +403,7 @@
        while True:
            if tool.is_trade_time():
                try:
                    results = kpl_api.getLimitUpInfo()
                    results = kpl_api.getLimitUpInfoNew()
                    result = json.loads(results)
                    start_time = time.time()
                    __upload_data("limit_up", result)
third_data/kpl_util.py
@@ -71,6 +71,7 @@
    if type == DABAN_TYPE_BIDDING:
        return data[0], data[1], data[18], data[11], data[22], data[15]
    elif type == DABAN_TYPE_LIMIT_UP:
        # (代码, 名称, 首次涨停时间, 最近涨停时间, 几板, 涨停原因, 板块, 实际流通, 主力净额, 涨停原因代码, 涨停原因代码数量)
        return data[0], data[1], data[6], data[25], data[9], data[16], data[11], data[15], data[12], data[26], data[27]
    elif type == DABAN_TYPE_OPEN_LIMIT_UP:
        return data[0], data[1], data[4], data[11], data[15]
@@ -78,8 +79,12 @@
        return data[0], data[1], data[11], data[15]
    elif type == DABAN_TYPE_EVER_LIMIT_DOWN:
        return data[0], data[1], data[4], data[11], data[15]
    return None
def __parseLimitUpItemData(data):
    # (代码, 名称, 首次涨停时间, 最近涨停时间, 几板, 涨停原因, 板块, 实际流通, 主力净额, 涨停原因代码, 涨停原因代码数量)
    return data[0], data[1], data[4], data[4], data[18], data[5], data[12], data[13], data[8], data[19], data[20]
# 最强风口
@@ -120,6 +125,20 @@
    return fresult_
def parseLimitUpData(data):
    if type(data) == str:
        data = json.loads(data)
    if int(data["errcode"]) != 0:
        raise Exception(f"解析数据出错,errcode:{data['errcode']}")
    list_ = data["list"]
    fresult_ = []
    for d in list_:
        pdata = __parseLimitUpItemData(d)
        if pdata:
            fresult_.append(pdata)
    return fresult_
def parseFengKou(data):
    if type(data) == str:
        data = json.loads(data)
trade/huaxin/huaxin_trade_api_server.py
@@ -448,7 +448,7 @@
                    # 9:25-9:30之间获取
                    if int("092500") < int(tool.get_now_time_str().replace(":", "")) < int("092955"):
                        try:
                            limit_up_data_str = kpl_api.getLimitUpInfo()
                            limit_up_data_str = kpl_api.getLimitUpInfoNew()
                            limit_up_datas = json.loads(limit_up_data_str)
                            limit_up_datas = limit_up_datas["list"]
                            for d in limit_up_datas: