Administrator
2023-10-26 d410fd4b976b7073734a74b180532f0a76dcf575
L2总卖实现
2个文件已修改
1个文件已添加
62 ■■■■■ 已修改文件
l2/l2_sell_manager.py 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
log_module/log.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
trade/huaxin/huaxin_trade_server.py 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
l2/l2_sell_manager.py
New file
@@ -0,0 +1,53 @@
"""
L2卖管理
"""
import json
from db import redis_manager
from db.redis_manager import RedisUtils
from log_module import async_log_util
from log_module.log import logger_l2_market_sell
class L2MarketSellManager:
    __db = 0
    __redis_manager = redis_manager.RedisManager(0)
    __instance = None
    __current_total_sell_data_cache = {}
    __last_total_sell_data_cache = {}
    def __new__(cls, *args, **kwargs):
        if not cls.__instance:
            cls.__instance = super(L2MarketSellManager, cls).__new__(cls, *args, **kwargs)
            cls.__load_datas()
        return cls.__instance
    @classmethod
    def __get_redis(cls):
        return cls.__redis_manager.getRedis()
    @classmethod
    def __load_datas(cls):
        __redis = cls.__get_redis()
        try:
            pass
        finally:
            RedisUtils.realse(__redis)
    # 设置当前的总卖
    def set_current_total_sell_data(self, code, time_str, money):
        # 记录日志
        async_log_util.info(logger_l2_market_sell, f"{code}: {time_str}-{money}")
        if code in self.__current_total_sell_data_cache:
            self.__last_total_sell_data_cache[code] = self.__current_total_sell_data_cache.get(code)
        self.__current_total_sell_data_cache[code] = (time_str, money)
    # 获取参考卖的数据
    def get_refer_sell_data(self, code, time_str):
        cuurent = self.__current_total_sell_data_cache.get(code)
        if int(time_str.replace(":", "")) > int(cuurent[0].replace(":", "")):
            return cuurent
        last = self.__last_total_sell_data_cache.get(code)
        if int(time_str.replace(":", "")) > int(last[0].replace(":", "")):
            return last
        return None
log_module/log.py
@@ -100,6 +100,10 @@
                   filter=lambda record: record["extra"].get("name") == "l2_codes_subscript",
                   rotation="00:00", compression="zip", enqueue=True)
        logger.add(self.get_path("l2", "l2_market_sell"),
                   filter=lambda record: record["extra"].get("name") == "l2_market_sell",
                   rotation="00:00", compression="zip", enqueue=True)
        logger.add(self.get_path("juejin", "juejin_tick"),
                   filter=lambda record: record["extra"].get("name") == "juejin_tick",
                   rotation="00:00", compression="zip", enqueue=True)
@@ -285,6 +289,8 @@
logger_l2_process_time = __mylogger.get_logger("l2_process_time")
logger_l2_data = __mylogger.get_logger("l2_data")
logger_l2_latest_data = __mylogger.get_logger("l2_latest_data")
logger_l2_market_sell = __mylogger.get_logger("l2_market_sell")
logger_l2_trade = __mylogger.get_logger("l2_trade")
logger_l2_trade_cancel = __mylogger.get_logger("l2_trade_cancel")
trade/huaxin/huaxin_trade_server.py
@@ -38,6 +38,7 @@
from l2.huaxin.huaxin_target_codes_manager import HuaXinL1TargetCodesManager
from l2.l2_data_manager_new import L2TradeDataProcessor
from l2.l2_data_util import L2DataUtil
from l2.l2_sell_manager import L2MarketSellManager
from l2.l2_transaction_data_manager import HuaXinTransactionDatasProcessor
from log_module import async_log_util, log_export
from log_module.log import hx_logger_l2_upload, hx_logger_contact_debug, hx_logger_trade_callback, \
@@ -335,6 +336,8 @@
                                                         block_info.get_before_blocks_dict())
        async_log_util.info(hx_logger_l2_market_data, f"{code}#{data}")
        L2MarketSellManager().set_current_total_sell_data(code, time_str,
                                                          data["L2MarketSellManager"] * data["L2MarketSellManager"])
    @classmethod
    def trading_order_canceled(cls, code, order_no):