Administrator
2024-10-11 331d8caf63a7119c8cf2d1faef28b5450b8f40f5
servers/huaxin_trade_server.py
@@ -44,7 +44,7 @@
    TargetCodePlateKeyManager
from third_data.history_k_data_util import JueJinApi
from trade import trade_manager, l2_trade_util, \
    trade_data_manager, trade_constant, radical_buy_strategy
    trade_data_manager, trade_constant, radical_buy_strategy, radical_buy_data_manager
from trade.buy_money_count_setting import BuyMoneyAndCountSetting
from trade.huaxin import huaxin_trade_api as trade_api, huaxin_trade_api, huaxin_trade_data_update, \
@@ -791,7 +791,8 @@
                async_log_util.info(logger_l2_radical_buy, f"该代码已经成交:{code}")
                return
            can_buy_result = RedicalBuyDataManager.can_buy(code, DealAndDelegateWithBuyModeDataManager().get_deal_codes())
            # 单票是否可买
            can_buy_result = RedicalBuyDataManager.can_buy(code)
            if can_buy_result[0]:
                # 获取激进买的板块
                result_cache = self.__radical_buy_by_blocks_result_cache.get(code)
@@ -800,6 +801,7 @@
                    yesterday_codes = kpl_data_manager.get_yesterday_limit_up_codes()
                    if yesterday_codes is None:
                        yesterday_codes = set()
                    # 计算是否可以扫入
                    radical_result = RadicalBuyBlockManager.is_radical_buy(code, yesterday_codes)
                    async_log_util.info(logger_l2_radical_buy, f"计算板块结果:{code}-{radical_result}")
                    result_cache = (time.time() + 3, radical_result)
@@ -813,28 +815,11 @@
                    # 如果关键词包含已成交的原因就不再下单
                    # 获取已经成交代码的板块
                    try:
                        # ---------------获取已经成交代码的板块----------------
                        deal_reasons = set()
                        for dc in deal_codes:
                            # 获取涨停原因
                            limit_up_reason = kpl_data_manager.LimitUpDataConstant.get_limit_up_reason_with_history(dc)
                            if limit_up_reason and limit_up_reason in constant.KPL_INVALID_BLOCKS:
                                limit_up_reason = None
                            # 如果涨停原因为空就需要获取上次激进买的原因
                            if not limit_up_reason:
                                radical_buy_blocks = RadicalBuyDealCodesManager.radical_buy_blocks_dict.get(dc)
                                if radical_buy_blocks:
                                    deal_reasons |= radical_buy_blocks
                            else:
                                deal_reasons.add(limit_up_reason)
                        async_log_util.info(logger_l2_radical_buy, f"已经成交的板块:{deal_reasons}")
                        # 成交代码的板块如果和目标代码板块有交集就不扫
                        keys_, k1_, k11_, k2_, k3_, k4_ = TargetCodePlateKeyManager().get_plate_keys(code,
                                                                                                     contains_today=False)
                        match_blocks = keys_ & deal_reasons
                        if match_blocks:
                            async_log_util.info(logger_l2_radical_buy, f"板块有成交:{code}-{match_blocks}")
                        # ---------------判断板块是否还可以买入----------------
                        f_buy_blocks = radical_buy_data_manager.is_block_can_radical_buy(code, buy_blocks, deal_codes)
                        if not f_buy_blocks:
                            return
                        buy_blocks = f_buy_blocks
                    except Exception as e:
                        logger_debug.exception(e)