New file |
| | |
| | | """ |
| | | 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 |
| | |
| | | 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) |
| | |
| | | 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") |
| | |
| | | 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, \ |
| | |
| | | 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): |