Administrator
2023-08-24 512202f8f88a3e0c23919921163aa7bd2f7da04d
记录华鑫本地的买入订单号
4个文件已修改
51 ■■■■■ 已修改文件
huaxin_client/l2_client.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/l2_data_manager.py 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
log_module/log.py 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
log_module/log_export.py 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
huaxin_client/l2_client.py
@@ -572,6 +572,7 @@
    __init_l2()
    l2_data_manager.run_upload_common()
    l2_data_manager.run_upload_trading_canceled()
    l2_data_manager.run_log()
    global l2CommandManager
    l2CommandManager = command_manager.L2CommandManager()
    l2CommandManager.init(MyL2ActionCallback())
huaxin_client/l2_data_manager.py
@@ -10,7 +10,8 @@
from huaxin_client.client_network import SendResponseSkManager
# 活动时间
from log_module.log import logger_local_huaxin_l2_error, logger_local_huaxin_l2_upload
from log_module import log_export
from log_module.log import logger_local_huaxin_l2_error, logger_local_huaxin_l2_upload, logger_local_huaxin_l2_buy_no
order_detail_upload_active_time_dict = {}
transaction_upload_active_time_dict = {}
@@ -20,6 +21,7 @@
target_codes = set()
common_queue = queue.Queue()
trading_canceled_queue = queue.Queue()
log_buy_no_queue = queue.Queue()
# 买入订单号的字典
buy_order_nos_dict = {}
# 最近的大单成交单号
@@ -57,6 +59,8 @@
        if data['SecurityID'] not in buy_order_nos_dict:
            buy_order_nos_dict[data['SecurityID']] = set()
        buy_order_nos_dict[data['SecurityID']].add(data['OrderNO'])
        # 买入订单号需要记录日志
        log_buy_no_queue.put_nowait((data['SecurityID'], data['OrderNO']))
    tmep_order_detail_queue_dict[code].put(
        (data['SecurityID'], data['Price'], data['Volume'], data['Side'], data['OrderType'], data['OrderTime'],
@@ -225,6 +229,17 @@
            logger_local_huaxin_l2_error.error(f"上传普通数据出错:{str(e)}")
def __run_log():
    print("__run_log")
    while True:
        try:
            temp = log_buy_no_queue.get()
            if temp:
                logger_local_huaxin_l2_buy_no.info(f"{temp[0]}#{temp[1]}")
        except:
            pass
# 运行上传任务
def run_upload_task(code):
    # 如果代码没有在目标代码中就不需要运行
@@ -250,6 +265,14 @@
    t.start()
def run_log():
    fdatas = log_export.load_huaxin_local_buy_no()
    global buy_order_nos_dict
    buy_order_nos_dict = fdatas
    t = threading.Thread(target=lambda: __run_log(), daemon=True)
    t.start()
if __name__ == "__main__":
    code = "603809"
    target_codes.add(code)
log_module/log.py
@@ -237,6 +237,10 @@
                   filter=lambda record: record["extra"].get("name") == "local_huaxin_g_cancel",
                   rotation="00:00", compression="zip", enqueue=True)
        logger.add(self.get_local_huaxin_path("l2", "l2_buy_no"),
                   filter=lambda record: record["extra"].get("name") == "local_huaxin_l2_buy_no",
                   rotation="00:00", compression="zip", enqueue=True)
    def get_path(self, dir_name, log_name):
@@ -344,6 +348,9 @@
logger_local_huaxin_trade_debug = __mylogger.get_logger("local_huaxin_trade_debug")
logger_local_huaxin_l1 = __mylogger.get_logger("local_huaxin_l1_show_info")
logger_local_huaxin_g_cancel = __mylogger.get_logger("local_huaxin_g_cancel")
logger_local_huaxin_l2_buy_no = __mylogger.get_logger("local_huaxin_l2_buy_no")
def close_print():
log_module/log_export.py
@@ -305,6 +305,24 @@
    return fdatas
# 加载华鑫本地买入订单号
def load_huaxin_local_buy_no():
    path = f"{constant.get_path_prefix()}/logs/huaxin_local/l2/l2_buy_no.{tool.get_now_date_str()}.log"
    fdatas = {}
    if os.path.exists(path):
        with open(path, 'r', encoding="utf-8") as f:
            lines = f.readlines()
            for line in lines:
                if line:
                    data = line.split("-")[1].strip()
                    code = data.split("#")[0]
                    buy_no = int(data.split("#")[1])
                    if code not in fdatas:
                        fdatas[code] = set()
                    fdatas[code].add(buy_no)
    return fdatas
if __name__ == '__main__':
    logger_l2_process_time.info("test123")
    # print(get_h_cancel_compute_info("603912"))