Administrator
2024-12-30 060918618ddddaa6d289e511940d31437076c994
买入策略修改
1个文件已修改
36 ■■■■■ 已修改文件
trade/buy_radical/radical_buy_data_manager.py 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/buy_radical/radical_buy_data_manager.py
@@ -1024,11 +1024,12 @@
        return fblocks, before_fblocks
    @classmethod
    def is_block_can_buy_with_block_in(cls, code, block, yesterday_limit_up_codes):
    def is_block_can_buy_with_block_in(cls, code, block, yesterday_limit_up_codes, is_for_buy=False):
        """
        根据板块流入判断板块是否可买
        @param code:
        @param block:
        @param is_for_buy: 是否是买入
        @return:板块是否可买, 是否需要大单够
        """
        jx_in_blocks = RealTimeKplMarketData.get_top_market_jingxuan_blocks()
@@ -1039,20 +1040,25 @@
        if codes and len(codes) >= 5:
            return True, False
        else:
            if tool.get_now_time_as_int() < 100000:
                # 10点以前
                # 当前板块净流入>=0且历史涨停数量>=2且是老大和老二
                codes = LimitUpDataConstant.get_history_limit_up_block_codes(code)
                if codes and len(codes) >= 2:
                    # 判断板块净流入
            if codes and len(codes) >= 3:
                # 10点之后净流入是正才能订阅
                    in_money = RealTimeKplMarketData.get_jx_block_in_money(block)
                    if in_money and in_money >= 0:
                if tool.get_now_time_as_int() > 100000 and (not in_money or in_money < 0):
                    # 10点以后且净流入不为正
                    return False, False
                        # 净流入不为负
                        # 获取首板的身位
                        info = RadicalBuyBlockManager().get_history_index(code, block, yesterday_limit_up_codes,
                                                                          ignore_open_limit_up=False)
                        if info[0] < 2:
                if info[0] < 3:
                    if is_for_buy:
                        # 买入
                        if tool.get_now_time_as_int() < 100000:
                            return True, True
                    else:
                        # 订阅
                        return True, False
        return False, False
    @classmethod
@@ -1073,14 +1079,18 @@
        keys_, info = cls.get_code_blocks(code)
        if not keys_:
            return set(), "没获取到板块"
        if WantBuyCodesManager().is_in_cache(code):
            return set(keys_), "已加想"
        # 获取精选净流入
        keys_in_jx = set()
        msgs = []
        for k in keys_:
            block_info = cls.is_block_can_buy_with_block_in(code, k, yesterday_limit_up_codes)
            block_info = cls.is_block_can_buy_with_block_in(code, k, yesterday_limit_up_codes, is_for_buy=True)
            if block_info[0]:
                if block_info[1]:
                    # 要求大单够了才买
                if block_info[1] and False:
                    # 暂时不需要: 要求大单够了才买
                    big_deal_info = get_total_deal_big_order_info(code, gpcode_manager.get_limit_up_price_as_num(code))
                    if big_deal_info[0] <= 0:
                        keys_in_jx.add(k)
@@ -1092,9 +1102,7 @@
            msgs.append(f"【{keys_}】板块未在精选流入中:")
            # 板块尚未精选流入,且板块涨停代码个数是否<5个
            return set(), ",".join(msgs)
        # 加想的票也必须在板块净流入中
        if WantBuyCodesManager().is_in_cache(code):
            return set(keys_), "已加想"
        keys_ = keys_in_jx
        match_blocks = open_limit_up_blocks & keys_
        can_buy_blocks = set()