Administrator
2024-11-06 ffba3685a925dbd2c1082c19acb8ca85c8ab0ff9
扫入删除前排不正的板块
4个文件已修改
48 ■■■■■ 已修改文件
servers/data_server.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
servers/huaxin_trade_server.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
third_data/code_plate_key_manager.py 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
third_data/kpl_data_manager.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
servers/data_server.py
@@ -506,7 +506,7 @@
            now_limit_up_codes = set([d[0] for d in now_limit_up_codes_info])
            # 获取历史涨停
            record_limit_up_datas = KPLLimitUpDataRecordManager.total_datas
            if not record_limit_up_datas or len(record_limit_up_datas) == len(now_limit_up_codes_info):
            if not record_limit_up_datas:
                KPLLimitUpDataRecordManager.load_total_datas()
                record_limit_up_datas = KPLLimitUpDataRecordManager.total_datas
servers/huaxin_trade_server.py
@@ -373,7 +373,7 @@
            if gpcode_manager.BuyOpenLimitUpCodeManager().is_in_cache(d[0]):
                # 09:19:50 到 09:20:00判断是否要撤单
                if int("091950") <= int(d[9].replace(":", "")) < int("092000"):
                    async_log_util.info(logger_debug, f"排1撤单:{d}")
                    async_log_util.info(logger_debug, f"排1撤单:{d},封单:{d[8] * d[5]}")
                    if d[8] * d[5] < 1e8:
                        code = d[0]
                        current_delegates = DelegateRecordManager().list_current_delegates(code)
@@ -946,7 +946,8 @@
            if not constant.TRADE_ENABLE:
                return
            try:
                result = huaxin_trade_api.order(1, code, 100, limit_up_price, blocking=True,
                volume = tool.get_buy_volume_by_money(limit_up_price, constant.AVAILABLE_BUY_MONEYS[0])
                result = huaxin_trade_api.order(1, code, volume, limit_up_price, blocking=True,
                                                shadow_price=shadow_price)
                async_log_util.info(logger_trade, f"{code}下单结束:{result}")
            except Exception as e:
third_data/code_plate_key_manager.py
@@ -1356,6 +1356,9 @@
        history_index, history_before_codes_info = cls.__get_history_index(code, block,
                                                                           yesterday_limit_up_codes,
                                                                           exclude_codes=exclude_codes)
        # 过滤不正的原因
        history_index, history_before_codes_info = cls.__filter_before_codes(block, history_index, history_before_codes_info, yesterday_limit_up_codes)
        # 买首板老大/老二
        # 首板老大不能买时可买老二
        if history_index > 1:
@@ -1367,6 +1370,36 @@
                return False, f"开1数量:{count},前排代码可买:{history_before_codes_info[0]}"
            return True, f"开1数量:{count},前排代码不可买:{history_before_codes_info[0]},历史前排-{history_before_codes_info},开1代码-{open_limit_up_block_codes}"
        return True, f"开1数量:{count},历史-{history_index + 1} 实时-{current_index + 1}, 前排代码-{current_before_codes_info}, 开1代码-{open_limit_up_block_codes}"
    @classmethod
    def __filter_before_codes(cls, block, index, before_codes_info, yesterday_codes):
        """
        过滤前排涨停原因不正的代码
        @param code:
        @param block:板块
        @param index: 目标代码位置
        @param before_codes_info: [(代码, 涨停时间戳)]
        @return: 过滤之后的 (index, before_codes_info)
        """
        try:
            if index == 0 or not before_codes_info:
                return index, before_codes_info
            temp_index = index
            temp_before_codes_info = []
            for b in before_codes_info:
                # 当作目标票获取扫入板块
                blocks = LimitUpCodesBlockRecordManager().get_radical_buy_blocks(b[0])
                blocks = BlockMapManager().filter_blocks(blocks)
                if block not in blocks and b[0] not in yesterday_codes:
                    # 首板涨停原因不正
                    temp_index -= 1
                else:
                    temp_before_codes_info.append(b)
            return temp_index, temp_before_codes_info
        except Exception as e:
            async_log_util.error(logger_debug, f"扫入板块过滤出错:{str(e)}")
            return index, before_codes_info
    @classmethod
    def __is_radical_buy_with_block_up(cls, code, block, yesterday_limit_up_codes):
@@ -1428,6 +1461,12 @@
            exclude_codes |= set(open_limit_up_code_dict.keys())
        history_index, history_before_codes_info = cls.__get_history_index(code, block, yesterday_limit_up_codes,
                                                                           exclude_codes)
        # 过滤不正的原因
        history_index, history_before_codes_info = cls.__filter_before_codes(block, history_index,
                                                                             history_before_codes_info,
                                                                             yesterday_limit_up_codes)
        # 获取本板块买入代码的最大数量
        max_count = RadicalBuyBlockCodeCountManager().get_block_code_count(block)
        if history_index > max_count:
third_data/kpl_data_manager.py
@@ -495,7 +495,7 @@
        log.close_print()
        while True:
            try:
                if (tool.is_trade_time() and int(tool.get_now_time_str().replace(':', '')) > int("092530")) or True:
                if (tool.is_trade_time() and int(tool.get_now_time_str().replace(':', '')) > int("092530")):
                    results = kpl_api.getLimitUpInfoNew()
                    result = json.loads(results)
                    start_time = time.time()