fix(qmt): 消除静默异常处理并统一日志系统
- 修复6处静默except块(撤单、错误回调、线程停止、健康检查等) - 统一入口模块使用logging替代print - 增强交易日志可追踪性 - 添加完整堆栈跟踪日志
This commit is contained in:
@@ -1,32 +1,77 @@
|
||||
import logging
|
||||
import sys
|
||||
import os
|
||||
import datetime
|
||||
from xtquant import xttrader
|
||||
from xtquant.xtdata import download_history_data, get_market_data
|
||||
from xtquant.xttype import StockAccount
|
||||
import random
|
||||
|
||||
##订阅账户
|
||||
|
||||
def setup_logger():
|
||||
"""配置日志系统"""
|
||||
log_dir = "logs"
|
||||
if not os.path.exists(log_dir):
|
||||
os.makedirs(log_dir)
|
||||
|
||||
log_file = os.path.join(log_dir, f"{datetime.date.today().strftime('%Y-%m-%d')}_test.log")
|
||||
|
||||
logger = logging.getLogger("QMT_Test")
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
formatter = logging.Formatter(
|
||||
'[%(asctime)s] [%(levelname)s] [%(filename)s:%(lineno)d] %(message)s',
|
||||
datefmt='%Y-%m-%d %H:%M:%S'
|
||||
)
|
||||
|
||||
file_handler = logging.FileHandler(log_file, mode='a', encoding='utf-8')
|
||||
file_handler.setFormatter(formatter)
|
||||
|
||||
stream_handler = logging.StreamHandler(sys.stdout)
|
||||
stream_handler.setFormatter(formatter)
|
||||
|
||||
logger.addHandler(file_handler)
|
||||
logger.addHandler(stream_handler)
|
||||
|
||||
return logger
|
||||
|
||||
|
||||
logger = setup_logger()
|
||||
|
||||
# 设置 QMT 交易端的数据路径和会话ID
|
||||
min_path = r"C:\\QMT\\中金财富QMT个人版交易端\\userdata_mini"
|
||||
session_id = int(random.randint(100000, 999999))
|
||||
|
||||
logger.info(f"QMT路径: {min_path}")
|
||||
logger.info(f"会话ID: {session_id}")
|
||||
|
||||
# 创建 XtQuantTrader 实例并启动
|
||||
logger.info("正在创建 XtQuantTrader 实例...")
|
||||
xt_trader = xttrader.XtQuantTrader(min_path, session_id)
|
||||
logger.info("正在启动 XtQuantTrader...")
|
||||
xt_trader.start()
|
||||
logger.info("XtQuantTrader 已启动")
|
||||
|
||||
# 连接 QMT 交易端
|
||||
logger.info("正在连接 QMT 交易端...")
|
||||
connect_result = xt_trader.connect()
|
||||
if connect_result == 0:
|
||||
print('连接成功')
|
||||
logger.info("✅ 连接成功")
|
||||
else:
|
||||
print('连接失败')
|
||||
logger.error(f"❌ 连接失败,错误码: {connect_result}")
|
||||
xt_trader.stop()
|
||||
logger.info("XtQuantTrader 已停止")
|
||||
exit()
|
||||
|
||||
# 设置账户信息
|
||||
account = StockAccount('8176081580')
|
||||
account_id = '8176081580'
|
||||
logger.info(f"账户ID: {account_id}")
|
||||
account = StockAccount(account_id)
|
||||
|
||||
# 订阅账户
|
||||
logger.info("正在订阅账户...")
|
||||
res = xt_trader.subscribe(account)
|
||||
if res == 0:
|
||||
print('订阅成功')
|
||||
logger.info("✅ 订阅成功")
|
||||
else:
|
||||
print('订阅失败')
|
||||
logger.error(f"❌ 订阅失败,错误码: {res}")
|
||||
|
||||
Reference in New Issue
Block a user