miniqmt-skills by nnquant/miniqmt-skills
npx skills add https://github.com/nnquant/miniqmt-skills --skill miniqmt-skillsXtQuant 是基于迅投 MiniQMT 的完善 Python 策略运行框架,提供量化交易所需的行情和交易 API 接口。
在以下场景中应该使用此技能:
xtdata - 行情数据模块
xttrader - 交易执行模块
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
从官方文档提取的完整示例:
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管理
风险提示
本技能文档基于以下来源自动生成:
Weekly Installs
95
Repository
GitHub Stars
27
First Seen
Feb 8, 2026
Security Audits
Installed on
opencode90
gemini-cli89
github-copilot89
amp89
codex89
kimi-cli89
GitHub Actions 官方文档查询助手 - 精准解答 CI/CD 工作流问题
40,500 周安装