Administrator
2025-05-29 dfab181272fdda6c64a20b2d356107f5fc77f7de
servers/data_server.py
@@ -9,6 +9,7 @@
import requests
import constant
import inited_data
from code_attribute.gpcode_manager import BlackListCodeManager, HumanRemoveForbiddenManager
from l2.huaxin import huaxin_target_codes_manager
from l2.l2_transaction_data_manager import HuaXinBuyOrderManager
@@ -24,7 +25,7 @@
from trade.buy_radical.new_block_processor import BeforeBlocksComputer
from trade.buy_strategy import OpenLimitUpGoodBlocksBuyStrategy
from trade.buy_radical.radical_buy_data_manager import RadicalBuyBlockManager, BeforeSubDealBigOrderManager
from utils import global_util, tool, data_export_util
from utils import global_util, tool, data_export_util, init_data_util
from code_attribute import gpcode_manager, code_nature_analyse
from log_module import log_analyse, log_export, async_log_util
from l2 import code_price_manager, l2_data_util, transaction_progress
@@ -949,6 +950,27 @@
                                th_sell = 0
                            deal_big_money_info = radical_buy_data_manager.get_total_deal_big_order_info(
                                code, gpcode_manager.get_limit_up_price_as_num(code))
                            if deal_big_money_info[1] == 0 and len(codes) == 1:
                                deal_big_money_info = list(deal_big_money_info)
                                # 没有订阅L2会出现没有值的情况,如果涨停过就拉取之前的涨停买/卖大单
                                deal_big_orders_result = radical_buy_data_manager.request_deal_big_orders(code)
                                if deal_big_orders_result:
                                    buy_datas, sell_datas = deal_big_orders_result[0], deal_big_orders_result[1]
                                    limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
                                    limit_up_price_money_list = [x[0] for x in buy_datas if x[1] == limit_up_price]
                                    threshold_money = BeforeSubDealBigOrderManager().compute_re_limit_up_big_money_threshold(
                                        limit_up_price_money_list)
                                    # 设置买单阈值
                                    th_buy = threshold_money
                                    buy_money = sum(limit_up_price_money_list)
                                    sell_money = sum([x[0] for x in sell_datas if x[1] == limit_up_price])
                                    # 涨停大单净买入
                                    deal_big_money_info[1] = buy_money - sell_money
                                    deal_big_money_info[
                                        2] = radical_buy_data_manager.compute_total_deal_big_order_threshold_money(code,
                                                                                                                   limit_up_price,
                                                                                                                   threshold_money)
                            big_money_rate = radical_buy_data_manager.TotalDealBigOrderInfoManager.get_big_order_rate(
                                code)
                            if not big_money_rate:
@@ -961,13 +983,20 @@
                                 big_money_rate * 100  # 大单成交比
                                 ),
                                output_util.money_desc(deal_big_money_info[1]),
                                output_util.money_desc(deal_big_money_info[2])]
                                output_util.money_desc(deal_big_money_info[2]),
                                output_util.money_desc(deal_big_money_info[3]),
                            ]
                            if len(codes) == 1:
                                # 加载大单详情
                                deal_big_order_detail_info = radical_buy_data_manager.get_l2_big_order_deal_info(code)
                                # 加载涨停大单详情
                                limit_up_big_order_detail = radical_buy_data_manager.get_total_detal_big_order_details(
                                    code)
                                if max(limit_up_big_order_detail) == 0:
                                    # 没有数据,从网络加载
                                    limit_up_big_order_detail = list(limit_up_big_order_detail)
                                    limit_up_big_order_detail[1] = deal_big_order_detail_info[1][0]
                                    limit_up_big_order_detail[3] = deal_big_order_detail_info[2][0]
                                deal_big_order_info.append(
                                    output_util.money_desc(limit_up_big_order_detail[0] + limit_up_big_order_detail[1]))
                                deal_big_order_info.append(
@@ -977,7 +1006,9 @@
                        except Exception as e:
                            logger_debug.error(f"可能没有获取到涨停价:{code}")
                            # logger_debug.exception(e)
                            if not gpcode_manager.get_limit_up_price(code):
                                init_data_util.re_set_price_pre(code)
                            logger_debug.exception(e)
                            deal_big_order_info = None
                        code_name = gpcode_manager.get_code_name(code)
                        fresults.append((code, code_name, deal_big_order_info, deal_big_order_detail_info))
@@ -1058,7 +1089,7 @@
                        code_info_list.append((d[0], d[6]))
                    # 保存新题材
                    datas = [(d[0], d[6]) for d in result["list"]]
                    async_log_util.info(logger_kpl_new_blocks, f"{(tool.get_thread_id() ,bi, datas)}")
                    async_log_util.info(logger_kpl_new_blocks, f"{(tool.get_thread_id(), bi, datas)}")
                    if code_info_list:
                        # 将代码加入新题材
                        new_block_processor.process_new_block_by_component_codes(bi[0],