Administrator
9 天以前 70a9bc61565e0b2fd9e3d8c26e3fe31fc88a3766
想买单详细接口
3个文件已修改
49 ■■■■ 已修改文件
l2/l2_transaction_data_processor.py 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
servers/data_server.py 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_api.py 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/l2_transaction_data_processor.py
@@ -35,6 +35,8 @@
    __TradeBuyQueue = transaction_progress.TradeBuyQueue()
    # 非涨停成交时间
    __not_limit_up_time_dict = {}
    # 最近成交数据字典
    __latest_transaction_data_dict = {}
    # 计算成交进度
    @classmethod
@@ -178,6 +180,8 @@
        # q.append((data['SecurityID'], data['TradePrice'], data['TradeVolume'],
        #                   data['OrderTime'], data['MainSeq'], data['SubSeq'], data['BuyNo'],
        #                   data['SellNo'], data['ExecType']))
        if o_datas:
            cls.__latest_transaction_data_dict[code] = o_datas[-1]
        fdatas = [
            [d, d[6] > d[7], limit_up_price == d[1], d[1] * d[2], '', '']
            for d in o_datas]
@@ -400,6 +404,8 @@
                        L2TradeDataProcessor.cancel_buy(code, f"F撤:{cancel_result[1]}",
                                                        cancel_type=trade_constant.CANCEL_TYPE_F)
        if o_datas:
            cls.__latest_transaction_data_dict[code] = o_datas[-1]
        limit_up_price = gpcode_manager.get_limit_up_price_as_num(code)
        # =====格式化数据=====
        # 整形数据,格式:[(数据本身, 是否主动买, 是否涨停, 总成交额, 不含ms时间,含ms时间)]
@@ -487,3 +493,7 @@
            if _start_time - __start_time > 5:
                l2_log.info(code, hx_logger_l2_upload,
                            f"{code}处理成交用时:{_start_time - __start_time} 数据数量:{len(fdatas)}  详情:{use_time_list}")
    @classmethod
    def get_latest_transaction_data(cls, code):
        return cls.__latest_transaction_data_dict.get(code)
servers/data_server.py
@@ -11,10 +11,11 @@
import constant
import inited_data
from api import low_suction_data_pusher
from code_attribute.gpcode_manager import BlackListCodeManager, HumanRemoveForbiddenManager
from code_attribute.gpcode_manager import BlackListCodeManager, HumanRemoveForbiddenManager, CodePrePriceManager
from l2.code_price_manager import CurrentPriceManager
from l2.huaxin import huaxin_target_codes_manager
from l2.l2_transaction_data_manager import HuaXinBuyOrderManager
from l2.l2_transaction_data_processor import HuaXinTransactionDatasProcessor
from log_module.log import logger_system, logger_debug, logger_kpl_limit_up, logger_request_api, \
    logger_kpl_market_strong, logger_kpl_new_blocks
from third_data.custom_block_in_money_manager import CodeInMoneyManager
@@ -1101,6 +1102,32 @@
            for k in code_blocks_dict:
                fdata[k] = list(code_blocks_dict[k])
            response_data = json.dumps({"code": 0, "data": fdata})
        elif url.path == "/get_want_buy_detail_list":
            # 获取想买单详细信息
            codes = gpcode_manager.WantBuyCodesManager().list_code_cache()
            # 拉取涨停时间
            # 拉取最近成交信息
            fdatas = []
            for code in codes:
                # (代码,名称,涨停时间,涨幅,现手,自由市值,现价)
                data = [code, gpcode_manager.get_code_name(code)]
                limit_up_time = LimitUpDataConstant.get_first_limit_up_time(code)
                data.append(limit_up_time)
                pre_close_price = CodePrePriceManager.get_price_pre_cache(code)
                latest_transaction_data = HuaXinTransactionDatasProcessor.get_latest_transaction_data(code)
                zyltgb = global_util.zyltgb_map.get(code)
                if latest_transaction_data:
                    data.append(round((latest_transaction_data[1] - pre_close_price) * 100 / pre_close_price, 2))
                    data.append((latest_transaction_data[2]//100, latest_transaction_data[6] - latest_transaction_data[7]))
                    data.append(output_util.money_desc(zyltgb) if zyltgb else '--')
                    data.append(latest_transaction_data[1])
                else:
                    data.append("--")
                    data.append(("--", 0))
                    data.append(output_util.money_desc(zyltgb) if zyltgb else '--')
                    data.append("--")
                fdatas.append(data)
            response_data = json.dumps({"code": 0, "data": fdatas})
        async_log_util.info(logger_request_api, f"结束请求{tool.get_thread_id()}-{url}")
        self.send_response(200)
trade/huaxin/huaxin_trade_api.py
@@ -14,7 +14,7 @@
import zmq
from code_attribute import gpcode_manager
from huaxin_client import constant as huaxin_client_constant
from huaxin_client import constant as huaxin_client_constant, huaxin_sinfo_util
from log_module import async_log_util
from log_module.log import hx_logger_trade_debug, hx_logger_trade_loop, hx_logger_trade_callback, logger_trade, \
    logger_system
@@ -494,9 +494,8 @@
    @param shadow_price:
    @return:
    """
    timestamp = round(time.time() * 1000)
    if not sinfo:
        sinfo = f"ba_{code}_{timestamp}"
        sinfo = huaxin_sinfo_util.create_place_order_sinfo(code, direction == 1, False)  # f"ba_{code}_{timestamp}"
    if not order_ref:
        order_ref = huaxin_util.create_order_ref()
    if not request_id:
@@ -545,7 +544,7 @@
    """
    timestamp = round(time.time() * 1000)
    if not sinfo:
        sinfo = f"ba_{code}_{timestamp}"
        sinfo = huaxin_sinfo_util.create_place_order_sinfo(code, direction == 1, False)  #f"ba_{code}_{timestamp}"
    if not request_id:
        request_id = __get_request_id(ClientSocketManager.CLIENT_TYPE_TRADE)
    for i in range(1):
@@ -557,7 +556,8 @@
                                "price_type": price_type,
                                "sinfo": sinfo,
                                "blocking": blocking,
                                "cancel_shadow": False},
                                "cancel_shadow": False
                                },
                               request_id=request_id,
                               is_trade=True)
    try: