ワンクリックで
miniqmt-skills
XtQuant (迅投量化) API 文档 - 用于量化交易的 Python API,包括行情数据获取、交易执行、策略回测等功能
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
XtQuant (迅投量化) API 文档 - 用于量化交易的 Python API,包括行情数据获取、交易执行、策略回测等功能
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| 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管理
风险提示
本技能文档基于以下来源自动生成: