| | |
| | | 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 |
| | |
| | | # 涨停过的代码才会计算板块身位 |
| | | 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 |
| | |
| | | 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) |