Administrator
2024-10-30 e113c59155825263c0fc7872b2c32a90700ebb45
订阅L2 Market
2个文件已修改
42 ■■■■■ 已修改文件
huaxin_client/l1_client_for_trade.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/l2_client.py 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/l1_client_for_trade.py
@@ -129,7 +129,8 @@
        item = (
            pMarketDataField.SecurityID, pMarketDataField.LastPrice, rate, pMarketDataField.Volume,
            pMarketDataField.UpdateTime,
            pMarketDataField.BidPrice1, pMarketDataField.BidVolume1)
            pMarketDataField.BidPrice1, pMarketDataField.BidVolume1, pMarketDataField.BidPrice2,
            pMarketDataField.BidVolume2)
        self.l1_data_queue.append(item)
        logger_local_huaxin_l1_trade_info.info(f"获取到L1数据:{item}")
huaxin_client/l2_client.py
@@ -20,7 +20,7 @@
from log_module import log, async_log_util
from log_module.async_log_util import huaxin_l2_log
from log_module.log import logger_local_huaxin_l2_subscript, logger_system, logger_local_huaxin_l2_transaction, \
    logger_local_huaxin_g_cancel, logger_l2_codes_subscript, printlog, logger_debug
    logger_local_huaxin_g_cancel, logger_l2_codes_subscript, printlog, logger_debug, logger_local_huaxin_l2_market
from utils import tool
###B类###
@@ -99,12 +99,14 @@
            # 取消订阅
            result = self.__api.UnSubscribeNGTSTick(sh_stock, lev2mdapi.TORA_TSTP_EXD_SSE)
            logger_local_huaxin_l2_subscript.info(f"逐笔NGTS订阅结果sh:{result}")
            self.__api.UnSubscribeMarketData(sh_stock, lev2mdapi.TORA_TSTP_EXD_SSE)
        if sh_other:
            self.__api.UnSubscribeOrderDetail(sh_other, lev2mdapi.TORA_TSTP_EXD_SSE)
            self.__api.UnSubscribeTransaction(sh_other, lev2mdapi.TORA_TSTP_EXD_SSE)
        if sz:
            self.__api.UnSubscribeOrderDetail(sz, lev2mdapi.TORA_TSTP_EXD_SZSE)
            self.__api.UnSubscribeTransaction(sz, lev2mdapi.TORA_TSTP_EXD_SZSE)
            self.__api.UnSubscribeMarketData(sz, lev2mdapi.TORA_TSTP_EXD_SZSE)
    def __subscribe(self, _codes):
        sh_stock, sh_other, sz = self.__split_codes(_codes)
@@ -115,6 +117,8 @@
            # 订阅上证逐笔
            result = self.__api.SubscribeNGTSTick(sh_stock, lev2mdapi.TORA_TSTP_EXD_SSE)
            logger_local_huaxin_l2_subscript.info(f"逐笔NGTS订阅结果sh:{result}")
            result = self.__api.SubscribeMarketData(sh_stock, lev2mdapi.TORA_TSTP_EXD_SSE)
            logger_local_huaxin_l2_subscript.info(f"市场订阅结果sh:{result}")
        if sh_other:
            # 订阅上证逐笔
            result = self.__api.SubscribeOrderDetail(sh_other, lev2mdapi.TORA_TSTP_EXD_SSE)
@@ -126,6 +130,8 @@
            logger_local_huaxin_l2_subscript.info(f"逐笔委托订阅结果sz:{result}")
            result = self.__api.SubscribeTransaction(sz, lev2mdapi.TORA_TSTP_EXD_SZSE)
            logger_local_huaxin_l2_subscript.info(f"逐笔成交订阅结果sz:{result}")
            result = self.__api.SubscribeMarketData(sz, lev2mdapi.TORA_TSTP_EXD_SZSE)
            logger_local_huaxin_l2_subscript.info(f"市场订阅结果sz:{result}")
    def __process_codes_data(self, codes, from_cache=False, delay=0.0):
        codes = set(codes)
@@ -318,6 +324,37 @@
        except Exception as e:
            logger_debug.exception(e)
    def OnRtnMarketData(self, pDepthMarketData, FirstLevelBuyNum, FirstLevelBuyOrderVolumes, FirstLevelSellNum,
                        FirstLevelSellOrderVolumes):
        # 传入:时间,现价,成交总量,买1,买2,买3,买4,买5,卖1,卖2,卖3,卖4,卖5
        try:
            buys = [(pDepthMarketData['BidPrice1'], pDepthMarketData['BidVolume1']),
                    (pDepthMarketData['BidPrice2'], pDepthMarketData['BidVolume2']),
                    (pDepthMarketData['BidPrice3'], pDepthMarketData['BidVolume3']),
                    (pDepthMarketData['BidPrice4'], pDepthMarketData['BidVolume4']),
                    (pDepthMarketData['BidPrice5'], pDepthMarketData['BidVolume5'])]
            sells = [
                (pDepthMarketData['AskPrice1'], pDepthMarketData['AskVolume1']),
                (pDepthMarketData['AskPrice2'], pDepthMarketData['AskVolume2']),
                (pDepthMarketData['AskPrice3'], pDepthMarketData['AskVolume3']),
                (pDepthMarketData['AskPrice4'], pDepthMarketData['AskVolume4']),
                (pDepthMarketData['AskPrice5'], pDepthMarketData['AskVolume5'])
            ]
            d = {"dataTimeStamp": pDepthMarketData['DataTimeStamp'], "securityID": pDepthMarketData['SecurityID'],
                 "lastPrice": pDepthMarketData['LastPrice'],
                 "totalVolumeTrade": pDepthMarketData['TotalVolumeTrade'],
                 "totalValueTrade": pDepthMarketData['TotalValueTrade'],
                 "totalAskVolume": pDepthMarketData['TotalAskVolume'],
                 "avgAskPrice": pDepthMarketData["AvgAskPrice"],
                 "buy": buys,
                 "sell": sells}
            huaxin_l2_log.info(logger_local_huaxin_l2_market, f"{d}")
            # market_code_dict[pDepthMarketData['SecurityID']] = time.time()
            # self.l2_data_upload_manager.add_market_data(d)
        except:
            pass
class MyL2ActionCallback(L2ActionCallback):