with one click
miniqmt-skills
XtQuant (迅投量化) API 文档 - 用于量化交易的 Python API,包括行情数据获取、交易执行、策略回测等功能
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
XtQuant (迅投量化) API 文档 - 用于量化交易的 Python API,包括行情数据获取、交易执行、策略回测等功能
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | miniqmt-skills |
| description | XtQuant (迅投量化) API 文档 - 用于量化交易的 Python API,包括行情数据获取、交易执行、策略回测等功能 |
XtQuant 是基于迅投 MiniQMT 的完善 Python 策略运行框架,提供量化交易所需的行情和交易 API 接口。
在以下场景中应该使用此技能:
xtdata - 行情数据模块
xttrader - 交易执行模块
从官方文档提取的完整示例:
from xtquant import xtdata
import time
# 设定标的列表和周期
code_list = ["000001.SZ"]
period = "1d"
# 下载历史行情数据到本地
for code in code_list:
xtdata.download_history_data(code, period=period, incrementally=True)
# 下载财务和板块数据
xtdata.download_financial_data(code_list)
xtdata.download_sector_data()
# 读取本地历史行情
history_data = xtdata.get_market_data_ex([], code_list, period=period, count=-1)
print(history_data)
说明:XtQuant 的数据以压缩形式存储在本地,使用前需要先下载。
from xtquant import xtdata
code_list = ["000001.SZ"]
period = "1d"
# 定义回调函数
def on_data(data):
code_list = list(data.keys())
kline = xtdata.get_market_data_ex([], code_list, period=period)
print(kline)
# 订阅行情并设置回调
for code in code_list:
xtdata.subscribe_quote(code, period=period, count=-1, callback=on_data)
# 阻塞程序以持续接收回调
xtdata.run()
说明:使用回调模式时,必须调用 xtdata.run() 阻塞程序,否则程序会直接退出。
从官方文档提取的交易示例:
from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
from xtquant.xttype import StockAccount
from xtquant import xtconstant
# 定义交易回调类
class MyXtQuantTraderCallback(XtQuantTraderCallback):
def on_stock_order(self, order):
"""委托回报推送"""
print("委托回报:", order.stock_code, order.order_status)
def on_stock_trade(self, trade):
"""成交变动推送"""
print("成交回报:", trade.stock_code, trade.order_id)
def on_order_error(self, order_error):
"""委托失败推送"""
print("委托失败:", order_error.error_msg)
# 初始化交易客户端
path = 'D:\\迅投极速交易终端\\userdata_mini' # MiniQMT 安装路径
session_id = 123456 # 会话编号,不同策略使用不同编号
xt_trader = XtQuantTrader(path, session_id)
# 创建账号对象
acc = StockAccount('1000000365') # 替换为实际账号
# 注册回调
callback = MyXtQuantTraderCallback()
xt_trader.register_callback(callback)
# 启动交易线程并连接
xt_trader.start()
connect_result = xt_trader.connect() # 返回0表示成功
subscribe_result = xt_trader.subscribe(acc) # 订阅交易推送
# 下单示例
stock_code = '600000.SH'
order_id = xt_trader.order_stock(
acc,
stock_code,
xtconstant.STOCK_BUY, # 买入
200, # 数量
xtconstant.FIX_PRICE, # 限价单
10.5 # 价格
)
print(f"下单成功,订单号: {order_id}")
说明:交易前必须先启动 MiniQMT 客户端并登录账号。
从官方文档提取的VIP服务器连接示例:
from xtquant import xtdatacenter as xtdc
from xtquant import xtdata
# 设置token(从投研用户中心获取)
xtdc.set_token('这里输入你的token')
# 设置VIP服务器连接池
addr_list = [
'115.231.218.73:55310',
'115.231.218.79:55310',
'42.228.16.211:55300',
'42.228.16.210:55300'
]
xtdc.set_allow_optmize_address(addr_list)
# 开启K线全推功能(VIP功能)
xtdc.set_kline_mirror_enabled(True)
# 初始化并监听端口
xtdc.init()
port = xtdc.listen(port=58621) # 指定固定端口
xtdata.connect(port=port)
print('连接成功')
xtdata.run()
说明:VIP服务器提供更快的行情推送和更多的数据服务,需要从投研用户中心获取token。
from xtquant import xtdatacenter as xtdc
xtdc.set_token("你的token")
xtdc.init(False) # 不自动初始化
port = 58601 # 自定义端口
xtdc.listen(port=port)
print(f"服务启动,开放端口:{port}")
说明:当58609默认端口被占用时,可以指定自定义端口。
错误信息:NO module named 'xtquant.IPythonAPiClient'
解决方案:
原因:同一个 session 的两次 Python 进程 connect 之间必须超过3秒
解决方案:
错误信息:执行 xtdatacenter.init 时提示监听58609端口失败
解决方案:
# 方法1:指定自定义端口
xtdc.init(False)
port = xtdc.listen(port=58601)
# 方法2:关闭所有Python程序或重启电脑
问题描述:查询委托的投资备注只有前半部分
原因:极简客户端的 order_remark 字段最大24个英文字符(一个中文占3个),超出部分会被丢弃
解决方案:控制备注长度,或使用大QMT(无长度限制)
本技能包含以下参考文档,使用 view 命令查看详细内容:
来源:官方文档 置信度:中等 内容:5个页面,包含:
适用场景:
来源:官方文档 置信度:中等 内容:2个页面,包含:
适用场景:
第一步:环境准备
pip install xtquant第二步:学习基础
getting_started.md 了解整体架构第三步:实践进阶
api.md 中的完整实例行情数据处理
交易策略开发
性能优化
VIP服务器使用
多账户管理
生产环境部署
MiniQMT客户端必须先启动
数据下载机制
回调函数注意事项
xtdata.run() 或 xttrader.run() 阻塞程序Session管理
风险提示
本技能文档基于以下来源自动生成: