from log_module.log import logger_debug from third_data import kpl_data_manager, kpl_block_util from trade.l2_transaction_data_manager import HuaXinBuyOrderManager from utils import tool, output_util def load_code_detail_info(code): """ 加载代码详情信息 :param code: :return: """ # 获取板块 fresults = {} blocks = kpl_data_manager.KPLCodeJXBlockManager().get_jx_blocks_cache(code) if blocks: blocks = blocks[0] if not blocks: blocks = kpl_data_manager.KPLCodeJXBlockManager().get_jx_blocks_cache(code, True) if blocks: blocks = blocks[0] if blocks is None: blocks = [] current_blocks = kpl_data_manager.KPLLimitUpDataRecordManager.get_current_blocks(code) if current_blocks: blocks = current_blocks # 历史涨停数据 limit_up_records_data = kpl_data_manager.KPLLimitUpDataRecordManager.total_datas if limit_up_records_data is None: limit_up_records_data = [] code_limit_up_reasons_dict = {} for r in limit_up_records_data: blocks_ = {r[2]} blocks_ |= set(r[6].split("、")) code_limit_up_reasons_dict[r[3]] = blocks_ if r[3] == code: if not current_blocks: blocks = blocks_ fresults["limit_up_time"] = tool.to_time_str(int(r[5])) fresults["highDesc"] = r[12] fresults["zyltgb"] = output_util.money_desc(r[13]) fresults["limitUpReason"] = r[2] # 获取板块详细信息 blockInfos = [] latest_datas = kpl_data_manager.KPLLimitUpDataRecordManager.latest_origin_datas if latest_datas is None: latest_datas = [] if type(blocks) == tuple: blocks = set(blocks[0]) for b in blocks: try: current_codes = kpl_data_manager.KPLLimitUpDataRecordManager.get_current_codes_by_block(b) current_codes_count = 0 if not current_codes else len(current_codes) temp_records = [] for r in limit_up_records_data: temp_blocks = {r[2]} temp_blocks |= set(r[6].split("、")) if b in temp_blocks: temp_records.append(r) rank = kpl_block_util.get_code_current_rank(code, b, latest_datas, code_limit_up_reasons_dict, [], [], [], 0) blockInfos.append({"name": b, "totalLimitUpCount": len(temp_records), "openLimitUpCount": len(temp_records) - current_codes_count, "rank": rank[0] + 1}) except Exception as e: logger_debug.exception(e) # 统计板块的 fresults["blockInfos"] = blockInfos fresults["blocks"] = list(blocks) big_orders = HuaXinBuyOrderManager.get_big_buy_orders_from_file(code) if not big_orders: big_orders = [] fresults["bigOrderDealCount"] = len(big_orders) fresults["bigOrderDealMoney"] = output_util.money_desc(sum([x[2] for x in big_orders])) return fresults