Administrator
2025-01-02 d957e0dc6dcfb15304a6499e1b9ddee4e18be531
trade/current_price_process_manager.py
@@ -10,7 +10,9 @@
from log_module.log import logger_l2_codes_subscript, logger_debug
import constant
from code_attribute import gpcode_manager
from third_data.code_plate_key_manager import KPLPlateForbiddenManager
from third_data.kpl_data_constant import LimitUpCodesBlockRecordManager, LimitUpDataConstant
from trade.buy_money_count_setting import BuyMoneyUtil
from trade.buy_radical import radical_buy_data_manager
from trade.buy_radical.block_special_codes_manager import BlockSpecialCodesManager
from trade.buy_radical.radical_buy_data_manager import RadicalBuyBlockManager, RadicalBuyDataManager
@@ -83,10 +85,16 @@
        # 涨停过的代码才会计算板块身位
        for b in blocks:
            index = None
            # 如果当前板块不能买则不订阅
            if KPLPlateForbiddenManager().is_in_cache(b):
                continue
            if b in top_in_blocks:
                index = top_in_blocks.index(b)
            else:
                if RadicalBuyBlockManager.is_block_can_buy_with_block_in(code, b, yesterday_limit_up_codes=yesterday_limit_up_codes)[0]:
                if RadicalBuyBlockManager.is_block_can_buy_with_block_in(code, b,
                                                                         yesterday_limit_up_codes=yesterday_limit_up_codes)[
                    0]:
                    index = 100
            if index is None:
                continue
@@ -215,15 +223,16 @@
                    latest_add_codes = add_code_set
                    add_datas = []
                    for d in add_code_list:
                        limit_up_price = gpcode_manager.get_limit_up_price(d)
                        limit_up_price = round(float(limit_up_price), 2)
                        limit_up_price = gpcode_manager.get_limit_up_price_as_num(d)
                        min_volume = int(round(50 * 10000 / limit_up_price))
                        # 传递笼子价
                        # 需要订阅的特殊的量
                        special_volumes = BuyMoneyUtil.get_possible_buy_volumes(limit_up_price)
                        special_volumes |= set([tool.get_buy_volume_by_money(limit_up_price, x) for x in
                                                constant.AVAILABLE_BUY_MONEYS])
                        add_datas.append(
                            # (代码, 最小量, 涨停价,影子订单价格,买量, 特殊价格)
                            (d, min_volume, limit_up_price, round(tool.get_shadow_price(limit_up_price), 2),
                             tool.get_buy_volume(limit_up_price),
                             [tool.get_buy_volume_by_money(limit_up_price, x) for x in constant.AVAILABLE_BUY_MONEYS]))
                             tool.get_buy_volume(limit_up_price), list(special_volumes)))
                    huaxin_target_codes_manager.HuaXinL2SubscriptCodesManager.push(add_datas, request_id)
            except Exception as e:
                logging.exception(e)