Files
NewStock/qmt/qmt_test.py

78 lines
2.1 KiB
Python
Raw Normal View History

import logging
import sys
import os
import datetime
2025-11-29 00:23:12 +08:00
from xtquant import xttrader
2026-01-04 22:43:13 +08:00
from xtquant.xtdata import download_history_data, get_market_data
2025-11-29 00:23:12 +08:00
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()
2025-11-29 00:23:12 +08:00
# 设置 QMT 交易端的数据路径和会话ID
min_path = r"C:\\QMT\\中金财富QMT个人版交易端\\userdata_mini"
2025-11-29 00:23:12 +08:00
session_id = int(random.randint(100000, 999999))
logger.info(f"QMT路径: {min_path}")
logger.info(f"会话ID: {session_id}")
2025-11-29 00:23:12 +08:00
# 创建 XtQuantTrader 实例并启动
logger.info("正在创建 XtQuantTrader 实例...")
2025-11-29 00:23:12 +08:00
xt_trader = xttrader.XtQuantTrader(min_path, session_id)
logger.info("正在启动 XtQuantTrader...")
2025-11-29 00:23:12 +08:00
xt_trader.start()
logger.info("XtQuantTrader 已启动")
2025-11-29 00:23:12 +08:00
# 连接 QMT 交易端
logger.info("正在连接 QMT 交易端...")
2025-11-29 00:23:12 +08:00
connect_result = xt_trader.connect()
if connect_result == 0:
logger.info("✅ 连接成功")
2025-11-29 00:23:12 +08:00
else:
logger.error(f"❌ 连接失败,错误码: {connect_result}")
2025-11-29 00:23:12 +08:00
xt_trader.stop()
logger.info("XtQuantTrader 已停止")
2025-11-29 00:23:12 +08:00
exit()
# 设置账户信息
account_id = '8176081580'
logger.info(f"账户ID: {account_id}")
account = StockAccount(account_id)
2025-11-29 00:23:12 +08:00
# 订阅账户
logger.info("正在订阅账户...")
2025-11-29 00:23:12 +08:00
res = xt_trader.subscribe(account)
if res == 0:
logger.info("✅ 订阅成功")
2025-11-29 00:23:12 +08:00
else:
logger.error(f"❌ 订阅失败,错误码: {res}")